Exemplo n.º 1
0
    public SerializableItem Remove(string itemName)
    {
        if (!root)
        {
            return(null);
        }
        SerializableItem result = null;
        LinkedTransform  next = root, prev = null, temp = null;

        do
        {
            if (itemName.Equals(next.itemDisplayProxy._name))
            {
                result = next.stack.take();
                if (next.stack.empty)
                {
                    //TODO: at this point, does the linkedtransform destroy itself / get destroyed?
                    Remove(prev, next);
                }
                return(result);
            }
            temp = next;
            prev = next;
            next = temp.child;
        } while (next.child);
        return(null);
    }
Exemplo n.º 2
0
 private void setRoot(LinkedTransform _root)
 {
     root = _root;
     if (root)
     {
         root.transform.position = anchor.position;
         root.transform.SetParent(anchor);
     }
 }
Exemplo n.º 3
0
 private void Remove(LinkedTransform prev, LinkedTransform remove)
 {
     if (!prev)
     {
         setRoot(remove.child);
         return;
     }
     prev.child = remove.child;
 }
Exemplo n.º 4
0
    private IEnumerable <LinkedTransform> getLinks()
    {
        LinkedTransform next = root;

        while (next)
        {
            yield return(next);

            next = next.child;
        }
    }
Exemplo n.º 5
0
    public ItemDisplayProxy Add(SerializableItem item)
    {
        LinkedTransform lt = getLinkedTransform(item.name);

        if (lt && lt.stack)
        {
            lt.stack.add(item);
        }
        else
        {
            lt = add(new ItemStack(item));
        }
        return(lt.itemDisplayProxy);
    }
Exemplo n.º 6
0
    private LinkedTransform add(ItemStack stack)
    {
        if (!root)
        {
            if (stack == null)
            {
                return(null);
            }
            setRoot(new LinkedTransform(stack));
            return(root);
        }
        LinkedTransform last = root;

        while (last.child)
        {
            last = last.child;
        }
        if (stack == null)
        {
            return(last);
        }
        last.child = new LinkedTransform(stack);
        return(last.child);
    }