ServerFrameComponent.cs 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. namespace Model
  2. {
  3. [ObjectEvent]
  4. public class ServerFrameComponentEvent : ObjectEvent<ServerFrameComponent>, IAwake
  5. {
  6. public void Awake()
  7. {
  8. this.Get().Awake();
  9. }
  10. }
  11. public class ServerFrameComponent: Component
  12. {
  13. public int Frame;
  14. public FrameMessage FrameMessage;
  15. public void Awake()
  16. {
  17. this.Frame = 0;
  18. this.FrameMessage = new FrameMessage() {Frame = this.Frame};
  19. this.UpdateFrameAsync();
  20. }
  21. public async void UpdateFrameAsync()
  22. {
  23. TimerComponent timerComponent = Game.Scene.GetComponent<TimerComponent>();
  24. while (true)
  25. {
  26. if (this.Id == 0)
  27. {
  28. return;
  29. }
  30. await timerComponent.WaitAsync(30);
  31. //MessageHelper.Broadcast(this.FrameMessage);
  32. ++this.Frame;
  33. this.FrameMessage = new FrameMessage() { Frame = this.Frame };
  34. }
  35. }
  36. public void Add(AFrameMessage message)
  37. {
  38. this.FrameMessage.Messages.Add(message);
  39. }
  40. }
  41. }