4jcraft/Minecraft.World/Core/AbstractProjectileDispenseBehavior.h
2026-03-21 15:54:53 -05:00

19 lines
621 B
C++

#pragma once
#include "DefaultDispenseItemBehavior.h"
class Projectile;
class Position;
class AbstractProjectileDispenseBehavior : public DefaultDispenseItemBehavior {
public:
virtual std::shared_ptr<ItemInstance> execute(
BlockSource* source, std::shared_ptr<ItemInstance> dispensed,
eOUTCOME& outcome);
protected:
virtual void playSound(BlockSource* source, eOUTCOME outcome);
virtual float getUncertainty();
virtual float getPower();
virtual std::shared_ptr<Projectile> getProjectile(Level* world,
Position* position) = 0;
};