From f15a1f4fbc8dc936d2cda31eeed062189b062bb1 Mon Sep 17 00:00:00 2001 From: Zontreck Date: Fri, 3 Nov 2023 00:44:23 -0700 Subject: [PATCH] Fix mod instance being the same only on deserialize --- lib/game.dart | 4 ++-- lib/mod.dart | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/game.dart b/lib/game.dart index f88a61d..0fdc67a 100644 --- a/lib/game.dart +++ b/lib/game.dart @@ -152,7 +152,7 @@ class ModManagerState extends State { itemBuilder: (ctx, idx) { Mod mod = settings.mods[idx]; return Padding( - key: Key("${mod.mod_instance_id}"), + key: Key("${mod.mod_instance_id()}"), padding: EdgeInsets.all(12), child: ListTile( title: Text(mod.mod_name), @@ -222,7 +222,7 @@ class ModPage extends StatelessWidget { id.text = args.mod_id.toString(); name.text = args.mod_name; isNewMod = args.newMod; - instance = args.mod_instance_id; + instance = args.mod_instance_id(); } } diff --git a/lib/mod.dart b/lib/mod.dart index bde6acc..05d6f2f 100644 --- a/lib/mod.dart +++ b/lib/mod.dart @@ -12,7 +12,14 @@ class Mod { int mod_id; bool newMod = false; - final mod_instance_id = UuidV4().generate(); + String _id = ""; + String mod_instance_id() { + if (_id.isEmpty) { + _id = UuidV4().generate(); + } + + return _id; + } Mod({this.mod_name = "undef", this.mod_id = 0, this.newMod = false}); }