summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorraven <citrons@mondecitronne.com>2026-03-24 12:46:46 -0500
committerraven <citrons@mondecitronne.com>2026-03-24 12:46:46 -0500
commit91271b10a48018db6d90dffc7495a17b80813f61 (patch)
tree808a2829ddfbe42bde64c701f166af670fa0167c
parent7ca8228d06b3cd62e38ac85e85286ab49e528741 (diff)
generate level asynchronously
-rw-r--r--server/commands.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/server/commands.go b/server/commands.go
index a7783e7..a91b206 100644
--- a/server/commands.go
+++ b/server/commands.go
@@ -169,25 +169,27 @@ var commands = map[string]commandHandler {
return usage("createLevel")
}
switch genType {
- case "flat", "empty", "debug":
+ case "flat", "empty", "sphere", "debug":
default:
return "Unknown generation type: " + genType
}
id, lvl := ctx.server.newLevel(levelInfo {Size: size})
- lvl.Act(nil, func() {
- ctx.sender.OnCommandOutput(ctx.server, "Creating level...")
+ ctx.sender.OnCommandOutput(ctx.server, "Generating level...")
+ go func() {
switch genType {
case "flat":
lvl.generateFlat()
case "empty":
lvl.generateEmpty()
+ case "sphere":
+ lvl.generateSphere()
case "debug":
lvl.generateDebug()
}
ctx.sender.OnCommandOutput(ctx.server,
- fmt.Sprintf("Generated level id %d.", id),
+ fmt.Sprintf("Generated level ID %d.", id),
)
- })
+ }()
switch pl := ctx.sender.(type) {
case *player:
pl.ChangeLevel(ctx.server, id, entityPos {