Make temporary collection always respect ownership.

This commit is contained in:
Ottermandias 2024-10-30 20:40:10 +01:00
parent 2358eb378d
commit c4f6038d1e

View file

@ -199,10 +199,24 @@ public sealed unsafe class CollectionResolver(
/// <summary> Check both temporary and permanent character collections. Temporary first. </summary>
private ModCollection? CollectionByIdentifier(ActorIdentifier identifier)
=> tempCollections.Collections.TryGetCollection(identifier, out var collection)
|| collectionManager.Active.Individuals.TryGetCollection(identifier, out collection)
? collection
: null;
{
if (tempCollections.Collections.TryGetCollection(identifier, out var collection))
return collection;
// Always inherit ownership for temporary collections.
if (identifier.Type is IdentifierType.Owned)
{
var playerIdentifier = actors.CreateIndividualUnchecked(IdentifierType.Player, identifier.PlayerName,
identifier.HomeWorld.Id, ObjectKind.None, uint.MaxValue);
if (tempCollections.Collections.TryGetCollection(playerIdentifier, out collection))
return collection;
}
if (collectionManager.Active.Individuals.TryGetCollection(identifier, out collection))
return collection;
return null;
}
/// <summary> Check for the Yourself collection. </summary>
private ModCollection? CheckYourself(ActorIdentifier identifier, Actor actor)