PlayerState.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. using System;
  2. using System.Collections.Generic;
  3. using SOTF_Struct.Generic;
  4. namespace SOTF_Struct.Data {
  5. public class PlayerState {
  6. // Types
  7. // 0 Bool
  8. // 1 Int
  9. // 2 Float
  10. // 3 String
  11. // 4 Float-Array
  12. // Name Type Description
  13. // ----------------------------------------------------------------
  14. // DoneBuildFireTutorial 0
  15. // isNewItemInInventory_00000483 0
  16. // crafted.00000379 1
  17. // crafted.00000412 1
  18. // crafted.00000413 1
  19. // crafted.00000589 1
  20. // isNewCraftingRecipe_StartingEmergencyPackRecipe 0
  21. // seenFirstTimeEquip_00000379 0
  22. // GotTutorialTarp 0
  23. // isNewCraftingRecipeTutorial_CraftedSpearRecipe 0
  24. // ShowMissingTacticalsTutorial 0
  25. // seenFirstTimeEquip_00000412 0
  26. // consumed.00000446 1
  27. // InventoryLightsActive 0
  28. // seenFirstTimeEquip_00000589 0
  29. // SCREWBookLastUsed 0
  30. // isNewItemInInventory_00000476 0
  31. // isNewItemInInventory_00000393 0
  32. // isNewItemInInventory_00000392 0
  33. // seenFirstTimeEquip_00000392 0
  34. // TutorialBookPageIndex 1
  35. // BlueprintBookPageIndex 1
  36. // isNewItemInInventory_00000379 0
  37. // hasOwned_00000402 0
  38. // isNewItemInInventory_00000380 0
  39. // isNewItemInInventory_00000419 0
  40. // isNewItemInInventory_00000452 0
  41. // consumed.00000452 1
  42. // seenFirstTimeEquip_00000413 0
  43. // HasBeenTiredBefore 0
  44. // Strength 2 50.0745468
  45. // StrengthLevel 1 18
  46. // CurrentStrength 2 7105.48926
  47. // RequiredCurrentStrengthPerLevel 2 14189.8223
  48. // MaxHealth 2 134.0
  49. // CurrentHealth 2 104.0
  50. // TargetHealth 2 104.0
  51. // Hydration 2 40.48312
  52. // Fullness 2 38.4399223
  53. // Rest 2 87.80572
  54. // Stamina 2 60.0669861
  55. // HydrationBuff 2 -0.6156037
  56. // FullnessBuff 2 -58.8896332
  57. // RestBuff 2 0.0
  58. // player.position 4 [-1014.61853, 82.010704, 220.21225]
  59. // player.rotation 4 [0.0, 0.999574065, 0.0, -0.0291840434]
  60. // player.areaMask 1 0
  61. // DoneRemoveStructureElementTutorial 0
  62. public List<Settings> _entries { get; set; }
  63. public List<IntData> NamedInts { get; set; }
  64. public void Remove(string key) {
  65. for (int i = 0; i < _entries.Count; i++)
  66. if (_entries[i].Name.ToLower() == key.ToLower().Trim()) {
  67. _entries.RemoveAt(i);
  68. break;
  69. }
  70. }
  71. public void Set(string key, int value) {
  72. bool bFound = false;
  73. for (int i = 0, c = _entries.Count; i < c; i++)
  74. if (_entries[i].Name.ToLower() == key.ToLower().Trim())
  75. if (_entries[i].SettingType == 1) {
  76. _entries[i].IntValue = value;
  77. bFound = true;
  78. } else
  79. System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign INT Value for Key: " + key);
  80. if (!bFound)
  81. _entries.Add(
  82. new Settings() {
  83. Name = key.Trim(),
  84. IntValue = value,
  85. SettingType = 1
  86. }
  87. );
  88. }
  89. public void Set(string key, bool value) {
  90. bool bFound = false;
  91. for (int i = 0, c = _entries.Count; i < c; i++)
  92. if (_entries[i].Name.ToLower() == key.ToLower().Trim())
  93. if (_entries[i].SettingType == 0) {
  94. _entries[i].BoolValue = value;
  95. bFound = true;
  96. } else
  97. System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign BOOL Value for Key: " + key);
  98. if (!bFound)
  99. _entries.Add(
  100. new Settings() {
  101. Name = key.Trim(),
  102. BoolValue = value,
  103. SettingType = 0
  104. }
  105. );
  106. }
  107. public void Set(string key, float value) {
  108. bool bFound = false;
  109. for (int i = 0, c = _entries.Count; i < c; i++)
  110. if (_entries[i].Name.ToLower() == key.ToLower().Trim())
  111. if (_entries[i].SettingType == 2) {
  112. _entries[i].FloatValue = value;
  113. bFound = true;
  114. } else
  115. System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT Value for Key: " + key);
  116. if (!bFound) _entries.Add(
  117. new Settings() {
  118. Name = key.Trim(),
  119. FloatValue = value,
  120. SettingType = 2
  121. }
  122. );
  123. }
  124. public void Set(string key, double value) {
  125. bool bFound = false;
  126. for (int i = 0, c = _entries.Count; i < c; i++)
  127. if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 2) {
  128. _entries[i].FloatValue = value;
  129. bFound = true;
  130. } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT Value for Key: " + key);
  131. if (!bFound) _entries.Add(
  132. new Settings() {
  133. Name = key.Trim(),
  134. FloatValue = value,
  135. SettingType = 2
  136. }
  137. );
  138. }
  139. public void Set(string key, string value) {
  140. bool bFound = false;
  141. for (int i = 0, c = _entries.Count; i < c; i++)
  142. if (_entries[i].Name.ToLower() == key.ToLower().Trim())
  143. if (_entries[i].SettingType == 3) {
  144. _entries[i].StringValue = value;
  145. bFound = true;
  146. } else
  147. System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign STRING Value for Key: " + key);
  148. if (!bFound) _entries.Add(
  149. new Settings() {
  150. Name = key.Trim(),
  151. StringValue = value,
  152. SettingType = 3
  153. }
  154. );
  155. }
  156. public void Set(string key, float[] value) {
  157. bool bFound = false;
  158. double[] res = new double[value.Length];
  159. for (int j = 0; j < value.Length; j++)
  160. res[j] = (double)value[j];
  161. for (int i = 0, c = _entries.Count; i < c; i++)
  162. if (_entries[i].Name.ToLower() == key.ToLower().Trim())
  163. if (_entries[i].SettingType == 4) {
  164. _entries[i].FloatArrayValue = res;
  165. bFound = true;
  166. } else
  167. System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT-Array Value for Key: " + key);
  168. if (!bFound)
  169. _entries.Add(
  170. new Settings() {
  171. Name = key.Trim(),
  172. FloatArrayValue = res,
  173. SettingType = 4
  174. }
  175. );
  176. }
  177. public void Set(string key, double[] value) {
  178. bool bFound = false;
  179. for (int i = 0, c = _entries.Count; i < c; i++)
  180. if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 4) {
  181. _entries[i].FloatArrayValue = value;
  182. bFound = true;
  183. } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT-Array Value for Key: " + key);
  184. if (!bFound) _entries.Add(
  185. new Settings() {
  186. Name = key.Trim(),
  187. FloatArrayValue = value,
  188. SettingType = 4
  189. }
  190. );
  191. }
  192. public dynamic GetSetting(string key) {
  193. foreach (Settings setting in _entries)
  194. if (setting.Name == key)
  195. if (setting.SettingType == 3)
  196. return setting.StringValue;
  197. else if (setting.SettingType == 0)
  198. return setting.BoolValue;
  199. else if (setting.SettingType == 1)
  200. return setting.IntValue;
  201. else if (setting.SettingType == 2)
  202. return setting.FloatValue;
  203. else if (setting.SettingType == 4)
  204. return setting.FloatArrayValue;
  205. return "";
  206. }
  207. public string GetString(string key) {
  208. foreach (Settings setting in _entries)
  209. if (setting.Name == key)
  210. return setting.StringValue;
  211. return "";
  212. }
  213. public int GetInt(string key) {
  214. foreach (Settings setting in _entries)
  215. if (setting.Name == key)
  216. return setting.IntValue;
  217. return 0;
  218. }
  219. public double GetFloat(string key) {
  220. foreach (Settings setting in _entries)
  221. if (setting.Name == key)
  222. return setting.FloatValue;
  223. return 0.0f;
  224. }
  225. public bool GetBool(string key) {
  226. foreach (Settings setting in _entries)
  227. if (setting.Name == key)
  228. return setting.BoolValue;
  229. return false;
  230. }
  231. public double[] GetFloatArray(string key) {
  232. foreach (Settings setting in _entries)
  233. if (setting.Name == key)
  234. return setting.FloatArrayValue;
  235. return new double[] { };
  236. }
  237. }
  238. }