EditorKarte.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. int netzwerk;
  24. int skillPunkte;
  25. int m2d;
  26. int bild;
  27. };
  28. struct TeamDaten
  29. {
  30. int id;
  31. int maxPunkte;
  32. double beschleunigung;
  33. int maxStabilität;
  34. int maxEnergie;
  35. double reparatur;
  36. double akkuLeistung;
  37. int laserIntensität;
  38. int laserEffizienz;
  39. int laserTempo;
  40. double wendigkeit;
  41. double antriebEffizienz;
  42. int punkte;
  43. };
  44. struct ObjektDaten
  45. {
  46. Punkt pos;
  47. int id;
  48. int m2d;
  49. int bild;
  50. int style;
  51. int maxStabilität;
  52. int maxEnergie;
  53. int energieRadius;
  54. double reparatur;
  55. double akkuLeistung;
  56. char team;
  57. };
  58. class KarteDaten : private Thread
  59. {
  60. private:
  61. EditorKlient * client;
  62. SpielerTeamStruktur *sts;
  63. Array< SpielerDaten* > spieler;
  64. Array< TeamDaten* > teams;
  65. Array< ObjektDaten* > objekte;
  66. Text error;
  67. Array< std::function< void() > > aktionen;
  68. Critical cs;
  69. bool exit;
  70. int ref;
  71. public:
  72. KarteDaten( EditorKlient *client );
  73. ~KarteDaten();
  74. void addObjekt( ObjektDaten &daten );
  75. void removeObjekt( int index );
  76. void getObjekt( int index, std::function< bool( ObjektDaten* ) > callBack );
  77. void getSpieler( int index, std::function< bool( SpielerDaten* ) > callBack );
  78. void getTeam( int index, std::function< bool( TeamDaten* ) > callBack );
  79. void thread() override;
  80. const ObjektDaten *getObjekt( int index );
  81. const SpielerDaten *getSpieler( int index );
  82. const TeamDaten *getTeam( int index );
  83. int getSpielerIndexById( int id );
  84. int getSpielerAnzahl() const;
  85. int getTeamIndexById( int id );
  86. int getTeamAnzahl() const;
  87. int getObjektAnzahl() const;
  88. bool hasError() const;
  89. char *getError() const;
  90. bool hasAktions() const;
  91. KarteDaten *getThis();
  92. KarteDaten *release();
  93. };
  94. }