public Version InstallOld(Forge forge) { _logService.Info(nameof(ForgeInstallService), $"Installing old forge. Version: {forge.ID} Build: {forge.Build}"); string jsonPath = $"{_gamePathService.VersionsDir}/{forge.ID}/{forge.ID}.json"; string jarPath = $"{_gamePathService.ForgeLibDir}/{forge.FullName}/forge-{forge.FullName}.jar"; if (!File.Exists(jarPath)) { _logService.Warn(nameof(ForgeInstallService), $"Cannot find forge jar, installation aborted"); return(null); } using var archive = ZipFile.OpenRead(jarPath); var entry = archive.GetEntry("version.json"); using var reader = new StreamReader(entry.Open(), Encoding.UTF8); string json = reader.ReadToEnd(); // The early forge versions' naming conventions are just obnoxious json = Regex.Replace(json, "\"id\":\\s\".*\"", $"\"id\": \"{forge.ID}\""); Directory.CreateDirectory(Path.GetDirectoryName(jsonPath)); File.WriteAllText(jsonPath, json); return(_versionService.AddNew(jsonPath)); }
public Version AutoInstall(Forge forge) { string id = $"{forge.GameVersion}-forge-{forge.Version}"; string jsonPath = $"{_gamePathService.VersionsDir}/{id}/{id}.json"; string fullName = $"{forge.GameVersion}-{forge.Version}" + (forge.HasSuffix ? $"-{forge.GameVersion}" : null); string jarPath = $"{_gamePathService.ForgeLibDir}/{fullName}/forge-{fullName}.jar"; if (!File.Exists(jarPath)) { return(null); } using var archive = ZipFile.OpenRead(jarPath); var entry = archive.GetEntry("version.json"); using var reader = new StreamReader(entry.Open(), Encoding.UTF8); string json = reader.ReadToEnd(); json = Regex.Replace(json, "\"id\":\\s\".*\"", $"\"id\": \"{id}\""); Directory.CreateDirectory(Path.GetDirectoryName(jsonPath)); File.WriteAllText(jsonPath, json); return(_versionService.AddNew(jsonPath)); }
// end Datafile // Forge private void createFilelistToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.Forge; if (forge != null) { string filelist = forge.CreateFilelist(); if (filelist.Length > 0) { using (SaveFileDialog dialog = new SaveFileDialog()) { dialog.FileName = $"{forge.Name}-filelist.txt"; dialog.Filter = "Text files|*.txt|All files|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { File.WriteAllText(dialog.FileName, filelist); MessageBox.Show("Created filelist.", "Done"); } } } } }
// end Convert // Datafile private void saveRawDataAsToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.Forge; saveFileDialog.FileName = node.Text; if (saveFileDialog.ShowDialog() == DialogResult.OK) { Forge.FileEntry entry = forge.GetFileEntry(node.Text); byte[] data = forge.GetRawData(entry); try { File.WriteAllBytes(saveFileDialog.FileName, data); } catch (IOException ee) { Console.WriteLine(ee); } finally { MessageBox.Show("Done"); } } }
private void extractAllToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.Forge; if (forge != null && forge.FileEntries.Length > 0) { using (FolderBrowserDialog dialog = new FolderBrowserDialog()) { if (dialog.ShowDialog() == DialogResult.OK) { BeginMarquee(); Parallel.ForEach(forge.FileEntries, (fe) => { string name = fe.NameTable.Name; byte[] data = forge.GetRawData(fe); File.WriteAllBytes(Path.Combine(dialog.SelectedPath, name), data); }); EndMarquee(); MessageBox.Show($"Extracted all of {forge.Name}.", "Done"); } } } }
// Datafile private void saveRawDataAsToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.GetForge(); saveFileDialog.FileName = $"{node.Text}.dat"; saveFileDialog.Filter = "Raw Data|*.dat|All Files|*.*"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { Forge.FileEntry entry = forge.GetFileEntry(node.Text); byte[] data = forge.GetRawData(entry); try { File.WriteAllBytes(saveFileDialog.FileName, data); } catch (IOException ee) { Console.WriteLine(ee); } finally { MessageBox.Show("Extracted decompressed data.", "Success"); } } }
public void AddOrRemoveForge(Forge forge) { // add to the combobox string listName = FormatName(forge); if (forgeComboBox.Items.Contains(listName)) { forgeComboBox.Items.Remove(listName); } else { forgeComboBox.Items.Add(listName); } // add to the forges list if (forges.Contains(forge)) { forges.Remove(forge); } else { forges.Add(forge); } // select the first item in the combobox if (forgeComboBox.Items.Count == 1) { forgeComboBox.SelectedIndex = 0; } }
/// <summary> /// 当人物手里没东西,或者有材料的时候与火车交互 /// </summary> private void Train(string hitname, RaycastHit hitObject) { if (hitname == "Tank") { // 获取碰撞到的火车 Tank tank = hitObject.collider.gameObject.GetComponent <Tank>(); Resmaterial[] materials = transform.GetComponentsInChildren <Resmaterial>(); // 将人物手中资源块放入车厢 for (int i = materials.Length; i > 0; i--) { // 逆序,先把手中材料的子物体放进车厢 tank.StoreMat(materials[i - 1]); } tm.UpdateMatrial(); } else if (hitname == "Forge") { // 获取所碰撞到的车厢 Forge forge = hitObject.collider.gameObject.GetComponent <Forge>(); // 人物hero取出铁轨 //forge.FetchRail(transform.gameObject); bool takeRail = forge.FetchRail(tm.rightHand); if (takeRail)// 如果捡起了铁轨,修改右手的状态,改为Rail { tm.handState = ToolManager.HANDSTATE.RAIL; } } }
public async ValueTask <Version> ManualInstallAsync(Forge forge) { string id = $"{forge.GameVersion}-forge-{forge.Version}"; string jsonPath = $"{_gamePathService.VersionsDir}/{id}/{id}.json"; string installerPath = $"{_gamePathService.RootDir}/{forge.GameVersion}-{forge.Version}-installer.jar"; try { string profilePath = $"{_gamePathService.RootDir}/launcher_profiles.json"; // Just a dummy json...but required by forge installer if (!File.Exists(profilePath)) { File.WriteAllText(profilePath, "{}"); } var process = Process.Start(new ProcessStartInfo { FileName = installerPath, UseShellExecute = true, }); await Task.Run(() => process.WaitForExit()); File.Delete(installerPath); File.Delete($"{forge.GameVersion}-{forge.Version}-installer.jar.log"); return(_versionService.AddNew(jsonPath)); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); return(null); } }
public IEnumerable <JLibrary> GetJLibraries(Forge forge) { string installerPath = $"{_gamePathService.RootDir}/{forge.FullName}-installer.jar"; using var archive = ZipFile.OpenRead(installerPath); IEnumerable <JLibrary> jlibs; using (var memoryStream = new MemoryStream()) { var versionEntry = archive.GetEntry("version.json"); using var versionStream = versionEntry.Open(); versionStream.CopyTo(memoryStream); var jver = JsonSerializer.Deserialize <JVersion>(memoryStream.ToArray()); jlibs = jver.libraries; } using (var memoryStream = new MemoryStream()) { var profileEntry = archive.GetEntry("install_profile.json"); using var profileStream = profileEntry.Open(); profileStream.CopyTo(memoryStream); var installProfile = JsonSerializer.Deserialize <JForgeInstallProfile>(memoryStream.ToArray()); jlibs = jlibs.Union(installProfile.libraries); } return(jlibs); }
public override int GetHashCode() { int result = 31; result = 31 * result + Forge.GetHashCode(); result = 31 * result + ExternalId.GetHashCode(); return(result); }
static void Main(string[] args) { Forge sword = new Forge("Bread Sword"); Material bread = new Material("Bread", 5, 10000); Material breadMat = new Material("Bread", 5, 10000); List <Material> materials = new List <Material>(); materials.Add(breadMat); sword.AddMaterials(bread); Console.WriteLine(sword.craft(materials)); }
public void MarkDownReactor_Build_WhenSingleFileAndSettings_Should_ReturnFiles() { OptionsObj.IsMiltiFiles = true; _reactor = new MarkDownReactor(Forge.GetOutputWriter(), Forge.GetXmlContentReader()); _reactor.Load(DllPathObj, XmlPathObj); _reactor.Build(OptionsObj); var files = Directory.EnumerateFiles(OutPutPathObj).ToList(); files.Should().NotBeNull(); files.Count(s => s.Contains("Home.md")).Should().Be(1); }
//runs at the start of the program //finds gameobjects and initializes variables private void Start() { if (list) { cont = GetComponent <Forge>(); canvas = GameObject.Find("Canvas"); searchBox = GameObject.Find("searchFilter"); tmp = null; buttons = new List <GameObject>(); GenerateList(""); } }
public async Task <bool> SignDelegationOperationAsync( IKeyStorage keyStorage, WalletAddress address, CancellationToken cancellationToken = default) { var xtz = (Atomex.Tezos)Currency; if (address.KeyIndex == null) { Log.Error("Can't find private key for address {@address}", address); return(false); } using var securePrivateKey = keyStorage .GetPrivateKey(Currency, address.KeyIndex); if (securePrivateKey == null) { Log.Error("Can't find private key for address {@address}", address); return(false); } using var privateKey = securePrivateKey.ToUnsecuredBytes(); var rpc = new Rpc(xtz.RpcNodeUri); Head = await rpc .GetHeader() .ConfigureAwait(false); var forgedOpGroup = await rpc .ForgeOperations(Head, Operations) .ConfigureAwait(false); var forgedOpGroupLocal = Forge.ForgeOperationsLocal(Head, Operations); if (true) //if (config.CheckForge == true) add option for higher security tezos mode to config { if (forgedOpGroupLocal.ToString() != forgedOpGroup.ToString()) { Log.Error("Local and remote forge results differ"); return(false); } } SignedMessage = TezosSigner.SignHash( data: Hex.FromString(forgedOpGroup.ToString()), privateKey: privateKey, watermark: Watermark.Generic, isExtendedKey: privateKey.Length == 64); return(true); }
private static void Prefix(Forge __instance) { var settings = Fire_RVSettings.Instance; __instance.m_MinTemperatureForCrafting = settings.MinTemperature; HeatReservoir myreservoir = Fire_RV.GetHeatReservoir(Utils.GetGuidFromGameObject(__instance.m_Fire.gameObject)); if (myreservoir != null) { __instance.m_MinTemperatureForCrafting -= myreservoir.temp; } }
private List <EntryTreeNode> PopulateForge(EntryTreeNode node) { Forge forge = node.Forge; if (forge == null) { return(null); } // read if only the forge has not been read if (!forge.IsFullyRead()) { if (forge.GetEntryCount() > 20000) { string entries = string.Format("{0:n0}", forge.GetEntryCount()); if (MessageBox.Show($"This .forge contains more than 20,000 entries ({entries} exactly). Blacksmith may freeze while loading or it may not load them at all.\nDo this at your own risk.", "Warning", MessageBoxButtons.YesNo) == DialogResult.Yes) { forge.Read(); } else { return(null); } } else { forge.Read(); } node.Forge = forge; // set again for assurance } // populate the forge tree with its entries List <EntryTreeNode> entryNodes = new List <EntryTreeNode>(); foreach (Forge.FileEntry entry in forge.FileEntries) { EntryTreeNode n = new EntryTreeNode { Game = node.Game, Offset = entry.IndexTable.OffsetToRawDataTable, Path = Path.Combine(node.Path, entry.NameTable.Name), Size = entry.IndexTable.RawDataSize, Text = entry.NameTable.Name, Type = EntryTreeNodeType.ENTRY }; n.Nodes.Add(new EntryTreeNode("")); entryNodes.Add(n); } return(entryNodes); }
private void saveDecompressedDataAsToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.GetForge(); string text = node.Text; byte[] decompressedData = null; BeginMarquee(); Helpers.DoBackgroundWork(() => { Forge.FileEntry entry = forge.GetFileEntry(text); byte[] rawData = forge.GetRawData(entry); decompressedData = Odyssey.ReadFile(rawData); }, () => { EndMarquee(); // failure if (decompressedData.Length == 0 || decompressedData == null) { MessageBox.Show("Could not decompress data.", "Failure"); return; } saveFileDialog.FileName = string.Concat(node.Text, ".", Helpers.ExtensionForGame(node.Game)); saveFileDialog.Filter = $"{Helpers.NameOfGame(node.Game)} Data|*.{Helpers.ExtensionForGame(node.Game)}|All Files|*.*"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { try { File.WriteAllBytes(saveFileDialog.FileName, decompressedData); } catch (IOException ee) { Console.WriteLine(ee); } finally { MessageBox.Show("Done"); } } }); }
private List <EntryTreeNode> PopulateEntry(EntryTreeNode node) { // extract the contents from the forge Forge forge = node.GetForge(); byte[] data = forge.GetRawData(node.Offset, node.Size); // decompress string file = $"{node.Text}.{Helpers.ExtensionForGame(node.Game)}"; if (node.Game == Game.ODYSSEY) { Helpers.WriteToFile(file, Odyssey.ReadFile(data), true); } else if (node.Game == Game.ORIGINS) { Helpers.WriteToFile(file, Odyssey.ReadFile(data), true); } else if (node.Game == Game.STEEP) { Helpers.WriteToFile(file, Steep.ReadFile(data), true); } // path will hold the file name node.Path = file; // get resource locations and create nodes List <EntryTreeNode> nodes = new List <EntryTreeNode>(); using (Stream stream = new FileStream(Helpers.GetTempPath(file), FileMode.Open, FileAccess.Read, FileShare.Read)) { using (BinaryReader reader = new BinaryReader(stream)) { Helpers.ResourceLocation[] locations = Helpers.LocateResourceIdentifiers(reader); foreach (Helpers.ResourceLocation location in locations) { nodes.Add(new EntryTreeNode { Game = node.Game, Path = file, ResourceType = location.Type, Text = location.Type.ToString(), Type = EntryTreeNodeType.SUBENTRY }); } } } return(nodes); }
public static bool Reforge_UpdateEquipBtn(CtrlForge __instance, IScrollItme item) { if (isReforgeMode) { var t = Traverse.Create(__instance); int categoryIndex = t.Field("categoryIndex").GetValue <int>(); var array = t.Field("sort").Field("array").GetValue() as List <ForgeInfo>[]; ForgeInfo forgeInfo = array[categoryIndex][item.Index]; Forge item2 = forgeInfo.Item; Props equip = forgeInfo.Equip; forgeInfo.Dialog.Clear(); int price = GetReforgePrice(equip); if (Game.GameData.Money < price) { forgeInfo.IsConditionPass = false; for (int j = 1; j < 3; j++) { forgeInfo.Dialog.Add(string.Format("SecondaryInterface031{0}", j)); } } InventoryData inventoryData = Game.GameData.Inventory[equip.Id]; if (forgeInfo.Dialog.Count <= 0) { forgeInfo.IsConditionPass = true; for (int l = 1; l < 3; l++) { forgeInfo.Dialog.Add(string.Format("SecondaryInterface034{0}", l)); } } ForgeScrollInfo forgeScrollInfo = new ForgeScrollInfo { ItemName = equip.Name, ItemIcon = Game.Resource.Load <Sprite>(string.Format(GameConfig.PropsCategoryPath, (int)equip.PropsCategory)), Remark = price.ToString(), IsNew = false, IsShowSign = item2.IsSpecial, IsConditionPass = forgeInfo.IsConditionPass }; if (item != null) { item.UpdateWidget(new object[] { forgeScrollInfo }); } return(false); } return(true); }
public static string ForgeEntrypoint(string value) { string res = ""; if (EntrypointTags.ContainsKey(value)) { res += EntrypointTags[value].ToString("X2"); } else { res += "ff"; res += Forge.ForgeArray(Encoding.Default.GetBytes(value).ToHexString()); } return(res); }
public void MarkDownReactor_Build_WhenMiltiFiles_Should_ReturnFiles() { OptionsObj.IsMiltiFiles = true; _reactor = new MarkDownReactor(Forge.GetOutputWriter(), Forge.GetXmlContentReader()); _reactor.Load(DllPathObj, XmlPathObj); _reactor.Build(OptionsObj); var files = Directory.EnumerateFiles(OutPutPathObj).ToList(); files.Should().NotBeNull(); if (OptionsObj.IsMiltiFiles) { files.Count(s => s.Contains("ITestInterface.md") || s.Contains("TestEnum.md") || s.Contains("TestClass.md")) .Should() .Be(3); } }
public IEnumerable <DownloadItem> GetDownload(Forge forge, bool isInstallerNeeded) { var item = new DownloadItem { Name = $"Forge-{forge.FullName}", Path = isInstallerNeeded ? $"{_gamePathService.RootDir}/{forge.FullName}-installer.jar" : $"{_gamePathService.ForgeLibDir}/{forge.FullName}/forge-{forge.FullName}.jar", Url = $"{_urlService.Base.Forge}{forge.FullName}/forge-{forge.FullName}" + $"-{(isInstallerNeeded ? "installer" : "universal")}.jar", IsCompleted = false, DownloadedBytes = 0, }; return(Enumerable.Repeat(item, 1)); }
public void SpawnForge() { Forge node = forgeScene.Instance() as Forge; if (stats.Mana < node.ManaCost) { return; } stats.ManaDrain(node.ManaCost); Node2D gameNode = GetParent().GetParent() as Node2D; Node2D heroNode = GetParent() as KinematicBody2D; node.Position = new Vector2((heroNode.Position.x + direction * wallSpawnPoint.x), heroNode.Position.y); node.Direction = direction; node.FireBallSpawnPoint = wallSpawnPoint; gameNode.AddChild(node); can_cooldown = false; cooldownTimer.Start(); }
private void saveDecompressedDataAsToolStripMenuItem_Click(object sender, EventArgs e) { if (treeView.SelectedNode == null) { return; } EntryTreeNode node = (EntryTreeNode)treeView.SelectedNode; Forge forge = node.Forge; string text = node.Text; byte[] decompressedData = null; BeginMarquee(); Helpers.DoBackgroundWork(() => { Forge.FileEntry entry = forge.GetFileEntry(text); byte[] rawData = forge.GetRawData(entry); decompressedData = Odyssey.ReadFile(rawData); }, () => { EndMarquee(); saveFileDialog.FileName = $"{node.Text}.dec"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { try { File.WriteAllBytes(saveFileDialog.FileName, decompressedData); } catch (IOException ee) { Console.WriteLine(ee); } finally { MessageBox.Show("Done"); } } }); }
public override bool LevelUp() { bool canBeUpgraded = false; if (currentLevel >= maxLevel) { EventLog.Instance.AddAction(LogType.Error, objectName.ToString() + " is already max level: " + currentLevel + "/" + maxLevel, transform.position); return(canBeUpgraded); } else if (!Manager.Instance.HasEnoughMana(upgradeCost)) { EventLog.Instance.AddAction(LogType.Error, "You need " + upgradeCost + " " + Manager.Instance.CurrencyName + " to upgrade " + objectName, transform.position); return(canBeUpgraded); } else if (isUpgrading) { EventLog.Instance.AddAction(LogType.Error, Messages.AlreadyUpgradingBuilding, transform.position); return(canBeUpgraded); } else if (behaviour is Forge) { Forge forge = (Forge)behaviour; if (forge.IsDoingResearch) { EventLog.Instance.AddAction(LogType.Error, Messages.CantUpgradeWhileResearching, transform.position); return(canBeUpgraded); } } else if (behaviour is Barracks) { Barracks barracks = (Barracks)behaviour; if (barracks.Alreadytraining) { EventLog.Instance.AddAction(LogType.Error, Messages.CantUpgradingWhileTraining, transform.position); return(canBeUpgraded); } } canBeUpgraded = true; SpawnDustParticles(upgradeTime); StartCoroutine(DoUpgrade(upgradeTime)); return(canBeUpgraded); }
public LargeForgeHouse(Mobile owner) : base(owner) { Item i; i = new Forge(); i.ItemID = 0x197A; AddAddon(i, 3, 3, 7); i = new Forge(); i.ItemID = 0x197E; AddAddon(i, 4, 3, 7); i = new Forge(); i.ItemID = 0x1982; AddAddon(i, 5, 3, 7); i = new Anvil(); i.ItemID = 0xFB0; AddAddon(i, 4, 1, 7); }
public GameViewModel(CustomCanvas canvas) { _brickNavigators = new List <IBrickNavigator> { new SquareBrickNavigator() }; _canvas = canvas; _canvas.MouseDown += _canvas_MouseDown; MoveDownCommand = new DelegateCommand(MoveDownAction); /* * RightMoveCommand = new DelegateCommand(RightMoveAction); * LeftMoveCommand = new DelegateCommand(LeftMoveAction); * UpRotateCommand = new DelegateCommand(UpRotateAction); */ _forge = new Forge(); worker = new BackgroundWorker(); worker.DoWork += Worker_DoWork; worker.WorkerReportsProgress = true; worker.ProgressChanged += Worker_ProgressChanged; worker.RunWorkerCompleted += Worker_RunWorkerCompleted; _activeRects = new List <Rectangle>(); }
public IEnumerable <DownloadItem> GetDownload(Forge forge) { string fullName = $"{forge.GameVersion}-{forge.Version}" + (forge.HasSuffix ? $"-{forge.GameVersion}" : null); var item = new DownloadItem { Name = $"Forge-{fullName}", Path = forge.IsAutoInstall ? $"{_gamePathService.ForgeLibDir}/{fullName}/forge-{fullName}.jar" : $"{_gamePathService.RootDir}/{fullName}-installer.jar", Url = forge.IsAutoInstall ? $"{_urlService.Base.Forge}{fullName}/forge-{fullName}-universal.jar" : $"{_urlService.Base.Forge}{fullName}/forge-{fullName}-installer.jar", IsCompleted = false, DownloadedBytes = 0, }; return(new[] { item }); }
public void showPlaceInfo() { string placeCommand = place.showPlaceInformation(); if (placeCommand == "s" && place.Shop == true) { Shop shop = new Shop(); hero = shop.showShopItems(hero); } else if (placeCommand == "b" && place.Bed == true) { Bed bed = new Bed(); hero = bed.useBed(hero); } else if (placeCommand == "a" && place.Arena == true) { EnemyArena enemyArena = new EnemyArena(); hero = enemyArena.pickEnemyToFight(hero); } else if (placeCommand == "f" && place.Forge == true) { Forge forge = new Forge(); hero = forge.showForgeOptions(hero); } else if (placeCommand == "n" && place.NextPlace != null) { place = place.goToNextPlace(); hero.PlaceId = place.Id; heroBusiness.Update(hero); } else if (placeCommand == "p" && place.PrevPlace != null) { place = place.goToPrevPlace(); hero.PlaceId = place.Id; heroBusiness.Update(hero); } }