public static void Main()
var a = new FeatureBuilderComponent<string>("Hi!");
public class GameComponent { }
public class SceneObject : GameComponent { }
public class Node : GameComponent { }
public class ResourceReference<T> where T : GameComponent {}
public interface IFeatureBuilderResource { ResourceReference<GameComponent> GetPath ( ResourceReference<GameComponent> res); }
public class FeatureBuilderComponent<T> : IFeatureBuilderResource{
public FeatureBuilderComponent(T str) { this.str = str; }
public void Write() { Console.WriteLine(str); }
public ResourceReference<GameComponent> GetPath ( ResourceReference<GameComponent> res) { return res; }
public interface IFeatureBuilderViewInfo { ResourceReference<SceneObject> GetPath(); }
public class FeatureBuilderInfo : IFeatureBuilderViewInfo {
protected readonly ResourceReference<SceneObject> LoadedResources;
protected readonly IFeatureBuilderResource BuilderResource;
public FeatureBuilderInfo( ResourceReference<SceneObject> loadedResources, IFeatureBuilderResource builderResource)
LoadedResources = loadedResources;
BuilderResource = builderResource;
public ResourceReference<SceneObject> GetPath() {
return BuilderResource.GetPath( LoadedResources );