Ejemplo n.º 1
0
        public void SendRemoveContainerItem(Container container, ushort slot)
        {
            if (Connection == null)
            {
                return;
            }

            foreach (KeyValuePair <byte, OpenContainer> it in OpenContainers)
            {
                OpenContainer openContainer = it.Value;
                if (openContainer.Container != container)
                {
                    continue;
                }

                ushort firstIndex = openContainer.Index;
                if (firstIndex > 0 && firstIndex >= container.ItemList.Count - 1)
                {
                    firstIndex -= container.MaxSize;
                    SendContainer(it.Key, container, false, firstIndex);
                }

                Connection.SendRemoveContainerItem(it.Key, Math.Max(slot, firstIndex), container.GetItemByIndex(container.MaxSize + firstIndex));
            }
        }
Ejemplo n.º 2
0
        public void SendUpdateContainerItem(Container container, ushort slot, Item newItem)
        {
            if (Connection == null)
            {
                return;
            }

            foreach (KeyValuePair <byte, OpenContainer> it in OpenContainers)
            {
                OpenContainer openContainer = it.Value;
                if (openContainer.Container != container)
                {
                    continue;
                }

                if (slot < openContainer.Index)
                {
                    continue;
                }

                ushort pageEnd = (ushort)(openContainer.Index + container.MaxSize);
                if (slot >= pageEnd)
                {
                    continue;
                }

                Connection.SendUpdateContainerItem(it.Key, slot, newItem);
            }
        }
Ejemplo n.º 3
0
    public void MoveToOpen(ref OpenContainer open)
    {
        List <ARAstarNode> templist = new List <ARAstarNode> ();

        templist = incons.Values.ToList();
        foreach (ARAstarNode node in templist)
        {
            open.Insert(node);
            incons.Remove(node.action.state);
        }
        open.Sort();
    }
Ejemplo n.º 4
0
        public void OnSendContainer(Container container)
        {
            if (Connection == null)
            {
                return;
            }

            bool hasParent = container.HasParent();

            foreach (KeyValuePair <byte, OpenContainer> it in OpenContainers)
            {
                OpenContainer openContainer = it.Value;
                if (openContainer.Container == container)
                {
                    Connection.SendContainer(it.Key, container, hasParent, openContainer.Index);
                }
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes the containers.
 /// </summary>
 void InitializedArrays()
 {
     if (Close == null)
     {
         Close = new CloseContainer();
     }
     if (Open == null)
     {
         Open = new OpenContainer(this, usingHeap);
     }
     if (Incons == null)
     {
         Incons = new Incons();
     }
     if (Visited == null)
     {
         Visited = new VisitedContainer(selectedPlanningDomain);
     }
 }
Ejemplo n.º 6
0
        public void SendAddContainerItem(Container container, Item item)
        {
            if (Connection == null)
            {
                return;
            }

            foreach (KeyValuePair <byte, OpenContainer> it in OpenContainers)
            {
                OpenContainer openContainer = it.Value;
                if (openContainer.Container != container)
                {
                    continue;
                }

                ushort slot = openContainer.Index;
                if (container.Id == (ushort)FixedItems.BrowseField)
                {
                    ushort containerSize = (ushort)(container.ItemList.Count - 1);
                    ushort pageEnd       = (ushort)(openContainer.Index + container.MaxSize - 1);

                    if (containerSize > pageEnd)
                    {
                        slot = pageEnd;
                        item = container.GetItemByIndex(pageEnd);
                    }
                    else
                    {
                        slot = containerSize;
                    }
                }
                else if (openContainer.Index >= container.MaxSize)
                {
                    item = container.GetItemByIndex(openContainer.Index - 1);
                }

                Connection.SendAddContainerItem(it.Key, slot, item);
            }
        }
Ejemplo n.º 7
0
 public void MoveToOpen(ref OpenContainer open)
 {
     List<ARAstarNode> templist = new List<ARAstarNode> ();
     templist = incons.Values.ToList ();
     foreach (ARAstarNode node in templist) {
         open.Insert (node);
         incons.Remove (node.action.state);
     }
     open.Sort ();
 }