This commit is contained in:
root
2026-09-20 14:16:41 +02:00
parent 0798933b05
commit b6d1909d7f
56 changed files with 3752 additions and 1989 deletions
+18 -18
View File
@@ -10,7 +10,7 @@ import (
"os"
"strconv"
"wh/fixed"
"halcyon/fixed"
)
const SecondsPerDay = 86400
@@ -85,20 +85,20 @@ func Bind(fs *flag.FlagSet) (*Config, error) {
if err := c.applyEnv(os.Getenv); err != nil {
return nil, err
}
fs.Uint64Var(&c.Seed, "seed", c.Seed, "world seed (env WH_SEED)")
fs.IntVar(&c.TicksPerDay, "ticks-per-day", c.TicksPerDay, "simulation ticks per day (env WH_TICKS_PER_DAY)")
fs.IntVar(&c.CyclesPerTick, "cycles-per-tick", c.CyclesPerTick, "VM cycles per ship per tick (env WH_CYCLES_PER_TICK)")
fs.IntVar(&c.ProgramBytes, "program-bytes", c.ProgramBytes, "max ship program size (env WH_PROGRAM_BYTES)")
fs.IntVar(&c.RAMBytes, "ram-bytes", c.RAMBytes, "ship RAM size (env WH_RAM_BYTES)")
fs.IntVar(&c.CommBytes, "comm-bytes", c.CommBytes, "uplink/downlink buffer size (env WH_COMM_BYTES)")
fs.IntVar(&c.AsteroidCount, "asteroids", c.AsteroidCount, "number of asteroids (env WH_ASTEROIDS)")
fs.Uint64Var(&c.Seed, "seed", c.Seed, "world seed (env HALCYON_SEED)")
fs.IntVar(&c.TicksPerDay, "ticks-per-day", c.TicksPerDay, "simulation ticks per day (env HALCYON_TICKS_PER_DAY)")
fs.IntVar(&c.CyclesPerTick, "cycles-per-tick", c.CyclesPerTick, "VM cycles per ship per tick (env HALCYON_CYCLES_PER_TICK)")
fs.IntVar(&c.ProgramBytes, "program-bytes", c.ProgramBytes, "max ship program size (env HALCYON_PROGRAM_BYTES)")
fs.IntVar(&c.RAMBytes, "ram-bytes", c.RAMBytes, "ship RAM size (env HALCYON_RAM_BYTES)")
fs.IntVar(&c.CommBytes, "comm-bytes", c.CommBytes, "uplink/downlink buffer size (env HALCYON_COMM_BYTES)")
fs.IntVar(&c.AsteroidCount, "asteroids", c.AsteroidCount, "number of asteroids (env HALCYON_ASTEROIDS)")
return &c, nil
}
// EnvVars lists the environment variables that set the world, for documentation.
var EnvVars = []string{
"WH_SEED", "WH_TICKS_PER_DAY", "WH_CYCLES_PER_TICK", "WH_PROGRAM_BYTES",
"WH_RAM_BYTES", "WH_COMM_BYTES", "WH_ASTEROIDS",
"HALCYON_SEED", "HALCYON_TICKS_PER_DAY", "HALCYON_CYCLES_PER_TICK", "HALCYON_PROGRAM_BYTES",
"HALCYON_RAM_BYTES", "HALCYON_COMM_BYTES", "HALCYON_ASTEROIDS",
}
func (c *Config) applyEnv(get func(string) string) error {
@@ -124,13 +124,13 @@ func (c *Config) applyEnv(get func(string) string) error {
err = fmt.Errorf("%s=%q: %w", name, v, err)
}
}
num("WH_SEED", &c.Seed)
num("WH_TICKS_PER_DAY", &c.TicksPerDay)
num("WH_CYCLES_PER_TICK", &c.CyclesPerTick)
num("WH_PROGRAM_BYTES", &c.ProgramBytes)
num("WH_RAM_BYTES", &c.RAMBytes)
num("WH_COMM_BYTES", &c.CommBytes)
num("WH_ASTEROIDS", &c.AsteroidCount)
num("HALCYON_SEED", &c.Seed)
num("HALCYON_TICKS_PER_DAY", &c.TicksPerDay)
num("HALCYON_CYCLES_PER_TICK", &c.CyclesPerTick)
num("HALCYON_PROGRAM_BYTES", &c.ProgramBytes)
num("HALCYON_RAM_BYTES", &c.RAMBytes)
num("HALCYON_COMM_BYTES", &c.CommBytes)
num("HALCYON_ASTEROIDS", &c.AsteroidCount)
return err
}
@@ -141,5 +141,5 @@ func DatabaseURL() string {
if v := os.Getenv("DATABASE_URL"); v != "" {
return v
}
return "sqlite:wh.db"
return "sqlite:halcyon.db"
}