aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/DoorInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/DoorInfo.cpp')
-rw-r--r--Minecraft.World/DoorInfo.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/Minecraft.World/DoorInfo.cpp b/Minecraft.World/DoorInfo.cpp
new file mode 100644
index 00000000..0c61b635
--- /dev/null
+++ b/Minecraft.World/DoorInfo.cpp
@@ -0,0 +1,69 @@
+#include "stdafx.h"
+
+#include "DoorInfo.h"
+
+DoorInfo::DoorInfo(int x, int y, int z, int insideDx, int insideDy, int timeStamp) : x(x), y(y), z(z), insideDx(insideDx), insideDz(insideDy)
+{
+ removed = false;
+ bookings = 0;
+
+ this->timeStamp = timeStamp;
+}
+
+int DoorInfo::distanceTo(int x2, int y2, int z2)
+{
+ return (int) sqrt((float)distanceToSqr(x2, y2, z2));
+}
+
+int DoorInfo::distanceToSqr(int x2, int y2, int z2)
+{
+ int dx = x2 - x;
+ int dy = y2 - y;
+ int dz = z2 - z;
+ return dx * dx + dy * dy + dz * dz;
+}
+
+int DoorInfo::distanceToInsideSqr(int x2, int y2, int z2)
+{
+ int dx = x2 - x - insideDx;
+ int dy = y2 - y;
+ int dz = z2 - z - insideDz;
+ return dx * dx + dy * dy + dz * dz;
+}
+
+int DoorInfo::getIndoorX()
+{
+ return x + insideDx;
+}
+
+int DoorInfo::getIndoorY()
+{
+ return y;
+}
+
+int DoorInfo::getIndoorZ()
+{
+ return z + insideDz;
+}
+
+bool DoorInfo::isInsideSide(int testX, int testZ)
+{
+ int vdx = testX - x;
+ int vdz = testZ - z;
+ return vdx * insideDx + vdz * insideDz >= 0;
+}
+
+void DoorInfo::resetBookingCount()
+{
+ bookings = 0;
+}
+
+void DoorInfo::incBookingCount()
+{
+ ++bookings;
+}
+
+int DoorInfo::getBookingsCount()
+{
+ return bookings;
+} \ No newline at end of file