fixes for pet handling, uploads, clear storage button, remove button while reconnecting, put paused to online/paused, put visible to online

This commit is contained in:
rootdarkarchon
2023-02-05 15:52:27 +01:00
parent 673d098827
commit 3634c06ee5
17 changed files with 241 additions and 179 deletions

View File

@@ -26,6 +26,14 @@ public class CacheCreationService : MediatorSubscriberBase, IDisposable
var actualMsg = (CreateCacheForObjectMessage)msg;
_cachesToCreate[actualMsg.ObjectToCreateFor.ObjectKind] = actualMsg.ObjectToCreateFor;
});
Mediator.Subscribe<ClearCacheForObjectMessage>(this, (msg) =>
{
var actualMsg = (ClearCacheForObjectMessage)msg;
_lastCreatedData.FileReplacements.Remove(actualMsg.ObjectToCreateFor.ObjectKind);
_lastCreatedData.GlamourerString.Remove(actualMsg.ObjectToCreateFor.ObjectKind);
Mediator.Publish(new CharacterDataCreatedMessage(_lastCreatedData));
});
Mediator.Subscribe<FrameworkUpdateMessage>(this, (msg) => UpdatePointers());
Mediator.Subscribe<DelayedFrameworkUpdateMessage>(this, (msg) => ProcessCacheCreation());
Mediator.Subscribe<CustomizePlusMessage>(this, (msg) => CustomizePlusChanged((CustomizePlusMessage)msg));
Mediator.Subscribe<HeelsOffsetMessage>(this, (msg) => HeelsOffsetChanged((HeelsOffsetMessage)msg));
@@ -78,6 +86,11 @@ public class CacheCreationService : MediatorSubscriberBase, IDisposable
}
}
private void UpdatePointers()
{
Mediator.Publish(new PlayerRelatedObjectPointerUpdateMessage(_playerRelatedObjects.Select(f => f.CurrentAddress).ToArray()));
}
private void ProcessCacheCreation()
{
if (_cachesToCreate.Any() && (_cacheCreationTask?.IsCompleted ?? true))
@@ -109,8 +122,6 @@ public class CacheCreationService : MediatorSubscriberBase, IDisposable
{
Logger.Debug("Cache Creation stored until previous creation finished");
}
Mediator.Publish(new PlayerRelatedObjectPointerUpdateMessage(_playerRelatedObjects.Select(f => f.CurrentAddress).ToArray()));
}
public override void Dispose()

View File

@@ -133,6 +133,7 @@ public class TransientResourceManager : MediatorSubscriberBase, IDisposable
}
if (!PlayerRelatedPointers.Contains(gameObject))
{
Logger.Debug("Got resource " + gamePath + " for ptr " + gameObject.ToString("X"));
return;
}