#pragma once #include "BuildingActor.h" #include "PlayerState.h" enum class EFortResourceType : uint8_t { Wood = 0, Stone = 1, Metal = 2, Permanite = 3, None = 4, EFortResourceType_MAX = 5 }; class ABuildingSMActor : public ABuildingActor { public: bool IsPlayerPlaced() { static auto bPlayerPlacedOffset = GetOffset("bPlayerPlaced"); static auto bPlayerPlacedFieldMask = GetFieldMask(this->GetProperty("bPlayerPlaced")); return ReadBitfieldValue(bPlayerPlacedOffset, bPlayerPlacedFieldMask); } void SetPlayerPlaced(bool NewValue) { static auto bPlayerPlacedOffset = GetOffset("bPlayerPlaced"); static auto bPlayerPlacedFieldMask = GetFieldMask(this->GetProperty("bPlayerPlaced")); this->SetBitfieldValue(bPlayerPlacedOffset, bPlayerPlacedFieldMask, NewValue); } bool IsDestroyed() { return false; // FOR NOW } APlayerState*& GetEditingPlayer() { static auto EditingPlayerOffset = GetOffset("EditingPlayer"); return Get(EditingPlayerOffset); } int& GetCurrentBuildingLevel() { static auto CurrentBuildingLevelOffset = GetOffset("CurrentBuildingLevel"); return Get(CurrentBuildingLevelOffset); } EFortResourceType& GetResourceType() { static auto ResourceTypeOffset = GetOffset("ResourceType"); return Get(ResourceTypeOffset); } static UClass* StaticClass(); };