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

#define BEFORE_EXTRA

#undef BEFORE_EXTRA

class BaseCircuitComponent {

#define AFTER_EXTRA

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

public:
    /*0*/ virtual ~BaseCircuitComponent();
    /*1*/ virtual int getStrength() const;
    /*2*/ virtual int getDirection() const;
    /*3*/ virtual void setStrength(int);
    /*4*/ virtual void setDirection(unsigned char);
    /*5*/ virtual void __unk_vfn_5();
    /*6*/ virtual bool canConsumerPower();
    /*7*/ virtual bool canStopPower();
    /*8*/ virtual void setStopPower(bool);
    /*9*/ virtual unsigned __int64 getBaseType() const;
    /*10*/ virtual unsigned __int64 getInstanceType() const;
    /*11*/ virtual bool removeSource(class BlockPos const &, class BaseCircuitComponent const *);
    /*12*/ virtual bool addSource(class CircuitSceneGraph &, class CircuitTrackingInfo const &, int &, bool &);
    /*13*/ virtual bool allowConnection(class CircuitSceneGraph &, class CircuitTrackingInfo const &, bool &);
    /*14*/ virtual void checkLock(class CircuitSystem &, class BlockPos const &);
    /*15*/ virtual bool evaluate(class CircuitSystem &, class BlockPos const &);
    /*16*/ virtual void cacheValues(class CircuitSystem &, class BlockPos const &);
    /*17*/ virtual void updateDependencies(class CircuitSceneGraph &, class BlockPos const &);
    /*18*/ virtual void __unk_vfn_18();
    /*19*/ virtual bool isHalfPulse();
    /*20*/ virtual bool hasSource(class BaseCircuitComponent &);
    /*21*/ virtual void __unk_vfn_21();
    /*22*/ virtual bool isSecondaryPowered();
    /*23*/ virtual unsigned char getPoweroutDirection() const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_BASECIRCUITCOMPONENT
    MCVAPI bool allowIndirect();
    MCVAPI bool consumePowerAnyDirection();
    MCVAPI bool hasChildrenSource();
#endif

//protected:
    MCAPI bool trackPowerSource(class CircuitTrackingInfo const &, int, bool, int);
    MCAPI bool trackPowerSourceDuplicates(class CircuitTrackingInfo const &, int, bool);

protected:

};