package org.neurostruct.script.devel;
 

public class Action {
   
      double bearing;
       
      State from;
      State to;
   
      
      public Action(State sas, double b) {
         from = sas;
         bearing = b;
      }
      
      
      public void setTo(State sas) {
         if (to == null) {
            to = sas;
         } else {
       //     E.info("error - overwriting to? " + bearing);
         }
      }
      
      State getFrom() {
         return from;
      }
      
      State getTo() {
         return to;
      }
      
      double getBearing() {
         return bearing;
      }
   
      double getValue() {
         double ret = 0.;
         if (to != null) {
            ret = (to.getValue() - from.getValue());
         }
         return ret;
      }
      
      
      public boolean sameDirectionAs(Action lastAction) {
         boolean ret = false;
         if (lastAction != null && Math.abs(bearing - lastAction.bearing) < 5.) {
            ret = true;
         }
         return ret;
      }
   
    
      
}
