local ____lualib = require("lualib_bundle")
local Map = ____lualib.Map
local __TS__New = ____lualib.__TS__New
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 ModCallback = ____isaac_2Dtypescript_2Ddefinitions.ModCallback
local ____decorators = require("decorators")
local Exported = ____decorators.Exported
local ____playerDataStructures = require("functions.playerDataStructures")
local mapGetPlayer = ____playerDataStructures.mapGetPlayer
local mapSetPlayer = ____playerDataStructures.mapSetPlayer
local ____playerHealth = require("functions.playerHealth")
local getPlayerHealth = ____playerHealth.getPlayerHealth
local ____players = require("functions.players")
local isEden = ____players.isEden
local ____stats = require("functions.stats")
local getPlayerStats = ____stats.getPlayerStats
local ____Feature = require("classes.private.Feature")
local Feature = ____Feature.Feature
local v = {run = {
    edenPlayerStats = __TS__New(Map),
    edenPlayerHealth = __TS__New(Map)
}}
____exports.EdenStartingStatsHealth = __TS__Class()
local EdenStartingStatsHealth = ____exports.EdenStartingStatsHealth
EdenStartingStatsHealth.name = "EdenStartingStatsHealth"
__TS__ClassExtends(EdenStartingStatsHealth, Feature)
function EdenStartingStatsHealth.prototype.____constructor(self)
    Feature.prototype.____constructor(self)
    self.v = v
    self.postPlayerInit = function(____, player)
        if not isEden(nil, player) then
            return
        end
        self:getEdenStats(player)
        self:getEdenHealth(player)
    end
    self.callbacksUsed = {{ModCallback.POST_PLAYER_INIT, self.postPlayerInit}}
end
function EdenStartingStatsHealth.prototype.getEdenStats(self, player)
    local existingStatMap = mapGetPlayer(nil, v.run.edenPlayerStats, player)
    if existingStatMap ~= nil then
        return
    end
    local playerStats = getPlayerStats(nil, player)
    mapSetPlayer(nil, v.run.edenPlayerStats, player, playerStats)
end
function EdenStartingStatsHealth.prototype.getEdenHealth(self, player)
    local existingHealthMap = mapGetPlayer(nil, v.run.edenPlayerHealth, player)
    if existingHealthMap ~= nil then
        return
    end
    local playerHealth = getPlayerHealth(nil, player)
    mapSetPlayer(nil, v.run.edenPlayerHealth, player, playerHealth)
end
function EdenStartingStatsHealth.prototype.getEdenStartingHealth(self, player)
    return mapGetPlayer(nil, v.run.edenPlayerHealth, player)
end
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingHealth", true)
function EdenStartingStatsHealth.prototype.getEdenStartingStat(self, player, playerStat)
    local playerStats = mapGetPlayer(nil, v.run.edenPlayerStats, player)
    if playerStats == nil then
        return nil
    end
    return playerStats[playerStat]
end
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingStat", true)
function EdenStartingStatsHealth.prototype.getEdenStartingStats(self, player)
    return mapGetPlayer(nil, v.run.edenPlayerStats, player)
end
__TS__DecorateLegacy({Exported}, EdenStartingStatsHealth.prototype, "getEdenStartingStats", true)
return ____exports
