Skip to content

Commit

Permalink
Merge pull request #410 from Mathu-lmn/master
Browse files Browse the repository at this point in the history
Add boat anchoring option
  • Loading branch information
XdGoldenTigerOfficial authored Aug 29, 2024
2 parents ad60996 + e3cbc3f commit e7ce553
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 0 deletions.
1 change: 1 addition & 0 deletions SharedClasses/PermissionsManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ public enum Permission
VOUnderglow,
VOFlashHighbeamsOnHonk,
VODisableTurbulence,
VOAnchorBoat,
VOInfiniteFuel,
VOFlares,
VOPlaneBombs,
Expand Down
16 changes: 16 additions & 0 deletions vMenu/FunctionsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,22 @@ private async Task VehicleOptions()
SetHeliTurbulenceScalar(veh.Handle, 1.0f);
}
}

if (veh.Model.IsBoat)
{
if (MainMenu.VehicleOptionsMenu.AnchorBoat && IsAllowed(Permission.VOAnchorBoat) && CanAnchorBoatHere(veh.Handle))
{
SetBoatAnchor(veh.Handle, true);
SetBoatFrozenWhenAnchored(veh.Handle, true);
SetForcedBoatLocationWhenAnchored(veh.Handle, true);
}
else
{
SetBoatAnchor(veh.Handle, false);
SetBoatFrozenWhenAnchored(veh.Handle, false);
SetForcedBoatLocationWhenAnchored(veh.Handle, false);
}
}
}

// Manage "no helmet"
Expand Down
9 changes: 9 additions & 0 deletions vMenu/UserDefaults.cs
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,12 @@ public static bool VehicleDisableHelicopterTurbulence
set { SetSavedSettingsBool("vehicleDisableHelicopterTurbulence", value); }
}

public static bool VehicleAnchorBoat
{
get { return GetSettingsBool("vehicleAnchorBoat"); }
set { SetSavedSettingsBool("vehicleAnchorBoat", value); }
}

public static bool VehicleBikeSeatbelt
{
get { return GetSettingsBool("vehicleBikeSeatbelt"); }
Expand Down Expand Up @@ -636,6 +642,9 @@ public static void SaveSettings()
VehicleDisableHelicopterTurbulence = MainMenu.VehicleOptionsMenu.DisableHelicopterTurbulence;
prefs.Add("vehicleDisableHelicopterTurbulence", VehicleDisableHelicopterTurbulence);

VehicleAnchorBoat = MainMenu.VehicleOptionsMenu.AnchorBoat;
prefs.Add("vehicleAnchorBoat", VehicleAnchorBoat);

VehicleBikeSeatbelt = MainMenu.VehicleOptionsMenu.VehicleBikeSeatbelt;
prefs.Add("vehicleBikeSeatbelt", VehicleBikeSeatbelt);
}
Expand Down
25 changes: 25 additions & 0 deletions vMenu/menus/VehicleOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ public class VehicleOptions
public bool FlashHighbeamsOnHonk { get; private set; } = UserDefaults.VehicleHighbeamsOnHonk;
public bool DisablePlaneTurbulence { get; private set; } = UserDefaults.VehicleDisablePlaneTurbulence;
public bool DisableHelicopterTurbulence { get; private set; } = UserDefaults.VehicleDisableHelicopterTurbulence;
public bool AnchorBoat { get; private set; } = UserDefaults.VehicleAnchorBoat;
public bool VehicleBikeSeatbelt { get; private set; } = UserDefaults.VehicleBikeSeatbelt;
public bool VehicleInfiniteFuel { get; private set; } = false;
public bool VehicleShowHealth { get; private set; } = false;
Expand Down Expand Up @@ -81,6 +82,7 @@ private void CreateMenu()
var vehicleEngineAO = new MenuCheckboxItem("Engine Always On", "Keeps your vehicle engine on when you exit your vehicle.", VehicleEngineAlwaysOn);
var vehicleNoTurbulence = new MenuCheckboxItem("Disable Plane Turbulence", "Disables the turbulence for all planes.", DisablePlaneTurbulence);
var vehicleNoTurbulenceHeli = new MenuCheckboxItem("Disable Helicopter Turbulence", "Disables the turbulence for all helicopters.", DisableHelicopterTurbulence);
var vehicleSetAnchor = new MenuCheckboxItem("Anchor Boat", "Only works if the current vehicle is a boat and its position is valid for anchoring", AnchorBoat);
var vehicleNoSiren = new MenuCheckboxItem("Disable Siren", "Disables your vehicle's siren. Only works if your vehicle actually has a siren.", VehicleNoSiren);
var vehicleNoBikeHelmet = new MenuCheckboxItem("No Bike Helmet", "No longer auto-equip a helmet when getting on a bike or quad.", VehicleNoBikeHelemet);
var vehicleFreeze = new MenuCheckboxItem("Freeze Vehicle", "Freeze your vehicle's position.", VehicleFrozen);
Expand Down Expand Up @@ -354,6 +356,10 @@ private void CreateMenu()
menu.AddMenuItem(vehicleNoTurbulence);
menu.AddMenuItem(vehicleNoTurbulenceHeli);
}
if (IsAllowed(Permission.VOAnchorBoat))
{
menu.AddMenuItem(vehicleSetAnchor);
}
if (IsAllowed(Permission.VOFlip)) // FLIP VEHICLE
{
menu.AddMenuItem(flipVehicle);
Expand Down Expand Up @@ -658,6 +664,25 @@ private void CreateMenu()
}
}
}
else if (item == vehicleSetAnchor)
{
AnchorBoat = _checked;
if (vehicle != null && vehicle.Exists() && vehicle.Model.IsBoat && CanAnchorBoatHere(vehicle.Handle))
{
if (MainMenu.VehicleOptionsMenu.AnchorBoat)
{
SetBoatAnchor(vehicle.Handle, true);
SetBoatFrozenWhenAnchored(vehicle.Handle, true);
SetForcedBoatLocationWhenAnchored(vehicle.Handle, true);
}
else
{
SetBoatAnchor(vehicle.Handle, false);
SetBoatFrozenWhenAnchored(vehicle.Handle, false);
SetForcedBoatLocationWhenAnchored(vehicle.Handle, false);
}
}
}
else if (item == vehicleNeverDirty)
{
VehicleNeverDirty = _checked;
Expand Down
1 change: 1 addition & 0 deletions vMenuServer/config/permissions.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@ add_ace builtin.everyone "vMenu.VehicleOptions.All" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.Underglow" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.FlashHighbeamsOnHonk" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.DisableTurbulence" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.AnchorBoat" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.InfiniteFuel" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.VOFlares" allow
#add_ace builtin.everyone "vMenu.VehicleOptions.VOPlaneBombs" allow
Expand Down

0 comments on commit e7ce553

Please sign in to comment.