Even More Modifiers  1.0.0.0
A mod for rolling various bonus stats on items
ModifierPropertiesIO.cs
Go to the documentation of this file.
1 using System;
2 using System.IO;
3 using Loot.Api.Core;
4 using Terraria;
5 using Terraria.ModLoader.IO;
6 
7 namespace Loot.IO
8 {
9  internal static class ModifierPropertiesIO
10  {
11  public const int SAVE_VERSION = 14;
12 
13  public static ModifierProperties NetReceive(Item item, BinaryReader reader)
14  {
15  var p = new ModifierProperties
16  {
17  Magnitude = reader.ReadSingle(),
18  Power = reader.ReadSingle()
19  };
20  p.NetReceive(item, reader);
21  return p;
22  }
23 
24  public static void NetSend(Item item, ModifierProperties properties, BinaryWriter writer)
25  {
26  writer.Write(properties.Magnitude);
27  writer.Write(properties.Power);
28  properties.NetSend(item, writer);
29  }
30 
31  public static ModifierProperties Load(Item item, TagCompound tag)
32  {
33  ModifierProperties prop;
34  try
35  {
36  prop = new ModifierProperties
37  {
38  Magnitude = tag.GetFloat("Magnitude"),
39  Power = tag.GetFloat("Power")
40  };
41  }
42  catch (Exception)
43  {
45  }
46 
47  prop.Load(item, tag);
48  return prop;
49  }
50 
51  public static TagCompound Save(Item item, ModifierProperties properties)
52  {
53  var tc = new TagCompound
54  {
55  {"Magnitude", properties.Magnitude},
56  {"Power", properties.Power},
57  {"SaveVersion", SAVE_VERSION}
58  };
59  properties.Save(item, tc);
60  return tc;
61  }
62  }
63 }
virtual void Save(Item item, TagCompound tag)
virtual void NetReceive(Item item, BinaryReader reader)
virtual void Load(Item item, TagCompound tag)
ModifierProperties RollMagnitudeAndPower(float magnitudePower=1f, float lukStat=0f)
virtual void NetSend(Item item, BinaryWriter writer)
Defines the properties of a modifier