mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 15:33:37 +00:00
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
|
|
#pragma once
|
|
|
|
#include "Entity.h"
|
|
|
|
class HangingEntity : public Entity {
|
|
public:
|
|
eINSTANCEOF GetType() { return eTYPE_HANGING_ENTITY; }
|
|
|
|
private:
|
|
void _init(Level* level);
|
|
|
|
int checkInterval;
|
|
// eINSTANCEOF eType;
|
|
|
|
protected:
|
|
virtual void defineSynchedData() {};
|
|
|
|
public:
|
|
int dir;
|
|
int xTile, yTile, zTile;
|
|
|
|
HangingEntity(Level* level);
|
|
HangingEntity(Level* level, int xTile, int yTile, int zTile, int dir);
|
|
void setDir(int dir);
|
|
virtual bool survives();
|
|
|
|
private:
|
|
float offs(int w);
|
|
|
|
public:
|
|
virtual void tick();
|
|
virtual bool isPickable();
|
|
virtual bool skipAttackInteraction(std::shared_ptr<Entity> source);
|
|
virtual bool hurt(DamageSource* source, float damage);
|
|
virtual void move(
|
|
double xa, double ya, double za,
|
|
bool noEntityCubes = false); // 4J - added noEntityCubes parameter
|
|
virtual void push(double xa, double ya, double za);
|
|
virtual void addAdditonalSaveData(CompoundTag* tag);
|
|
virtual void readAdditionalSaveData(CompoundTag* tag);
|
|
|
|
virtual int getWidth() = 0;
|
|
virtual int getHeight() = 0;
|
|
virtual void dropItem(std::shared_ptr<Entity> causedBy) = 0;
|
|
|
|
protected:
|
|
virtual bool repositionEntityAfterLoad();
|
|
};
|