public static T GetControl <T>(ulong hash) where T : UXControl, new() { //return MemoryWrapper.Create<T>(UIMap[hash].BaseAddress); var el = UIElement.FromHash(hash); return(el.IsValid ? MemoryWrapper.Create <T>(el.BaseAddress) : default(T)); }
public static List <T> GetControlsByName <T>(string name) where T : UXControl, new() { var needle = name.ToLower(); var items = UIMap.Where(i => i.Value.Self.Name.ToLower().Contains(needle)); if (items.Any()) { return(items.Select(i => MemoryWrapper.Create <T>(i.Value.BaseAddress)).ToList()); } return(null); }
public SnoGroup <T> CreateGroup <T>(SnoType groupId) where T : SnoTableEntry, new() { var groupNum = (int)groupId; if (groupNum < 0 || groupNum > 70) { throw new ArgumentOutOfRangeException(nameof(groupId)); } var ptr = Zeta.Game.ZetaDia.SNO[(Zeta.Game.Internals.SNOGroup)groupNum].BaseAddress; var manager = MemoryWrapper.Create <SnoGroup <T> >(ptr); if (!LookupTable.ContainsKey(groupId)) { CreateIndex(groupId, manager, groupNum); } return(manager); }
public static UXControl GetControl(IntPtr ptr) { var type = ZetaDia.Memory.Read <ControlType>(ptr + 0x430); switch (type) { case ControlType.Text: return(MemoryWrapper.Create <UXLabel>(ptr)); case ControlType.Blinker: return(MemoryWrapper.Create <UXBlinker>(ptr)); case ControlType.Button: return(MemoryWrapper.Create <UXButton>(ptr)); case ControlType.HotbarButton: return(MemoryWrapper.Create <UXHotbarButton>(ptr)); case ControlType.StackPanel: return(MemoryWrapper.Create <UXStackPanel>(ptr)); } return(MemoryWrapper.Create <UXControl>(ptr)); }
public static T GetControl <T>(UXReference reference) where T : UXControl, new() { return(MemoryWrapper.Create <T>(UIMap[reference.Hash].BaseAddress)); }