2013-02-18 08:48:50 -08:00
|
|
|
|
|
|
|
// Minecart.h
|
|
|
|
|
|
|
|
// Declares the cMinecart class representing a minecart in the world
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Entity.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class cMinecart :
|
|
|
|
public cEntity
|
|
|
|
{
|
|
|
|
typedef cEntity super;
|
|
|
|
|
|
|
|
public:
|
2013-02-27 02:02:06 -08:00
|
|
|
CLASS_PROTODEF(cMinecart);
|
|
|
|
|
2013-02-18 08:48:50 -08:00
|
|
|
enum ePayload
|
|
|
|
{
|
2013-02-27 02:02:06 -08:00
|
|
|
mpNone, // Empty minecart, ridable by player or mobs
|
|
|
|
mpChest, // Minecart-with-chest, can store a grid of 3*8 items
|
2013-02-18 08:48:50 -08:00
|
|
|
mpFurnace, // Minecart-with-furnace, can be powered
|
|
|
|
// TODO: Other 1.5 features: hopper, tnt, dispenser, spawner
|
|
|
|
} ;
|
2013-02-27 02:02:06 -08:00
|
|
|
|
2013-02-18 08:48:50 -08:00
|
|
|
cMinecart(ePayload a_Payload, double a_X, double a_Y, double a_Z);
|
|
|
|
|
|
|
|
// cEntity overrides:
|
|
|
|
virtual void Initialize(cWorld * a_World) override;
|
|
|
|
virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
|
|
|
|
virtual void Tick(float a_Dt, MTRand & a_TickRandom) override;
|
|
|
|
|
|
|
|
ePayload GetPayload(void) const { return m_Payload; }
|
|
|
|
|
|
|
|
protected:
|
|
|
|
ePayload m_Payload;
|
|
|
|
} ;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|