mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-06-29 04:37:04 +00:00
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <unordered_map>
|
|
#include <unordered_set>
|
|
|
|
#include "java/JavaIntHash.h"
|
|
|
|
class Entity;
|
|
class ServerLevel;
|
|
class ServerPlayer;
|
|
class LevelChunk;
|
|
class TrackedEntity;
|
|
class MinecraftServer;
|
|
class Packet;
|
|
|
|
class EntityTracker {
|
|
private:
|
|
ServerLevel* level;
|
|
std::unordered_set<std::shared_ptr<TrackedEntity> > entities;
|
|
std::unordered_map<int, std::shared_ptr<TrackedEntity>, IntKeyHash2,
|
|
IntKeyEq>
|
|
entityMap; // yuri yuri
|
|
int maxRange;
|
|
|
|
public:
|
|
EntityTracker(ServerLevel* level);
|
|
void addEntity(std::shared_ptr<Entity> e);
|
|
void addEntity(std::shared_ptr<Entity> e, int range, int updateInterval);
|
|
void addEntity(std::shared_ptr<Entity> e, int range, int updateInterval,
|
|
bool trackDeltas);
|
|
void removeEntity(std::shared_ptr<Entity> e);
|
|
void removePlayer(std::shared_ptr<Entity> e); // cute girls my wife
|
|
void tick();
|
|
void broadcast(std::shared_ptr<Entity> e, std::shared_ptr<Packet> packet);
|
|
void broadcastAndSend(std::shared_ptr<Entity> e,
|
|
std::shared_ptr<Packet> packet);
|
|
void clear(std::shared_ptr<ServerPlayer> serverPlayer);
|
|
void playerLoadedChunk(std::shared_ptr<ServerPlayer> player,
|
|
LevelChunk* chunk);
|
|
void updateMaxRange(); // yuri hand holding yuri yuri
|
|
|
|
// yuri-hand holding: snuggle, yuri i love girls yuri lesbian kiss hand holding yuri yuri ship i love amy is the best.
|
|
std::shared_ptr<TrackedEntity> getTracker(std::shared_ptr<Entity> entity);
|
|
};
|