EditorKarte.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #pragma once
  2. #include "../Netzwerk/EditorKlient.h"
  3. #include <Punkt.h>
  4. #include <Critical.h>
  5. #include <functional>
  6. namespace Editor
  7. {
  8. struct SpielerDaten
  9. {
  10. int id;
  11. Punkt pos;
  12. double rot;
  13. double beschleunigung;
  14. int maxStabilität;
  15. int maxEnergie;
  16. double reparatur;
  17. double akkuLeistung;
  18. int laserIntensität;
  19. int laserEffizienz;
  20. int laserTempo;
  21. double wendigkeit;
  22. double antriebEffizienz;
  23. double energieSchild;
  24. double energieSchildEffizienz;
  25. int netzwerk;
  26. int skillPunkte;
  27. int m2d;
  28. int bild;
  29. };
  30. struct TeamDaten
  31. {
  32. int id;
  33. int maxPunkte;
  34. double beschleunigung;
  35. int maxStabilität;
  36. int maxEnergie;
  37. double reparatur;
  38. double akkuLeistung;
  39. int laserIntensität;
  40. int laserEffizienz;
  41. int laserTempo;
  42. double wendigkeit;
  43. double antriebEffizienz;
  44. double energieSchild;
  45. double energieSchildEffizienz;
  46. int punkte;
  47. };
  48. struct ObjektDaten
  49. {
  50. Punkt pos;
  51. int id;
  52. int m2d;
  53. int bild;
  54. int style;
  55. int maxStabilität;
  56. int maxEnergie;
  57. int energieRadius;
  58. double reparatur;
  59. double akkuLeistung;
  60. char team;
  61. };
  62. class KarteDaten : private Thread
  63. {
  64. private:
  65. EditorKlient * client;
  66. SpielerTeamStruktur *sts;
  67. Array< SpielerDaten* > spieler;
  68. Array< TeamDaten* > teams;
  69. Array< ObjektDaten* > objekte;
  70. Text error;
  71. Array< std::function< void() > > aktionen;
  72. Critical cs;
  73. bool exit;
  74. int ref;
  75. public:
  76. KarteDaten( EditorKlient *client );
  77. ~KarteDaten();
  78. void addObjekt( ObjektDaten &daten );
  79. void removeObjekt( int index );
  80. void getObjekt( int index, std::function< bool( ObjektDaten* ) > callBack );
  81. void getSpieler( int index, std::function< bool( SpielerDaten* ) > callBack );
  82. void getTeam( int index, std::function< bool( TeamDaten* ) > callBack );
  83. void thread() override;
  84. const ObjektDaten *getObjekt( int index );
  85. const SpielerDaten *getSpieler( int index );
  86. const TeamDaten *getTeam( int index );
  87. int getSpielerIndexById( int id );
  88. int getSpielerAnzahl() const;
  89. int getTeamIndexById( int id );
  90. int getTeamAnzahl() const;
  91. int getObjektAnzahl() const;
  92. bool hasError() const;
  93. char *getError() const;
  94. bool hasAktions() const;
  95. KarteDaten *getThis();
  96. KarteDaten *release();
  97. };
  98. }