feat: Planner::cached_world_state now clears when make_plan is called
This commit is contained in:
		
							parent
							
								
									8017194b0c
								
							
						
					
					
						commit
						4dbeb77ad4
					
				|  | @ -91,6 +91,8 @@ Array Planner::gdscript_make_plan(Ref<Goal> goal) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Vector<Ref<Action>> Planner::make_plan(Ref<Goal> goal) { | Vector<Ref<Action>> Planner::make_plan(Ref<Goal> goal) { | ||||||
|  |     // clear cache every planning phase
 | ||||||
|  |     this->cached_world_state.clear(); | ||||||
|     // ordered list of all nodes still being considered
 |     // ordered list of all nodes still being considered
 | ||||||
|     Vector<PlannerNode> open{PlannerNode::goal_node(goal->goal_state)}; |     Vector<PlannerNode> open{PlannerNode::goal_node(goal->goal_state)}; | ||||||
|     PlannerNode first = open.get(0); |     PlannerNode first = open.get(0); | ||||||
|  | @ -128,16 +130,15 @@ Vector<Ref<Action>> Planner::make_plan(Ref<Goal> goal) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Variant Planner::get_world_property(StringName prop_key) { | Variant Planner::get_world_property(StringName prop_key) { | ||||||
|     if(prop_key.begins_with("g_")) |     if(prop_key.begins_with("g_")) { | ||||||
|         return this->global_world_state->get_world_property(prop_key); |         return this->global_world_state->get_world_property(prop_key); | ||||||
|     if(this->cached_world_state.has(prop_key)) |     } else if(this->cached_world_state.has(prop_key)) { | ||||||
|         return this->cached_world_state.get(prop_key); |         return this->cached_world_state.get(prop_key); | ||||||
|     if(this->has_method("get_" + prop_key)) { |     } else if(this->actor->has_method("get_" + prop_key)) { | ||||||
|         Variant val = this->call(prop_key); |         Variant val = this->actor->call("get_" + prop_key); | ||||||
|         this->cached_world_state.insert(prop_key, val); |         this->cached_world_state.insert(prop_key, val); | ||||||
|         return val; |         return val; | ||||||
|     } |     } else return nullptr; | ||||||
|     return nullptr; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool Planner::can_do(Ref<Action> action) { | bool Planner::can_do(Ref<Action> action) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Sara
						Sara