steamid.v/steamid/methods.v

45 lines
1 KiB
Coq
Raw Normal View History

2022-08-28 23:45:31 +02:00
module steamid
pub fn to_steamid32(s string) SteamID32 {
if s.contains("STEAM_") && s.count(":") == 2 {
mut s_parts := s.split(":")
x := s_parts[0].all_after("_").i8()
y := s_parts[1].i8()
z := s_parts[2].int()
return SteamID32{ x, y, z }
}
return SteamID32 { 1, 1, 1 }
}
// Methods for SteamID32 struct
// Convert your SteamID32 to SteamID3
pub fn (s SteamID32) to_steamid3() SteamID3 {
mut letter := 'I'
if s.id == 1 {
letter = 'U'
} else if s.id == 7 {
letter = 'g'
} else {
letter = 'I'
}
w := s.account_number * 2 + s.id
return SteamID3 { letter, 1, w }
}
// Convert your SteamID32 to a string
pub fn (s SteamID32) str() string {
return "STEAM_" + s.universe.str() + ":" + s.id.str() + ":" + s.account_number.str()
}
// Convert your SteamID32 to a SteamID64
pub fn (s SteamID32) to_steamid64() SteamID64 {
mut v := i64(0)
if s.id == 1 {
v = 76561197960265728
} else {
v = 103582791429521408
}
w := s.account_number * 2 + v + s.id
return SteamID64 { w }
}