from cozmo_fsm import *

class ContainerTest(StateMachineProgram):

  class CheckWorldMap(StateNode):
    def start(self,event=None):
      super().start(event)
      markers = [m for m in self.robot.world.world_map.objects.values()
                 if isinstance(m,CustomMarkerObj)]
      self.post_data(len(markers))

  def setup(self):
      """
        check0: self.CheckWorldMap()
        check0 =D(0)=> check0
        check0 =D(1)=> got1
        got1: Print("Saw one custom marker: There's a container here!") =N=> check1
    
        check1: self.CheckWorldMap()
        check1 =D(1)=> check1
        check1 =D(2)=> got2
    
        got2: Print("Saw two custom markers: Container fully specified!")
      """
      
      # Code generated by genfsm on Fri Apr 10 22:17:46 2020:
      
      check0 = self.CheckWorldMap() .set_name("check0") .set_parent(self)
      got1 = Print("Saw one custom marker: There's a container here!") .set_name("got1") .set_parent(self)
      check1 = self.CheckWorldMap() .set_name("check1") .set_parent(self)
      got2 = Print("Saw two custom markers: Container fully specified!") .set_name("got2") .set_parent(self)
      
      datatrans1 = DataTrans(0) .set_name("datatrans1")
      datatrans1 .add_sources(check0) .add_destinations(check0)
      
      datatrans2 = DataTrans(1) .set_name("datatrans2")
      datatrans2 .add_sources(check0) .add_destinations(got1)
      
      nulltrans1 = NullTrans() .set_name("nulltrans1")
      nulltrans1 .add_sources(got1) .add_destinations(check1)
      
      datatrans3 = DataTrans(1) .set_name("datatrans3")
      datatrans3 .add_sources(check1) .add_destinations(check1)
      
      datatrans4 = DataTrans(2) .set_name("datatrans4")
      datatrans4 .add_sources(check1) .add_destinations(got2)
      
      return self
