Exemple #1
0
        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;
        }
Exemple #2
0
            public Tweak(string lebel, TweakType type, WinVer ver)
            {
                //guid = Guid.NewGuid();

                Name   = lebel;
                Type   = type;
                winVer = ver;
            }
Exemple #3
0
        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;
 }
Exemple #5
0
            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"));
            }
Exemple #6
0
        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");
        }
Exemple #8
0
            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);
            }
Exemple #9
0
 public override void NetReceive(Item item, BinaryReader reader) => tweak = (TweakType)reader.ReadByte();
Exemple #10
0
 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;
        }