Skip to content

Commit

Permalink
Merge pull request #357 from cm8263/feature/customSaves
Browse files Browse the repository at this point in the history
Add Custom Categories to Saved MP Characters & Vehicles
  • Loading branch information
XdGoldenTigerOfficial committed Nov 27, 2023
2 parents 0e1db95 + bb4c0bf commit c947b95
Show file tree
Hide file tree
Showing 6 changed files with 1,191 additions and 81 deletions.
4 changes: 3 additions & 1 deletion vMenu/CommonFunctions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1488,6 +1488,7 @@ public struct VehicleInfo
public bool bulletProofTires;
public int headlightColor;
public float enveffScale;
public string Category;
};
#endregion

Expand Down Expand Up @@ -1582,7 +1583,8 @@ public static async void SaveVehicle(string updateExistingSavedVehicleName = nul
xenonHeadlights = IsToggleModOn(veh.Handle, 22),
bulletProofTires = !veh.CanTiresBurst,
headlightColor = VehicleOptions.GetHeadlightsColorForVehicle(veh),
enveffScale = GetVehicleEnveffScale(veh.Handle)
enveffScale = GetVehicleEnveffScale(veh.Handle),
Category = "Uncategorized"
};

#endregion
Expand Down
9 changes: 1 addition & 8 deletions vMenu/MainMenu.cs
Original file line number Diff line number Diff line change
Expand Up @@ -710,19 +710,12 @@ private static void CreateSubmenus()
if (IsAllowed(Permission.SVMenu))
{
SavedVehiclesMenu = new SavedVehicles();
var menu = SavedVehiclesMenu.GetMenu();
var menu = SavedVehiclesMenu.GetTypeMenu();
var button = new MenuItem("Saved Vehicles", "Save new vehicles, or spawn or delete already saved vehicles.")
{
Label = "→→→"
};
AddMenu(VehicleSubmenu, menu, button);
VehicleSubmenu.OnItemSelect += (sender, item, index) =>
{
if (item == button)
{
SavedVehiclesMenu.UpdateMenuAvailableCategories();
}
};
}

// Add the Personal Vehicle menu.
Expand Down
1 change: 1 addition & 0 deletions vMenu/MpPedDataManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ public struct MultiplayerPedData
public int Version;
public string WalkingStyle;
public string FacialExpression;
public string Category;
}
}
}
58 changes: 58 additions & 0 deletions vMenu/StorageManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,5 +349,63 @@ public static MpPedDataManager.MultiplayerPedData GetSavedMpCharacterData(string
Log(jsonString);
return output;
}

/// <summary>
/// Returns a <see cref="MpCharacterCategory"/> struct containing the data of the saved MP Character Category.
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static menus.MpPedCustomization.MpCharacterCategory GetSavedMpCharacterCategoryData(string name)
{
var output = new menus.MpPedCustomization.MpCharacterCategory();
if (string.IsNullOrEmpty(name))
{
return output;
}
var jsonString = GetResourceKvpString(name.StartsWith("mp_character_category_") ? name : "mp_character_category_" + name);
if (string.IsNullOrEmpty(jsonString))
{
return output;
}
try
{
output = JsonConvert.DeserializeObject<menus.MpPedCustomization.MpCharacterCategory>(jsonString);
}
catch (JsonException e)
{
Debug.WriteLine(e.Message);
}
Log(jsonString);
return output;
}

/// <summary>
/// Returns a <see cref="SavedVehicleCategory"/> struct containing the data of the saved Vehicle Category.
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static menus.SavedVehicles.SavedVehicleCategory GetSavedVehicleCategoryData(string name)
{
var output = new menus.SavedVehicles.SavedVehicleCategory();
if (string.IsNullOrEmpty(name))
{
return output;
}
var jsonString = GetResourceKvpString(name.StartsWith("saved_veh_category_") ? name : "saved_veh_category_" + name);
if (string.IsNullOrEmpty(jsonString))
{
return output;
}
try
{
output = JsonConvert.DeserializeObject<menus.SavedVehicles.SavedVehicleCategory>(jsonString);
}
catch (JsonException e)
{
Debug.WriteLine(e.Message);
}
Log(jsonString);
return output;
}
}
}
Loading

0 comments on commit c947b95

Please sign in to comment.