aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/AbstractProjectileDispenseBehavior.h
blob: 75053d6b78e8feed86d7f0fe79f724fc3eb497da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#pragma once
#include "DefaultDispenseItemBehavior.h"

class Projectile;
class Position;

class AbstractProjectileDispenseBehavior : public DefaultDispenseItemBehavior
{
public:
	virtual shared_ptr<ItemInstance> execute(BlockSource *source, shared_ptr<ItemInstance> dispensed, eOUTCOME &outcome);

protected:
	virtual void playSound(BlockSource *source, eOUTCOME outcome);
	virtual float getUncertainty();
	virtual float getPower();
	virtual shared_ptr<Projectile> getProjectile(Level *world, Position *position) = 0;
};