aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/Minecart.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/Minecart.h')
-rw-r--r--Minecraft.World/Minecart.h94
1 files changed, 51 insertions, 43 deletions
diff --git a/Minecraft.World/Minecart.h b/Minecraft.World/Minecart.h
index ea119bce..bd1a69e6 100644
--- a/Minecraft.World/Minecart.h
+++ b/Minecraft.World/Minecart.h
@@ -1,48 +1,49 @@
#pragma once
#include "Entity.h"
-#include "Container.h"
class DamageSource;
+class Tickable;
-class Minecart : public Entity, public Container
+class Minecart : public Entity
{
+ friend class MinecartRenderer;
public:
eINSTANCEOF GetType() { return eTYPE_MINECART; };
- static Entity *create(Level *level) { return new Minecart(level); }
public:
- static const int RIDEABLE = 0;
- static const int CHEST = 1;
- static const int FURNACE = 2;
-
-private:
- ItemInstanceArray *items; // Array
+ static const int TYPE_RIDEABLE = 0;
+ static const int TYPE_CHEST = 1;
+ static const int TYPE_FURNACE = 2;
+ static const int TYPE_TNT = 3;
+ static const int TYPE_SPAWNER = 4;
+ static const int TYPE_HOPPER = 5;
public:
static const int serialVersionUID = 0;
private:
- static const int DATA_ID_FUEL = 16;
static const int DATA_ID_HURT = 17;
static const int DATA_ID_HURTDIR = 18;
static const int DATA_ID_DAMAGE = 19;
+ static const int DATA_ID_DISPLAY_TILE = 20;
+ static const int DATA_ID_DISPLAY_OFFSET = 21;
+ static const int DATA_ID_CUSTOM_DISPLAY = 22;
- int fuel;
-
-private:
bool flipped;
+ Tickable *soundUpdater;
+ wstring name;
protected:
// 4J Added
bool m_bHasPushedCartThisTick;
public:
- int type;
- double xPush, zPush;
-
void _init();
Minecart(Level *level);
+ virtual ~Minecart();
+
+ static shared_ptr<Minecart> createMinecart(Level *level, double x, double y, double z, int type);
protected:
virtual bool makeStepSound();
@@ -53,10 +54,11 @@ public:
virtual AABB *getCollideBox();
virtual bool isPushable();
- Minecart(Level *level, double x, double y, double z, int type);
+ Minecart(Level *level, double x, double y, double z);
virtual double getRideHeight();
- virtual bool hurt(DamageSource *source, int damage);
+ virtual bool hurt(DamageSource *source, float damage);
+ virtual void destroy(DamageSource *source);
virtual void animateHurt();
virtual bool isPickable();
virtual void remove();
@@ -66,6 +68,12 @@ private:
public:
virtual void tick();
+ virtual void activateMinecart(int xt, int yt, int zt, bool state);
+
+protected:
+ virtual void comeOffTrack(double maxSpeed);
+ virtual void moveAlongTrack(int xt, int yt, int zt, double maxSpeed, double slideSpeed, int tile, int data);
+ virtual void applyNaturalSlowdown();
virtual Vec3 *getPosOffs(double x, double y, double z, double offs);
virtual Vec3 *getPos(double x, double y, double z);
@@ -75,17 +83,8 @@ protected:
public:
virtual float getShadowHeightOffs();
+ using Entity::push;
virtual void push(shared_ptr<Entity> e);
- virtual unsigned int getContainerSize();
- virtual shared_ptr<ItemInstance> getItem(unsigned int slot);
- virtual shared_ptr<ItemInstance> removeItem(unsigned int slot, int count);
- virtual shared_ptr<ItemInstance> removeItemNoUpdate(int slot);
- virtual void setItem(unsigned int slot, shared_ptr<ItemInstance> item);
- int getName();
- virtual int getMaxStackSize();
- virtual void setChanged();
- virtual bool interact(shared_ptr<Player> player);
- virtual float getLootContent();
private:
int lSteps;
@@ -95,20 +94,29 @@ private:
public:
virtual void lerpTo(double x, double y, double z, float yRot, float xRot, int steps);
virtual void lerpMotion(double xd, double yd, double zd);
- virtual bool stillValid(shared_ptr<Player> player);
-protected:
- bool hasFuel();
- void setHasFuel(bool fuel);
-
-public:
- virtual void startOpen();
- virtual void stopOpen();
-
- void setDamage(int damage);
- int getDamage();
- void setHurtTime(int hurtTime);
- int getHurtTime();
- void setHurtDir(int hurtDir);
- int getHurtDir();
+ virtual void setDamage(float damage);
+ virtual float getDamage();
+ virtual void setHurtTime(int hurtTime);
+ virtual int getHurtTime();
+ virtual void setHurtDir(int hurtDir);
+ virtual int getHurtDir();
+
+ virtual int getType() = 0;
+
+ virtual Tile *getDisplayTile();
+ virtual Tile *getDefaultDisplayTile();
+ virtual int getDisplayData();
+ virtual int getDefaultDisplayData();
+ virtual int getDisplayOffset();
+ virtual int getDefaultDisplayOffset();
+ virtual void setDisplayTile(int id);
+ virtual void setDisplayData(int data);
+ virtual void setDisplayOffset(int offset);
+ virtual bool hasCustomDisplay();
+ virtual void setCustomDisplay(bool value);
+ virtual void setCustomName(const wstring &name);
+ virtual wstring getAName();
+ virtual bool hasCustomName();
+ virtual wstring getCustomName();
};