---@meta
-- this file contains lua language server definitions.
-- copy paste this file to somewhere your editor where lua LS can locate it.

---@enum CrateType
CrateType = {
    None = 0,
    Ammo = 1,
    Block = 2,
    Health = 3,
    COUNT = 4
}

---@enum VoteType
VoteType = {
    None = 0,
    VotekickCheat = 1,
    VotekickGrief = 2,
    MapVote = 3,
    ProxyInitiated = 4
}

---@enum AuthenticationLevel
AuthenticationLevel = {
    Default = 0,
    Moderator = 1,
    Administrator = 2,
    Root = 3
}

--- Projectile means any hitscan weapon that shoots bullet such as minigun or default turret.
---@enum DamageType
DamageType = {
    Unspecified = 0,
    SystemDamage = 1,
    Projectile = 2,
    Melee = 3,
    Explosion = 4,
    Impact = 5,
    FallDamage = 6,
    Water = 7,
    TentFall = 8
}

---@enum EntityType
EntityType = {
    None = 0,
    player = 1,
    grenade_projectile = 2,
    mortar_projectile = 3,
    block_projectile = 4,
    drill_projectile = 5,
    trap = 6,
    flame = 7,
    turret = 8,
    mortar = 9,
    tombstone = 10,
    flag = 11,
    tent = 12,
    crate = 13,
    deployed_crate = 14
}

---@enum EntityTypeFlags
EntityTypeFlags = {
    player = 1,
    grenade_projectile = 2,
    mortar_projectile = 4,
    block_projectile = 8,
    drill_projectile = 16,
    trap = 32,
    flame = 64,
    turret = 128,
    mortar = 256,
    tombstone = 512,
    flag = 1024,
    tent = 2048,
    crate = 4096,
    deployed_crate = 8192
}

---@enum OwnerType
OwnerType = {
    Unset = 0,
    Player = 1,
    Server = 2,
    Bot = 3
}

---@enum PlayerTeam
PlayerTeam = {
    Unset = 0,
    Green = 1,
    Blue = 2
}

---@enum SystemKillReason
SystemKillReason = {
    Default = 0,
    PlayerRedeploy = 1,
    SwitchClass = 2,
    SwitchTeam = 3,
    InsideSolidVoxels = 4,
    TentFall = 5
}

---@enum KillfeedEventType
KillfeedEventType = {
    Default = 0,
    PlayerRedeploy = 1,
    SwitchClass = 2,
    SwitchTeam = 3,
    InsideSolidVoxel = 4,
    TentFall = 5,
    Suicided = 6
}

---@enum VoxelFlags
VoxelFlags = {
    None = 0,
    Solid = 1,
    PlayerPlaced = 2,
    DamagedBit0 = 4,
    DamagedBit1 = 8,
    NotBreakable = 16,
    Occupied = 32
}