using System; using System.Collections.Generic; using System.Linq; using System.Text; using GTANetworkAPI; using ReallifeGamemode.Database.Entities; using ReallifeGamemode.Database.Models; using ReallifeGamemode.Server.Extensions; using ReallifeGamemode.Server.Inventory.Interfaces; using ReallifeGamemode.Server.Managers; using ReallifeGamemode.Server.Util; namespace ReallifeGamemode.Server.Events { public class Inventory : Script { [RemoteEvent("getNearVehicles")] public void SrvEvent_GetNearVehicles(Client client) { var user = client.GetUser(); var inventoryWeight = 0; List vehicleInventory = new List(); if (!client.IsInVehicle) { using (var context = new DatabaseContext()) { foreach (Vehicle veh in NAPI.Pools.GetAllVehicles()) { List iName = new List(); List iAmount = new List(); List iId = new List(); inventoryWeight = 0; if (veh.Position.DistanceTo(client.Position) < 2.5f) { if (VehicleStreaming.GetDoorState(veh, DoorID.DoorTrunk) == DoorState.DoorOpen) { ServerVehicle serverVehicle = VehicleManager.GetServerVehicleFromVehicle(veh, context); List vehicleItems = context.VehicleItems.ToList().FindAll(i => i.VehicleId == serverVehicle.Id); foreach (var vehItem in vehicleItems) { IItem iItem = InventoryManager.GetItemById(vehItem.ItemId); var currentItemWeight = iItem.Gewicht * vehItem.Amount; inventoryWeight += currentItemWeight; iName.Add(iItem.Name); iAmount.Add(vehItem.Amount); iId.Add(iItem.Id); } var vehInv = new VehicleInventory { ID = serverVehicle.Id, currentWeight = inventoryWeight, totalWeight = 250, ivehName = iName.ToArray(), ivehAmount = iAmount.ToArray(), ivehId = iId.ToArray() }; vehicleInventory.Add(vehInv); } client.TriggerEvent("setVehiclesInventory", vehicleInventory.ToArray()); return; } } } } } } }