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)); } }
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); } }
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(); }
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); } } }
/// <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); } }
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); } }
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 (); }