示例#1
0
        private void OnTakeStackItem(TakeStackItemRequest request)
        {
            var requester = request.Requester;
            var stack     = request.Stack;

            if (!stack.HasState <InventoryState>())
            {
                Debug.LogError("A requester requested to take a stack item but the stack doesn't have an inventory state!");
                return;
            }

            if (!requester.HasState <InventoryState>())
            {
                Debug.LogError("A requester requested to take a stack item but the requester doesn't have an inventory state!");
                return;
            }

            var stackItem = stack.GetState <InventoryState>().Child;

            if (stackItem == null)
            {
                Debug.LogError("A requester requested to take a stack item but there is no item!");
                return;
            }

            EventSystem.ParentingRequestEvent.Invoke(new ParentingRequest {
                EntityFrom = stack, EntityTo = requester, Mover = stackItem
            });

            if (stack.GetState <InventoryState>().Child == null)
            {
                CreateNewItemInStack(stack);
            }
        }
 private void OnTakeStackItem(TakeStackItemRequest request)
 {
     if (request.Stack == entity)
     {
         var originalY = slot.position.y;
         slot.localPosition = new Vector3(slot.localPosition.x, -0.6f, slot.localPosition.z);
         slot.DOMoveY(originalY, 1.0f);
     }
 }