World.h 1.5 KB

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