public Session() { m_uid = NAPI.SessionCreate(); if (IsValid) { m_pointer = NAPI.SessionGet(m_uid); } }
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); }
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); } }
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); }
public bool Start() { return(IsValid && NAPI.SessionStart(m_uid)); }
public float EffectorTakeImpulse(uint index) { return(IsValid ? NAPI.BrainEffectorTakeImpulse(m_pointer, index) : 0); }
public bool SensorPushImpulse(uint index, float value) { return(IsValid && NAPI.BrainSensorPushImpulse(m_pointer, index, value)); }
public bool Feed(float energy) { return(IsValid && NAPI.BrainFeed(m_pointer, energy)); }
public bool ResetDemandForEnergyUnits() { return(IsValid && NAPI.BrainResetDemandForEnergyUnits(m_pointer)); }
public bool PerformOnLater(BrainCallback action) { return(IsValid && NAPI.PerformOnBrainLater(m_session.UID, m_uid, action)); }
public bool Deserialize(byte[] data) { return(IsValid && NAPI.BrainDeserialize(m_pointer, data)); }
public byte[] Serialize() { return(IsValid ? NAPI.BrainSerialize(m_pointer) : null); }