Esempio n. 1
0
        public static Engine LoadEngine(NAnt.Core.FrameworkInfo framework) {
            //System.AppDomainSetup myDomainSetup = new System.AppDomainSetup();
            //myDomainSetup.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
            //myDomainSetup.ApplicationName = "MSBuild";

            //string tempFile = Path.GetTempFileName();
            //using (StreamWriter sw = File.CreateText(tempFile))
            //{
            //    sw.WriteLine(String.Format(
            //        "<?xml version='1.0'?><configuration><runtime>"
            //        + "<assemblyBinding xmlns='urn:schemas-microsoft-com:asm.v1'>"
            //        + "<dependentAssembly><assemblyIdentity name='Microsoft.Build.Framework' publicKeyToken='b03f5f7f11d50a3a' culture='neutral'/><bindingRedirect oldVersion='0.0.0.0-99.9.9.9' newVersion='{0}'/></dependentAssembly>"
            //        + "<dependentAssembly><assemblyIdentity name='Microsoft.Build.Engine' publicKeyToken='b03f5f7f11d50a3a' culture='neutral'/><bindingRedirect oldVersion='0.0.0.0-99.9.9.9' newVersion='{0}'/></dependentAssembly>"
            //        + "</assemblyBinding></runtime></configuration>",
            //        new Version(framework.Version.Major, framework.Version.Minor, 0, 0)));
            //}

            //myDomainSetup.ConfigurationFile = tempFile;// AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

            //var executionAD = AppDomain.CreateDomain(myDomainSetup.ApplicationName,
            //    AppDomain.CurrentDomain.Evidence, myDomainSetup);
            //AppDomain.CurrentDomain.AssemblyLoad += new AssemblyLoadEventHandler(CurrentDomain_AssemblyLoad);
            //executionAD.AssemblyLoad += new AssemblyLoadEventHandler(executionAD_AssemblyLoad);

            //File.Delete(tempFile);

            //Loader l = (Loader)executionAD.CreateInstanceAndUnwrap(typeof(Loader).Assembly.FullName, typeof(Loader).FullName);
            Loader l = new Loader();
            l.framework = framework;
            //executionAD.DoCallBack(new CrossAppDomainDelegate(l.DoLoad));
            l.DoLoad();
            return l.engine;            
        }
Esempio n. 2
0
 private static void InitLoader()
 {
     if (__Loader == null)
         __Loader = (Loader)MonoBehaviour.FindObjectsOfType(typeof(Loader)).FirstOrDefault();
     if (__Loader == null)
         __Loader = ((GameObject)Instantiate(Resources.Load("loader", typeof(GameObject)))).GetComponent<Loader>();
 }   
 protected void Page_Load(object sender, EventArgs e)
 {
     loader = new Loader();
     scripts = new CommonPage();
     if (IsPostBack)
         LoadGames();
 }
Esempio n. 4
0
        public async Task ReaderModel()
        {
            using (var con = new SqlConnection(connectionString))
            {
                var sproc = SimulatedSelectStatement.Create();

                var cmd = sproc.Build(con);
                await con.OpenAsync();

                var reader = await cmd.ExecuteReaderAsync();

                Assert.IsTrue(reader.Read());

                var loader = new Loader<SelectData>();
                var obj = loader.Model(reader);

                Assert.IsNotNull(obj);
                Assert.AreEqual(sproc.TestInt, obj.Identifier);
                Assert.AreEqual(sproc.TestBigInt, obj.BigInt);
                Assert.AreEqual(sproc.TestBit, obj.Bit);
                Assert.AreEqual(sproc.TestDate.Value.Date, obj.Date.Date);
                Assert.AreEqual(sproc.TestDateTime.Value.Date, obj.DateTime.Date);
                Assert.AreEqual(sproc.TestDateTime2.Value.Date, obj.DateTime2.Date);
                Assert.AreEqual(sproc.TestDecimal, obj.Decimal);
                Assert.AreEqual(sproc.TestFloat, obj.Float);
                Assert.AreEqual(Math.Round((decimal)sproc.TestMoney, 4), obj.Money);
                Assert.AreEqual(sproc.TestNChar, obj.NChar.ToString());
                Assert.AreEqual(sproc.TestNText, obj.NText);
                Assert.AreEqual(sproc.TestText, obj.Text);
                CollectionAssert.AreEqual(sproc.TestBinary, obj.Binary);
                CollectionAssert.AreEqual(sproc.TestImage, obj.Image);
                Assert.AreEqual(sproc.TestGuid, obj.Unique);
            }
        }
        public void SetUp()
        {
            skype = MockRepository.GenerateMock<ISkype>();
            chat = MockRepository.GenerateMock<IChat>();
            userCollection = MockRepository.GenerateMock<IUserCollection>();
            client = MockRepository.GenerateMock<IClient>();
            user = MockRepository.GenerateMock<IUser>();
            configurationLoader = new ConfigurationLoader();
            httpGet = MockRepository.GenerateMock<IHttpGet>();
            chats = MockRepository.GenerateMock<IChats>();
            messengerClient = new MessengerClient(skype, userCollection, chats);

            buildCollection = MockRepository.GenerateMock<IBuildCollection>();
            loader = new Loader(messengerClient, buildCollection);
            stopper = MockRepository.GenerateMock<IStopper>();
            controller = new Controller();
            controller.Container.Kernel.AddComponentInstance<ISkype>(skype);
            controller.Container.Kernel.AddComponentInstance<IUserCollection>(userCollection);
            controller.Container.Kernel.AddComponentInstance<IStopper>(stopper);
            controller.CcTrayUrl = "http://localhost/Cctray.xml";
            controller.CcTrayUsername = "******";
            controller.CcTrayPassword = "******";
            controller.HttpTimeout = 30;
            controller.Configuration = @"RealUsers.xml";
        }
Esempio n. 6
0
        public EquipmentTemplate(Loader l)
        {
            ID = l.ID;

            foreach (Instruction i in l.Parse())
                Load(l, i);
        }
Esempio n. 7
0
		public void Load ()
		{
			Assembly assembly = Assembly.GetExecutingAssembly ();
			var appDomainSetup = new AppDomainSetup {
				ApplicationBase = Path.GetDirectoryName(assembly.Location)
			};
			this.testDomain = AppDomain.CreateDomain ("TestDomain", null, appDomainSetup);
			this.testDomain.AssemblyResolve += (s, e) => {
				return Assembly.LoadFrom (e.Name);
			};
			this.loader = (Loader) this.testDomain.CreateInstanceAndUnwrap (assembly.Location, typeof (Loader).FullName);

			using (var rewritten = new MemoryStream ()) {
				RewriterOptions options = new RewriterOptions {
					ForceAssemblyRename = "RewrittenForTest",
					Assembly = assembly.Location,
					OutputFile = rewritten,
					ThrowOnFailure = true,
					WritePdbFile = false,
				};
				Rewriter.Rewrite (options);
				byte [] bytes = rewritten.ToArray ();
				this.loader.Load (bytes);
			}
		}
Esempio n. 8
0
 IWorld CreateWorld(params string[] args)
 {
     var loader = new Loader();
     loader.AddLevel("Demo", "Level1", () => new DemoCompetitions.Level1());
     loader.AddLevel("RoboMovies", "Level1", () => new RMCompetitions.Level1());
     return loader.Load(args);
 }
Esempio n. 9
0
        public void Initialize()
        {
            Application = new Application(ApplicationName);
            Engine = new Engine();
            Loader = new Loader(Engine, Application);

            Dependencies = new List<string>();
            Root = new NullContext(Engine, Application, new string[0]);

            var slnPath = Environment.CurrentDirectory;
            while (Directory.Exists(slnPath) && !File.Exists(Path.Combine(slnPath, "Prexonite.sln")))
                slnPath = Path.Combine(slnPath, @".." + Path.DirectorySeparatorChar);

            if (Directory.Exists(slnPath))
            {
                var psrTestsPath =
                    Path.GetFullPath(Path.Combine(slnPath, @"PrexoniteTests\psr-tests"));
                Console.WriteLine("inferred psr-tests path: " + psrTestsPath, "Engine.Path");
                Engine.Paths.Add(psrTestsPath);

                var prxPath = Path.GetFullPath(Path.Combine(slnPath, @"Prx"));
                Console.WriteLine("inferred prx path: " + prxPath, "Engine.Path");
                Engine.Paths.Add(prxPath);
            }
            else
            {
                Console.WriteLine("CANNOT INFER solution PATH: " + slnPath, "Engine.Path");
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Maak een spelview aan.
        /// </summary>
        /// <param name="loader">desbetreffend spel</param>
        /// <param name="spelers"></param>
        /// <param name="main"></param>
        public Game(Loader loader, Dictionary<Speler, ISpeler> spelers, MainWindow main)
        {
            InitializeComponent();

            foreach (var speler in spelers.Keys.ToList())
            {
                if (spelers[speler] == null)
                    spelers[speler] = this;
            }

            MainWindow = main;

            _loader = loader;
            _logicSpel = loader.Spel;
            _processSpel = new Process.Spel(_logicSpel, this, spelers);

            _statischeLaag = new StatischeLaag(Spelbord, loader.Kaart);

            // Inladen moet later voor het opzoeken van veldposities
            Loaded += LaadDynamischeLaag;
            MouseMove += OnMove;

            Closing += OnClosing;

            _userControls = new UserInterface(this, _logicSpel.Spelers) {HorizontalAlignment = HorizontalAlignment.Left };
            GameHolder.Children.Add(_userControls);
        }
Esempio n. 11
0
        public void TestMeta()
        {
            const string input1 =
                @"
Name fixture\storage\meta;
Description ""Contains dummy meta information for a unit test"";
Author SealedSun;

Import 
{
    System,
    System::Text
};

Is AsFastAsPossible;

Add System::Xml To Imports;
";
            var ldr = new Loader(engine, target);
            ldr.LoadFromString(input1);
            Assert.AreEqual(0, ldr.ErrorCount);

            var stored = ldr.Options.TargetApplication.StoreInString();
            Console.WriteLine(stored);

            var reldr = new Loader(engine, new Application());
            reldr.LoadFromString(stored);
            var restored = reldr.Options.TargetApplication.StoreInString();

            Assert.That(stored,
                Is.EqualTo(stored).Using((IEqualityComparer<string>)Engine.DefaultStringComparer),
                _storedShouldBeEqual);
        }
Esempio n. 12
0
        public Skeleton(Loader l)
        {
            ID = l.ID;

            foreach (Instruction i in l.Parse())
                Load(l, i);
        }
Esempio n. 13
0
		public static void Main(string [] args)
		{
            var services = new ServiceContainer();
            if (args.Length == 0)
			{
                services.AddService(typeof(IServiceFactory), new ServiceFactory(services));
                services.AddService(typeof(IDialogFactory), new WindowsFormsDialogFactory(services));
                services.AddService(typeof(IRegistryService), new WindowsFormsRegistryService());
                services.AddService(typeof(ISettingsService), new WindowsFormsSettingsService(services));
                var interactor = new MainFormInteractor(services);
                interactor.Run();
            }
			else
			{
                var host = NullDecompilerHost.Instance;
                var listener = NullDecompilerEventListener.Instance;

                services.AddService(typeof (DecompilerEventListener), listener);
                services.AddService(typeof(IRegistryService), new WindowsFormsRegistryService());
                services.AddService(typeof(IConfigurationService), new DecompilerConfiguration());
                var ldr = new Loader(services);
				var dec = new DecompilerDriver(ldr, services);
				dec.Decompile(args[0]);
			}
		}
Esempio n. 14
0
		protected Program RewriteFile(string relativePath, Address addrBase)
		{
            var sc = new ServiceContainer();
            var config = new FakeDecompilerConfiguration();
            sc.AddService<IConfigurationService>(config);
            sc.AddService<DecompilerHost>(new FakeDecompilerHost());
            sc.AddService<DecompilerEventListener>(new FakeDecompilerEventListener());
            sc.AddService<IFileSystemService>(new FileSystemServiceImpl());
            ILoader ldr = new Loader(sc);
            var program = ldr.AssembleExecutable(
                FileUnitTester.MapTestPath(relativePath),
                new X86TextAssembler(sc, new IntelArchitecture(ProcessorMode.Real)),
                addrBase);
            program.Platform = new DefaultPlatform(sc, program.Architecture);
            var ep = new EntryPoint(program.Image.BaseAddress, program.Architecture.CreateProcessorState());
            var project = new Project { Programs = { program } };
            var scan = new Scanner(
                program,
                new Dictionary<Address, ProcedureSignature>(),
                new ImportResolver(project),
                sc);
			scan.EnqueueEntryPoint(ep);
			scan.ScanImage();

			var dfa = new DataFlowAnalysis(program, new FakeDecompilerEventListener());
			dfa.AnalyzeProgram();
            return program;
		}
Esempio n. 15
0
        public void Execute(string[] args)
        {
            var pArgs = ProcessArguments(Console.Out, args);
            if (pArgs == null)
                return;

            var ldr = new Loader(services);
            object defaultTo;
            if (pArgs.TryGetValue("--default-to", out defaultTo))
            {
                ldr.DefaultToFormat = (string)defaultTo;
            }
            var dec = new DecompilerDriver(ldr, services);

            if (OverridesRequested(pArgs))
            {
                DecompileRawImage(dec, pArgs);
            }
            else if (pArgs.ContainsKey("filename"))
            {
                dec.Decompile((string)pArgs["filename"]);
            }
            else
            {
                Usage(Console.Out);
            }
        }
		public BatchingEntityLoader(IEntityPersister persister, int[] batchSizes, Loader[] loaders)
		{
			this.batchSizes = batchSizes;
			this.loaders = loaders;
			this.persister = persister;
			idType = persister.IdentifierType;
		}
Esempio n. 17
0
    void Awake() {
        // setup icons
        {
            var solutionCount = SolutionLineAngles.Length + SolutionTriangles + SolutionSquares + SolutionPentagons;
            var x = (float)(solutionCount - 1) * -IconGap / 2;
            for (int i = 0; i < solutionCount; i++) {
                GameObject newIcon = null;
                if (i < SolutionLineAngles.Length) {
                    newIcon = Instantiate(IconLinePrefab);
                } else if (i < SolutionLineAngles.Length + SolutionTriangles) {
                    newIcon = Instantiate(IconTrianglePrefab);
                } else if (i < SolutionLineAngles.Length + SolutionTriangles + SolutionSquares) {
                    newIcon = Instantiate(IconSquarePrefab);
                } else if (i < SolutionLineAngles.Length + SolutionTriangles + SolutionSquares + SolutionPentagons) {
                    newIcon = Instantiate(IconPentagonPrefab);
                }
                newIcon.transform.parent = transform;
                newIcon.transform.localPosition = new Vector3(x + i * IconGap, IconY, 10);
                if (i < SolutionLineAngles.Length) {
                    newIcon.transform.rotation = Quaternion.Euler(0, 0, SolutionLineAngles[i]);
                }
            }
        }

        loader = FindObjectOfType<Loader>();
        polygonSolver = FindObjectOfType<PolygonSolver>();
        torches = GetComponentsInChildren<Torch>();
        
        for (int i = 0; i < MAX_LINES; i++) {
            lines[i] = Instantiate(LinePrefab);
            lines[i].transform.parent = transform;
            lines[i].transform.localPosition = Vector3.zero;
            LineColliders[i] = lines[i].GetComponentInChildren<Collider2D>();
        }
    }
Esempio n. 18
0
		protected Program RewriteFile(string relativePath, Address addrBase)
		{
            sc = new ServiceContainer();
            var config = new FakeDecompilerConfiguration();
            var eventListener = new FakeDecompilerEventListener();
            sc.AddService<IConfigurationService>(config);
            sc.AddService<DecompilerHost>(new FakeDecompilerHost());
            sc.AddService<DecompilerEventListener>(eventListener);
            sc.AddService<IFileSystemService>(new FileSystemServiceImpl());
            ILoader ldr = new Loader(sc);
            var program = ldr.AssembleExecutable(
                FileUnitTester.MapTestPath(relativePath),
                new X86TextAssembler(sc, new X86ArchitectureReal()),
                addrBase);
            program.Platform = new DefaultPlatform(sc, program.Architecture);
            var ep = new ImageSymbol(program.SegmentMap.BaseAddress);
            var project = new Project { Programs = { program } };
            var scan = new Scanner(
                program,
                new ImportResolver(project, program, eventListener),
                sc);
			scan.EnqueueImageSymbol(ep, true);
			scan.ScanImage();

            var importResolver = new ImportResolver(project, program, eventListener);
            var dfa = new DataFlowAnalysis(program, importResolver, eventListener);
			dfa.AnalyzeProgram();
            return program;
		}
Esempio n. 19
0
 static void Main()
 {
     Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       loader = new Loader();
       Application.Run(loader);
 }
Esempio n. 20
0
 public Terrain(vec2 pos,Loader loader,ModelTexture texture)
 {
     this.texture = texture;
     Position.x = pos.x * SIZE;
     Position.y = pos.y * SIZE;
     model = generateTerrain(loader);
 }
Esempio n. 21
0
        public void LoadGame()
        {
            var loader1 = new Loader(level1);
            loader1.ToArray();

            var loader2 = new Loader(level2);
            loader2.ToArray();
        }
Esempio n. 22
0
 void Awake()
 {
     if (instance == null)
         instance = this;
     else
         DestroyImmediate(gameObject);
     DontDestroyOnLoad(gameObject);
 }
Esempio n. 23
0
 public void As_an_unknown_skype_user_I_want_to_have_an_error_message_when_configuration_is_loaded()
 {
     var skype = new Skype(makeMessageProcessor());
     var chats = new Chats(skype);
     var configurationLoader = new ConfigurationLoader();
     var loader = new Loader(new MessengerClient(skype, new UserCollection(new SKYPE4COMLib.UserCollection()), chats),new BuildCollection());
     Assert.Throws<UserNotKnowException>(() => loader.GetUserGroups(configurationLoader.Load("UnknownUserPipeline.xml")));
 }
 public BatchingCollectionInitializer(
     ICollectionPersister collectionPersister,
     int[] batchSizes,
     Loader[] loaders)
 {
     this.loaders = loaders;
     this.batchSizes = batchSizes;
     this.collectionPersister = collectionPersister;
 }
Esempio n. 25
0
        public void NoType_ThrowsException()
        {
            var path = Assembly.GetExecutingAssembly().Location;
            var loader = new Loader<IMath>();
            Action loadAction = () => loader.LoadTypeFromFiles(new[] { path }, "SubtractorMath");

            // Act & Assert
            Assert.ThrowsAny<TypeLoadException>(loadAction);
        }
Esempio n. 26
0
 public virtual void Load(Loader l, Instruction i)
 {
     switch (i.Type)
     {
         case "adn":
             Addons.Add(l.Find(i.String()).Load<AddonTemplate>());
             break;
     }
 }
Esempio n. 27
0
        public void ValidType_ReturnsType()
        {
            var path = Assembly.GetExecutingAssembly().Location;
            var loader = new Loader<IMath>();
            var type = loader.LoadTypeFromFiles(new[] { path }, "AdderMath");

            // Assert
            Assert.IsType<AdderMath>(type);
        }
Esempio n. 28
0
        public void NoType_ThrowsException()
        {
            var assembly = Assembly.Load("Maverick.TypeLoader.Tests");
            var loader = new Loader<IMath>();
            Action loadAction = () => loader.LoadTypeFromAssembly(assembly, "SubtractorMath");

            // Act & Assert
            Assert.ThrowsAny<TypeLoadException>(loadAction);
        }
Esempio n. 29
0
        public void Ldr_Match()
        {
            mr.ReplayAll();

            Loader ldr = new Loader(sc);
            Assert.IsTrue(ldr.ImageHasMagicNumber(new byte[] { 0x47, 0x11 }, "4711", "0"));

            mr.VerifyAll();
        }
Esempio n. 30
0
        public void ValidType_ReturnsType()
        {
            var assembly = Assembly.Load("Maverick.TypeLoader.Tests");
            var loader = new Loader<IMath>();
            var type = loader.LoadTypeFromAssembly(assembly, "AdderMath");

            // Assert
            Assert.IsType<AdderMath>(type);
        }
        public void GivenNoFilePath_ThrowsArgumentException()
        {
            var filePath = string.Empty;

            Assert.Throws <ArgumentException>(() => Loader.Load(filePath));
        }
        public void FindsNoFile_ThrowsFileNotFoundException()
        {
            var filePath = "poo.bmp";

            Assert.Throws <FileNotFoundException>(() => Loader.Load(filePath));
        }
Esempio n. 33
0
 public EndScreen(ScreenManager _screenManager) : base(_screenManager)
 {
     font = Loader.getFont("debugtext");
     name = "end";
 }
Esempio n. 34
0
 public override StDefaultComponent SaveState()
 {
     return(Loader.SaveState(this));
 }
Esempio n. 35
0
 public long ReadInt64() => Loader.ReadInt64();
Esempio n. 36
0
 public float ReadFloat() => Loader.ReadSingle();
Esempio n. 37
0
        internal static void CheckDependenciesOfDelayedMods()
        {
            // Attempt to load mods after their dependencies have been loaded.
            // Only load and lock the delayed list if we're not already loading delayed mods.
            if (Interlocked.CompareExchange(ref Loader.DelayedLock, 1, 0) == 0)
            {
                try {
                    lock (Loader.Delayed) {
                        bool enforceTransitiveOptionalDependencies = true;
                        bool didDelayOptionalDependencies          = false;

                        for (int i = 0; i < Loader.Delayed.Count; i++)
                        {
                            Tuple <EverestModuleMetadata, Action> entry = Loader.Delayed[i];

                            if (Loader.DependenciesLoaded(entry.Item1))
                            {
                                if (enforceTransitiveOptionalDependencies &&
                                    checkIfOneOfDependenciesIsDelayedAndCanBeLoaded(entry.Item1.OptionalDependencies, new HashSet <EverestModuleMetadata>()
                                {
                                    entry.Item1
                                }))
                                {
                                    // the mod has all its dependencies loaded, but one of its optional dependencies is not loaded and can be loaded as well.
                                    // so we should wait for it to be loaded first.
                                    didDelayOptionalDependencies = true;
                                }
                                else
                                {
                                    // all dependencies are loaded, all optional dependencies are either loaded or won't load => we're good to go!
                                    Logger.Log(LogLevel.Info, "core", $"Dependencies of mod {entry.Item1} are now satisfied: loading");

                                    if (Everest.Modules.Any(mod => mod.Metadata.Name == entry.Item1.Name))
                                    {
                                        // a duplicate of the mod was loaded while it was sitting in the delayed list.
                                        Logger.Log(LogLevel.Warn, "core", $"Mod {entry.Item1.Name} already loaded!");
                                    }
                                    else
                                    {
                                        // actually load the mod.
                                        entry.Item2?.Invoke();
                                        Loader.LoadMod(entry.Item1);
                                    }
                                    Loader.Delayed.RemoveAt(i);

                                    // we now loaded an extra mod, consider all delayed mods again to deal with transitive dependencies.
                                    i = -1;
                                    didDelayOptionalDependencies = false;
                                }
                            }

                            if (i == Loader.Delayed.Count - 1 && didDelayOptionalDependencies)
                            {
                                // we considered all mods, but we delayed some of them because they had an optional dependency that "could be loaded"... yet nothing got loaded.
                                // that's probably a circular optional dependency case, so we should just reconsider everything again ignoring optional dependencies.
                                Logger.Log(LogLevel.Warn, "core", $"Mods with unsatisfied optional dependencies were delayed but never loaded (probably due to circular optional dependencies), forcing them to load!");
                                enforceTransitiveOptionalDependencies = false;

                                i = -1;
                                didDelayOptionalDependencies = false;
                            }
                        }
                    }
                } finally {
                    Interlocked.Decrement(ref Loader.DelayedLock);
                }
            }
        }
Esempio n. 38
0
 protected override void OnLoaded(IType item)
 {
     Loader.FireTypeLoaded(item);
 }
Esempio n. 39
0
 void HandleDoubleTap(Vector4 param)
 {
     Loader.Load(Loader.Scene.WelcomeScreen);
     RepositionVars.WelcomeScreenIndex = 1;
 }
Esempio n. 40
0
 public ParticleSystem(string particleFilePath) : this((JObject)Loader.load <JObject>(particleFilePath.Split('.')[0] + ".json"))
 {
 }
Esempio n. 41
0
        public ParticleSystem(JObject particleJSON)
        {
            if (!particleJSON.ContainsKey("Format") || (!particleJSON.ContainsKey("Image") && !particleJSON.ContainsKey("Sprites")))
            {
                Logger.log("Particle system did not contain necessary field(s)!  Missing" + (!particleJSON.ContainsKey("Format") ? " Format" : "") + (!particleJSON.ContainsKey("Image") ? " Image" : ""), StardewModdingAPI.LogLevel.Error);
                return;
            }
            float formatVersion;

            try
            {
                formatVersion = Convert.ToSingle(particleJSON["Format"]);
            }
            catch (FormatException)
            {
                Logger.log("Format version not given an acceptable value!  Format should be written as a version number, but was instead " + particleJSON["Format"], StardewModdingAPI.LogLevel.Error);
                return;
            }
            possibleSprites = new List <Tuple <float, Texture2D, Rectangle> >();
            colors          = new List <Tuple <float, Color, float> >();
            if (particleJSON.ContainsKey("Image"))
            {
                //Particle defined with a single image, not multiple
                string    imagePath     = particleJSON["Image"].ToString().Split('.')[0];
                Texture2D particleSheet = (Texture2D)Loader.load <Texture2D>(imagePath, imagePath + ".png");
                Rectangle particleRect;
                if (particleJSON.ContainsKey("Sprite"))
                {
                    int spriteX      = (((JObject)particleJSON["Sprite"]).ContainsKey("X") ? Convert.ToInt32(particleJSON["Sprite"]["X"]) : 0);
                    int spriteY      = (((JObject)particleJSON["Sprite"]).ContainsKey("Y") ? Convert.ToInt32(particleJSON["Sprite"]["Y"]) : 0);
                    int spriteWidth  = (((JObject)particleJSON["Sprite"]).ContainsKey("Width") ? Convert.ToInt32(particleJSON["Sprite"]["Width"]) : particleSheet.Width - spriteX);
                    int spriteHeight = (((JObject)particleJSON["Sprite"]).ContainsKey("Height") ? Convert.ToInt32(particleJSON["Sprite"]["Height"]) : particleSheet.Height - spriteY);
                    particleRect = new Rectangle(spriteX, spriteY, spriteWidth, spriteHeight);
                }
                else
                {
                    particleRect = new Rectangle(0, 0, particleSheet.Width, particleSheet.Height);
                }
                possibleSprites.Add(new Tuple <float, Texture2D, Rectangle>(1f, particleSheet, particleRect));
                totalWeight = 1f;
            }
            else
            {
                //Particle defined with multiple, weighted images
                foreach (JObject spriteObject in ((JArray)(particleJSON["Sprites"])))
                {
                    float     weight      = 1f;
                    string    imagePath   = spriteObject["Image"].ToString().Split('.')[0];
                    Texture2D spriteImage = (Texture2D)Loader.load <Texture2D>(imagePath, "Content/" + imagePath + ".png");
                    Rectangle spriteBounds;
                    if (spriteObject.ContainsKey("Weight"))
                    {
                        weight = Convert.ToSingle(spriteObject["Weight"]);
                    }
                    if (spriteObject.ContainsKey("Sprite"))
                    {
                        int spriteX      = (((JObject)spriteObject["Sprite"]).ContainsKey("X") ? Convert.ToInt32(spriteObject["Sprite"]["X"]) : 0);
                        int spriteY      = (((JObject)spriteObject["Sprite"]).ContainsKey("Y") ? Convert.ToInt32(spriteObject["Sprite"]["Y"]) : 0);
                        int spriteWidth  = (((JObject)spriteObject["Sprite"]).ContainsKey("Width") ? Convert.ToInt32(spriteObject["Sprite"]["Width"]) : spriteImage.Width - spriteX);
                        int spriteHeight = (((JObject)spriteObject["Sprite"]).ContainsKey("Height") ? Convert.ToInt32(spriteObject["Sprite"]["Height"]) : spriteImage.Height - spriteY);
                        spriteBounds = new Rectangle(spriteX, spriteY, spriteWidth, spriteHeight);
                    }
                    else
                    {
                        spriteBounds = new Rectangle(0, 0, spriteImage.Width, spriteImage.Height);
                    }
                    possibleSprites.Add(new Tuple <float, Texture2D, Rectangle>(weight, spriteImage, spriteBounds));
                    totalWeight += weight;
                }
            }
            scale                = 4f;
            range                = 2f;
            killRange            = 8f;
            count                = 4;
            longetivity          = 1200;
            minRotation          = 0f;
            maxRotation          = (float)(Math.PI * 2);
            rotationSpeed        = 0f;
            rotationAcceleration = 0f;
            spawnStaggering      = 48;
            spawnCooldown        = 0;



            if (particleJSON.ContainsKey("Scale"))
            {
                scale = Convert.ToInt32(particleJSON["Scale"]);
            }
            if (particleJSON.ContainsKey("SpawnRadius"))
            {
                range = Convert.ToSingle(particleJSON["SpawnRadius"]);
            }
            if (particleJSON.ContainsKey("KillRadius"))
            {
                killRange = Convert.ToSingle(particleJSON["KillRadius"]);
            }
            if (particleJSON.ContainsKey("Count"))
            {
                count = Convert.ToInt32(particleJSON["Count"]);
            }
            if (particleJSON.ContainsKey("Lifetime"))
            {
                longetivity = Convert.ToInt32(particleJSON["Lifetime"]);
            }
            if (particleJSON.ContainsKey("SpawnStagger"))
            {
                spawnStaggering = Convert.ToInt32(particleJSON["SpawnStagger"]);
            }
            if (particleJSON.ContainsKey("SpawnDelay"))
            {
                spawnCooldown = Convert.ToInt32(particleJSON["SpawnDelay"]);
            }

            velocities        = new Dictionary <int, float>();
            velocities[Out]   = 0;
            velocities[North] = 0;
            velocities[East]  = 0;
            velocities[Up]    = 0;
            velocities[Right] = 0;

            accelerations        = new Dictionary <int, float>();
            accelerations[Out]   = 0;
            accelerations[North] = 0;
            accelerations[East]  = 0;
            accelerations[Up]    = 0;
            accelerations[Right] = 0;

            if (particleJSON.ContainsKey("Rotation"))
            {
                if (((JObject)particleJSON["Rotation"]).ContainsKey("Min"))
                {
                    minRotation = radiansFromDegreeString(particleJSON["Rotation"]["Min"].ToString());
                }
                if (((JObject)particleJSON["Rotation"]).ContainsKey("Max"))
                {
                    maxRotation = radiansFromDegreeString(particleJSON["Rotation"]["Max"].ToString());
                }
                if (((JObject)particleJSON["Rotation"]).ContainsKey("Speed"))
                {
                    rotationSpeed = radiansFromDegreeString(particleJSON["Rotation"]["Speed"].ToString());
                }
                if (((JObject)particleJSON["Rotation"]).ContainsKey("Acceleration"))
                {
                    rotationAcceleration = radiansFromDegreeString(particleJSON["Rotation"]["Acceleration"].ToString());
                }
            }
            if (particleJSON.ContainsKey("Velocity"))
            {
                foreach (JObject velocityObject in particleJSON["Velocity"])
                {
                    int direction = directionFromString(velocityObject["Direction"].ToString().Substring(0, 1).ToLower());
                    if (direction == -1)
                    {
                        continue;
                    }
                    bool invertDirection = false;
                    if (direction > 4)
                    {
                        invertDirection = true;
                        direction       = direction % 5;
                    }
                    velocities[direction] += Convert.ToSingle(velocityObject["Speed"]) * (invertDirection ? -1 : 1);
                }
            }
            if (particleJSON.ContainsKey("Acceleration"))
            {
                foreach (JObject accelerationObject in particleJSON["Acceleration"])
                {
                    int direction = directionFromString(accelerationObject["Direction"].ToString().Substring(0, 1).ToLower());
                    if (direction == -1)
                    {
                        continue;
                    }
                    bool invertDirection = false;
                    if (direction > 4)
                    {
                        invertDirection = true;
                        direction       = direction % 5;
                    }
                    accelerations[direction] = Convert.ToSingle(accelerationObject["Acceleration"]) * (invertDirection ? -1 : 1);
                }
            }
            if (particleJSON.ContainsKey("Color"))
            {
                foreach (JObject colorObject in particleJSON["Color"])
                {
                    float colorAge = 0;
                    Color color    = (colors.Count > 0 ? colors[colors.Count - 1].Item2 : Color.White);
                    float alpha    = 1f;
                    if (colorObject.ContainsKey("Age"))
                    {
                        colorAge = Convert.ToSingle(colorObject["Age"]);
                    }
                    if (colorObject.ContainsKey("Color"))
                    {
                        if (colorObject["Color"] is JObject)
                        {
                            JObject rgbObject = (JObject)(colorObject["Color"]);
                            Logger.log("Getting color info from JObject...");
                            int r = 0;
                            int g = 0;
                            int b = 0;
                            int a = 255;
                            if (rgbObject.ContainsKey("R"))
                            {
                                r = Convert.ToInt32(rgbObject["R"]);
                            }
                            if (rgbObject.ContainsKey("G"))
                            {
                                g = Convert.ToInt32(rgbObject["G"]);
                            }
                            if (rgbObject.ContainsKey("B"))
                            {
                                b = Convert.ToInt32(rgbObject["B"]);
                            }
                            if (rgbObject.ContainsKey("A"))
                            {
                                a = Convert.ToInt32(rgbObject["A"]);
                            }
                            color = new Color(r, g, b);
                            alpha = (a / 255f);
                        }
                        else if (colorObject["Color"] is JValue && colorObject["Color"].ToString().StartsWith("#"))
                        {
                            Logger.log("Getting color info from hex string...");
                            System.Drawing.Color c = System.Drawing.ColorTranslator.FromHtml(colorObject["Color"].ToString());
                            color = new Color(c.R, c.G, c.B);
                        }
                        Logger.log("Color parsed as " + color.ToString());
                    }
                    if (colorObject.ContainsKey("Alpha"))
                    {
                        alpha = Convert.ToSingle(colorObject["Alpha"].ToString());
                    }
                    colors.Add(new Tuple <float, Color, float>(colorAge, color, alpha));
                }
            }
            particles = new List <Particle>();
        }
Esempio n. 42
0
        public async void StartUp(bool localDev, int launcherVersion, string exePath, string resourcePath, string dataPath, string[] args)
        {
            LocalDev        = localDev;
            LauncherVersion = launcherVersion;
            ExePath         = exePath;
            ResourcePath    = resourcePath;
            DataPath        = dataPath;
            Args            = args;

            if (LauncherVersion != CompatibleLauncherVersion)
            {
                MessageBox.Show("Please download the latest BardMusicPlayer.exe from https://bardmusicplayer.com",
                                "Bard Music Player Update Available",
                                MessageBoxButton.OK,
                                MessageBoxImage.Information);
                Environment.Exit(0);
            }

#if PUBLISH
            // Read Version or default values if failure.
            try
            {
                if (File.Exists(ResourcePath + @"version.json"))
                {
                    LocalVersion = File.ReadAllText(ResourcePath + @"version.json", Encoding.UTF8)
                                   .DeserializeFromJson <BmpVersion>();
                }
            }
            catch (Exception)
            {
                LocalVersion = new BmpVersion {
                    items = new List <BmpVersionItem>()
                };
            }

            var currentVersionBad = false;
            if (LocalVersion.build != 0)
            {
                Parallel.ForEach(LocalVersion.items, item =>
                {
                    if (!File.Exists(ResourcePath + item.destination) ||
                        File.Exists(ResourcePath + item.destination) && !item.sha256.ToLower()
                        .Equals(Sha256.GetChecksum(ResourcePath + item.destination).ToLower()))
                    {
                        currentVersionBad = true;
                    }
                });
                if (currentVersionBad)
                {
                    LocalVersion = new BmpVersion {
                        items = new List <BmpVersionItem>()
                    }
                }
                ;
            }

            // Fetch UpdateInfo and Versions or default values if failure.
            var remoteVersionBad = false;
            RemoteVersions = new Dictionary <string, BmpVersion>();
            try
            {
                var remoteVersionsListString = await new Downloader().GetStringFromUrl(BaseUrl + @"versionlist.json");
                var remoteVersionsList       = remoteVersionsListString.DeserializeFromJson <List <string> >();

                foreach (var remoteVersion in remoteVersionsList)
                {
                    try
                    {
                        var remoteVersionString = await new Downloader().GetStringFromUrl(BaseUrl + remoteVersion + "/version.json");
                        RemoteVersions.Add(remoteVersion, remoteVersionString.DeserializeFromJson <BmpVersion>());
                    }
                    catch (Exception)
                    {
                        // Failed to grab a specific remote version.json. ignore.
                        remoteVersionBad = true;
                    }
                }
            }
            catch (Exception)
            {
                // Failed to grab the list of remote versions available. ignore.
                remoteVersionBad = true;
            }

            // sort the list of remote versions first by 'if !beta', then 'latest build', then convert back to dictionary
            RemoteVersions =
                RemoteVersions.OrderBy(version => version.Value.beta)
                .ThenByDescending(version => version.Value.build)
                .ToDictionary <KeyValuePair <string, Util.BmpVersion>, string, Util.BmpVersion>(pair => pair.Key, pair => pair.Value);

            // 1. remote version was not able to be read, try and load local
            // 2. remote version was able to be read but it's same as local, try and load local
            if ((remoteVersionBad && !currentVersionBad) || (RemoteVersions.First().Value.build == LocalVersion.build))
            {
                await Loader.Load(LocalVersion, ExePath, ResourcePath, DataPath, Args);

                return;
            }

            // 1. we don't have a current version
            // 2. remote version shows an update
            if (currentVersionBad || (RemoteVersions.First().Value.build > LocalVersion.build))
            {
                MainWindow mainWindow = new MainWindow();
                mainWindow.ProvideVersions(LocalVersion, RemoteVersions);

                mainWindow.OnDownloadRequested += new EventHandler <BmpDownloadEvent>((object sender, BmpDownloadEvent e) =>
                {
                    var key     = e.Key;
                    var version = e.Version;
                    var item    = e.Item;

                    string sourceUrl = $"{BaseUrl}{key}/{item.source}";
                    string destFPath = ResourcePath + item.destination;

                    Downloader downloader = new Downloader();

                    try
                    {
                        Debug.WriteLine($"Attempting to download {sourceUrl} and save to {destFPath}.");

                        var dlTask = downloader.GetFileFromUrl(sourceUrl);
                        dlTask.Wait();
                        byte[] file = dlTask.Result;
                        if (Sha256.GetChecksum(file).Equals(item.sha256))
                        {
                            Directory.CreateDirectory(ResourcePath);
                            File.WriteAllBytes(destFPath, file);
                        }
                    }
                    catch (Exception)
                    {
                        // unable to download file, show message to the user and throw
                        throw new Exception("Unable to download file: " + sourceUrl);
                    }
                });

                var launchHandler = new EventHandler <BmpVersion>(async(object sender, BmpVersion version) =>
                {
                    await Loader.Load(version, ExePath, ResourcePath, DataPath, Args);
                });

                mainWindow.OnDownloadComplete += launchHandler;
                mainWindow.OnLaunchRequested  += launchHandler;

                mainWindow.ShowDialog();
            }
#elif LOCAL
            var version = new BmpVersion
            {
                beta       = true,
                build      = 0,
                commit     = "DEBUG",
                entryClass = "BardMusicPlayer.Ui.Bootstrapper",
                entryDll   = "BardMusicPlayer.Ui.dll",
                items      = new List <BmpVersionItem>()
            };

            var items = Directory.GetFiles(ResourcePath, "*.dll").Where(name => !name.Contains("libzt.dll"));
            foreach (var item in items)
            {
                version.items.Add(new BmpVersionItem
                {
                    destination = Path.GetFileName(item),
                    sha256      = Sha256.GetChecksum(item),
                    load        = true
                });
            }

            await Loader.Load(version, ExePath, ResourcePath, DataPath, Args);
#endif
        }
    }
Esempio n. 43
0
 public short ReadInt16() => Loader.ReadInt16();
 public void GivenNull_ThrowsException()
 {
     Assert.Throws <ArgumentNullException>(() => Loader.GetStream(null));
 }
Esempio n. 45
0
 public double ReadDouble() => Loader.ReadDouble();
Esempio n. 46
0
        internal static void Boot()
        {
            Logger.Log(LogLevel.Info, "core", "Booting Everest");
            Logger.Log(LogLevel.Info, "core", $"AppDomain: {AppDomain.CurrentDomain.FriendlyName ?? "???"}");
            Logger.Log(LogLevel.Info, "core", $"VersionCelesteString: {VersionCelesteString}");

            if (Type.GetType("Mono.Runtime") != null)
            {
                // Mono hates HTTPS.
                ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => {
                    return(true);
                };
            }

            // enable TLS 1.2 to fix connecting to everestapi.github.io
            ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;

            PathGame = Path.GetDirectoryName(typeof(Celeste).Assembly.Location);

            // .NET hates it when strong-named dependencies get updated.
            AppDomain.CurrentDomain.AssemblyResolve += (asmSender, asmArgs) => {
                AssemblyName asmName = new AssemblyName(asmArgs.Name);
                if (!asmName.Name.StartsWith("Mono.Cecil") &&
                    !asmName.Name.StartsWith("YamlDotNet") &&
                    !asmName.Name.StartsWith("NLua"))
                {
                    return(null);
                }

                Assembly asm = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(other => other.GetName().Name == asmName.Name);
                if (asm != null)
                {
                    return(asm);
                }

                return(Assembly.LoadFrom(Path.Combine(PathGame, asmName.Name + ".dll")));
            };

            // .NET hates to acknowledge manually loaded assemblies.
            AppDomain.CurrentDomain.AssemblyResolve += (asmSender, asmArgs) => {
                AssemblyName asmName = new AssemblyName(asmArgs.Name);
                foreach (Assembly asm in _RelinkedAssemblies)
                {
                    if (asm.GetName().Name == asmName.Name)
                    {
                        return(asm);
                    }
                }

                return(null);
            };

            // Preload some basic dependencies.
            Assembly.Load("MonoMod.RuntimeDetour");
            Assembly.Load("MonoMod.Utils");
            Assembly.Load("Mono.Cecil");
            Assembly.Load("YamlDotNet");
            Assembly.Load("Newtonsoft.Json");
            Assembly.Load("Jdenticon");

            if (!File.Exists(Path.Combine(PathGame, "EverestXDGFlag")))
            {
                XDGPaths    = false;
                PathEverest = PathGame;
            }
            else
            {
                XDGPaths = true;
                var dataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                Directory.CreateDirectory(PathEverest = Path.Combine(dataDir, "Everest"));
                Directory.CreateDirectory(Path.Combine(dataDir, "Everest", "Mods")); // Make sure it exists before content gets initialized
            }

            // Old versions of Everest have used a separate ModSettings folder.
            string modSettingsOld = Path.Combine(PathEverest, "ModSettings");
            string modSettingsRIP = Path.Combine(PathEverest, "ModSettings-OBSOLETE");

            if (Directory.Exists(modSettingsOld) || Directory.Exists(modSettingsRIP))
            {
                Logger.Log(LogLevel.Warn, "core", "THE ModSettings FOLDER IS OBSOLETE AND WILL NO LONGER BE USED!");
                if (Directory.Exists(modSettingsOld) && !Directory.Exists(modSettingsRIP))
                {
                    Directory.Move(modSettingsOld, modSettingsRIP);
                }
            }

            _DetourModManager           = new DetourModManager();
            _DetourModManager.OnILHook += (owner, from, to) => {
                _DetourOwners.Add(owner);
                object target = to.Target;
                _DetourLog.Add($"new ILHook by {owner.GetName().Name}: {from.GetID()} -> {to.Method?.GetID() ?? "???"}" + (target == null ? "" : $" (target: {target})"));
            };
            _DetourModManager.OnHook += (owner, from, to, target) => {
                _DetourOwners.Add(owner);
                _DetourLog.Add($"new Hook by {owner.GetName().Name}: {from.GetID()} -> {to.GetID()}" + (target == null ? "" : $" (target: {target})"));
            };
            _DetourModManager.OnDetour += (owner, from, to) => {
                _DetourOwners.Add(owner);
                _DetourLog.Add($"new Detour by {owner.GetName().Name}: {from.GetID()} -> {to.GetID()}");
            };
            _DetourModManager.OnNativeDetour += (owner, fromMethod, from, to) => {
                _DetourOwners.Add(owner);
                _DetourLog.Add($"new NativeDetour by {owner.GetName().Name}: {fromMethod?.ToString() ?? from.ToString("16X")} -> {to.ToString("16X")}");
            };
            HookEndpointManager.OnAdd += (from, to) => {
                Assembly owner = HookEndpointManager.GetOwner(to) as Assembly ?? typeof(Everest).Assembly;
                _DetourOwners.Add(owner);
                object target = to.Target;
                _DetourLog.Add($"new On.+= by {owner.GetName().Name}: {from.GetID()} -> {to.Method?.GetID() ?? "???"}" + (target == null ? "" : $" (target: {target})"));
                return(true);
            };
            HookEndpointManager.OnModify += (from, to) => {
                Assembly owner = HookEndpointManager.GetOwner(to) as Assembly ?? typeof(Everest).Assembly;
                _DetourOwners.Add(owner);
                object target = to.Target;
                _DetourLog.Add($"new IL.+= by {owner.GetName().Name}: {from.GetID()} -> {to.Method?.GetID() ?? "???"}" + (target == null ? "" : $" (target: {target})"));
                return(true);
            };

            // Before even initializing anything else, make sure to prepare any static flags.
            Flags.Initialize();

            if (!Flags.IsDisabled && !Flags.IsDisabled)
            {
                // 0.1 parses into 1 in regions using ,
                // This also somehow sets the exception message language to English.
                CultureInfo.DefaultThreadCurrentCulture   = CultureInfo.InvariantCulture;
                CultureInfo.DefaultThreadCurrentUICulture = CultureInfo.InvariantCulture;
            }

            if (!Flags.IsHeadless)
            {
                // Initialize the content helper.
                Content.Initialize();

                // Initialize all main managers before loading any mods.
                TouchInputManager.Instance = new TouchInputManager(Celeste.Instance);
                // Don't add it yet, though - add it in Initialize.
            }

            MainThreadHelper.Instance = new MainThreadHelper(Celeste.Instance);

            // Register our core module and load any other modules.
            new CoreModule().Register();

            // Note: Everest fulfills some mod dependencies by itself.
            new NullModule(new EverestModuleMetadata()
            {
                Name          = "Celeste",
                VersionString = $"{Celeste.Instance.Version.ToString()}-{(typeof(Game).Assembly.FullName.Contains("FNA") ? "fna" : "xna")}"
            }).Register();
            new NullModule(new EverestModuleMetadata()
            {
                Name          = "DialogCutscene",
                VersionString = "1.0.0"
            }).Register();
            new NullModule(new EverestModuleMetadata()
            {
                Name          = "UpdateChecker",
                VersionString = "1.0.2"
            }).Register();

            LuaLoader.Initialize();

            Loader.LoadAuto();

            if (!Flags.IsHeadless && !Flags.IsDisabled)
            {
                // Load stray .bins afterwards.
                Content.Crawl(new MapBinsInModsModContent(Path.Combine(PathEverest, "Mods")));
            }

            // Also let all mods parse the arguments.
            Queue <string> args = new Queue <string>(Args);

            while (args.Count > 0)
            {
                string arg = args.Dequeue();
                foreach (EverestModule mod in _Modules)
                {
                    if (mod.ParseArg(arg, args))
                    {
                        break;
                    }
                }
            }

            // Start requesting the version list ASAP.
            Updater.RequestAll();

            // Request the mod update list as well.
            ModUpdaterHelper.RunAsyncCheckForModUpdates(excludeBlacklist: true);
        }
Esempio n. 47
0
 public ulong ReadUInt64() => Loader.ReadUInt64();
Esempio n. 48
0
 public void WhenALocalDriverIsCreatedInAnotherFunctionThanTheAssemblyRedirectionIsCalled_ThenNoExceptionIsThrown()
 {
     Loader.RegisterRedirections(logger, ddlFolder);
     CreateDriverInAnotherMethod();
 }
Esempio n. 49
0
 public uint ReadUInt32() => Loader.ReadUInt32();
Esempio n. 50
0
 // Update is called once per frame
 private void Update()
 {
     Loader.LoadTargetScene();
 }
Esempio n. 51
0
 public ushort ReadUInt16() => Loader.ReadUInt16();
Esempio n. 52
0
 private Labelled <T> LoadLabelledWithFallback <T>(string folder, string name, string extension, Loader <T> loader, Labelled <T> fallback)
 {
     if (name == null)
     {
         return(fallback);
     }
     else
     {
         string path   = Path.Combine(folder, name + extension);
         T      loaded = loader(path);
         if (loaded == null)
         {
             return(fallback);
         }
         else
         {
             return(new Labelled <T> {
                 label = path, value = loaded
             });
         }
     }
 }
        public void GivenNull_ReturnsEmptyList()
        {
            var result = Loader.GetPixels(null);

            Assert.That(result, Is.Empty);
        }
Esempio n. 54
0
 public ListFiler(Persister <T> aPersister, Loader <T> aLoader)
 {
     _Persister = aPersister;
     _Loader    = aLoader;
 }
Esempio n. 55
0
 public int ReadInt32() => Loader.ReadInt32();
        public void GivenNull_ReturnsNull()
        {
            var result = Loader.GetBitmap(null);

            Assert.That(result, Is.Null);
        }
Esempio n. 57
0
        private Game3DObject CreateZombie(Loader loader)
        {
            var body = loader.MakeRectangle(Vector3.Zero, Vector3.Zero, Vector3.One + Vector3.UnitY * 3 + Vector3.UnitX * 2);

            var leftLegBone  = loader.MakeRectangle(Vector3.UnitY * -4 + Vector3.UnitX * -2, Vector3.Zero, Vector3.One * 1.2f);
            var rightLegBone = loader.MakeRectangle(Vector3.UnitY * -4 + Vector3.UnitX * 2, Vector3.Zero, Vector3.One * 1.2f);
            var leftArmBone  = loader.MakeRectangle(Vector3.UnitY * 3 + Vector3.UnitX * -4, Vector3.Zero, Vector3.One * 1.2f);
            var rightArmBone = loader.MakeRectangle(Vector3.UnitY * 3 + Vector3.UnitX * 4, Vector3.Zero, Vector3.One * 1.2f);
            var headBone     = loader.MakeRectangle(Vector3.UnitY * 4, Vector3.Zero, Vector3.One * 1.1f);

            body.AddChild(leftLegBone);
            body.AddChild(rightLegBone);
            body.AddChild(leftArmBone);
            body.AddChild(rightArmBone);
            body.AddChild(headBone);

            var leftLeg  = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            var rightLeg = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            var leftArm  = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            var rightArm = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            var head     = loader.MakeRectangle(Vector3.UnitY * 2, Vector3.Zero, Vector3.One * 2);

            leftLegBone.AddChild(leftLeg);
            rightLegBone.AddChild(rightLeg);
            leftArmBone.AddChild(leftArm);
            rightArmBone.AddChild(rightArm);
            headBone.AddChild(head);

            leftLegBone.IsHidden  = true;
            rightLegBone.IsHidden = true;
            leftArmBone.IsHidden  = true;
            rightArmBone.IsHidden = true;
            headBone.IsHidden     = true;


            Animation zombieIdleAnimation = new Animation(new float[] { 0, MathUtil.Pi / 16f, 0, -MathUtil.Pi / 16f, 0 }, 1, int.MaxValue);

            zombieIdleAnimation.AddProcess(value =>
            {
                headBone.SetRotationZ(value);
                headBone.SetRotationY(value);
                leftArmBone.SetRotationY(value - MathUtil.PiOverTwo);
                rightArmBone.SetRotationY(-value - MathUtil.PiOverTwo);
            });
            Animation movementAnimation = new Animation(new float[] { 0, MathUtil.PiOverFour, 0, -MathUtil.PiOverFour, 0 }, 1, int.MaxValue);

            movementAnimation.AddProcess(value =>
            {
                leftLegBone.SetRotationY(value);
                rightLegBone.SetRotationY(-value);
            });
            movementAnimation.AddTransitionPaused(() =>
            {
                leftLegBone.SetRotationY(0);
                rightLegBone.SetRotationY(0);
            });

            body.Collision = new BoxCollision(5, 20);
            body.AddScript(new ZombieMovementScript(_player, movementAnimation));
            body.AddComponent(new HealthComponent(100));

            return(body);
        }
Esempio n. 58
0
        public void Ldr_Match()
        {
            Loader ldr = new Loader(sc);

            Assert.IsTrue(ldr.ImageHasMagicNumber(new byte[] { 0x47, 0x11 }, "4711", "0"));
        }
Esempio n. 59
0
        private void CreatePlayer(Loader loader)
        {
            //var body = loader.LoadGameObjectFromFile(@"Models\Steve.fbx", Vector3.Zero, Vector3.Zero, @"Textures\KatolisCastle.jpg");

            //var body = loader.MakeRectangle(Vector3.Zero, Vector3.Zero, Vector3.One + Vector3.UnitY * 3 + Vector3.UnitX * 2);

            //var leftLegBone = loader.MakeRectangle(Vector3.UnitY * -4 + Vector3.UnitX * -2, Vector3.Zero, Vector3.One * 1.2f);
            //var rightLegBone = loader.MakeRectangle(Vector3.UnitY * -4 + Vector3.UnitX * 2, Vector3.Zero, Vector3.One * 1.2f);
            //var leftArmBone = loader.MakeRectangle(Vector3.UnitY * 3 + Vector3.UnitX * -4, Vector3.Zero, Vector3.One * 1.2f);
            //var rightArmBone = loader.MakeRectangle(Vector3.UnitY * 3 + Vector3.UnitX * 4, Vector3.Zero, Vector3.One * 1.2f);
            //var headBone = loader.MakeRectangle(Vector3.UnitY * 4, Vector3.Zero, Vector3.One * 1.1f);

            //body.AddChild(leftLegBone);
            //body.AddChild(rightLegBone);
            //body.AddChild(leftArmBone);
            //body.AddChild(rightArmBone);
            //body.AddChild(headBone);
            //body.AddChild(_camera);

            //var leftLeg = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            //var rightLeg = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            //var leftArm = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            //var rightArm = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One + Vector3.UnitY * 3);
            //var head = loader.MakeRectangle(Vector3.UnitY * 2, Vector3.Zero, Vector3.One * 2);

            //leftLegBone.AddChild(leftLeg);
            //rightLegBone.AddChild(rightLeg);
            //leftArmBone.AddChild(leftArm);
            //rightArmBone.AddChild(rightArm);
            //headBone.AddChild(head);

            //leftLegBone.IsHidden = true;
            //rightLegBone.IsHidden = true;
            //leftArmBone.IsHidden = true;
            //rightArmBone.IsHidden = true;
            //headBone.IsHidden = true;

            //var gun = loader.MakeRectangle(Vector3.UnitY * -3, Vector3.Zero, Vector3.One * 1.2f);
            //var bullet = loader.MakeRectangle(Vector3.Zero, Vector3.Zero, Vector3.One * 0.2f);
            //bullet.Collision = new SphereCollision(1);

            //rightArm.AddChild(gun);

            //rightArmBone.SetRotationY(-MathUtil.PiOverTwo);

            //Animation characterMovementAnimation = new Animation(new float[] { 0, MathUtil.PiOverFour, 0, -MathUtil.PiOverFour, 0 }, 1, int.MaxValue);
            //characterMovementAnimation.AddProcess(value =>
            //{
            //    leftLegBone.SetRotationY(value);
            //    rightLegBone.SetRotationY(-value);
            //    leftArmBone.SetRotationY(-value);
            //    headBone.SetRotationZ(value);
            //});
            //characterMovementAnimation.AddTransitionPaused(() =>
            //{
            //    leftLegBone.SetRotationY(0);
            //    rightLegBone.SetRotationY(0);
            //    leftArmBone.SetRotationY(0);
            //    headBone.SetRotationZ(0);
            //});

            //body.AddScript(new DinoMovementScript());
            //var physics = new PhysicsComponent();
            //body.AddComponent(physics);
            //body.AddScript(new PhysicsScript(physics));

            //body.AddScript(new PlayerMovementScript(characterMovementAnimation, physics));

            //var visibility = new VisibilityComponent();
            //body.AddComponent(visibility);
            //body.AddScript(new VisibilityScript(visibility));

            //var health = new HealthComponent(100);
            //_healthBar.MaxValue = 100;
            //_healthBar.Value = 100;
            //health.OnChanged += value => _healthBar.Value = value;
            //body.AddComponent(health);

            //var ammo = new AmmoComponent();
            //_ammoCounter.Text = ammo.Ammo.ToString();
            //ammo.OnChanged += value => _ammoCounter.Text = value.ToString();
            //body.AddComponent(ammo);

            //gun.AddScript(new PlayerGunScript(bullet, ammo));

            //body.Collision = new BoxCollision(5, 20);

            //return body;
        }
Esempio n. 60
0
 public T[] ReadTArray <T>(Func <T> Getter) => Loader.ReadTArray(Getter);