From fd20d330baccb871064d2b47b8a70a363faf79a2 Mon Sep 17 00:00:00 2001 From: mfranz Date: Tue, 7 Aug 2007 11:30:30 +0000 Subject: [PATCH] props.Node: add remove() method that removes the node it was calleed on from its property tree. The node remains accessible as long as references to it are kept. Example: var cow_chain = func { var cow = geo.put_model("Models/Fauna/cow.ac", geo.aircraft_position()); settimer(func { cow.remove() }, 10); settimer(cow_chain, 2); } cow_chain(); --- Nasal/props.nas | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Nasal/props.nas b/Nasal/props.nas index f00cf827a..017b04e77 100644 --- a/Nasal/props.nas +++ b/Nasal/props.nas @@ -32,18 +32,23 @@ Node = { getNode : func { wrap(_getNode(me._g, arg)) }, getPath : func { - name = me.getName(); + var name = me.getName(); if(me.getIndex() != 0) { name = name ~ "[" ~ me.getIndex() ~ "]"; } if(me.getParent() != nil) { name = me.getParent().getPath() ~ "/" ~ name; } return name; }, getBoolValue : func { - val = me.getValue(); + var val = me.getValue(); if(me.getType() == "STRING" and val == "false") { 0 } elsif (val == nil) { 0 } else { val != 0 } }, + + remove : func { + if((var p = me.getParent()) == nil) return nil; + p.removeChild(me.getName(), me.getIndex()); + }, }; ##