Example #1
0
 public Session()
 {
     m_uid = NAPI.SessionCreate();
     if (IsValid)
     {
         m_pointer = NAPI.SessionGet(m_uid);
     }
 }
Example #2
0
 public void Dispose()
 {
     if (!IsValid)
     {
         return;
     }
     m_session.UnregisterBrain(this);
     NAPI.BrainDestroy(m_session.UID, m_uid);
     m_uid     = null;
     m_session = null;
     m_pointer = IntPtr.Zero;
     GC.SuppressFinalize(this);
 }
Example #3
0
 public Brain(Session session)
 {
     if (session == null)
     {
         return;
     }
     m_session = session;
     m_uid     = NAPI.BrainCreate(session.UID);
     if (IsValid)
     {
         m_pointer = NAPI.BrainGet(m_session.UID, m_uid);
         m_session.RegisterBrain(this);
     }
 }
Example #4
0
 public void Dispose()
 {
     if (!IsValid)
     {
         return;
     }
     NAPI.SessionDestroy(m_uid);
     m_uid     = null;
     m_pointer = IntPtr.Zero;
     foreach (var b in m_brains)
     {
         b.Value.Dispose();
     }
     m_brains.Clear();
     GC.SuppressFinalize(this);
 }
Example #5
0
 public bool Start()
 {
     return(IsValid && NAPI.SessionStart(m_uid));
 }
Example #6
0
 public float EffectorTakeImpulse(uint index)
 {
     return(IsValid ? NAPI.BrainEffectorTakeImpulse(m_pointer, index) : 0);
 }
Example #7
0
 public bool SensorPushImpulse(uint index, float value)
 {
     return(IsValid && NAPI.BrainSensorPushImpulse(m_pointer, index, value));
 }
Example #8
0
 public bool Feed(float energy)
 {
     return(IsValid && NAPI.BrainFeed(m_pointer, energy));
 }
Example #9
0
 public bool ResetDemandForEnergyUnits()
 {
     return(IsValid && NAPI.BrainResetDemandForEnergyUnits(m_pointer));
 }
Example #10
0
 public bool PerformOnLater(BrainCallback action)
 {
     return(IsValid && NAPI.PerformOnBrainLater(m_session.UID, m_uid, action));
 }
Example #11
0
 public bool Deserialize(byte[] data)
 {
     return(IsValid && NAPI.BrainDeserialize(m_pointer, data));
 }
Example #12
0
 public byte[] Serialize()
 {
     return(IsValid ? NAPI.BrainSerialize(m_pointer) : null);
 }