/interior list

This commit is contained in:
hydrant
2020-05-04 18:16:03 +02:00
parent 58f54f6405
commit 62e7397d6f
2 changed files with 31 additions and 9 deletions

View File

@@ -90,14 +90,14 @@ namespace ReallifeGamemode.Server.Core.Managers
_interiorExitColShapes.Remove(interior.Id);
}
public ITextLabel GetInteriorEnterTextLabel(Interior interior) => _interiorEnterTextLabels[interior.Id];
public ITextLabel GetInteriorExitTextLabel(Interior interior) => _interiorExitTextLabels[interior.Id];
public ITextLabel GetInteriorEnterTextLabel(Interior interior) => _interiorEnterTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value;
public ITextLabel GetInteriorExitTextLabel(Interior interior) => _interiorExitTextLabels.FirstOrDefault(x => x.Key == interior.Id).Value;
public IMarker GetInteriorEnterMarker(Interior interior) => _interiorEnterMarkers[interior.Id];
public IMarker GetInteriorExitMarkers(Interior interior) => _interiorExitMarkers[interior.Id];
public IMarker GetInteriorEnterMarker(Interior interior) => _interiorEnterMarkers.FirstOrDefault(x => x.Key == interior.Id).Value;
public IMarker GetInteriorExitMarkers(Interior interior) => _interiorExitMarkers.FirstOrDefault(x => x.Key == interior.Id).Value;
public IColShape GetInteriorEnterColShape(Interior interior) => _interiorEnterColShapes[interior.Id];
public IColShape GetInteriorExitColShape(Interior interior) => _interiorExitColShapes[interior.Id];
public IColShape GetInteriorEnterColShape(Interior interior) => _interiorEnterColShapes.FirstOrDefault(x => x.Key == interior.Id).Value;
public IColShape GetInteriorExitColShape(Interior interior) => _interiorExitColShapes.FirstOrDefault(x => x.Key == interior.Id).Value;
public int GetInteriorIdFromEnterColShape(IColShape handle) => _interiorEnterColShapes.FirstOrDefault(c => c.Value == handle).Key;
public int GetInteriorIdFromExitColShape(IColShape handle) => _interiorExitColShapes.FirstOrDefault(c => c.Value == handle).Key;
@@ -134,7 +134,23 @@ namespace ReallifeGamemode.Server.Core.Managers
var enterExit = args[1].ToInt();
Interior interior = GetInteriorById(id, GetDbContext());
if (interior.ExitPosition == null || interior.EnterPosition == null)
{
player.SendMessage("Dieses Interior ist noch nicht eingerichtet (keine Ein-/Ausgangsposition)", ChatPrefix.Error);
return;
}
player.Position = enterExit == 0 ? interior.ExitPosition : interior.EnterPosition;
}
public IEnumerable<(string, int)> GetInteriors()
{
using var dbContext = GetDbContext();
foreach (Interior interior in dbContext.Interiors)
{
yield return (interior.Name, interior.Id);
}
}
}
}