using System; using Goap.Core; namespace Goap.Runtime { public class MultiSensorBuilder : MultiSensorBuilder where T : IMultiSensor { public MultiSensorBuilder() : base(typeof(T)) { } public MultiSensorBuilder SetCallback(Action callback) { this.config.Callback = (obj) => callback((T) obj); return this; } } public class MultiSensorBuilder { protected readonly MultiSensorConfig config; public MultiSensorBuilder(Type type) { this.config = new MultiSensorConfig() { Name = type.Name, ClassType = type.AssemblyQualifiedName, }; } public IMultiSensorConfig Build() { return this.config; } public static MultiSensorBuilder Create() where TMultiSensor : IMultiSensor { return new MultiSensorBuilder(); } public static MultiSensorBuilder Create(Type _type) { return new MultiSensorBuilder(_type); } } }