4jcraft/targets/minecraft/world/entity/projectile/FireworksRocketEntity.h

48 lines
1.2 KiB
C++

#pragma once
#include <stdint.h>
#include <memory>
#include "java/Class.h"
#include "minecraft/world/entity/Entity.h"
class ItemInstance;
class Level;
class FireworksRocketEntity : public Entity {
public:
eINSTANCEOF GetType() { return eTYPE_FIREWORKS_ROCKET; }
static Entity* create(Level* level) {
return new FireworksRocketEntity(level);
}
private:
static const int DATA_ID_FIREWORKS_ITEM = 8;
int life;
int lifetime;
// constructor needed for level loader
public:
FireworksRocketEntity(Level* level);
protected:
virtual void defineSynchedData();
public:
virtual bool shouldRenderAtSqrDistance(double distance);
FireworksRocketEntity(Level* level, double x, double y, double z,
std::shared_ptr<ItemInstance> sourceItem);
virtual void lerpMotion(double xd, double yd, double zd);
virtual void tick();
virtual void handleEntityEvent(uint8_t eventId);
virtual void addAdditonalSaveData(CompoundTag* tag);
virtual void readAdditionalSaveData(CompoundTag* tag);
virtual float getShadowHeightOffs();
virtual float getBrightness(float a);
virtual int getLightColor(float a);
virtual bool isAttackable();
};