36 lines
1.1 KiB
C#
Raw Normal View History

using CodexPlugin.Hooks;
using Core;
2023-09-12 11:43:46 +02:00
namespace CodexPlugin
{
public interface ICodexNodeFactory
{
2025-01-15 15:43:50 +01:00
CodexNode CreateOnlineCodexNode(CodexAccess access);
}
public class CodexNodeFactory : ICodexNodeFactory
{
2023-09-12 11:43:46 +02:00
private readonly IPluginTools tools;
private readonly CodexHooksFactory codexHooksFactory;
2023-09-12 11:43:46 +02:00
public CodexNodeFactory(IPluginTools tools, CodexHooksFactory codexHooksFactory)
2023-09-12 11:43:46 +02:00
{
this.tools = tools;
this.codexHooksFactory = codexHooksFactory;
2023-09-12 11:43:46 +02:00
}
2025-01-15 15:43:50 +01:00
public CodexNode CreateOnlineCodexNode(CodexAccess access)
2023-09-11 16:57:57 +02:00
{
2025-01-15 15:43:50 +01:00
var hooks = codexHooksFactory.CreateHooks(access.GetName());
var marketplaceAccess = GetMarketplaceAccess(access, hooks);
return new CodexNode(tools, access, marketplaceAccess, hooks);
2023-09-20 08:45:55 +02:00
}
2025-01-15 15:43:50 +01:00
private IMarketplaceAccess GetMarketplaceAccess(CodexAccess codexAccess, ICodexNodeHooks hooks)
2023-09-20 08:45:55 +02:00
{
2025-01-15 15:43:50 +01:00
if (codexAccess.GetEthAccount() == null) return new MarketplaceUnavailable();
return new MarketplaceAccess(tools.GetLog(), codexAccess, hooks);
2023-09-19 11:51:59 +02:00
}
}
}