var ARM_MOVE_SPEED:number = 0.5; class BWPutUnder_IntentionAction extends IntentionAction { constructor() { super(); this.needsContinuousExecution = true; } canHandle(intention:Term, ai:RuleBasedAI) : boolean { if (intention.functor.is_a(ai.o.getSort("action.put-under"))) return true; return false; } execute(ir:IntentionRecord, ai_raw:RuleBasedAI) : boolean { this.ir = ir; let ai:BlocksWorldRuleBasedAI = ai_raw; let requester:TermAttribute = ir.requester; // This is just a dummy action, it should never be executed (it only exists so that SHRDLU knows that it can // plan for this action) let term:Term = Term.fromString("action.talk('"+ai.selfID+"'[#id], perf.ack.denyrequest("+requester+"))", ai.o); ai.intentions.push(new IntentionRecord(term, null, null, null, ai.timeStamp)); this.ir.succeeded = false; return true; } saveToXML(ai:RuleBasedAI) : string { let str = ""; } static loadFromXML(xml:Element, ai:RuleBasedAI) : IntentionAction { let a:BWPutUnder_IntentionAction = new BWPutUnder_IntentionAction(); return a; } }