this repo has no description
1using GDWeave;
2using GDWeave.Modding;
3using Teemaw.Calico.LexicalTransformer;
4
5namespace Atproto;
6
7public class AtProtoSaveFactory
8{
9 public static IScriptMod Create(IModInterface mod)
10 {
11 return new TransformationRuleScriptModBuilder()
12 .ForMod(mod)
13 .Named("AtProtoSave")
14 .Patching("res://Scenes/Singletons/UserSave/usersave.gdc")
15 .AddRule(new TransformationRuleBuilder()
16 .Named("ready_slot_condition")
17 .Matching(TransformationPatternFactory.CreateGdSnippetPattern("_load_save(last_loaded_slot)", 2))
18 .Do(Operation.ReplaceAll)
19 .With("""
20 var Atproto = $"/root/Atproto"
21 if last_loaded_slot != Atproto.ATPROTO_SLOT or Atproto.config.Autoload:
22 _load_save(last_loaded_slot)
23 else:
24 last_loaded_slot = -1
25 """, 2)
26 )
27 .AddRule(new TransformationRuleBuilder()
28 .Named("save_file")
29 .Matching(TransformationPatternFactory.CreateGdSnippetPattern(
30 "\"locked_refs\": PlayerData.locked_refs, \n\t}\n", 2))
31 .Do(Operation.Append)
32 .With("var atproto = $\"/root/Atproto\"\nif atproto.can_save_to_atproto():\n\tatproto.AtProtoClient.save_file()\n", 1)
33 )
34
35 .Build();
36 }
37}