Initializer.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Linq;
  3. namespace OpenVIII.Fields
  4. {
  5. public static class Initializer
  6. {
  7. /// <summary>
  8. /// Should be called only once
  9. /// </summary>
  10. public static void Init()
  11. {
  12. ArchiveWorker aw = new ArchiveWorker(Memory.Archives.A_FIELD);
  13. string[] lists = aw.GetListOfFiles();
  14. string maplist = lists.First(x => x.ToLower().Contains("mapdata.fs"));
  15. ArchiveBase mapdata = aw.GetArchive(maplist);
  16. string map = mapdata.GetListOfFiles()[0];
  17. string[] maplistb = System.Text.Encoding.UTF8.GetString(mapdata.GetBinaryFile(map))
  18. .Replace("\r", "")
  19. .Split('\n');
  20. Memory.FieldHolder.fields = maplistb;
  21. FieldId.FieldId_ = maplistb;
  22. }
  23. public static IServices GetServices()
  24. {
  25. ServiceProvider services = new ServiceProvider();
  26. EventEngine engine = new EventEngine();
  27. services.Register(ServiceId.Interaction, new InteractionService());
  28. services.Register(ServiceId.Field, new FieldService(engine));
  29. services.Register(ServiceId.Global, new GlobalVariableService());
  30. services.Register(ServiceId.Gameplay, new GameplayService());
  31. services.Register(ServiceId.Salary, new SalaryService());
  32. services.Register(ServiceId.Party, new PartyService());
  33. services.Register(ServiceId.Movie, new MovieService());
  34. services.Register(ServiceId.Message, new MessageService());
  35. services.Register(ServiceId.Menu, new MenuService());
  36. services.Register(ServiceId.Music, new MusicService());
  37. services.Register(ServiceId.Sound, new SoundService());
  38. services.Register(ServiceId.Rendering, new RenderingService());
  39. return services;
  40. }
  41. }
  42. }