2025-06-04 05:02:57 +08:00

36 lines
871 B
Plaintext

autoImport("LNode")
LParentNode = class('LParentNode',LNode)
function LParentNode:ctor(behaviorTree)
LParentNode.super.ctor(self,behaviorTree)
self.childrenNodes = {}
end
function LParentNode:AddNode( node )
if(TableUtil.ArrayIndexOf(self.childrenNodes,node)==0) then
self.childrenNodes[#self.childrenNodes + 1] = node
end
LNode.SetParentNode (node, self);
end
function LParentNode:RemoveNode( node )
if(TableUtil.ArrayIndexOf(self.childrenNodes,node)>0) then
TableUtil.Remove(self.childrenNodes,node)
end
LNode.SetParentNode (node, nil);
end
function LParentNode:Update()
local node
local state
for i=1,#self.childrenNodes do
node = self.childrenNodes [i];
state = node:Update()
-- if (state == TaskState.Inactive) then
-- continue;
if (state == TaskState.Success) then
return TaskState.Running;
end
end
return TaskState.Failure;
end