feat: add UHC game type, per-game-type compass, prettified display names #12

Merged
crypt merged 1 commit from feat/uhc-compass-game-types into main 2026-10-05 01:58:25 +00:00
Owner

Summary

  • Per-game-type compass: SG (iron sword), UHC (golden apple), Practice PvP (diamond sword), and All Games (emerald) slots. Clicking a game type filters the lobby list.
  • Display name cleanup: survivalgames → survival-games (shown as "Survival Games"), lobby1 → lobby-skylands (shown as "Lobby: Skylands"), lobby lore distinguishes lobby worlds ("Lobby: Skylands") from game maps ("Map: Alaskan Village"), lobby item names no longer prefixed with "Lobby".
  • UHC world generation: prepare-world generated case writes server.properties with random seed + LARGEBIOMES + structures. Controller passes WORLD_SOURCE to main container, enables GENERATE_STRUCTURES for generated worlds.
  • ChunkPreGenerator: pre-generates 500-block radius chunks during lobby phase (spiral, 2 chunks/5 ticks) to avoid in-match lag.
  • UHC pool: 1 lobby, 50 max players, worldSource: generated, 120s grace, shrinking border, minimal protections (mobs spawn, PvP/mining/building allowed).

Test plan

  • Plugin tests pass (gradlew :wc-mcsg:build :wc-hub:test :wc-common:test -PskipMongoTests)
  • go vet + go build clean
  • helm lint clean
  • Chart template renders 49 resources
  • End-to-end: deploy and verify UHC pool creates instances with generated worlds

Breaking changes

  • gameType changes from survivalgames to survival-games (pre-release, acceptable per project rules)
  • Lobby map directory lobby1 renamed to lobby-skylands
## Summary - **Per-game-type compass**: SG (iron sword), UHC (golden apple), Practice PvP (diamond sword), and All Games (emerald) slots. Clicking a game type filters the lobby list. - **Display name cleanup**: `survivalgames` → `survival-games` (shown as "Survival Games"), `lobby1` → `lobby-skylands` (shown as "Lobby: Skylands"), lobby lore distinguishes lobby worlds ("Lobby: Skylands") from game maps ("Map: Alaskan Village"), lobby item names no longer prefixed with "Lobby". - **UHC world generation**: `prepare-world` generated case writes server.properties with random seed + LARGEBIOMES + structures. Controller passes `WORLD_SOURCE` to main container, enables `GENERATE_STRUCTURES` for generated worlds. - **ChunkPreGenerator**: pre-generates 500-block radius chunks during lobby phase (spiral, 2 chunks/5 ticks) to avoid in-match lag. - **UHC pool**: 1 lobby, 50 max players, `worldSource: generated`, 120s grace, shrinking border, minimal protections (mobs spawn, PvP/mining/building allowed). ## Test plan - [x] Plugin tests pass (`gradlew :wc-mcsg:build :wc-hub:test :wc-common:test -PskipMongoTests`) - [x] `go vet` + `go build` clean - [x] `helm lint` clean - [x] Chart template renders 49 resources - [ ] End-to-end: deploy and verify UHC pool creates instances with generated worlds ## Breaking changes - `gameType` changes from `survivalgames` to `survival-games` (pre-release, acceptable per project rules) - Lobby map directory `lobby1` renamed to `lobby-skylands`
feat: add UHC game type, per-game-type compass, prettified display names
Some checks failed
/ detect (pull_request) Successful in 3s
/ commit-check (pull_request) Successful in 4s
/ chart (pull_request) Failing after 6s
/ plugin (pull_request) Failing after 8s
/ controller (pull_request) Successful in 5m51s
bbfd446966
Compass game mode selector now has per-game-type items:
- Survival Games (iron sword, slot 11)
- UHC (golden apple, slot 13)
- Practice PvP (diamond sword, slot 15)
- All Games (emerald, slot 22)
Clicking a game type filters the lobby list to that type only.

Display name improvements:
- gameType survivalgames -> survival-games (prettified to 'Survival Games')
- Lobby map lobby1 -> lobby-skylands (prettified to 'Lobby: Skylands')
- Lobby lore shows 'Lobby: Skylands' for lobby worlds, 'Map: Alaskan Village' for game maps
- Lobby item display name no longer prefixed with 'Lobby '

UHC world generation:
- prepare-world 'generated' case writes server.properties with random seed,
  LARGEBIOMES world type, structures enabled, 2000-block world border
- Controller passes WORLD_SOURCE to main container env and enables
  GENERATE_STRUCTURES for generated worlds
- ChunkPreGenerator pre-generates 500-block radius chunks during lobby phase
  (spiral pattern, 2 chunks/5 ticks) to avoid in-match lag
- UHC gameConfig: 120s grace, 4-player deathmatch threshold, shrinking border,
  minimal world protections (mobs spawn, PvP allowed, mining/building allowed)

Chart:
- UHC pool added to values.yaml (1 lobby, 50 max players, worldSource: generated)
- UHC gameConfig template in configmap.yaml
- values.schema.json: lobbyMaps minItems 0 (UHC has no lobby maps)
- CRD description updated to survival-games

Tests: all plugin tests pass, go vet/build clean, helm lint clean.
crypt merged commit 2cdfc619e2 into main 2026-10-05 01:58:25 +00:00
crypt deleted branch feat/uhc-compass-game-types 2026-10-05 01:58:25 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crypt/k8s-mcsg-uhc!12
No description provided.