Add toggle mods sync

This commit is contained in:
Sardelka9515
2023-03-23 22:30:39 +08:00
parent e6718cec58
commit 114e59a3bd
6 changed files with 29 additions and 18 deletions

View File

@ -47,14 +47,22 @@ namespace RageCoop.Client
return flags;
}
public static (int, int)[] GetVehicleMods(this VehicleModCollection mods)
public static (int, int)[] GetVehicleMods(this SyncedVehicle sv, out byte togglesMask)
{
var modsArr = mods.ToArray();
var modsArr = sv.MainVehicle.Mods.ToArray();
var result = new (int, int)[modsArr.Length];
for (int i = 0; i < modsArr.Length; i++)
{
result[i] = ((int)modsArr[i].Type, modsArr[i].Index);
}
togglesMask = 0;
for (int i = 0; i < 6; i++)
{
if (Call<bool>(IS_TOGGLE_MOD_ON, sv.MainVehicle.Handle, i + 17))
{
togglesMask |= (byte)(1 << i);
}
}
return result;
}
@ -154,17 +162,6 @@ namespace RageCoop.Client
veh.IsRightHeadLightBroken = model.RightHeadLightBroken > 0;
}
public static Dictionary<int, int> GetPassengers(this Vehicle veh)
{
var ps = new Dictionary<int, int>();
var d = veh.Driver;
if (d != null && d.IsSittingInVehicle()) ps.Add(-1, d.GetSyncEntity().ID);
foreach (var p in veh.Passengers)
if (p.IsSittingInVehicle())
ps.Add((int)p.SeatIndex, p.GetSyncEntity().ID);
return ps;
}
public static void SetDeluxoHoverState(this Vehicle deluxo, bool hover)
{
Call(SET_SPECIAL_FLIGHT_MODE_TARGET_RATIO, deluxo, hover ? 1f : 0f);