a999b0182a39a8b78da0de65ce6dd6dd14b9af84
- Carryable: generic pickup/carry component, cosmetic per-peer follow of the carrier's HandSocket instead of NGO reparenting (camera pitch isn't networked, so root-level reparenting wouldn't tilt with the view) - PlayerCarry: mutual exclusion with PlayerHands, server-timed hold-to-pour tick (client only signals start/stop, never per-unit requests) - IPourSource/IPourTarget: decouple PlayerInteractor from concrete Shop types, same pattern as IInteractable - Lieferkarton: gains product data (productId/quantity), two-stage Interact() (open, then pick up), IPourSource - ShelfSlot: implements IPourTarget, fills the previous RefreshVisuals TODO - PackageDisplay: renders quantity as a proper column x row grid that stacks into further layers as space runs out, reused by both containers - FlyingPackage: small non-networked cosmetic visual that arcs a package from the carried box to its exact landing slot in the shelf grid on every successful pour tick, broadcast via Rpc(SendTo.Everyone) - StorageCrate: rejects pickup while the player is carrying a box Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
AfterHours
Koop-Ladensimulator für 2–4 Spieler. Unity 6 LTS / C# / Netcode for GameObjects.
Stand
Code-Gerüst ohne Unity-Projektdateien. Assets/Scripts/ in ein frisches
Unity-6-Projekt kopieren, dann docs/ROADMAP.md Meilenstein 0 abarbeiten.
Für Claude Code
Alles Wesentliche steht in CLAUDE.md. Die zwei harten Regeln vorab:
- Der Host simuliert, Clients fragen an (§3).
- Zielrating ist Mature, nicht Adult Only (§7).
Doku
docs/DESIGN.md— Spielmechanikdocs/ARCHITECTURE.md— Autoritätsmodell, Netzwerk, Testendocs/ROADMAP.md— Aufgaben nach Meilensteinen
Languages
GLSL
85.7%
C#
9.4%
ShaderLab
3.8%
HLSL
0.6%
Wolfram Language
0.5%