private void InjetServices() { GameTree gametree = Game.GameTree; var propsSettings = BindingFlags.Public; propsSettings |= BindingFlags.NonPublic; propsSettings |= BindingFlags.Instance; var thisType = GetType(); var properties = thisType.GetProperties(propsSettings); foreach (var property in properties) { var attribute = property.GetCustomAttribute <ServiceAttribute>(); if (attribute != null) { Type serviceType = property.PropertyType; var service = gametree.GetService(serviceType); property.SetValue(this, service); } } }
/// <summary> /// Makes a new instance of <see cref="GameTreeService"/> class. /// </summary> /// <param name="module">Parent module.</param> internal GameTreeService(GameTree module, GameLoop runLoop) : base(module, runLoop) { }
/// <summary> /// Loads this game. /// </summary> /// <param name="loader">pEngine GameTree module.</param> internal void Load(GameTree loader) { GameTree = loader; base.Load(loader.ModuleLoop.Scheduler); }