Example #1
0
        public T[] GetAllElements()
        {
            if (TypedInternalObject.GetArrayLength() == 0)
            {
                return(Array.Empty <T>());
            }
            nuint addr  = TypedInternalObject.Type.GetElementsBase(TypedInternalObject.BaseAddress);
            var   array = new T[Length];

            Context.HContext.DataAccess.Read(addr, array, (uint)array.Length);
            return(array);
        }
Example #2
0
 /// <summary>
 /// Calling this is much more effective than calling the two functions separately.
 /// </summary>
 /// <param name="type"></param>
 /// <param name="prefix"></param>
 public void SetDefaultsAndPrefix(int type, int prefix)
 {
     Context.RunByHookOnUpdate(AssemblySnippet.FromCode(
                                   new AssemblyCode[] {
         Instruction.Create("push ecx"),
         Instruction.Create("push edx"),
         TypedInternalObject.GetMethodCall("Terraria.Item.SetDefaults(Int32)").Call(false, null, null, new object[] { type }),
         TypedInternalObject.GetMethodCall("Terraria.Item.Prefix(Int32)").Call(false, null, null, new object[] { prefix }),
         Instruction.Create("pop edx"),
         Instruction.Create("pop ecx")
     }));
 }
Example #3
0
 public void SetPrefix(int prefix)
 {
     Context.RunByHookOnUpdate(TypedInternalObject.GetMethodCall("Terraria.Item.Prefix(Int32)")
                               .Call(true, null, null, new object[] { prefix }));
 }
Example #4
0
 public void SetDefaults(int type)
 {
     Context.RunByHookOnUpdate(TypedInternalObject.GetMethodCall("Terraria.Item.SetDefaults(Int32)")
                               .Call(true, null, null, new object[] { type }));
 }
Example #5
0
 public void AddBuff(int type, int time, bool quiet = false)
 {
     Context.RunByHookOnUpdate(TypedInternalObject.GetMethodCall("Terraria.NPC.AddBuff(Int32, Int32, Boolean)")
                               .Call(true, null, null, new object[] { type, time, quiet }));
 }
Example #6
0
 public void SetValue(T value, params int[] indexes) =>
 TypedInternalObject.InternalSetIndex(indexes, value);
Example #7
0
 public T GetValue(params int[] indexes) =>
 (T)(dynamic)TypedInternalObject.InternalGetIndex(indexes);
Example #8
0
 public int GetLength(int dimension) =>
 TypedInternalObject.GetArrayLength(dimension);
Example #9
0
 public T GetValue(params int[] indexes) =>
 MakeGameObject <T>(TypedInternalObject.InternalGetIndex(indexes) as HackObject);