hand_states.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ///@{ states
  2. enum HandStateID
  3. {
  4. UNKNOWN = 0,
  5. Empty = 1,
  6. Equipped = 2,
  7. }
  8. class HandStateEmpty : HandStableState
  9. {
  10. override void OnEntry(HandEventBase e)
  11. {
  12. if(e)
  13. {
  14. switch (e.m_EventID)
  15. {
  16. case HandEventID.MOVETO:
  17. if (HumanInventory.HasInventoryReservation(e.GetSrcEntity(), e.GetDst()))
  18. HumanInventory.ClearInventoryReservation(e.GetSrcEntity(), e.GetDst());
  19. break;
  20. default: {};
  21. }
  22. }
  23. super.OnEntry(e);
  24. }
  25. override void OnExit(HandEventBase e) { super.OnExit(e); }
  26. override int GetCurrentStateID() { return HandStateID.Empty; }
  27. };
  28. class HandStateEquipped : HandStableState
  29. {
  30. override void OnEntry(HandEventBase e)
  31. {
  32. if(e)
  33. {
  34. switch (e.m_EventID)
  35. {
  36. case HandEventID.MOVETO:
  37. if (HumanInventory.HasInventoryReservation(e.GetSrcEntity(), e.GetDst()))
  38. HumanInventory.ClearInventoryReservation(e.GetSrcEntity(), e.GetDst());
  39. break;
  40. default: {};
  41. }
  42. }
  43. super.OnEntry(e);
  44. }
  45. override void OnExit(HandEventBase e)
  46. {
  47. /*switch (e.m_EventID)
  48. {
  49. case HandEventID.MOVETO:
  50. if (HumanInventory.HasInventoryReservation(e.GetSrcEntity(), e.GetDst()))
  51. HumanInventory.ClearInventoryReservation(e.GetSrcEntity(), e.GetDst());
  52. break;
  53. default: {};
  54. }*/
  55. super.OnExit(e);
  56. }
  57. override int GetCurrentStateID() { return HandStateID.Equipped; }
  58. };
  59. ///@} states