示例#1
0
        public ExtensionManager(
            IOptions <ExtensionExpanderOptions> extensionExpanderOptionsAccessor,
            IOptions <ManifestOptions> manifestOptionsAccessor,
            IHostingEnvironment hostingEnvironment,
            IEnumerable <IManifestProvider> manifestProviders,

            IEnumerable <IExtensionProvider> extensionProviders,
            IEnumerable <IExtensionLoader> extensionLoaders,
            IEnumerable <IExtensionDependencyStrategy> extensionDependencyStrategies,
            IEnumerable <IExtensionPriorityStrategy> extensionPriorityStrategies,
            ITypeFeatureProvider typeFeatureProvider,
            ILogger <ExtensionManager> logger,
            IStringLocalizer <ExtensionManager> localizer)
        {
            _extensionExpanderOptions      = extensionExpanderOptionsAccessor.Value;
            _manifestOptions               = manifestOptionsAccessor.Value;
            _hostingEnvironment            = hostingEnvironment;
            _manifestProvider              = new CompositeManifestProvider(manifestProviders);
            _extensionProvider             = new CompositeExtensionProvider(extensionProviders);
            _extensionLoader               = new CompositeExtensionLoader(extensionLoaders);
            _extensionDependencyStrategies = extensionDependencyStrategies;
            _extensionPriorityStrategies   = extensionPriorityStrategies;
            _typeFeatureProvider           = typeFeatureProvider;
            L = logger;
            T = localizer;
        }
        /// <summary>
        /// Initializes this instance.
        /// </summary>
        public void Initialize()
        {
            if (_extensionLoader == null)
            {
                _extensionLoader = _dependencyUtility.Resolve <IExtensionLoader>();
            }

            if (_logger == null)
            {
                _logger = _dependencyUtility.Resolve <ILogger>();
            }

            if (_config == null)
            {
                _config = _dependencyUtility.Resolve <IConfigurationHandler>();
            }

            if (_connectionManager == null)
            {
                _connectionManager = _dependencyUtility.Resolve <IWebSocketConnectionManager>();
            }

            CreateConnectionResources();
            CreateRequestResources();
            CreateResponseResources();

            _isInitialized = true;
        }
示例#3
0
 /// <summary>
 /// Creates instance of <see href="ExtensionManager" />
 /// </summary>
 /// <param name="extensionRepository"></param>
 /// <param name="loader"></param>
 /// <param name="options"></param>
 public ExtensionManager(
     IExtensionRepository extensionRepository,
     IExtensionLoader loader,
     IOptions<ExtensionOptions> options)
 {
     _repository = extensionRepository;
     _loader = loader;
     _options = options;
 }
示例#4
0
 public void Register(IExtensionLoader extensionLoader)
 {
     extensionLoader.RegisterEntityExtender <Player>((p) =>
     {
         p.Components.AddComponent(new ControllableComponent());
         p.Components.AddComponent(new HeadComponent()
         {
             Offset = new Vector3(0, 0, 3.2f)
         });
         p.Components.AddComponent(new InventoryComponent());
         p.Components.AddComponent(new ToolBarComponent());
     });
 }
示例#5
0
        public void Register(IExtensionLoader extensionLoader)
        {
            foreach (var t in Assembly.GetExecutingAssembly().GetTypes().Where(
                         t => !t.IsAbstract && typeof(IDefinition).IsAssignableFrom(t)))
            {
                extensionLoader.RegisterDefinition((IDefinition)Activator.CreateInstance(t));
            }

            extensionLoader.RegisterMapGenerator(new ComplexPlanetGenerator());

            extensionLoader.RegisterMapPopulator(new TreePopulator());
            extensionLoader.RegisterMapPopulator(new WauziPopulator());

            extensionLoader.RegisterEntity <WauziEntity>();
            extensionLoader.RegisterDefaultEntityExtender <WauziEntity>();

            extensionLoader.RegisterEntityExtender <Player>((p) =>
            {
                var posComponent = new PositionComponent {
                    Position = new Coordinate(0, new Index3(0, 0, 200), new Vector3(0, 0, 0))
                };

                p.Components.AddComponent(posComponent);
                p.Components.AddComponent(new BodyComponent()
                {
                    Mass = 50f, Height = 3.5f, Radius = 0.75f
                });
                p.Components.AddComponent(new BodyPowerComponent()
                {
                    Power = 600f, JumpTime = 120
                });
                p.Components.AddComponent(new GravityComponent());
                p.Components.AddComponent(new MoveableComponent());
                p.Components.AddComponent(new BoxCollisionComponent());
                p.Components.AddComponent(new EntityCollisionComponent());

                p.Components.AddComponent(new LocalChunkCacheComponent(posComponent.Planet.GlobalChunkCache, 4, 2));
            });

            extensionLoader.RegisterSimulationExtender((s) =>
            {
                s.Components.AddComponent(new WattMoverComponent());
                s.Components.AddComponent(new NewtonGravitatorComponent());
                s.Components.AddComponent(new ForceAggregatorComponent());
                s.Components.AddComponent(new PowerAggregatorComponent());
                s.Components.AddComponent(new AccelerationComponent());
                s.Components.AddComponent(new MoveComponent());
                s.Components.AddComponent(new BlockInteractionComponent(s));
                //TODO: unschön
            });
        }
示例#6
0
 public ExtensionManager(
     IOptions <ExtensionOptions> optionsAccessor,
     IEnumerable <IExtensionProvider> extensionProviders,
     IEnumerable <IExtensionLoader> extensionLoaders,
     IHostingEnvironment hostingEnvironment,
     ITypeFeatureProvider typeFeatureProvider,
     ILogger <ExtensionManager> logger,
     IStringLocalizer <ExtensionManager> localizer)
 {
     _extensionOptions    = optionsAccessor.Value;
     _extensionProvider   = new CompositeExtensionProvider(extensionProviders);
     _extensionLoader     = new CompositeExtensionLoader(extensionLoaders);
     _hostingEnvironment  = hostingEnvironment;
     _typeFeatureProvider = typeFeatureProvider;
     L = logger;
     T = localizer;
 }
示例#7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Default"/> class.
 /// </summary>
 /// <param name="dependencyUtility">The dependency utility.</param>
 public Default(IDependencyUtility dependencyUtility) : base(dependencyUtility)
 {
     _extensionLoader = dependencyUtility.Resolve <IExtensionLoader>();
     _signalRouter    = dependencyUtility.Resolve <ISignalRouter>();
 }
示例#8
0
 public DefaultEnjoyHost(IExtensionLoader loader)
 {
     var xxx = loader.Probe().ToList();
 }