1
0
cuberite-2a/src/BlockEntities/JukeboxEntity.h

70 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include "BlockEntity.h"
#include "../Entities/Player.h"
namespace Json
{
class Value;
}
// tolua_begin
class cJukeboxEntity :
public cBlockEntity
{
typedef cBlockEntity super;
public:
// tolua_end
cJukeboxEntity(int a_BlockX, int a_BlockY, int a_BlockZ, cWorld * a_World);
virtual ~cJukeboxEntity();
bool LoadFromJson(const Json::Value & a_Value);
virtual void SaveToJson(Json::Value & a_Value) override;
// tolua_begin
int GetRecord(void);
void SetRecord(int a_Record);
/** Plays the specified Record. Return false if a_Record isn't a playable Record (E_ITEM_XXX_DISC).
If there is a record already playing, ejects it first. */
2014-02-21 16:26:04 -05:00
bool PlayRecord(int a_Record);
/** Ejects the currently held record as a pickup. Return false when no record had been inserted. */
2014-02-21 16:26:04 -05:00
bool EjectRecord(void);
/** Is in the Jukebox a Record? */
bool IsPlayingRecord(void);
static bool IsRecordItem(int a_Item)
{
return ((a_Item >= E_ITEM_FIRST_DISC) && (a_Item <= E_ITEM_LAST_DISC));
}
// tolua_end
2014-02-12 17:06:59 -05:00
static const char * GetClassStatic(void) { return "cJukeboxEntity"; }
virtual void UsedBy(cPlayer * a_Player) override;
2013-12-21 10:58:21 -05:00
virtual void SendTo(cClientHandle &) override { };
private:
int m_Record;
} ; // tolua_end