local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local Set = ____lualib.Set
local __TS__New = ____lualib.__TS__New
local ____exports = {}
--- The IsaacScript standard library contains many optional features, such as the ability to create
-- custom pickups. All features are optional and are only initialized when needed. This class
-- contains elements to facilitate that.
-- 
-- Additionally, all custom callbacks extend from this class.
____exports.Feature = __TS__Class()
local Feature = ____exports.Feature
Feature.name = "Feature"
function Feature.prototype.____constructor(self)
    self.initialized = false
    self.numConsumers = 0
    if ____exports.Feature.constructedClassNames:has(self.constructor.name) then
        error(("Failed to instantiate feature class \"" .. self.constructor.name) .. "\" because it has already been instantiated once.")
    end
    ____exports.Feature.constructedClassNames:add(self.constructor.name)
end
Feature.constructedClassNames = __TS__New(Set)
return ____exports
