undoQueue.h 560 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "packet.h"
  3. #include <deque>
  4. struct Event
  5. {
  6. EventId eventId = {};
  7. //todo this will be changed to player stats
  8. glm::dvec3 playerPos = {};
  9. glm::ivec3 blockPos = {};
  10. uint16_t originalBlock = 0;
  11. uint16_t newBlock = 0;
  12. int type = 0;
  13. enum
  14. {
  15. doNothing = 0, //this happens when the server overwrides your block placement
  16. iPlacedBlock
  17. };
  18. };
  19. struct UndoQueue
  20. {
  21. EventId currentEventId = {1, 1};
  22. std::deque<Event> events;
  23. void addPlaceBlockEvent(glm::ivec3 pos, uint16_t old, uint16_t newType, glm::dvec3 playerPos);
  24. };