mirror of
https://github.com/DCFApixels/DragonECS-Graphs.git
synced 2025-09-18 11:54:35 +08:00
fix add method
This commit is contained in:
parent
d9bedb4d8b
commit
b7b2e1dd79
@ -52,26 +52,16 @@ namespace DCFApixels.DragonECS.Relations.Utils
|
|||||||
/// <returns> new node index</returns>
|
/// <returns> new node index</returns>
|
||||||
public int InsertAfter(int nodeIndex, int value)
|
public int InsertAfter(int nodeIndex, int value)
|
||||||
{
|
{
|
||||||
int newNodeIndex;
|
_count++;
|
||||||
if (_recycledNodesCount > 0)
|
int newNodeIndex = _recycledNodesCount > 0 ? _recycledNodes[--_recycledNodesCount] : _count;
|
||||||
{
|
|
||||||
newNodeIndex = _recycledNodes[--_recycledNodesCount];
|
|
||||||
_count++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
newNodeIndex = ++_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
ref Node prevNode = ref _nodes[nodeIndex];
|
ref Node prevNode = ref _nodes[nodeIndex];
|
||||||
ref Node nextNode = ref _nodes[prevNode.next];
|
ref Node nextNode = ref _nodes[prevNode.next];
|
||||||
|
|
||||||
_nodes[newNodeIndex].Set(value, nextNode.prev, prevNode.next);
|
_nodes[newNodeIndex].Set(value, nextNode.prev, prevNode.next);
|
||||||
|
|
||||||
prevNode.next = newNodeIndex;
|
prevNode.next = newNodeIndex;
|
||||||
nextNode.prev = newNodeIndex;
|
nextNode.prev = newNodeIndex;
|
||||||
|
if(prevNode.next == 0)
|
||||||
_lastNodeIndex = newNodeIndex;
|
_lastNodeIndex = newNodeIndex;
|
||||||
return newNodeIndex;
|
return newNodeIndex;
|
||||||
}
|
}
|
||||||
//public int InsertBefore(int nodeIndex, int value) { }
|
//public int InsertBefore(int nodeIndex, int value) { }
|
||||||
@ -84,8 +74,6 @@ namespace DCFApixels.DragonECS.Relations.Utils
|
|||||||
_nodes[node.next].prev = node.prev;
|
_nodes[node.next].prev = node.prev;
|
||||||
_nodes[node.prev].next = node.next;
|
_nodes[node.prev].next = node.next;
|
||||||
|
|
||||||
// node = Node.Empty;
|
|
||||||
|
|
||||||
if (_recycledNodesCount >= _recycledNodes.Length)
|
if (_recycledNodesCount >= _recycledNodes.Length)
|
||||||
Array.Resize(ref _recycledNodes, _recycledNodes.Length << 1);
|
Array.Resize(ref _recycledNodes, _recycledNodes.Length << 1);
|
||||||
_recycledNodes[_recycledNodesCount++] = nodeIndex;
|
_recycledNodes[_recycledNodesCount++] = nodeIndex;
|
||||||
|
Loading…
Reference in New Issue
Block a user