Ejemplo n.º 1
0
        public virtual void StartData()
        {
            sensors   = new List <Sensor>();
            actuators = new List <Actuator>();
            OnSetup();
            foreach (Node node in GetChildren())
            {
                if (node.GetType().IsSubclassOf(typeof(Sensor)))
                {
                    Sensor s = node as Sensor;
                    sensors.Add(s);
                    if (s.resettable)
                    {
                        AddResetListener(s);
                    }
                    s.OnBinding(this);
                }
                if (node.GetType().IsSubclassOf(typeof(Actuator)))
                {
                    Actuator a = node as Actuator;
                    actuators.Add(a);
                    if (a.resettable)
                    {
                        AddResetListener(a);
                    }
                    a.OnBinding(this);
                }
            }

            numberOfFields  = sensors.Count;
            numberOfActions = actuators.Count;

            if (numberOfFields == 0)
            {
                GD.Print("The agent should have at least one sensor! Target name: " + GetParent().Name);
            }

            if (numberOfActions == 0)
            {
                GD.Print("The agent should have at least one actuator! Target name: " + GetParent().Name);
            }

            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            desc   = new string[numberOfFields];
            types  = new byte[numberOfFields];
            values = new string[numberOfFields];
            OnSetupDone();
        }