12345678910111213141516171819202122232425262728293031323334353637383940 |
- #pragma once
- #include <Array.h>
- #include <Trie.h>
- #include <Critical.h>
- #include "Chunk.h"
- #include "Entity.h"
- class World;
- class Dimension : public virtual Framework::ReferenceCounter
- {
- private:
- int dimensionId;
- Framework::Trie<Chunk>* chunks;
- Framework::Array<Chunk*> chunkList;
- Framework::RCArray<Entity>* entities;
- Framework::Critical cs;
- void getAddrOf( Framework::Punkt cPos, char* addr ) const;
- void getAddrOfWorld( Framework::Punkt wPos, char* addr ) const;
- public:
- Dimension( int id );
- ~Dimension();
- Block* zBlock( Framework::Vec3<int> location );
- Block* getBlock( Framework::Vec3<int> location );
- void addEntity( Entity* entity );
- void setChunk( Chunk* chunk, Framework::Punkt center, World* zWorld );
- int getDimensionId() const;
- bool hasChunck( int x, int y ) const;
- Chunk* zChunk( Framework::Punkt wPos ) const;
- void removeDistantChunks( Framework::Punkt wPos, World* zWorld );
- void setBlock( Block* block );
- void removeBlock( Block* zBlock );
- Entity* zEntity( int id );
- Entity* getEntity( int id );
- void removeEntity( int id );
- };
|