feat(economy): add Bestellsystem mit Lieferzeit
- SupplierService: Bestellungen mit Lieferzeit-Berechnung - OrderTerminal: Spieler-Interaktion zum Aufgeben von Bestellungen - StorageCrateRegistry + StorageCrate.Restock: Server registriert Kisten und füllt sie bei Lieferung wieder auf - GameClock.TotalHours: durchgehende Spielzeit für Lieferzeit-Berechnung - ROADMAP: Bestellsystem-Punkt als erledigt markiert Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AfterHours.Shop
|
||||
{
|
||||
/// <summary>
|
||||
/// Serverseitige Liste aller aktiven Lagerkisten, damit der SupplierService
|
||||
/// eine Lieferung der richtigen Kiste zuordnen kann.
|
||||
/// </summary>
|
||||
public sealed class StorageCrateRegistry
|
||||
{
|
||||
public static readonly StorageCrateRegistry Instance = new();
|
||||
|
||||
private readonly List<StorageCrate> _crates = new();
|
||||
|
||||
public void Register(StorageCrate crate) => _crates.Add(crate);
|
||||
|
||||
public void Unregister(StorageCrate crate) => _crates.Remove(crate);
|
||||
|
||||
/// <summary>Erste Kiste, die dieses Produkt führt.</summary>
|
||||
public StorageCrate FindFor(int productId)
|
||||
{
|
||||
foreach (var crate in _crates)
|
||||
if (crate != null && crate.ProductId == productId)
|
||||
return crate;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user