Only allow redrawing furniture inside.

This commit is contained in:
Ottermandias 2023-11-15 18:34:24 +01:00
parent d026ca888f
commit aee942468e

View file

@ -235,12 +235,6 @@ public sealed unsafe partial class RedrawService : IDisposable
for (var i = 0; i < _queue.Count; ++i) for (var i = 0; i < _queue.Count; ++i)
{ {
var idx = _queue[i]; var idx = _queue[i];
if (idx == FurnitureIdx)
{
EnableFurniture();
continue;
}
if (idx == ~FurnitureIdx) if (idx == ~FurnitureIdx)
{ {
DisableFurniture(); DisableFurniture();
@ -380,6 +374,8 @@ public sealed unsafe partial class RedrawService : IDisposable
var currentTerritory = housingManager->CurrentTerritory; var currentTerritory = housingManager->CurrentTerritory;
if (currentTerritory == null) if (currentTerritory == null)
return; return;
if (!housingManager->IsInside())
return;
foreach (var f in currentTerritory->FurnitureSpan.PointerEnumerator()) foreach (var f in currentTerritory->FurnitureSpan.PointerEnumerator())
{ {
@ -389,22 +385,4 @@ public sealed unsafe partial class RedrawService : IDisposable
gameObject->DisableDraw(); gameObject->DisableDraw();
} }
} }
private void EnableFurniture()
{
var housingManager = HousingManager.Instance();
if (housingManager == null)
return;
var currentTerritory = housingManager->CurrentTerritory;
if (currentTerritory == null)
return;
foreach (var f in currentTerritory->FurnitureSpan.PointerEnumerator())
{
var gameObject = f->Index >= 0 ? currentTerritory->HousingObjectManager.ObjectsSpan[f->Index].Value : null;
if (gameObject == null)
continue;
gameObject->EnableDraw();
}
}
} }