面向 Garry's Mod 的 Lux
写的是现代 Lux,交付的是普通 GLua。
可以从单文件渐进接入,也可以构建完整 GMod 项目;Lux 负责 package、运行域拆分、生成 loader、source map 和 compiler-owned LSP。
单文件构建可选 autorun loader无 registry packagecompiler LSP
import { arr } from "@lux/std"enum Badge repr number { Admin = 1, Alive = 2, Dead = 3,}fn badgeOf(ply) = ply?:IsAdmin() then Badge.Admin else ply?:Alive() then Badge.Alive else Badge.Deadfn tint(badge) = match badge { Badge.Admin => Color(255, 214, 92) Badge.Alive => Color(84, 236, 166) _ => Color(170, 178, 190) }client fn rows(players) = players |> arr.filter(%, (ply) => IsValid(ply)) |> arr.map(%, (ply) => { local badge = badgeOf(ply) { name = ply?:Nick() ?? "unknown", color = tint(badge) } })export client { scoreboardRows = rows }