using System; using System.Collections.Generic; using SOTF_Struct.Generic; namespace SOTF_Struct.Data { public class PlayerState { // Types // 0 Bool // 1 Int // 2 Float // 3 String // 4 Float-Array // Name Type Description // ---------------------------------------------------------------- // DoneBuildFireTutorial 0 // isNewItemInInventory_00000483 0 // crafted.00000379 1 // crafted.00000412 1 // crafted.00000413 1 // crafted.00000589 1 // isNewCraftingRecipe_StartingEmergencyPackRecipe 0 // seenFirstTimeEquip_00000379 0 // GotTutorialTarp 0 // isNewCraftingRecipeTutorial_CraftedSpearRecipe 0 // ShowMissingTacticalsTutorial 0 // seenFirstTimeEquip_00000412 0 // consumed.00000446 1 // InventoryLightsActive 0 // seenFirstTimeEquip_00000589 0 // SCREWBookLastUsed 0 // isNewItemInInventory_00000476 0 // isNewItemInInventory_00000393 0 // isNewItemInInventory_00000392 0 // seenFirstTimeEquip_00000392 0 // TutorialBookPageIndex 1 // BlueprintBookPageIndex 1 // isNewItemInInventory_00000379 0 // hasOwned_00000402 0 // isNewItemInInventory_00000380 0 // isNewItemInInventory_00000419 0 // isNewItemInInventory_00000452 0 // consumed.00000452 1 // seenFirstTimeEquip_00000413 0 // HasBeenTiredBefore 0 // Strength 2 50.0745468 // StrengthLevel 1 18 // CurrentStrength 2 7105.48926 // RequiredCurrentStrengthPerLevel 2 14189.8223 // MaxHealth 2 134.0 // CurrentHealth 2 104.0 // TargetHealth 2 104.0 // Hydration 2 40.48312 // Fullness 2 38.4399223 // Rest 2 87.80572 // Stamina 2 60.0669861 // HydrationBuff 2 -0.6156037 // FullnessBuff 2 -58.8896332 // RestBuff 2 0.0 // player.position 4 [-1014.61853, 82.010704, 220.21225] // player.rotation 4 [0.0, 0.999574065, 0.0, -0.0291840434] // player.areaMask 1 0 // DoneRemoveStructureElementTutorial 0 public List _entries { get; set; } public List NamedInts { get; set; } public void Remove(string key) { for (int i = 0; i < _entries.Count; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) { _entries.RemoveAt(i); break; } } public void Set(string key, int value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 1) { _entries[i].IntValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign INT Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), IntValue = value, SettingType = 1 } ); } public void Set(string key, bool value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 0) { _entries[i].BoolValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign BOOL Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), BoolValue = value, SettingType = 0 } ); } public void Set(string key, float value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 2) { _entries[i].FloatValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), FloatValue = value, SettingType = 2 } ); } public void Set(string key, double value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 2) { _entries[i].FloatValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), FloatValue = value, SettingType = 2 } ); } public void Set(string key, string value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 3) { _entries[i].StringValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign STRING Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), StringValue = value, SettingType = 3 } ); } public void Set(string key, float[] value) { bool bFound = false; double[] res = new double[value.Length]; for (int j = 0; j < value.Length; j++) res[j] = (double)value[j]; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 4) { _entries[i].FloatArrayValue = res; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT-Array Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), FloatArrayValue = res, SettingType = 4 } ); } public void Set(string key, double[] value) { bool bFound = false; for (int i = 0, c = _entries.Count; i < c; i++) if (_entries[i].Name.ToLower() == key.ToLower().Trim()) if (_entries[i].SettingType == 4) { _entries[i].FloatArrayValue = value; bFound = true; } else System.Diagnostics.Debug.WriteLine("Failed storing setting. Try to assign FLOAT-Array Value for Key: " + key); if (!bFound) _entries.Add( new Settings() { Name = key.Trim(), FloatArrayValue = value, SettingType = 4 } ); } public dynamic GetSetting(string key) { foreach (Settings setting in _entries) if (setting.Name == key) if (setting.SettingType == 3) return setting.StringValue; else if (setting.SettingType == 0) return setting.BoolValue; else if (setting.SettingType == 1) return setting.IntValue; else if (setting.SettingType == 2) return setting.FloatValue; else if (setting.SettingType == 4) return setting.FloatArrayValue; return ""; } public string GetString(string key) { foreach (Settings setting in _entries) if (setting.Name == key) return setting.StringValue; return ""; } public int GetInt(string key) { foreach (Settings setting in _entries) if (setting.Name == key) return setting.IntValue; return 0; } public double GetFloat(string key) { foreach (Settings setting in _entries) if (setting.Name == key) return setting.FloatValue; return 0.0f; } public bool GetBool(string key) { foreach (Settings setting in _entries) if (setting.Name == key) return setting.BoolValue; return false; } public double[] GetFloatArray(string key) { foreach (Settings setting in _entries) if (setting.Name == key) return setting.FloatArrayValue; return new double[] { }; } } }