temperatureaccesscomponent.c 937 B

1234567891011121314151617181920212223242526272829303132333435
  1. class TemperatureAccessComponent
  2. {
  3. protected EntityAI m_Owner;
  4. protected TemperatureAccessTypeBase m_AccessDataCurrent;
  5. protected float m_LastAccessTime;
  6. void TemperatureAccessComponent(EntityAI owner)
  7. {
  8. m_Owner = owner;
  9. }
  10. bool TryAccessSource(TemperatureData data)
  11. {
  12. if (PriorityCheck(data) || CheckAccessTimeout(data))
  13. {
  14. m_AccessDataCurrent = TemperatureAccessManager.GetTAData(data.m_AccessType);
  15. m_LastAccessTime = GetGame().GetTickTime();
  16. return true;
  17. }
  18. return false;
  19. }
  20. protected bool PriorityCheck(TemperatureData data)
  21. {
  22. TemperatureAccessTypeBase dataNew = TemperatureAccessManager.GetTAData(data.m_AccessType);
  23. return !m_AccessDataCurrent || dataNew.GetPriority() >= m_AccessDataCurrent.GetPriority();
  24. }
  25. protected bool CheckAccessTimeout(TemperatureData data)
  26. {
  27. float timeCurrent = GetGame().GetTickTime();
  28. return (timeCurrent - m_LastAccessTime) > data.m_UpdateTimeInfo;
  29. }
  30. }