// Called when planning, to simulate the effects of the action to the world
    public override StateList Simulate(StateList world)
    {
        StateList applied = world.Copy();

        postconditions.SaveCache();
        // check each property in the state, and change it from precondition to postcondition
        foreach (State postcondition in postconditions.states)
        {
            applied.SetState(postcondition.Name, postcondition.Value);
        }
        return(applied);
    }