aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/MinecartRideable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/MinecartRideable.cpp')
-rw-r--r--Minecraft.World/MinecartRideable.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/Minecraft.World/MinecartRideable.cpp b/Minecraft.World/MinecartRideable.cpp
new file mode 100644
index 00000000..a006a2bc
--- /dev/null
+++ b/Minecraft.World/MinecartRideable.cpp
@@ -0,0 +1,39 @@
+#include "stdafx.h"
+#include "net.minecraft.world.entity.h"
+#include "net.minecraft.world.entity.player.h"
+#include "net.minecraft.world.level.h"
+#include "MinecartRideable.h"
+
+
+MinecartRideable::MinecartRideable(Level *level) : Minecart(level)
+{
+
+ // 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
+ // the derived version of the function is called
+ this->defineSynchedData();
+}
+
+MinecartRideable::MinecartRideable(Level *level, double x, double y, double z) : Minecart(level, x, y, z)
+{
+
+ // 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
+ // the derived version of the function is called
+ this->defineSynchedData();
+}
+
+bool MinecartRideable::interact(shared_ptr<Player> player)
+{
+ if (rider.lock() != NULL && rider.lock()->instanceof(eTYPE_PLAYER) && rider.lock() != player) return true;
+ if (rider.lock() != NULL && rider.lock() != player) return false;
+ if (!level->isClientSide)
+ {
+ player->ride(shared_from_this());
+ }
+
+ return true;
+}
+
+int MinecartRideable::getType()
+{
+ return TYPE_RIDEABLE;
+} \ No newline at end of file