Files
MinecraftConsoles/Minecraft.World/ThrownPotion.h
void_17 7074f35e4b shared_ptr -> std::shared_ptr
This is one of the first commits in a plan to remove all `using namespace std;` lines in the entire codebase as it is considered anti-pattern today.
2026-03-02 15:58:20 +07:00

43 lines
882 B
C++

#pragma once
#include "Throwable.h"
class HitResult;
class ThrownPotion : public Throwable
{
public:
eINSTANCEOF GetType() { return eTYPE_THROWNPOTION; }
static Entity *create(Level *level) { return new ThrownPotion(level); }
public:
static const double SPLASH_RANGE;
private:
static const double SPLASH_RANGE_SQ;
int potionValue;
void _init();
public:
ThrownPotion(Level *level);
ThrownPotion(Level *level, std::shared_ptr<Mob> mob, int potionValue);
ThrownPotion(Level *level, double x, double y, double z, int potionValue);
protected:
virtual float getGravity();
virtual float getThrowPower();
virtual float getThrowUpAngleOffset();
public:
void setPotionValue(int potionValue);
int getPotionValue();
protected:
virtual void onHit(HitResult *res);
public:
void readAdditionalSaveData(CompoundTag *tag);
void addAdditonalSaveData(CompoundTag *tag);
};