Files
minecraft-pe-0.6.1/src/world/level/ChunkPos.h
2026-03-02 22:04:18 +03:00

50 lines
1.0 KiB
C++
Executable File

#ifndef NET_MINECRAFT_WORLD_LEVEL__ChunkPos_H__
#define NET_MINECRAFT_WORLD_LEVEL__ChunkPos_H__
//package net.minecraft.world.level;
#include "../entity/Entity.h"
class ChunkPos {
public:
const int x, z;
ChunkPos()
: x(0),
z(0)
{}
ChunkPos(int x_, int z_)
: x(x_),
z(z_)
{}
static int hashCode(int x, int z) {
return (x < 0 ? 0x80000000 : 0) | ((x & 0x7fff) << 16) | (z < 0 ? 0x00008000 : 0) | (z & 0x7fff);
}
int hashCode() const {
return hashCode(x, z);
}
bool operator==(const ChunkPos& rhs) const {
return x == rhs.x && z == rhs.z;
}
bool operator<(const ChunkPos& rhs) const {
return hashCode() < rhs.hashCode();
}
float distanceToSqr(const Entity* e) const {
float xPos = (float) (x * 16 + 8);
float zPos = (float) (z * 16 + 8);
float xd = xPos - e->x;
float zd = zPos - e->z;
return xd * xd + zd * zd;
}
};
#endif /*NET_MINECRAFT_WORLD_LEVEL__ChunkPos_H__*/