Esempio n. 1
0
        /// <see cref="IGeneratorMode"/>
        public override bool Initialize(string path, string[] args)
        {
            // File mode requires a minimum of 3 arguments
            _path = path;
            if (args.Length < 2)
            {
                return(false);
            }

            // Second argument is parser
            var ext = Path.GetExtension(_path);

            Parsers[ext] = ParserFactory.Resolve(args[0]);

            // Load generators
            GeneratorFactory.Initialize(new[] { Assembly.GetExecutingAssembly() });

            // All following arguments are the active generators
            for (var i = 1; i < args.Length; i++)
            {
                Generators.Add(GeneratorFactory.Resolve(args[i]));
            }

            return(true);
        }
        internal static async Task MarkovListenAsync(SocketMessage arg, string server)
        {
            // don't save bot commands
            if (arg.Content.StartsWith("!"))
            {
                return;
            }

            var who = arg.Author.GetNicknameOrUsername();

            Posts.Data.Add(new Post(server, arg.Channel.Name, who, arg.Content, arg.Timestamp.ToUniversalTime().UtcDateTime));

            if (!Generators.ContainsKey(who))
            {
                Generators.Add(who, CreateMarkovGenerator(who));
            }
            Generators[who].ReadChain(arg.Content);
            if (who != "Chancellor Gerath")
            {
                if (EveryoneGenerator is null)
                {
                    EveryoneGenerator = CreateMarkovGenerator(null);
                }
                EveryoneGenerator.ReadChain(arg.Content);
            }
            if (!Directory.Exists(PostsJsonPath))
            {
                Directory.CreateDirectory(PostsJsonPath);
            }
            SavePosts();
        }
Esempio n. 3
0
            /// <summary>
            /// Adds an event to the appropriate list for its type; returns the event.
            /// </summary>
            public Event Add(Event evnt)
            {
                switch (evnt)
                {
                case Event.Light e: Lights.Add(e); break;

                case Event.Sound e: Sounds.Add(e); break;

                case Event.SFX e: SFX.Add(e); break;

                case Event.Wind e: Wind.Add(e); break;

                case Event.Treasure e: Treasures.Add(e); break;

                case Event.Generator e: Generators.Add(e); break;

                case Event.Message e: Messages.Add(e); break;

                case Event.ObjAct e: ObjActs.Add(e); break;

                case Event.SpawnPoint e: SpawnPoints.Add(e); break;

                case Event.MapOffset e: MapOffsets.Add(e); break;

                case Event.Navmesh e: Navmeshes.Add(e); break;

                case Event.Environment e: Environments.Add(e); break;

                case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break;

                default:
                    throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt));
                }
                return(evnt);
            }
Esempio n. 4
0
            /// <summary>
            /// Adds an event to the appropriate list for its type; returns the event.
            /// </summary>
            public Event Add(Event evnt)
            {
                switch (evnt)
                {
                case Event.Treasure e: Treasures.Add(e); break;

                case Event.Generator e: Generators.Add(e); break;

                case Event.ObjAct e: ObjActs.Add(e); break;

                case Event.MapOffset e: MapOffsets.Add(e); break;

                case Event.PseudoMultiplayer e: PseudoMultiplayers.Add(e); break;

                case Event.PatrolInfo e: PatrolInfo.Add(e); break;

                case Event.PlatoonInfo e: PlatoonInfo.Add(e); break;

                case Event.Other e: Others.Add(e); break;

                default:
                    throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt));
                }
                return(evnt);
            }
 public void AddGeneratorInner(GeneratorInfo generator)
 {
     if (!Generators.ContainsKey(generator.GeneratorId))
     {
         Generators.Add(generator.GeneratorId, generator);
         generatorList.Add(generator);
     }
 }
        private static bool ConvertLegacyPosts()
        {
            if (Directory.Exists(ModuleDirectory) && !File.Exists(PostsJsonPath))
            {
                // load the old chains
                var regex = new Regex(@".*Markov\.(.*)\.txt");
                foreach (var f in Directory.GetFiles(ModuleDirectory))
                {
                    var who = regex.Match(f).Groups[1].Captures.FirstOrDefault()?.Value;
                    if (who != null)
                    {
                        Console.WriteLine($"Reading markov chains from {Path.GetFullPath($"{ModuleDirectory}/Markov.{who}.txt")}");
                        Generators.Add(who, new Generator(Extensions.Random));
                        foreach (var line in File.ReadAllLines(f))
                        {
                            Posts.Data.Add(new Post(LegacyServer, UnknownChannel, who, line, null));
                        }
                    }
                }

                // load the old quotes
                var quotes      = JsonConvert.DeserializeObject <IDictionary <string, ICollection <string> > >(File.ReadAllText($"{ModuleDirectory}/Quotes.txt"));
                var quotedPosts = new HashSet <Post>();
                var removePosts = new HashSet <Post>();
                foreach (var quotedUser in quotes)
                {
                    var(quotedUsername, userQuotes) = (quotedUser.Key, quotedUser.Value);
                    foreach (var quote in userQuotes)
                    {
                        foreach (var post in Posts.Data.Where(q => q.Server == LegacyServer && q.User == quotedUsername && q.Content == quote))
                        {
                            quotedPosts.Add(post with {
                                IsQuoted = true
                            });
                            removePosts.Add(post);
                        }
                    }
                }
                foreach (var quotedPost in quotedPosts)
                {
                    Posts.Data.Add(quotedPost);
                }
                foreach (var removePost in removePosts)
                {
                    Posts.Data.Remove(removePost);
                }

                // converted
                return(true);
            }
            else
            {
                // didn't convert
                return(false);
            }
        }
Esempio n. 7
0
 public void Load(string file)
 {
     if (!IsLoaded)
     {
         Generators.Clear();
         var listItems = JsonConvert.DeserializeObject <List <GeneratorJsonData> >(Resources.Load <TextAsset>(file).text);
         listItems.ForEach(item => Generators.Add(item.id, new GeneratorData(item, GeneratorType.Normal)));
         IsLoaded = true;
     }
 }
Esempio n. 8
0
        public QuestionSet(string basePath) : base(basePath)
        {
            Generators.Add(GetGeneratorXMLTemplateReference(typeof(EvaluateTheKroneckerDelta)), new EvaluateTheKroneckerDelta(_xmlImporter, _textResolver, _layoutConverter));
            Generators.Add(GetGeneratorXMLTemplateReference(typeof(SimplifyKroneckerDeltas)), new SimplifyKroneckerDeltas(_xmlImporter, _textResolver, _layoutConverter));
            Generators.Add(GetGeneratorXMLTemplateReference(typeof(SimplifyKroneckerDeltas2)), new SimplifyKroneckerDeltas2(_xmlImporter, _textResolver, _layoutConverter));
            Generators.Add(GetGeneratorXMLTemplateReference(typeof(CalculateTheBeatFrequency1)), new CalculateTheBeatFrequency1(_xmlImporter, _textResolver, _layoutConverter));

            AddNonRandomQuestionGenerator("Physics_NewtonianGravity_DefineThePoissonEquation");
            AddNonRandomQuestionGenerator("Mathematics_Hyperbolae_DefineAHyperbola1");
        }
Esempio n. 9
0
 /// <summary>
 /// Registers a generator with a type
 /// </summary>
 /// <param name="Rand">Random number generator</param>
 /// <param name="Generator">Generator to associate with the type</param>
 /// <param name="Type">Type to associate with the generator</param>
 /// <returns>The random number generator</returns>
 public static System.Random RegisterGenerator(this System.Random Rand, Type Type, IGenerator Generator)
 {
     if (Generators.ContainsKey(Type))
     {
         Generators[Type] = Generator;
     }
     else
     {
         Generators.Add(Type, Generator);
     }
     return(Rand);
 }
Esempio n. 10
0
        public MainWindowViewModel()
        {
            // Load application settings (defaults, etc.)
            SettingsProvider.Instance.LoadApplicationSettings();

            // Load addins
            _PluginManager = new TLCGenPluginManager(System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Plugins\\"));

            foreach (ITLCGenGenerator gen in _PluginManager.Generators)
            {
                Type t = gen.GetType();
                TLCGenPluginManager.LoadAddinSettings(gen, t, SettingsProvider.Instance.CustomSettings);
                Generators.Add(new IGeneratorViewModel(gen));
            }
            if (Generators.Count > 0)
            {
                SelectedGenerator = Generators[0];
            }

            foreach (ITLCGenImporter imp in _PluginManager.Importers)
            {
                Type t = imp.GetType();
                TLCGenPluginManager.LoadAddinSettings(imp, t, SettingsProvider.Instance.CustomSettings);
                MenuItem mi = new MenuItem();
                mi.Header           = imp.GetPluginName();
                mi.Command          = ImportControllerCommand;
                mi.CommandParameter = imp;
                ImportMenuItems.Add(mi);
            }

            // If we are in debug mode, the code below tries loading a file
            // called 'test.tlc' from the folder where the application runs.
#if DEBUG
            DataProvider.Instance.FileName = System.AppDomain.CurrentDomain.BaseDirectory + "test.tlc";
            if (DataProvider.Instance.LoadController())
            {
                ControllerVM = new ControllerViewModel(this, DataProvider.Instance.Controller);
                ControllerVM.SelectedTabIndex = 0;
                OnPropertyChanged("ProgramTitle");
                ControllerVM.DoUpdateFasen();
                MessageManager.Instance.Send(new UpdateTabsEnabledMessage());
            }
#endif

            if (!DesignMode.IsInDesignMode)
            {
                if (Application.Current != null && Application.Current.MainWindow != null)
                {
                    Application.Current.MainWindow.Closing += new CancelEventHandler(MainWindow_Closing);
                }
            }
        }
Esempio n. 11
0
        private void LoadGeneratorsClasses()
        {
            Assembly generatorsAssembly = Assembly.GetAssembly(typeof(Generator));

            Type[] assemblyTypes = generatorsAssembly.GetTypes();
            foreach (var type in assemblyTypes)
            {
                Type iInterface = type.GetInterface(typeof(IGenerator <>).Name);
                if (type.IsAbstract || iInterface == null)
                {
                    continue;
                }
                Type key = iInterface.GetGenericArguments()[0];
                Generators.Add(MakeTypeFullName(key), type);
            }
        }
Esempio n. 12
0
        public Network(Statics config, int seed, string tag = null) : base(config, seed, tag)
        {
            Name    = "Network";
            Display = true;

            for (int i = 0; i < Config.NNodes; i++)
            {
                for (int j = 0; j < Config.NNodes; j++)
                {
                    if (i != j && Config.DemandRates[i, j] > 0)
                    {
                        int o = i, d = j;
                        var g = new Generator <Order>(
                            new Generator <Order> .Statics
                        {
                            Create = rs => new Order(new Order.Statics
                            {
                                Origin      = o,
                                Destination = d,
                            }, rs.Next()),
                            InterArrivalTime = rs => TimeSpan.FromDays(
                                Exponential.Sample(rs, 1 / Config.DemandRates[o, d])),
                            SkipFirst = true,
                        }, DefaultRS.Next());
                        g.OnArrive.Add(order => new DemandArriveEvent {
                            This = this, Order = order
                        });
                        Generators.Add(new Tuple <int, int>(i, j), g);
                        InitEvents.Add(g.Start());
                    }
                }
            }
            Transporters.AddRange(Enumerable.Range(0, Config.NTransporters)
                                  .Select(i => new Transporter(new Transporter.Statics(), DefaultRS.Next())
            {
                Display = Display,
                Tag     = "Transporter#" + i,
            }));
            foreach (var t in Transporters)
            {
                t.OnFinishTransport.Add(order => new DeliverEvent {
                    This = this, Order = order
                });
            }
            InitEvents.AddRange(Transporters.Select(t => t.Init(this)));
        }
        public void BuildGenerators(List<FloorData> floors)
        {
            Distribution floorDistr = new UniformDistribution(1, floors.Count);
            int min, max;
            foreach (FloorData data in floors)
            {
                // Add generator
                Generators.Add(new TenantGenerator(data.ID, floorDistr));

                // Add distribution
                min = data.Period - data.Spread;
                max = data.Period + data.Spread;
                GeneratorsDistr.Add(data.ID, new UniformDistribution(min, max));     
            }

            NumFloors = floors.Count;
        }
Esempio n. 14
0
 public void Append(IEnumerable <GeneratorData> generators, GeneratorType type)
 {
     if (IsLoaded)
     {
         foreach (var gen in generators)
         {
             //GeneratorData newData = new GeneratorData(jsonData, type);
             if (!Generators.ContainsKey(gen.Id))
             {
                 Generators.Add(gen.Id, gen);
             }
             else
             {
                 throw new UnityException($"Repository already contains generator => {gen.Id}");
             }
         }
     }
 }
Esempio n. 15
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int v = reader.ReadInt();

            Activated = reader.ReadBool();

            if (reader.ReadBool())
            {
                Generators.Add(this);
                Link = true;
            }

            Generator = reader.ReadItem() as MoonstonePowerGenerator;

            if (Generator != null)
            {
                Generator.Addon = this;
            }
        }
        public Task JabberAsync([Remainder][Summary("Who to mimic")] string who)
        {
            Generator gen;

            if (!Generators.ContainsKey(who))
            {
                Generators.Add(who, CreateMarkovGenerator(who));
            }
            gen = Generators[who];

            if (!gen.Lexicon.Any() || !IsUserKnownInCurrentServer(who))
            {
                return(ReplyAsync($"I don't have any conversation history for {who}!"));
            }

            var preferredLength = Extensions.Random.Next(8, 32);
            var maxLength       = preferredLength + Extensions.Random.Next(8, 32);

            return(ReplyAsync(gen.WriteSentence(preferredLength, maxLength).Text));
        }
Esempio n. 17
0
 private static void EnsureGeneratorsInitialized()
 {
     lock (Generators) {
         if (!AreGeneratorsInitialized)
         {
             AreGeneratorsInitialized = true;
             foreach (var Assembly in AssemblyManager.GetAssembliesToSearch())
             {
                 foreach (var Type in Assembly.GetTypes())
                 {
                     if (Type.IsSubclassOf(typeof(PropertyValueGenerator)))
                     {
                         var Generator = CreateInstance(Type);
                         Generators.Add(Generator.Name, Generator);
                     }
                 }
             }
         }
     }
 }
Esempio n. 18
0
        /// <see cref="IGeneratorMode"/>
        public override bool Initialize(string path, string[] args)
        {
            _directory = path;

            // Look for the config
            var configPath = Path.Combine(_directory, "cgbr.json");

            if (!File.Exists(configPath))
            {
                Console.WriteLine("Project mode requires a config.");
                return(false);
            }

            // Read and parse config
            var configText = File.ReadAllText(configPath);
            var config     = JsonConvert.DeserializeObject <CgbrConfiguration>(configText);

            // Load extension parsers
            var assemblies = ResolveAssemblies(config.Extensions);

            GeneratorFactory.Initialize(assemblies);

            // Parser mappings
            foreach (var mapping in config.Mappings)
            {
                Parsers[mapping.Extension] = ParserFactory.Resolve(mapping.Parser);
            }

            // Generators
            foreach (var localGenerator in config.LocalGenerators.Where(gen => gen.IsEnabled))
            {
                Generators.Add(GeneratorFactory.Resolve(localGenerator.Name));
            }
            foreach (var globalGenerator in config.GlobalGenerators.Where(gen => gen.IsEnabled))
            {
                Generators.Add(GeneratorFactory.Resolve(globalGenerator.Name));
            }

            return(true);
        }
Esempio n. 19
0
        private void LoadGenerators()
        {
            var json = string.Empty;
            var assembly = Assembly.GetExecutingAssembly();
            using (var stream = assembly.GetManifestResourceStream("ClickerEngine.Resources.generators.json"))
            {
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    json = reader.ReadToEnd();
                }
            }

            dynamic generators = JsonConvert.DeserializeObject(json);
            foreach (var generator in generators)
            {
                string name = generator.Name;
                string desc = generator.Description;
                string thumbnail = generator.Thumbnail;

                Generators.Add(new Generator(name, desc, thumbnail, new Value(1,3)));
            }
        }
Esempio n. 20
0
            /// <summary>
            /// Adds an event to the appropriate list for its type; returns the event.
            /// </summary>
            public Event Add(Event evnt)
            {
                switch (evnt)
                {
                case Event.Light e: Lights.Add(e); break;

                case Event.Sound e: Sounds.Add(e); break;

                case Event.SFX e: SFX.Add(e); break;

                case Event.Wind e: Wind.Add(e); break;

                case Event.Treasure e: Treasures.Add(e); break;

                case Event.Generator e: Generators.Add(e); break;

                case Event.Message e: Messages.Add(e); break;

                default:
                    throw new ArgumentException($"Unrecognized type {evnt.GetType()}.", nameof(evnt));
                }
                return(evnt);
            }
 protected void AddNonRandomQuestionGenerator(string xmlTemplateReference)
 {
     Generators.Add(xmlTemplateReference, new NonRandomQuestionGenerator(xmlTemplateReference, _xmlImporter, _textResolver, _layoutConverter));
 }
Esempio n. 22
0
 static MockData()
 {
     Generators.Add(typeof(string), typeof(MockData).GetMethod("RandomString"));
 }
Esempio n. 23
0
        public MainWindowViewModel()
        {
            var tmpCurDir = Directory.GetCurrentDirectory();

            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

            try
            {
                GuiActionsManager.SetStatusBarMessage = (string text) =>
                {
                    StatusBarVM.StatusText = text;
                };

                MessengerInstance.Register(this, new Action <Messaging.Requests.PrepareForGenerationRequest>(OnPrepareForGenerationRequest));
                MessengerInstance.Register(this, new Action <ControllerCodeGeneratedMessage>(OnControllerCodeGenerated));
                MessengerInstance.Register(this, new Action <ControllerProjectGeneratedMessage>(OnControllerProjectGenerated));
                MessengerInstance.Register(this, new Action <ControllerFileNameChangedMessage>(OnControllerFileNameChanged));

                // Load application settings and defaults
                TLCGenSplashScreenHelper.ShowText("Laden instellingen en defaults...");
                SettingsProvider.Default.LoadApplicationSettings();
                DefaultsProvider.Default.LoadSettings();
                TemplatesProvider.Default.LoadSettings();

                TLCGenModelManager.Default.InjectDefaultAction((x, s) => DefaultsProvider.Default.SetDefaultsOnModel(x, s));
                TLCGenControllerDataProvider.Default.InjectDefaultAction(x => DefaultsProvider.Default.SetDefaultsOnModel(x));

                // Load available applicationparts and plugins
                var assms = Assembly.GetExecutingAssembly();
                var types = from t in assms.GetTypes()
                            where t.IsClass && t.Namespace == "TLCGen.ViewModels"
                            select t;
                TLCGenSplashScreenHelper.ShowText("Laden applicatie onderdelen...");
                TLCGenPluginManager.Default.LoadApplicationParts(types.ToList());
                TLCGenSplashScreenHelper.ShowText("Laden plugins...");
                TLCGenPluginManager.Default.LoadPlugins(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins\\"));

                // Instantiate all parts
                _ApplicationParts = new List <Tuple <TLCGenPluginElems, ITLCGenPlugin> >();
                var parts = TLCGenPluginManager.Default.ApplicationParts.Concat(TLCGenPluginManager.Default.ApplicationPlugins);
                foreach (var part in parts)
                {
                    ITLCGenPlugin instpl = part.Item2;
                    TLCGenSplashScreenHelper.ShowText($"Laden plugin {instpl.GetPluginName()}...");
                    var flags = Enum.GetValues(typeof(TLCGenPluginElems));
                    foreach (TLCGenPluginElems elem in flags)
                    {
                        if ((part.Item1 & elem) == elem)
                        {
                            switch (elem)
                            {
                            case TLCGenPluginElems.Generator:
                                Generators.Add(new IGeneratorViewModel(instpl as ITLCGenGenerator));
                                break;

                            case TLCGenPluginElems.HasSettings:
                                ((ITLCGenHasSettings)instpl).LoadSettings();
                                break;

                            case TLCGenPluginElems.Importer:
                                MenuItem mi = new MenuItem();
                                mi.Header           = instpl.GetPluginName();
                                mi.Command          = ImportControllerCommand;
                                mi.CommandParameter = instpl;
                                ImportMenuItems.Add(mi);
                                break;

                            case TLCGenPluginElems.IOElementProvider:
                                break;

                            case TLCGenPluginElems.MenuControl:
                                PluginMenuItems.Add(((ITLCGenMenuItem)instpl).Menu);
                                break;

                            case TLCGenPluginElems.TabControl:
                                break;

                            case TLCGenPluginElems.ToolBarControl:
                                break;

                            case TLCGenPluginElems.XMLNodeWriter:
                                break;

                            case TLCGenPluginElems.PlugMessaging:
                                (instpl as ITLCGenPlugMessaging).UpdateTLCGenMessaging();
                                break;

                            case TLCGenPluginElems.Switcher:
                                (instpl as ITLCGenSwitcher).ControllerSet += (sender, model) => { SetController(model); };
                                (instpl as ITLCGenSwitcher).FileNameSet   += (sender, model) =>
                                {
                                    TLCGenControllerDataProvider.Default.ControllerFileName = model;
                                };
                                break;
                            }
                        }
                        TLCGenPluginManager.LoadAddinSettings(instpl, part.Item2.GetType(), SettingsProvider.Default.Settings.CustomData);
                    }
                    _ApplicationParts.Add(new Tuple <TLCGenPluginElems, ITLCGenPlugin>(part.Item1, instpl as ITLCGenPlugin));
                }
                if (Generators.Count > 0)
                {
                    SelectedGenerator = Generators[0];
                }

                // Construct the ViewModel
                ControllerVM = new ControllerViewModel();

                if (!DesignMode.IsInDesignMode)
                {
                    if (Application.Current != null && Application.Current.MainWindow != null)
                    {
                        Application.Current.MainWindow.Closing += new CancelEventHandler(MainWindow_Closing);
                    }
                }

#if !DEBUG
                Application.Current.DispatcherUnhandledException += (o, e) =>
                {
                    string message = "Er is een onverwachte fout opgetreden.\n\n";
                    if (TLCGenControllerDataProvider.Default.Controller != null)
                    {
                        try
                        {
                            string t = TLCGenControllerDataProvider.Default.ControllerFileName;
                            if (string.IsNullOrWhiteSpace(TLCGenControllerDataProvider.Default.ControllerFileName))
                            {
                                TLCGenControllerDataProvider.Default.ControllerFileName = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "TLC_recoverysave.tlc");
                            }
                            TLCGenControllerDataProvider.Default.ControllerFileName =
                                System.IO.Path.Combine(
                                    System.IO.Path.GetDirectoryName(TLCGenControllerDataProvider.Default.ControllerFileName),
                                    DateTime.Now.ToString("yyyyMMdd-HHmmss-", System.Globalization.CultureInfo.InvariantCulture) +
                                    System.IO.Path.GetFileName(TLCGenControllerDataProvider.Default.ControllerFileName));
                            TLCGenControllerDataProvider.Default.SaveController();
                            message += "De huidige regeling is hier opgeslagen:\n" + TLCGenControllerDataProvider.Default.ControllerFileName + "\n\n";
                            if (t != null)
                            {
                                TLCGenControllerDataProvider.Default.ControllerFileName = t;
                            }
                        }
                        catch
                        {
                        }
                    }
                    message += "Gelieve dit probleem inclusief onderstaande details doorgeven aan de ontwikkelaar:\n\n";
                    var win = new TLCGen.Dialogs.UnhandledExceptionWindow();
                    win.DialogTitle          = "Onverwachte fout in TLCGen";
                    win.DialogMessage        = message;
                    win.DialogExpceptionText = e.Exception.ToString();
                    win.ShowDialog();
                };
#endif
            }
            catch (Exception e)
            {
                TLCGenSplashScreenHelper.Hide();

                string message = "Er is een onverwachte fout opgetreden.\n\n";
                message += "Gelieve dit probleem inclusief onderstaande details doorgeven aan de ontwikkelaar:\n\n";
                var win = new UnhandledExceptionWindow
                {
                    DialogTitle          = "Onverwachte fout in TLCGen",
                    DialogMessage        = message,
                    DialogExpceptionText = e.ToString()
                };
                win.ShowDialog();
            }

            Directory.SetCurrentDirectory(tmpCurDir);

#if !DEBUG
            // Find out if there is a newer version available via Wordpress REST API
            Task.Run(() =>
            {
                // clean potential old data
                var key      = Registry.CurrentUser.OpenSubKey("Software", true);
                var sk1      = key?.OpenSubKey("CodingConnected e.U.", true);
                var sk2      = sk1?.OpenSubKey("TLCGen", true);
                var tempFile = (string)sk2?.GetValue("TempInstallFile", null);
                if (tempFile != null)
                {
                    if (File.Exists(tempFile))
                    {
                        File.Delete(tempFile);
                    }
                    sk2?.DeleteValue("TempInstallFile");
                }

                var webRequest = WebRequest.Create(@"https://codingconnected.eu/wp-json/wp/v2/pages/1105");
                webRequest.UseDefaultCredentials = true;
                using (var response = webRequest.GetResponse())
                    using (var content = response.GetResponseStream())
                        if (content != null)
                        {
                            using (var reader = new StreamReader(content))
                            {
                                var strContent       = reader.ReadToEnd().Replace("\n", "");
                                var jsonDeserializer = new JavaScriptSerializer();
                                var deserializedJson = jsonDeserializer.Deserialize <dynamic>(strContent);
                                if (deserializedJson == null)
                                {
                                    return;
                                }
                                var contentData = deserializedJson["content"];
                                if (contentData == null)
                                {
                                    return;
                                }
                                var renderedData = contentData["rendered"];
                                if (renderedData == null)
                                {
                                    return;
                                }
                                var data = renderedData as string;
                                if (data == null)
                                {
                                    return;
                                }
                                var all       = data.Split('\r');
                                var tlcgenVer = all.FirstOrDefault(v => v.StartsWith("TLCGen="));
                                if (tlcgenVer == null)
                                {
                                    return;
                                }
                                var oldvers = Assembly.GetEntryAssembly().GetName().Version.ToString().Split('.');
                                var newvers = tlcgenVer.Replace("TLCGen=", "").Split('.');
                                bool newer  = false;
                                if (oldvers.Length > 0 && oldvers.Length == newvers.Length)
                                {
                                    for (int i = 0; i < newvers.Length; i++)
                                    {
                                        var o = int.Parse(oldvers[i]);
                                        var n = int.Parse(newvers[i]);
                                        if (o > n)
                                        {
                                            break;
                                        }
                                        if (n > o)
                                        {
                                            newer = true;
                                            break;
                                        }
                                    }
                                }
                                if (newer)
                                {
                                    DispatcherHelper.CheckBeginInvokeOnUI(() =>
                                    {
                                        var w = new NewVersionAvailableWindow(tlcgenVer.Replace("TLCGen=", ""));
                                        w.ShowDialog();
                                    });
                                }
                            }
                        }
            });
#endif
        }
Esempio n. 24
0
 public Assembly WithMatchingChipAndGenerator(Element element)
 {
     Chips.Add(element);
     Generators.Add(element);
     return(this);
 }
Esempio n. 25
0
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum32 <EventType>(br.Position + 8);

                switch (type)
                {
                case EventType.Light:
                    var light = new Event.Light(br);
                    Lights.Add(light);
                    return(light);

                case EventType.Sound:
                    var sound = new Event.Sound(br);
                    Sounds.Add(sound);
                    return(sound);

                case EventType.SFX:
                    var sfx = new Event.SFX(br);
                    SFXs.Add(sfx);
                    return(sfx);

                case EventType.WindSFX:
                    var windSFX = new Event.WindSFX(br);
                    WindSFXs.Add(windSFX);
                    return(windSFX);

                case EventType.Treasure:
                    var treasure = new Event.Treasure(br);
                    Treasures.Add(treasure);
                    return(treasure);

                case EventType.Generator:
                    var generator = new Event.Generator(br);
                    Generators.Add(generator);
                    return(generator);

                case EventType.Message:
                    var message = new Event.Message(br);
                    Messages.Add(message);
                    return(message);

                case EventType.ObjAct:
                    var objAct = new Event.ObjAct(br);
                    ObjActs.Add(objAct);
                    return(objAct);

                case EventType.SpawnPoint:
                    var spawnPoint = new Event.SpawnPoint(br);
                    SpawnPoints.Add(spawnPoint);
                    return(spawnPoint);

                case EventType.MapOffset:
                    var mapOffset = new Event.MapOffset(br);
                    MapOffsets.Add(mapOffset);
                    return(mapOffset);

                case EventType.Navmesh:
                    var navmesh = new Event.Navmesh(br);
                    Navmeshes.Add(navmesh);
                    return(navmesh);

                case EventType.Environment:
                    var environment = new Event.Environment(br);
                    Environments.Add(environment);
                    return(environment);

                case EventType.PseudoMultiplayer:
                    var pseudoMultiplayer = new Event.PseudoMultiplayer(br);
                    PseudoMultiplayers.Add(pseudoMultiplayer);
                    return(pseudoMultiplayer);

                default:
                    throw new NotImplementedException($"Unsupported event type: {type}");
                }
            }
            public void Add(IMsbEvent item)
            {
                switch (item)
                {
                case Event.Light e:
                    Lights.Add(e);
                    break;

                case Event.Sound e:
                    Sounds.Add(e);
                    break;

                case Event.SFX e:
                    SFXs.Add(e);
                    break;

                case Event.WindSFX e:
                    WindSFXs.Add(e);
                    break;

                case Event.Treasure e:
                    Treasures.Add(e);
                    break;

                case Event.Generator e:
                    Generators.Add(e);
                    break;

                case Event.Message e:
                    Messages.Add(e);
                    break;

                case Event.ObjAct e:
                    ObjActs.Add(e);
                    break;

                case Event.SpawnPoint e:
                    SpawnPoints.Add(e);
                    break;

                case Event.MapOffset e:
                    MapOffsets.Add(e);
                    break;

                case Event.Navmesh e:
                    Navmeshes.Add(e);
                    break;

                case Event.Environment e:
                    Environments.Add(e);
                    break;

                case Event.PseudoMultiplayer e:
                    PseudoMultiplayers.Add(e);
                    break;

                default:
                    throw new ArgumentException(
                              message: "Item is not recognized",
                              paramName: nameof(item));
                }
            }
Esempio n. 27
0
            internal override Event ReadEntry(BinaryReaderEx br)
            {
                EventType type = br.GetEnum32 <EventType>(br.Position + 0xC);

                switch (type)
                {
                case EventType.Treasure:
                    var treasure = new Event.Treasure(br);
                    Treasures.Add(treasure);
                    return(treasure);

                case EventType.Generator:
                    var generator = new Event.Generator(br);
                    Generators.Add(generator);
                    return(generator);

                case EventType.ObjAct:
                    var objAct = new Event.ObjAct(br);
                    ObjActs.Add(objAct);
                    return(objAct);

                case EventType.MapOffset:
                    var mapOffset = new Event.MapOffset(br);
                    MapOffsets.Add(mapOffset);
                    return(mapOffset);

                case EventType.WalkRoute:
                    var walkRoute = new Event.WalkRoute(br);
                    WalkRoutes.Add(walkRoute);
                    return(walkRoute);

                case EventType.GroupTour:
                    var groupTour = new Event.GroupTour(br);
                    GroupTours.Add(groupTour);
                    return(groupTour);

                case EventType.Event17:
                    var event17 = new Event.Event17(br);
                    Event17s.Add(event17);
                    return(event17);

                case EventType.Event18:
                    var event18 = new Event.Event18(br);
                    Event18s.Add(event18);
                    return(event18);

                case EventType.Event20:
                    var event20 = new Event.Event20(br);
                    Event20s.Add(event20);
                    return(event20);

                case EventType.Event21:
                    var event21 = new Event.Event21(br);
                    Event21s.Add(event21);
                    return(event21);

                case EventType.PartsGroup:
                    var partsGroup = new Event.PartsGroup(br);
                    PartsGroups.Add(partsGroup);
                    return(partsGroup);

                case EventType.Event23:
                    var event23 = new Event.Event23(br);
                    Event23s.Add(event23);
                    return(event23);

                case EventType.AutoDrawGroup:
                    var autoDrawGroup = new Event.AutoDrawGroup(br);
                    AutoDrawGroups.Add(autoDrawGroup);
                    return(autoDrawGroup);

                case EventType.Other:
                    var other = new Event.Other(br);
                    Others.Add(other);
                    return(other);

                default:
                    throw new NotImplementedException($"Unimplemented model type: {type}");
                }
            }
Esempio n. 28
0
        public MoonstonePowerGeneratorAddon(bool link)
        {
            AddonComponent c = new AddonComponent(39759);

            c.Hue = 2955;
            AddComponent(c, 0, 0, 0);

            c     = new AddonComponent(39759);
            c.Hue = 2955;
            AddComponent(c, -1, 0, 0);

            c     = new AddonComponent(39759);
            c.Hue = 2955;
            AddComponent(c, 1, 0, 0);

            c     = new AddonComponent(39759);
            c.Hue = 2955;
            AddComponent(c, 0, -1, 0);

            c     = new AddonComponent(39759);
            c.Hue = 2955;
            AddComponent(c, 0, 1, 0);

            c     = new AddonComponent(39818);
            c.Hue = 2955;
            AddComponent(c, -1, -1, 0);

            c     = new AddonComponent(39818);
            c.Hue = 2955;
            AddComponent(c, -1, 1, 0);

            c     = new AddonComponent(39818);
            c.Hue = 2955;
            AddComponent(c, 1, -1, 0);

            c     = new AddonComponent(39818);
            c.Hue = 2955;
            AddComponent(c, 1, 1, 0);

            Activator1 = new InternalComponent(40158);
            Activator2 = new InternalComponent(40203);

            AddComponent(Activator1, 0, -1, 5);
            AddComponent(Activator2, 0, 1, 5);

            AddComponent(new LocalizedAddonComponent(40155, 1156623), 1, 0, 5);
            AddComponent(new LocalizedAddonComponent(40155, 1156623), -1, 0, 5);

            AddComponent(new LocalizedAddonComponent(40156, 1156628), -1, 0, 10);
            AddComponent(new LocalizedAddonComponent(40156, 1156628), 1, 0, 10);

            //AddComponent(new LocalizedAddonComponent(40147, 1124171), 0, 0, 5);
            AddComponent(new LocalizedAddonComponent(40157, 1124171), 0, 0, 20);

            Generator = new MoonstonePowerGenerator(this);

            Link = link;

            if (link)
            {
                Generators.Add(this);
            }
        }
Esempio n. 29
0
        public TLCGenPluginManager(string pluginpath)
        {
            try
            {
                if (Directory.Exists(pluginpath))
                {
                    // Find all Generator DLL's
                    foreach (String file in Directory.GetFiles(pluginpath))
                    {
                        if (Path.GetExtension(file).ToLower() == ".dll")
                        {
                            // Find and loop all types from the assembly
                            var assemblyInstance = Assembly.LoadFrom(file);
                            var types            = assemblyInstance.GetTypes();
                            var bFound           = false;
                            foreach (Type t in types)
                            {
                                // Find TLCGenPluginAttribute attribute, and if found, continue
                                var attr = (TLCGenPluginAttribute)Attribute.GetCustomAttribute(t, typeof(TLCGenPluginAttribute));
                                if (attr != null)
                                {
                                    var plugin = Activator.CreateInstance(t);

                                    if ((attr.PluginElements & TLCGenPluginElems.Generator) == TLCGenPluginElems.Generator)
                                    {
                                        Generators.Add(plugin as ITLCGenGenerator);
                                    }

                                    if ((attr.PluginElements & TLCGenPluginElems.Importer) == TLCGenPluginElems.Importer)
                                    {
                                        Importers.Add(plugin as ITLCGenImporter);
                                    }

                                    if ((attr.PluginElements & TLCGenPluginElems.MenuControl) == TLCGenPluginElems.MenuControl)
                                    {
                                        MenuItems.Add(plugin as ITLCGenMenuItem);
                                    }

                                    if ((attr.PluginElements & TLCGenPluginElems.TabControl) == TLCGenPluginElems.TabControl)
                                    {
                                        TabItems.Add(plugin as ITLCGenTabItem);
                                    }

                                    if ((attr.PluginElements & TLCGenPluginElems.ToolBarControl) == TLCGenPluginElems.ToolBarControl)
                                    {
                                        TabItems.Add(plugin as ITLCGenTabItem);
                                    }

                                    bFound = true;
                                }
                            }
                            if (!bFound)
                            {
                                //#if !DEBUG
                                System.Windows.MessageBox.Show($"Library {file} wordt niet herkend als TLCGen addin.");

                                //#endif
                            }
                        }
                    }
                }
                else
                {
                }
            }
            catch
            {
                throw new NotImplementedException();
            }
        }
Esempio n. 30
0
 public Assembly WithGenerator(Element chip)
 {
     Generators.Add(chip);
     return(this);
 }