4jcraft/targets/minecraft/core/AbstractProjectileDispenseBehavior.h
2026-04-01 13:27:58 -05:00

22 lines
653 B
C++

#pragma once
#include <memory>
#include "DefaultDispenseItemBehavior.h"
class Projectile;
class Position;
class Level;
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;
};