2013-07-29 07:13:03 -04:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "BlockEntity.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-11-14 10:05:55 -05:00
|
|
|
// tolua_begin
|
|
|
|
|
2014-07-17 16:50:58 -04:00
|
|
|
class cJukeboxEntity :
|
2013-07-29 07:13:03 -04:00
|
|
|
public cBlockEntity
|
|
|
|
{
|
2019-09-29 08:59:24 -04:00
|
|
|
// tolua_end
|
2017-06-15 09:32:33 -04:00
|
|
|
|
2019-09-29 08:59:24 -04:00
|
|
|
using super = cBlockEntity;
|
2013-11-14 09:37:09 -05:00
|
|
|
|
2019-09-29 08:59:24 -04:00
|
|
|
public: // tolua_export
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-11-27 16:42:08 -05:00
|
|
|
BLOCKENTITY_PROTODEF(cJukeboxEntity)
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2019-09-29 08:59:24 -04:00
|
|
|
cJukeboxEntity(BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta, Vector3i a_Pos, cWorld * a_World);
|
2017-05-20 02:16:28 -04:00
|
|
|
virtual ~cJukeboxEntity() override;
|
2013-07-29 07:13:03 -04:00
|
|
|
|
2013-11-14 10:05:55 -05:00
|
|
|
// tolua_begin
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2013-11-14 10:05:55 -05:00
|
|
|
int GetRecord(void);
|
|
|
|
void SetRecord(int a_Record);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-28 09:41:46 -05:00
|
|
|
/** 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);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-28 09:41:46 -05:00
|
|
|
/** 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);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-21 16:26:04 -05:00
|
|
|
/** Is in the Jukebox a Record? */
|
|
|
|
bool IsPlayingRecord(void);
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2014-02-21 16:26:04 -05:00
|
|
|
static bool IsRecordItem(int a_Item)
|
|
|
|
{
|
|
|
|
return ((a_Item >= E_ITEM_FIRST_DISC) && (a_Item <= E_ITEM_LAST_DISC));
|
|
|
|
}
|
2016-02-05 16:45:45 -05:00
|
|
|
|
2013-11-14 10:05:55 -05:00
|
|
|
// tolua_end
|
2014-02-12 17:06:59 -05:00
|
|
|
|
2017-06-15 09:32:33 -04:00
|
|
|
// cBlockEntity overrides:
|
|
|
|
virtual void CopyFrom(const cBlockEntity & a_Src) override;
|
2015-12-01 17:12:44 -05:00
|
|
|
virtual bool UsedBy(cPlayer * a_Player) override;
|
2014-07-22 18:36:13 -04:00
|
|
|
virtual void SendTo(cClientHandle &) override {}
|
2013-07-29 07:13:03 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
int m_Record;
|
2013-11-14 10:05:55 -05:00
|
|
|
} ; // tolua_end
|
2013-07-29 07:13:03 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|