public SceneBase CreateReflectiveObjects(Observer.ISceneObserver obs)
        {
            SceneBase scene = new ReflectiveObjects();

            scene.RegisterObserver(obs);
            return(scene);
        }
Beispiel #2
0
        public SequentialCommandExecutor(IModHelper helper)
        {
            Helper = helper;
            helper.Events.GameLoop.UpdateTicked += onUpdateTick;
            helper.Events.Display.Rendered      += onRendered;
            IEnumerable <Command> objs = ReflectiveObjects.GetEachObjectsOfSubtype <Command>();

            foreach (var obj in objs)
            {
                try {
                    dynamic changedObj = Convert.ChangeType(obj, obj.GetType());
                    var     nameMember = obj.GetType().GetField(nameof(Command.name));
                    string  name       = (string)nameMember.GetValue(null);
                    m_commandCache[name] = obj;
                } catch (Exception) {
                    ModEntry.m_instance.Monitor.Log($"Command Class {obj.GetType().Name} does not have a name member for config, use class name instead.", LogLevel.Debug);
                    m_commandCache[obj.GetType().Name] = obj;
                }
            }
            m_commandCache.ContainsKey("Craft");
        }