#pragma once #include "../../Minecraft.World/Util/HashExtension.h" #include "../../Minecraft.World/Util/JavaIntHash.h" class Entity; class ServerPlayer; class TrackedEntity; class MinecraftServer; class Packet; class EntityTracker { private: ServerLevel* level; std::unordered_set > entities; std::unordered_map, IntKeyHash2, IntKeyEq> entityMap; // was IntHashMap int maxRange; public: EntityTracker(ServerLevel* level); void addEntity(std::shared_ptr e); void addEntity(std::shared_ptr e, int range, int updateInterval); void addEntity(std::shared_ptr e, int range, int updateInterval, bool trackDeltas); void removeEntity(std::shared_ptr e); void removePlayer(std::shared_ptr e); // 4J added void tick(); void broadcast(std::shared_ptr e, std::shared_ptr packet); void broadcastAndSend(std::shared_ptr e, std::shared_ptr packet); void clear(std::shared_ptr serverPlayer); void playerLoadedChunk(std::shared_ptr player, LevelChunk* chunk); void updateMaxRange(); // AP added for Vita // 4J-JEV: Added, needed access to tracked entity of a riders mount. std::shared_ptr getTracker(std::shared_ptr entity); };