LiteLoaderBDS-1.16.40/LiteLoader/include/llapi/mc/BlockLegacy.hpp
2023-03-05 00:33:15 -08:00

413 lines
22 KiB
C++

// This Header is auto generated by BDSLiteLoader Toolchain
#pragma once
#define AUTO_GENERATED
#include "llapi/Global.h"
#define BEFORE_EXTRA
// Add include headers & pre-declares
#include "SemVersion.hpp"
#include "Types.hpp"
#include "Brightness.hpp"
#include "LootComponent.hpp"
#include "ItemStateInstance.hpp"
#include "HashedString.hpp"
class Block;
class BlockSource;
class ItemStack;
class Material;
enum BlockRenderLayer : int
{
RENDERLAYER_DOUBLE_SIDED = 0x0,
RENDERLAYER_BLEND_WATER = 0x1,
RENDERLAYER_ALPHATEST_MICRO_BLOCK = 0x2,
RENDERLAYER_RAY_TRACED_WATER = 0x3,
RENDERLAYER_BLEND = 0x4,
RENDERLAYER_OPAQUE = 0x5,
RENDERLAYER_OPTIONAL_ALPHATEST = 0x6,
RENDERLAYER_ALPHATEST = 0x7,
RENDERLAYER_SEASONS_OPAQUE = 0x8,
RENDERLAYER_SEASONS_OPTIONAL_ALPHATEST = 0x9,
RENDERLAYER_ALPHATEST_SINGLE_SIDE = 0xA,
RENDERLAYER_ENDPORTAL = 0xB,
RENDERLAYER_BARRIER = 0xC,
RENDERLAYER_STRUCTURE_VOID = 0xD,
_RENDERLAYER_COUNT = 0xE,
};
enum BlockProperty : __int64
{
None_43 = 0x0,
Stair = 0x1,
HalfSlab = 0x2,
Hopper_0 = 0x4,
TopSnow_0 = 0x8,
FenceGate = 0x10,
Leaf = 0x20,
ThinConnects2D = 0x40,
Connects2D = 0x80,
Carpet_0 = 0x100,
Button_0 = 0x200,
Door = 0x400,
Portal_3 = 0x800,
Heavy = 0x1000,
Snow_1 = 0x2000,
Trap = 0x4000,
Sign_0 = 0x8000,
Walkable = 0x10000,
PressurePlate = 0x20000,
PistonBlockGrabber = 0x40000,
TopSolidBlocking = 0x80000,
SolidBlocking = 0x100000,
CubeShaped = 0x200000,
Power_NO = 0x400000,
Power_BlockDown = 0x800000,
Immovable = 0x1000000,
BreakOnPush = 0x2000000,
Piston_1 = 0x4000000,
InfiniBurn = 0x8000000,
RequiresWorldBuilder = 0x10000000,
CausesDamage = 0x20000000,
BreaksWhenFallenOnByHeavy = 0x40000000,
OnlyPistonPush = 0x80000000,
Liquid_0 = 0x100000000,
CanBeBuiltOver = 0x200000000,
SnowRecoverable = 0x400000000,
Scaffolding = 0x800000000,
CanSupportCenterHangingBlock = 0x1000000000,
BreaksWhenHitByArrow = 0x2000000000,
Unwalkable = 0x4000000000,
Impenetrable = 0x8000000000,
Hollow = 0x10000000000,
OperatorBlock = 0x20000000000,
SupportedByFlowerPot = 0x40000000000,
PreventsJumping = 0x80000000000,
ContainsHoney = 0x100000000000,
Slime_2 = 0x200000000000,
};
class BaseGameVersion
{
SemVersion mSemVersion;
};
#undef BEFORE_EXTRA
class BlockLegacy {
#define AFTER_EXTRA
// Add new members to class
public:
// std::string mDescriptionId;
// std::string mRawNameId;
// HashedString mNamespace;
// std::string mFullName;
// bool mFancy;
// BlockRenderLayer mRenderLayer;
// bool mRenderLayerCanRenderAsOpaque;
// BlockProperty mProperties;
// BlockActorType mBlockEntityType;
// bool mAnimatedTexture;
// float mBrightnessGamma;
// float mThickness;
// bool mCanSlide;
// bool mCanInstatick;
// bool mIsInteraction;
// float mGravity;
// const Material *mMaterial;
// Color mMapColor;
// float mFriction;
// bool mHeavy;
// float mParticleQuantityScalar;
// float mDestroySpeed;
// float mExplosionResistance;
// CreativeItemCategory mCreativeCategory;
// bool mAllowsRunes;
// bool mCanBeBrokenFromFalling;
// bool mSolid;
// bool mPushesOutItems;
// bool mIgnoreBlockForInsideCubeRenderer;
// bool mIsTrapdoor;
// bool mIsDoor;
// float mTranslucency;
// Brightness mLightBlock;
// Brightness mLightEmission;
// bool mShouldRandomTick;
// bool mShouldRandomTickExtraLayer;
// int mFlameOdds;
// int mBurnOdds;
// bool mIsMobPiece;
// bool mCanBeExtraBlock;
// bool mCanPropagateBrightness;
// unsigned int mID;
// BaseGameVersion mMinRequiredBaseGameVersion;
// bool mExperimental;
// bool mIsVanilla;
// std::unique_ptr<LootComponent> mLootComponent;
// AABB mVisualShape;
// unsigned int mBitsUsed;
// unsigned int mTotalBitsUsed;
// std::array<class ItemStateInstance,3360> mStates;
// std::vector<std::unique_ptr<Block>> mBlockPermutations;
// const Block *mDefaultState;
// std::mutex mLegacyDataLookupTableMutex;
// std::vector<long> mLegacyDataLookupTable;
//
//
// struct NameInfo;
LIAPI Block* toBlock(unsigned short tileData);
LIAPI string getTypeName();
LIAPI bool applyBoneMeal(BlockSource*, BlockPos*);
LIAPI ItemStack* getBlockDrops();
inline int getBlockItemId() const{
//ItemStackBase::init(ItemStackBase *this, const struct BlockLegacy *a2, int a3) Line14
unsigned int id = dAccess<int>(this,ll::offset::BLOCKLEGAC_getBlockItemId);//mID
// unsigned int id = this->mID;
if(id < 256u)
return id;
else
return 255-id;
};
inline bool hasBlockEntity() const{
// LevelChunk::_removeCallbacks Line28
return getBlockEntityType() == BlockActorType::UnKnow;
}
inline enum BlockActorType getBlockEntityType() const{
// LevelChunk::_removeCallbacks Line28
return dAccess<BlockActorType>(this,ll::offset::BLOCKLEGAC_getBlockEntityType);
//return this->mBlockEntityType;
};
#undef AFTER_EXTRA
#ifndef DISABLE_CONSTRUCTOR_PREVENTION_BLOCKLEGACY
public:
class BlockLegacy& operator=(class BlockLegacy const &) = delete;
BlockLegacy(class BlockLegacy const &) = delete;
BlockLegacy() = delete;
#endif
public:
/*0*/ virtual ~BlockLegacy();
/*1*/ virtual void tick(class BlockSource &, class BlockPos const &, class Random &) const;
/*2*/ virtual class Block const & getStateFromLegacyData(unsigned short) const;
/*3*/ virtual class std::shared_ptr<class BlockActor> newBlockEntity(class BlockPos const &, class Block const &) const;
/*4*/ virtual class Block const * getNextBlockPermutation(class Block const &) const;
/*5*/ virtual bool getCollisionShape(class AABB &, class Block const &, class BlockSource &, class BlockPos const &, class Actor *) const;
/*6*/ virtual bool isObstructingChests(class BlockSource &, class BlockPos const &) const;
/*7*/ virtual class Vec3 randomlyModifyPosition(class BlockPos const &, int &) const;
/*8*/ virtual class Vec3 randomlyModifyPosition(class BlockPos const &) const;
/*9*/ virtual void addAABBs(class Block const &, class BlockSource &, class BlockPos const &, class AABB const *, std::vector<class AABB> &) const;
/*10*/ virtual class AABB const & getAABB(class BlockSource &, class BlockPos const &, class Block const &, class AABB &, bool) const;
/*11*/ virtual bool addCollisionShapes(class Block const &, class BlockSource &, class BlockPos const &, class AABB const *, std::vector<class AABB> &, class Actor *) const;
/*12*/ virtual class AABB const & getOutline(class BlockSource &, class BlockPos const &, class AABB &) const;
/*13*/ virtual bool getLiquidClipVolume(class BlockSource &, class BlockPos const &, class AABB &) const;
/*14*/ virtual void onProjectileHit(class BlockSource &, class BlockPos const &, class Actor const &) const;
/*15*/ virtual bool liquidCanFlowIntoFromDirection(unsigned char, class std::function<class Block const & (class BlockPos const &)> const &, class BlockPos const &) const;
/*16*/ virtual struct Brightness getLightEmission(class Block const &) const;
/*17*/ virtual bool shouldRandomTick() const;
/*18*/ virtual void __unk_vfn_18();
/*19*/ virtual bool isStrippable(class Block const &) const;
/*20*/ virtual class Block const & getStrippedBlock(class Block const &) const;
/*21*/ virtual bool canProvideSupport(class Block const &, unsigned char, enum BlockSupportType) const;
/*22*/ virtual bool canConnect(class Block const &, unsigned char, class Block const &) const;
/*23*/ virtual void getConnectedDirections(class Block const &, class BlockPos const &, class BlockSource &, bool &, bool &, bool &, bool &) const;
/*24*/ virtual void __unk_vfn_24();
/*25*/ virtual void __unk_vfn_25();
/*26*/ virtual void __unk_vfn_26();
/*27*/ virtual void __unk_vfn_27();
/*28*/ virtual void __unk_vfn_28();
/*29*/ virtual bool isWaterBlocking() const;
/*30*/ virtual void __unk_vfn_30();
/*31*/ virtual void __unk_vfn_31();
/*32*/ virtual void __unk_vfn_32();
/*33*/ virtual void __unk_vfn_33();
/*34*/ virtual void __unk_vfn_34();
/*35*/ virtual void __unk_vfn_35();
/*36*/ virtual void __unk_vfn_36();
/*37*/ virtual bool isDoubleSlabBlock() const;
/*38*/ virtual void __unk_vfn_38();
/*39*/ virtual void __unk_vfn_39();
/*40*/ virtual void __unk_vfn_40();
/*41*/ virtual bool canHurtAndBreakItem() const;
/*42*/ virtual void __unk_vfn_42();
/*43*/ virtual void __unk_vfn_43();
/*44*/ virtual bool isValidAuxValue(int) const;
/*45*/ virtual bool canFillAtPos(class BlockSource &, class BlockPos const &, class Block const &) const;
/*46*/ virtual class Block const & sanitizeFillBlock(class BlockSource &, class BlockPos const &, class Block const &) const;
/*47*/ virtual void onFillBlock(class BlockSource &, class BlockPos const &, class Block const &) const;
/*48*/ virtual int getDirectSignal(class BlockSource &, class BlockPos const &, int) const;
/*49*/ virtual void __unk_vfn_49();
/*50*/ virtual bool canContainLiquid() const;
/*51*/ virtual bool shouldConnectToRedstone(class BlockSource &, class BlockPos const &, int) const;
/*52*/ virtual void __unk_vfn_52();
/*53*/ virtual bool canBeUsedInCommands(bool, class BaseGameVersion const &) const;
/*54*/ virtual float getThickness() const;
/*55*/ virtual float getFlexibility(class BlockSource &, class BlockPos const &) const;
/*56*/ virtual bool checkIsPathable(class Actor &, class BlockPos const &, class BlockPos const &) const;
/*57*/ virtual bool shouldDispense(class BlockSource &, class Container &) const;
/*58*/ virtual bool dispense(class BlockSource &, class Container &, int, class Vec3 const &, unsigned char) const;
/*59*/ virtual void onPlace(class BlockSource &, class BlockPos const &) const;
/*60*/ virtual void onRemove(class BlockSource &, class BlockPos const &) const;
/*61*/ virtual void onExploded(class BlockSource &, class BlockPos const &, class Actor *) const;
/*62*/ virtual void onStepOn(class Actor &, class BlockPos const &) const;
/*63*/ virtual void onFallOn(class BlockSource &, class BlockPos const &, class Actor &, float) const;
/*64*/ virtual void transformOnFall(class BlockSource &, class BlockPos const &, class Actor *, float) const;
/*65*/ virtual void onRedstoneUpdate(class BlockSource &, class BlockPos const &, int, bool) const;
/*66*/ virtual void onMove(class BlockSource &, class BlockPos const &, class BlockPos const &) const;
/*67*/ virtual void __unk_vfn_67();
/*68*/ virtual void movedByPiston(class BlockSource &, class BlockPos const &) const;
/*69*/ virtual void onStructureBlockPlace(class BlockSource &, class BlockPos const &) const;
/*70*/ virtual void setupRedstoneComponent(class BlockSource &, class BlockPos const &) const;
/*71*/ virtual enum BlockProperty getRedstoneProperty(class BlockSource &, class BlockPos const &) const;
/*72*/ virtual void updateEntityAfterFallOn(class BlockSource &, class BlockPos const &, class Actor &) const;
/*73*/ virtual void __unk_vfn_73();
/*74*/ virtual bool ignoreEntitiesOnPistonMove(class Block const &) const;
/*75*/ virtual bool onFertilized(class BlockSource &, class BlockPos const &, class Actor *, enum FertilizerType) const;
/*76*/ virtual bool mayConsumeFertilizer(class BlockSource &) const;
/*77*/ virtual bool canBeFertilized(class BlockSource &, class BlockPos const &, class Block const &) const;
/*78*/ virtual bool mayPick() const;
/*79*/ virtual bool mayPick(class BlockSource &, class Block const &, bool) const;
/*80*/ virtual bool mayPlace(class BlockSource &, class BlockPos const &, unsigned char) const;
/*81*/ virtual bool mayPlace(class BlockSource &, class BlockPos const &) const;
/*82*/ virtual bool mayPlaceOn(class BlockSource &, class BlockPos const &) const;
/*83*/ virtual bool tryToPlace(class BlockSource &, class BlockPos const &, class Block const &, struct ActorBlockSyncMessage const *) const;
/*84*/ virtual bool breaksFallingBlocks(class Block const &) const;
/*85*/ virtual void destroy(class BlockSource &, class BlockPos const &, class Block const &, class Actor *) const;
/*86*/ virtual bool playerWillDestroy(class Player &, class BlockPos const &, class Block const &) const;
/*87*/ virtual void __unk_vfn_87();
/*88*/ virtual void neighborChanged(class BlockSource &, class BlockPos const &, class BlockPos const &) const;
/*89*/ virtual bool getSecondPart(class BlockSource &, class BlockPos const &, class BlockPos &) const;
/*90*/ virtual int getResourceCount(class Random &, class Block const &, int, bool) const;
/*91*/ virtual class ItemInstance getResourceItem(class Random &, class Block const &, int) const;
/*92*/ virtual class ItemInstance asItemInstance(class BlockSource &, class BlockPos const &, class Block const &) const;
/*93*/ virtual void spawnResources(class BlockSource &, class BlockPos const &, class Block const &, std::vector<class Item const *> *, float, int, bool) const;
/*94*/ virtual void trySpawnResourcesOnExplosion(class BlockSource &, class BlockPos const &, class Block const &, std::vector<class Item const *> *, float, int, bool) const;
/*95*/ virtual void __unk_vfn_95();
/*96*/ virtual float getExplosionResistance(class Actor *) const;
/*97*/ virtual class HitResult clip(class BlockSource &, class BlockPos const &, class Vec3 const &, class Vec3 const &, bool) const;
/*98*/ virtual bool use(class Player &, class BlockPos const &) const;
/*99*/ virtual class Block const & getPlacementBlock(class Actor &, class BlockPos const &, unsigned char, class Vec3 const &, int) const;
/*100*/ virtual int calcVariant(class BlockSource &, class BlockPos const &) const;
/*101*/ virtual bool isAttachedTo(class BlockSource &, class BlockPos const &, class BlockPos &) const;
/*102*/ virtual bool attack(class Player *, class BlockPos const &) const;
/*103*/ virtual void handleEntityInside(class BlockSource &, class BlockPos const &, class Actor *, class Vec3 &) const;
/*104*/ virtual void entityInside(class BlockSource &, class BlockPos const &, class Actor &) const;
/*105*/ virtual void playerDestroy(class Player &, class BlockPos const &, class Block const &) const;
/*106*/ virtual bool canSurvive(class BlockSource &, class BlockPos const &) const;
/*107*/ virtual int getExperienceDrop(class Random &) const;
/*108*/ virtual bool canBeBuiltOver(class BlockSource &, class BlockPos const &) const;
/*109*/ virtual void __unk_vfn_109();
/*110*/ virtual void executeEvent(class BlockSource &, class BlockPos const &, class Block const &, std::string const &, class Actor &) const;
/*111*/ virtual bool hasTag(class BlockSource &, class BlockPos const &, class Block const &, std::string const &) const;
/*112*/ virtual class MobSpawnerData const * getMobToSpawn(class SpawnConditions const &, class BlockSource &) const;
/*113*/ virtual class Color getMapColor(class BlockSource &, class BlockPos const &) const;
/*114*/ virtual class Color getMapColor() const;
/*115*/ virtual bool shouldStopFalling(class Actor &) const;
/*116*/ virtual void __unk_vfn_116();
/*117*/ virtual float calcGroundFriction(class Mob &, class BlockPos const &) const;
/*118*/ virtual void __unk_vfn_118();
/*119*/ virtual void __unk_vfn_119();
/*120*/ virtual int getComparatorSignal(class BlockSource &, class BlockPos const &, class Block const &, unsigned char) const;
/*121*/ virtual bool canSlide(class BlockSource &, class BlockPos const &) const;
/*122*/ virtual bool canSpawnAt(class BlockSource const &, class BlockPos const &) const;
/*123*/ virtual void notifySpawnedAt(class BlockSource &, class BlockPos const &) const;
/*124*/ virtual int getIconYOffset() const;
/*125*/ virtual enum BlockRenderLayer getRenderLayer() const;
/*126*/ virtual enum BlockRenderLayer getRenderLayer(class Block const &, class BlockSource &, class BlockPos const &) const;
/*127*/ virtual std::string buildDescriptionId(class Block const &) const;
/*128*/ virtual bool isAuxValueRelevantForPicking() const;
/*129*/ virtual int getColor(class Block const &) const;
/*130*/ virtual int getColor(class BlockSource &, class BlockPos const &, class Block const &) const;
/*131*/ virtual int getColorAtPos(class BlockSource &, class BlockPos const &) const;
/*132*/ virtual int getColorForParticle(class BlockSource &, class BlockPos const &, class Block const &) const;
/*133*/ virtual bool isSeasonTinted(class Block const &, class BlockSource &, class BlockPos const &) const;
/*134*/ virtual void onGraphicsModeChanged(bool, bool, bool);
/*135*/ virtual int getExtraRenderLayers() const;
/*136*/ virtual float getShadeBrightness() const;
/*137*/ virtual class AABB const & getVisualShapeInWorld(class Block const &, class BlockSource &, class BlockPos const &, class AABB &, bool) const;
/*138*/ virtual class AABB const & getVisualShape(class Block const &, class AABB &, bool) const;
/*139*/ virtual class AABB const & getUIShape(class Block const &, class AABB &) const;
/*140*/ virtual int telemetryVariant(class BlockSource &, class BlockPos const &) const;
/*141*/ virtual int getVariant(class Block const &) const;
/*142*/ virtual void __unk_vfn_142();
/*143*/ virtual class Block const & getRenderBlock() const;
/*144*/ virtual unsigned char getMappedFace(unsigned char, class Block const &) const;
/*145*/ virtual enum Flip getFaceFlip(unsigned char, class Block const &) const;
/*146*/ virtual void animateTick(class BlockSource &, class BlockPos const &, class Random &) const;
/*147*/ virtual class BlockLegacy & init();
/*148*/ virtual class BlockLegacy & setLightBlock(struct Brightness);
/*149*/ virtual class BlockLegacy & setLightEmission(float);
/*150*/ virtual class BlockLegacy & setExplodeable(float);
/*151*/ virtual class BlockLegacy & setDestroyTime(float);
/*152*/ virtual class BlockLegacy & setFriction(float);
/*153*/ virtual class BlockLegacy & addProperty(enum BlockProperty);
/*154*/ virtual class BlockLegacy & addState(class ItemState const &);
/*155*/ virtual class BlockLegacy & addState(class ItemState const &, unsigned __int64);
/*156*/ virtual class BlockLegacy & setAllowsRunes(bool);
/*157*/ virtual class BlockLegacy & setMapColor(class Color const &);
/*158*/ virtual void __unk_vfn_158();
/*159*/ virtual class ItemInstance getSilkTouchItemInstance(class Block const &) const;
/*160*/ virtual void setVisualShape(class AABB const &);
/*161*/ virtual void setVisualShape(class Vec3 const &, class Vec3 const &);
/*162*/ virtual class Block const * tryLegacyUpgrade(unsigned short) const;
/*163*/ virtual bool dealsContactDamage(class Actor const &, class Block const &, bool) const;
/*164*/ virtual class Color getDustColor(class Block const &) const;
#ifdef ENABLE_VIRTUAL_FAKESYMBOL_BLOCKLEGACY
MCVAPI bool canBeOriginalSurface() const;
MCVAPI bool canBeSilkTouched() const;
MCVAPI bool canHaveExtraData() const;
MCVAPI bool canSpawnOn() const;
MCVAPI bool detachesOnPistonMove(class BlockSource &, class BlockPos const &) const;
MCVAPI bool getIgnoresDestroyPermissions(class Actor &, class BlockPos const &) const;
MCVAPI void handleRain(class BlockSource &, class BlockPos const &, float) const;
MCVAPI bool hasComparatorSignal() const;
MCVAPI bool hasVariableLighting() const;
MCVAPI bool isBounceBlock() const;
MCVAPI bool isButtonBlock() const;
MCVAPI bool isContainerBlock() const;
MCVAPI bool isCraftingBlock() const;
MCVAPI bool isCropBlock() const;
MCVAPI bool isDoorBlock() const;
MCVAPI bool isFenceBlock() const;
MCVAPI bool isFenceGateBlock() const;
MCVAPI bool isHurtableBlock() const;
MCVAPI bool isInteractiveBlock() const;
MCVAPI bool isRailBlock() const;
MCVAPI bool isSignalSource() const;
MCVAPI bool isSlabBlock() const;
MCVAPI bool isStairBlock() const;
MCVAPI bool isStemBlock() const;
MCVAPI bool isThinFenceBlock() const;
MCVAPI bool isWallBlock() const;
MCVAPI bool pushesUpFallingBlocks() const;
MCVAPI bool spawnBurnResources(class BlockSource &, float, float, float) const;
MCVAPI void triggerEvent(class BlockSource &, class BlockPos const &, int, int) const;
MCVAPI bool waterSpreadCausesSpawn() const;
#endif
MCAPI BlockLegacy(std::string const &, int, class Material const &);
MCAPI bool addAABB(class AABB const &, class AABB const *, std::vector<class AABB> &) const;
MCAPI class BlockLegacy & addBlockProperty(enum BlockProperty);
MCAPI std::string buildDescriptionName(class Block const &) const;
MCAPI class HitResult clip(class BlockSource &, class BlockPos const &, class Vec3 const &, class Vec3 const &, bool, class AABB const &) const;
MCAPI void createBlockPermutations(unsigned int);
MCAPI class WeakPtr<class BlockLegacy> createWeakPtr();
MCAPI void forEachBlockPermutation(class std::function<bool (class Block const &)>) const;
MCAPI void forEachItemStateInstance(class std::function<bool (class ItemStateInstance const &)>) const;
MCAPI void getDebugText(std::vector<std::string> &, class BlockPos const &) const;
MCAPI class Block const & getDefaultState() const;
MCAPI bool operator==(class BlockLegacy const &) const;
MCAPI class ItemActor * popResource(class BlockSource &, class BlockPos const &, class ItemInstance const &) const;
MCAPI class BlockLegacy & setCanBeExtraBlock(bool);
MCAPI class BlockLegacy & setCategory(enum CreativeItemCategory);
MCAPI class BlockLegacy & setMinRequiredBaseGameVersion(class BaseGameVersion const &);
MCAPI class BlockLegacy & setNameId(std::string const &);
MCAPI void spawnResources(class BlockSource &, class BlockPos const &, std::vector<class Item const *> *, float, int, bool) const;
MCAPI class Block const * tryGetStateFromLegacyData(unsigned short) const;
MCAPI static std::string const BLOCK_DESCRIPTION_PREFIX;
MCAPI static float const SIZE_OFFSET;
MCAPI static unsigned char getPlacementFacingAll(class Actor &, class BlockPos const &, float);
MCAPI static unsigned char getPlacementFacingAllExceptAxisY(class Actor &, class BlockPos const &, float);
};