#pragma once #include #include #include #include #include "Dimension.h" #include "CurrentPlayer.h" #include "PlayerKam.h" class World : public Framework::Thread { private: Framework::RCArray* dimensions; CurrentPlayer* currentPlayer; Framework::Welt3D* renderedWorld; Framework::Bildschirm3D* zScreenPtr; PlayerKam* kam; Framework::Vec3 target; int entityTarget; bool hasTarget; bool firstMessage; int ownEntityId; Framework::Model3D* currentTarget; public: World( Framework::Bildschirm3D* zScreen ); ~World(); void update( bool background ); void setChunk( Chunk* chunk, int dimensionId ); void thread() override; Block* zBlockAt( Framework::Vec3 location, int dimension ) const; Block* getBlockAt( Framework::Vec3 location, int dimension ) const; Dimension* zDimension( int id ) const; Dimension* zDimensionOrCreate( int id ); void setVisibility( Chunk* zChunk, bool visible ); void setVisibility( Entity* zEntity, bool visible ); Framework::Punkt getChunkCenter( int x, int y ) const; Entity* zEntity( int id ) const; Entity* getEntity( int id ) const; void removeEntity( int id ); PlayerKam* zKamera() const; int getCurrentPlayerId() const; Entity* getCurrentPlayerEntity() const; void setTarget( Framework::Model3D* zTarget ); void lockWorld(); void unlockWorld(); };