- 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>
29 lines
893 B
C#
29 lines
893 B
C#
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;
|
|
}
|
|
}
|
|
}
|