Low spec Gamecraft mod
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.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

138 lines
2.9KB

  1. using System;
  2. using System.IO;
  3. using Newtonsoft.Json;
  4. namespace Kompressor
  5. {
  6. public struct QualitySettings
  7. {
  8. public int QualitySettingIndex;
  9. public string AnisotropicFiltering;
  10. public int AntiAliasing;
  11. public int AsyncUploadBufferSize;
  12. public bool AsyncUploadPersistentBuffer;
  13. public int AsyncUploadTimeSlice;
  14. public bool BillBoardsFaceCameraPosition;
  15. public float LODBias;
  16. public int MasterTextureLimit;
  17. public int MaximumLODLevel;
  18. public int MaxQueuedFrames;
  19. public int ParticleRaycastBudget;
  20. public int PixelLightCount;
  21. public bool RealtimeReflectionProbes;
  22. public float ResolutionScalingFixedDPIFactor;
  23. public float ShadowCascade2Split;
  24. //public float[] ShadowCascade4Split;
  25. public int ShadowCascades;
  26. public float ShadowDistance;
  27. public string ShadowmaskMode;
  28. public float ShadowNearPlaneOffset;
  29. public string ShadowProjection;
  30. public string ShadowResolution;
  31. public string Shadows;
  32. public string SkinWeights;
  33. public bool SoftParticles;
  34. public bool SoftVegetation;
  35. public bool StreamingMipmapsActive;
  36. public bool StreamingMipmapsAddAllCameras;
  37. public int StreamingMipmapsMaxFileIORequests;
  38. public int StreamingMipmapsMaxLevelReduction;
  39. public float StreamingMipmapsMemoryBudget;
  40. //public int StreamingMipmapsRendersPerFrame;
  41. public int VSyncCount;
  42. public int TargetFrameRate;
  43. public float FieldOfView;
  44. }
  45. public static class QualitySettingsUtility
  46. {
  47. internal static QualitySettings Load(string filepath)
  48. {
  49. string contents = File.ReadAllText(filepath);
  50. return JsonConvert.DeserializeObject<QualitySettings>(contents);
  51. }
  52. internal static void Save(QualitySettings qs, string filepath)
  53. {
  54. string contents = JsonConvert.SerializeObject(qs);
  55. File.WriteAllText(filepath, contents);
  56. }
  57. internal static QualitySettings Default()
  58. {
  59. QualitySettings qs = new QualitySettings
  60. {
  61. AnisotropicFiltering = "Disable",
  62. AntiAliasing = 0,
  63. AsyncUploadBufferSize = 16,
  64. AsyncUploadPersistentBuffer = true,
  65. AsyncUploadTimeSlice = 2,
  66. BillBoardsFaceCameraPosition = false,
  67. LODBias = 0.3f,
  68. MasterTextureLimit = 3,
  69. MaximumLODLevel = 0,
  70. MaxQueuedFrames = 2,
  71. ParticleRaycastBudget = 4,
  72. PixelLightCount = 0,
  73. RealtimeReflectionProbes = false,
  74. ResolutionScalingFixedDPIFactor = 1,
  75. ShadowCascade2Split = 1/3,
  76. ShadowCascades = 1,
  77. ShadowDistance = 22,
  78. ShadowmaskMode = "Shadowmask",
  79. ShadowNearPlaneOffset = 3,
  80. ShadowProjection = "StableFit",
  81. ShadowResolution = "Low",
  82. Shadows = "Disable",
  83. SkinWeights = "OneBone",
  84. SoftParticles = false,
  85. SoftVegetation = false,
  86. StreamingMipmapsActive = false,
  87. StreamingMipmapsAddAllCameras = true,
  88. StreamingMipmapsMaxFileIORequests = 1024,
  89. StreamingMipmapsMaxLevelReduction = 4,
  90. StreamingMipmapsMemoryBudget = 512,
  91. VSyncCount = 0,
  92. TargetFrameRate = -1,
  93. FieldOfView = 60,
  94. };
  95. return qs;
  96. }
  97. }
  98. }