using System.Collections.Generic; public class ResourceRegistry { public static ResourceRegistry Instance { get; private set; } private readonly List _items = new List(); public Resource[] Items => _items.ToArray(); public readonly Metal Metal = new Metal(); public readonly Electronics Electronics = new Electronics(); public readonly Energy Energy = new Energy(); public readonly Money Money = new Money(); static ResourceRegistry() { Instance = new ResourceRegistry(); } private ResourceRegistry() { RegisterResource(Metal, true); RegisterResource(Electronics, true); // TODO lock back RegisterResource(Energy, true); // TODO lock back RegisterResource(Money, true); // TODO lock back } private void RegisterResource(Resource resource, bool unlocked = false) { _items.Add(resource); } }