local ____lualib = require("lualib_bundle")
local __TS__Class = ____lualib.__TS__Class
local __TS__ClassExtends = ____lualib.__TS__ClassExtends
local ____exports = {}
local ____ModCallbackCustom = require("enums.ModCallbackCustom")
local ModCallbackCustom = ____ModCallbackCustom.ModCallbackCustom
local ____playerIndex = require("functions.playerIndex")
local getPlayers = ____playerIndex.getPlayers
local isChildPlayer = ____playerIndex.isChildPlayer
local ____rooms = require("functions.rooms")
local inGenesisRoom = ____rooms.inGenesisRoom
local ____shouldFire = require("shouldFire")
local shouldFirePlayer = ____shouldFire.shouldFirePlayer
local ____CustomCallback = require("classes.private.CustomCallback")
local CustomCallback = ____CustomCallback.CustomCallback
____exports.PostPlayerInitFirst = __TS__Class()
local PostPlayerInitFirst = ____exports.PostPlayerInitFirst
PostPlayerInitFirst.name = "PostPlayerInitFirst"
__TS__ClassExtends(PostPlayerInitFirst, CustomCallback)
function PostPlayerInitFirst.prototype.____constructor(self)
    CustomCallback.prototype.____constructor(self)
    self.shouldFire = shouldFirePlayer
    self.postNewRoomReordered = function()
        if inGenesisRoom(nil) then
            for ____, player in ipairs(getPlayers(nil)) do
                self:fire(player)
            end
        end
    end
    self.postPlayerInitLate = function(____, player)
        if isChildPlayer(nil, player) then
            return
        end
        self:fire(player)
    end
    self.customCallbacksUsed = {{ModCallbackCustom.POST_NEW_ROOM_REORDERED, self.postNewRoomReordered}, {ModCallbackCustom.POST_PLAYER_INIT_LATE, self.postPlayerInitLate}}
end
return ____exports
