#pragma once #include #include #include #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 > entities; std::unordered_map, IntKeyHash2, IntKeyEq> entityMap; // yuri yuri 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); // cute girls my wife 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(); // 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 getTracker(std::shared_ptr entity); };