Beispiel #1
0
        static void Main(string[] args)
        {
            SEMod.BeginPrototype();
            Console.Write("Enter a test player name: ");
            SEMod.playerName = Console.ReadLine();
            Console.WriteLine();
            Console.WriteLine();
            Player JoinedPlayer = new Player();

            JoinedPlayer.playerName = SEMod.playerName;
            JoinedPlayer.UID        = 13836692456;
            JoinedPlayer.IP         = System.Net.IPAddress.Loopback.ToString();
            Vector3 Location = new Vector3();

            Location.x = 0;
            Location.y = 100;
            Location.z = 432;
            JoinedPlayer.Location.Add(Location);
            JoinedPlayer.Balance = 500;
            JoinedPlayer.Ping    = 41;
            SEMod.addBots(18);
            SpaceEngineers.onServerJoinHandler(JoinedPlayer);
            SpaceEngineers.CommandHandler(true);
            SEMod.EndPrototype();
        }
Beispiel #2
0
        /// <summary>
        /// Creates an instance of <see cref="MDKOptions" />
        /// </summary>
        public MDKOptions()
        {
            _spaceEngineers = new SpaceEngineers();

            ((MDKOptionsControl)Child).Options = this;
            _gameBinPath = _spaceEngineers.GetInstallPath("Bin64");
            _outputPath  = _spaceEngineers.GetDataPath("IngameScripts", "local");
        }
        public static async Task Update(string whitelistCacheFileName, string output)
        {
            var api = await LoadAsync(whitelistCacheFileName);

            var spaceEngineers  = new SpaceEngineers();
            var typeDefinitions = await TypeDefinitions.LoadAsync(spaceEngineers.GetInstallPath("Content\\Data"));

            await api.SaveAsync(typeDefinitions, output);
        }
Beispiel #4
0
        public SpaceEngineersText()
        {
            var spaceEngineers = new SpaceEngineers();
            var document       = XDocument.Load(spaceEngineers.GetInstallPath(@"Content\Data\Localization\MyTexts.resx"));
            var stringElements = document.XPathSelectElements(@"root/data");

            foreach (var element in stringElements)
            {
                _texts[(string)element.Attribute("name")] = (string)element.Element("value");
            }
        }
Beispiel #5
0
 public static void addBots(int Amount)
 {
     for (int BotPlayer = 0; BotPlayer < Amount; BotPlayer++)
     {
         Player Bot = new Player();
         Bot.playerName = "Bot #" + (BotPlayer + 1);
         Bot.UID        = 13836692457 + BotPlayer;
         Bot.Ping       = 1;
         Bot.IP         = System.Net.IPAddress.Loopback.ToString();
         SpaceEngineers.onServerJoinHandler(Bot);
     }
 }
        public async Task Scan(string whitelistCacheFileName)
        {
            await Task.Run(() =>
            {
                var whitelist      = Whitelist.Load(whitelistCacheFileName);
                var spaceEngineers = new SpaceEngineers();
                var installPath    = Path.Combine(spaceEngineers.GetInstallPath(), "bin64");
                MDKUtilityFramework.Load(installPath);
                var dllFiles = Directory.EnumerateFiles(installPath, "*.dll", SearchOption.TopDirectoryOnly)
                               .ToList();

                foreach (var dllFile in dllFiles)
                {
                    Visit(whitelist, dllFile);
                }

                foreach (var assemblyGroup in _members.GroupBy(m => m.DeclaringType.Assembly))
                {
                    var assemblyPath = new Uri(assemblyGroup.Key.CodeBase).LocalPath;
                    var xmlFileName  = Path.ChangeExtension(assemblyPath, "xml");
                    XDocument documentation;
                    if (File.Exists(xmlFileName))
                    {
                        documentation = XDocument.Load(xmlFileName);
                    }
                    else
                    {
                        documentation = null;
                    }
                    foreach (var typeGroup in assemblyGroup.GroupBy(m => m.DeclaringType))
                    {
                        var typeEntry = ApiEntry.Create(typeGroup.Key, documentation);
                        _entries.Add(typeEntry);
                        foreach (var member in typeGroup)
                        {
                            var entry = ApiEntry.Create(member, documentation);
                            _entries.Add(entry);
                        }
                    }
                }

                foreach (var entry in _entries)
                {
                    entry.ResolveLinks(_entries);
                }
            });
        }
        public static async Task <ProgrammableBlockApi> LoadAsync(string whitelistCacheFileName)
        {
            var api = new ProgrammableBlockApi();
            await Task.Run(() =>
            {
                var members        = new List <MemberInfo>();
                var spaceEngineers = new SpaceEngineers();
                var installPath    = Path.Combine(spaceEngineers.GetInstallPath(), "bin64");
                MDKUtilityFramework.Load(installPath);
                var dllFiles = Directory.EnumerateFiles(installPath, "*.dll", SearchOption.TopDirectoryOnly)
                               .ToList();
                foreach (var file in dllFiles)
                {
                    LoadAssembly(file);
                }
                //var assemblies = dllFiles.Select(LoadAssembly).Where(a => a != null).ToList();
                var assemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
                var whitelist  = Whitelist.Load(whitelistCacheFileName);
                api._whitelist = whitelist;

                foreach (var assembly in assemblies)
                {
                    Visit(whitelist, assembly, members);
                }

                // Hack. I'm getting duplicated entries and atm I cannot be bothered to do a proper check
                // for why...
                var visitedMembers = new HashSet <MemberInfo>();

                foreach (var assemblyGroup in members.GroupBy(m => m.GetAssembly()))
                {
                    foreach (var typeGroup in assemblyGroup.GroupBy(m => m.DeclaringType))
                    {
                        if (typeGroup.Key == null)
                        {
                            foreach (var type in typeGroup)
                            {
                                var entry = api.GetEntry(type);
                                if (!api._entries.Contains(entry))
                                {
                                    api._entries.Add(entry);
                                }
                            }

                            continue;
                        }

                        var typeEntry = api.GetEntry(typeGroup.Key);
                        if (typeEntry != null)
                        {
                            if (!visitedMembers.Add(typeEntry.Member))
                            {
                                continue;
                            }
                            if (!api._entries.Contains(typeEntry))
                            {
                                api._entries.Add(typeEntry);
                            }
                            foreach (var member in typeGroup)
                            {
                                var entry = api.GetEntry(member);
                                if (entry != null)
                                {
                                    if (!visitedMembers.Add(member))
                                    {
                                        continue;
                                    }
                                    api._entries.Add(entry);
                                }
                            }
                        }
                    }
                }

                foreach (var entry in api.Entries)
                {
                    entry.ResolveLinks();
                }
            });

            return(api);
        }
 /// <summary>
 /// Creates an instance of <see cref="IngameScriptWizard"/>
 /// </summary>
 public IngameScriptWizard()
 {
     _spaceEngineers = new SpaceEngineers();
 }
Beispiel #9
0
 // getItems()
 /// <summary>
 /// This function gets the list of Space Engineers game items.
 /// </summary>
 /// <returns>Space Engineers Items Array.</returns>
 public static string[] getItems()
 {
     return(SpaceEngineers.getItems());
 }