World.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include <Welt3D.h>
  3. #include <Bildschirm.h>
  4. #include <Kam3D.h>
  5. #include <Thread.h>
  6. #include "Dimension.h"
  7. #include "PlayerKam.h"
  8. class World : public Framework::Thread
  9. {
  10. private:
  11. Framework::RCArray<Dimension>* dimensions;
  12. Framework::Welt3D* renderedWorld;
  13. Framework::Bildschirm3D* zScreenPtr;
  14. PlayerKam* kam;
  15. Framework::Vec3<int> target;
  16. int entityTarget;
  17. bool hasTarget;
  18. bool firstMessage;
  19. int ownEntityId;
  20. Framework::Model3D* currentTarget;
  21. public:
  22. World(Framework::Bildschirm3D* zScreen);
  23. ~World();
  24. void update(bool background);
  25. void setChunk(Chunk* chunk, int dimensionId);
  26. void thread() override;
  27. Block* zBlockAt(Framework::Vec3<int> location, int dimension) const;
  28. Block* getBlockAt(Framework::Vec3<int> location, int dimension) const;
  29. Dimension* zDimension(int id) const;
  30. Dimension* zDimensionOrCreate(int id);
  31. void setVisibility(Chunk* zChunk, bool visible);
  32. void setVisibility(Entity* zEntity, bool visible);
  33. Framework::Punkt getChunkCenter(int x, int y) const;
  34. Entity* zEntity(int id) const;
  35. Entity* getEntity(int id) const;
  36. void removeEntity(int id);
  37. PlayerKam* zKamera() const;
  38. int getCurrentPlayerId() const;
  39. Entity* getCurrentPlayerEntity() const;
  40. void setTarget(Framework::Model3D* zTarget);
  41. void lockWorld();
  42. void unlockWorld();
  43. };