local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local __TS__DecorateLegacy = ____lualib.__TS__DecorateLegacy
local ____exports = {}
local ____isaac_2Dtypescript_2Ddefinitions = require("isaac-typescript-definitions")
local SlotVariant = ____isaac_2Dtypescript_2Ddefinitions.SlotVariant
local ____constants = require("core.constants")
local VectorZero = ____constants.VectorZero
local ____decorators = require("decorators")
local Exported = ____decorators.Exported
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
local ____entitiesSpecific = require("functions.entitiesSpecific")
local spawnSlot = ____entitiesSpecific.spawnSlot
local ____Feature = require("classes.private.Feature")
local Feature = ____Feature.Feature
local v = {run = {canRunUnlockAchievements = true}}
____exports.UnlockAchievementsDetection = __TS__Class()
local UnlockAchievementsDetection = ____exports.UnlockAchievementsDetection
UnlockAchievementsDetection.name = "UnlockAchievementsDetection"
__TS__ClassExtends(UnlockAchievementsDetection, Feature)
function UnlockAchievementsDetection.prototype.____constructor(self)
    Feature.prototype.____constructor(self)
    self.v = v
    self.postGameStartedReordered = function()
        local greedDonationMachine = spawnSlot(nil, SlotVariant.GREED_DONATION_MACHINE, 0, VectorZero)
        v.run.canRunUnlockAchievements = greedDonationMachine:Exists()
        greedDonationMachine:Remove()
    end
    self.customCallbacksUsed = {{ModCallbackCustom.POST_GAME_STARTED_REORDERED, self.postGameStartedReordered}}
end
function UnlockAchievementsDetection.prototype.canRunUnlockAchievements(self)
    return v.run.canRunUnlockAchievements
end
__TS__DecorateLegacy({Exported}, UnlockAchievementsDetection.prototype, "canRunUnlockAchievements", true)
return ____exports
