// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "../Global.h"

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class ProjectileComponent {

#define AFTER_EXTRA

#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_PROJECTILECOMPONENT
public:
    class ProjectileComponent& operator=(class ProjectileComponent const &) = delete;
#endif

public:
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_PROJECTILECOMPONENT
#endif
    MCAPI ProjectileComponent();
    MCAPI ProjectileComponent(class ProjectileComponent &&);
    MCAPI ProjectileComponent(class ProjectileComponent const &);
    MCAPI void addAdditionalSaveData(class CompoundTag &);
    MCAPI class Vec3 getShooterAngle(class Actor &) const;
    MCAPI void handleMovementGravity(class Actor &);
    MCAPI void handleMovementHoming(class Actor &);
    MCAPI void hurt(class Actor &, class ActorDamageSource const &);
    MCAPI void initFromDefinition(class Actor &);
    MCAPI void lerpMotion(class Actor &, class Vec3 const &);
    MCAPI void onHit(class Actor &, class HitResult const &);
    MCAPI class ProjectileComponent & operator=(class ProjectileComponent &&);
    MCAPI void readAdditionalSaveData(class Actor &, class CompoundTag const &, class DataLoadHelper &);
    MCAPI void setHitResult(class HitResult);
    MCAPI void shoot(class Actor &, class Actor &);
    MCAPI void shoot(class Actor &, class Vec3 const &, float, float, class Vec3 const &, class Actor *);
    MCAPI ~ProjectileComponent();
    MCAPI static unsigned int const DELAY_ON_HIT;

//private:
    MCAPI void _handleLightningOnHit(class Actor &);
    MCAPI bool _isLoyaltyTrident(class Actor const &) const;
    MCAPI void _selectNextMoveDirection(class Actor &, enum ProjectileComponent::EAxis);

private:

};