A stable modding interface between Techblox and mods https://mod.exmods.org/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.1KB

  1. using System;
  2. using System.IO;
  3. using System.Reflection.Metadata;
  4. using System.Text.RegularExpressions;
  5. using Mono.Cecil;
  6. using ModuleDefinition = Mono.Cecil.ModuleDefinition;
  7. namespace CodeGenerator
  8. {
  9. public class MakeEverythingPublicInGame
  10. {
  11. public void Start()
  12. {
  13. Console.WriteLine("Starting assembly editing...");
  14. var fileRegex =
  15. new Regex(".*(Techblox|Gamecraft|RobocraftX|FullGame|RobocraftECS|DataLoader|RCX|GameState)[^/]*(\\.dll)");
  16. foreach (var file in Directory.EnumerateFiles(@"../../../../../ref/Techblox_Data/Managed"))
  17. {
  18. if (!fileRegex.IsMatch(file)) continue;
  19. Console.WriteLine(file);
  20. ProcessAssembly(file);
  21. }
  22. }
  23. public void ProcessAssembly(string path)
  24. {
  25. var mod = ModuleDefinition.ReadModule(path, new(ReadingMode.Immediate) { ReadWrite = true });
  26. foreach (var typeDefinition in mod.Types)
  27. {
  28. typeDefinition.Attributes |= TypeAttributes.Public;
  29. }
  30. mod.Write();
  31. }
  32. }
  33. }