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; }
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(); }
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"; }
public EquipmentTemplate(Loader l) { ID = l.ID; foreach (Instruction i in l.Parse()) Load(l, i); }
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); } }
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); }
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"); } }
/// <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); }
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); }
public Skeleton(Loader l) { ID = l.ID; foreach (Instruction i in l.Parse()) Load(l, i); }
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]); } }
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; }
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; }
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>(); } }
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; }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); loader = new Loader(); Application.Run(loader); }
public Terrain(vec2 pos,Loader loader,ModelTexture texture) { this.texture = texture; Position.x = pos.x * SIZE; Position.y = pos.y * SIZE; model = generateTerrain(loader); }
public void LoadGame() { var loader1 = new Loader(level1); loader1.ToArray(); var loader2 = new Loader(level2); loader2.ToArray(); }
void Awake() { if (instance == null) instance = this; else DestroyImmediate(gameObject); DontDestroyOnLoad(gameObject); }
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; }
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); }
public virtual void Load(Loader l, Instruction i) { switch (i.Type) { case "adn": Addons.Add(l.Find(i.String()).Load<AddonTemplate>()); break; } }
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); }
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); }
public void Ldr_Match() { mr.ReplayAll(); Loader ldr = new Loader(sc); Assert.IsTrue(ldr.ImageHasMagicNumber(new byte[] { 0x47, 0x11 }, "4711", "0")); mr.VerifyAll(); }
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)); }
public EndScreen(ScreenManager _screenManager) : base(_screenManager) { font = Loader.getFont("debugtext"); name = "end"; }
public override StDefaultComponent SaveState() { return(Loader.SaveState(this)); }
public long ReadInt64() => Loader.ReadInt64();
public float ReadFloat() => Loader.ReadSingle();
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); } } }
protected override void OnLoaded(IType item) { Loader.FireTypeLoaded(item); }
void HandleDoubleTap(Vector4 param) { Loader.Load(Loader.Scene.WelcomeScreen); RepositionVars.WelcomeScreenIndex = 1; }
public ParticleSystem(string particleFilePath) : this((JObject)Loader.load <JObject>(particleFilePath.Split('.')[0] + ".json")) { }
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>(); }
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 } }
public short ReadInt16() => Loader.ReadInt16();
public void GivenNull_ThrowsException() { Assert.Throws <ArgumentNullException>(() => Loader.GetStream(null)); }
public double ReadDouble() => Loader.ReadDouble();
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); }
public ulong ReadUInt64() => Loader.ReadUInt64();
public void WhenALocalDriverIsCreatedInAnotherFunctionThanTheAssemblyRedirectionIsCalled_ThenNoExceptionIsThrown() { Loader.RegisterRedirections(logger, ddlFolder); CreateDriverInAnotherMethod(); }
public uint ReadUInt32() => Loader.ReadUInt32();
// Update is called once per frame private void Update() { Loader.LoadTargetScene(); }
public ushort ReadUInt16() => Loader.ReadUInt16();
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); }
public ListFiler(Persister <T> aPersister, Loader <T> aLoader) { _Persister = aPersister; _Loader = aLoader; }
public int ReadInt32() => Loader.ReadInt32();
public void GivenNull_ReturnsNull() { var result = Loader.GetBitmap(null); Assert.That(result, Is.Null); }
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); }
public void Ldr_Match() { Loader ldr = new Loader(sc); Assert.IsTrue(ldr.ImageHasMagicNumber(new byte[] { 0x47, 0x11 }, "4711", "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; }
public T[] ReadTArray <T>(Func <T> Getter) => Loader.ReadTArray(Getter);