5656import com .recursive_pineapple .matter_manipulator .common .data .WeightedSpecList ;
5757import com .recursive_pineapple .matter_manipulator .common .items .MMUpgrades ;
5858import com .recursive_pineapple .matter_manipulator .common .items .manipulator .ItemMatterManipulator .ManipulatorTier ;
59+ import com .recursive_pineapple .matter_manipulator .common .persist .BitSetJsonAdapter ;
5960import com .recursive_pineapple .matter_manipulator .common .persist .NBTJsonAdapter ;
6061import com .recursive_pineapple .matter_manipulator .common .persist .StaticEnumJsonAdapter ;
6162import com .recursive_pineapple .matter_manipulator .common .persist .UIDJsonAdapter ;
@@ -78,6 +79,7 @@ public class MMState {
7879 .registerTypeAdapter (NBTTagCompound .class , new NBTJsonAdapter ())
7980 .registerTypeAdapter (ForgeDirection .class , new StaticEnumJsonAdapter <>(ForgeDirection .class ))
8081 .registerTypeAdapter (WeightedSpecList .class , new WeightedListJsonAdapter ())
82+ .registerTypeAdapter (BitSet .class , new BitSetJsonAdapter ())
8183 .create ();
8284
8385 @ SerializedName ("jv" )
@@ -91,7 +93,7 @@ public class MMState {
9193 public double charge ;
9294
9395 public BitSet installedUpgrades = new BitSet ();
94- public int upgradeProvidedCapabilities ;
96+ public transient int upgradeProvidedCapabilities ;
9597
9698 public transient ItemMatterManipulator manipulator ;
9799
@@ -148,9 +150,20 @@ private static void migrateJson(JsonObject obj) {
148150 config .remove ("replaceWhitelist" );
149151 config .remove ("replaceWith" );
150152 }
153+
151154 version = 1 ;
152155 }
153156
157+ if (version == 1 ) {
158+ // Load with the default encoder
159+ BitSet bitSet = new Gson ().fromJson (obj .get ("installedUpgrades" ), BitSet .class );
160+
161+ // Save with the new encoder
162+ obj .add ("installedUpgrades" , GSON .toJsonTree (bitSet ));
163+
164+ version = 2 ;
165+ }
166+
154167 obj .addProperty ("jv" , version );
155168 }
156169
0 commit comments