internal static Tweak EncodeTweak(UInt64 position, bool bitPad, TweakType type, bool first, bool final) { // // Takes tweak parameters and encodes them in a 128 bit value. The lower half of the 128 byte value (only the position) // is stuck in low64 and the high half in stuck in high64. // // N.B SimpleSkeinManaged specifies that position can be upto 2^96 but we support only 2^64. We could add support by rolling our own BigInteger // // The encoding is as follows (ASCII art not to scale) // // 128 120 112 96 0 // -------------------------------------------------------------------------------------------- // F1|F2| Type |B| TreeLevel | reserved | Position | // | | | | | | | // -------------------------------------------------------------------------------------------- // F1 = First // F2 = Final // B - BitPad // Tweak tweak = new Tweak(0,0); tweak.high64 = 0; // // The shift numbers are calculated using 64 - (128 - end-byte-from-diagram-above) // if (final) tweak.high64 |= (UInt64)1L << 63; // Set F1 in diagram above if (first) tweak.high64 |= (UInt64)1L << 62; // Set F2 in diagram above tweak.high64 |= (UInt64)type << 56; // Set type if (bitPad) tweak.high64 |= (UInt64)1L << 55; // Set bit pad tweak.low64 = position; return tweak; }
public Tweak(string lebel, TweakType type, WinVer ver) { //guid = Guid.NewGuid(); Name = lebel; Type = type; winVer = ver; }
public override void OnCraft(Item item, Recipe recipe) { int workshop = TileType <LihzahrdWorkshopTile>(); if (item.accessory && Main.LocalPlayer.adjTile[workshop] && Array.Exists(recipe.requiredTile, x => x == TileID.TinkerersWorkbench || x == workshop)) { tweak = Main.rand.NextBool(3) ? TweakType.Malleable : TweakType.Precious; } }
public Tweak(string reference, string name, string description, CurseforgeMod[] mod, TweakType type, TweakCategory category, params string[] incompatibilites) { Reference = reference; Name = name; Description = description; Mod = mod; Incompatibilites = incompatibilites; Type = type; Category = category; }
public static string GetTypeStr(TweakType type) { switch (type) { case TweakType.SetRegistry: return(Translate.fmt("tweak_reg")); case TweakType.SetGPO: return(Translate.fmt("tweak_gpo")); case TweakType.DisableService: return(Translate.fmt("tweak_svc")); case TweakType.DisableTask: return(Translate.fmt("tweak_task")); case TweakType.BlockFile: return(Translate.fmt("tweak_file")); //case TweakType.UseFirewall: return Translate.fmt("tweak_fw"); } return(Translate.fmt("txt_unknown")); }
private static int OnGetStoreValue(On.Terraria.Item.orig_GetStoreValue orig, Item self) { int value = orig(self); if (!self.buy && self.shopSpecialCurrency == -1) { TweakType tweakType = self.Gadget().tweak; if (tweakType == TweakType.Malleable) { value /= 2; } else if (tweakType == TweakType.Precious) { value *= 2; } } return(value); }
public static string GetTypeStr(TweakType type) { switch (type) { case TweakType.SetRegistry: return("Registry Tweak"); case TweakType.SetGPO: return("GPO Tweak"); case TweakType.DisableService: return("Disable Service"); case TweakType.DisableTask: return("Disable Task"); case TweakType.BlockFile: return("Block File"); case TweakType.UseFirewall: return("Use Firewall"); // todo } return("Unknown"); }
public bool Load(XmlNode tweakNode) { if (tweakNode.Name != "Tweak") { return(false); } try { foreach (XmlNode node in tweakNode.ChildNodes) { /*if (node.Name == "Guid") * guid = Guid.Parse(node.InnerText); * else*/if (node.Name == "Category") { Category = node.InnerText; } else if (node.Name == "Group") { Group = node.InnerText; } else if (node.Name == "Name") { Name = node.InnerText; } else if (node.Name == "Type") { Type = (TweakType)Enum.Parse(typeof(TweakType), node.InnerText); } else if (node.Name == "Path") { Path = node.InnerText; } else if (node.Name == "Key") { Key = node.InnerText; } else if (node.Name == "Level") { usrLevel = node.InnerText.Equals("User"); } else if (node.Name == "ValueInt") { Value = int.Parse(node.InnerText); } else if (node.Name == "ValueU64") { Value = UInt64.Parse(node.InnerText); } else if (node.Name == "Value") { Value = node.InnerText; } else if (node.Name == "Platform") { winVer = WinVer.Parse(node.InnerText); } else if (node.Name == "Hint") { Hint = (Hints)Enum.Parse(typeof(Hints), node.InnerText); } else if (node.Name == "State") { State = (States)Enum.Parse(typeof(States), node.InnerText); } else if (node.Name == "FixFailed") { bool.TryParse(node.InnerText, out FixFailed); } else if (node.Name == "FixedCount") { int.TryParse(node.InnerText, out FixedCount); } else if (node.Name == "LastChange") { DateTime.TryParse(node.InnerText, out LastChangeTime); } } } catch { return(false); } return(Name != null && Type != TweakType.None && winVer != null); }
public override void NetReceive(Item item, BinaryReader reader) => tweak = (TweakType)reader.ReadByte();
public override void Load(Item item, TagCompound tag) => tweak = (TweakType)tag.GetByte("Tweak");
//public bool Applyed = false; public Tweak(string lebel, TweakType type, WinVer ver) { Label = lebel; Type = type; winVer = ver; }