Adapted Save- and LoadManager to new Vehicle System

This commit is contained in:
hydrant
2018-11-29 20:04:40 +01:00
parent b83c071e45
commit fab3f05575
8 changed files with 114 additions and 66 deletions

View File

@@ -4,6 +4,7 @@ using System.Text;
using GTANetworkAPI;
using reallife_gamemode.Model;
using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions;
/**
* @overview Life of German Reallife - Managers LoadManager (LoadManager.cs)
@@ -15,10 +16,6 @@ namespace reallife_gamemode.Server.Managers
{
public class LoadManager : Script
{
public static List<GotoPoint> GotoPointList = new List<GotoPoint>();
public static List<Vehicle> FactionVehicleList = new List<Vehicle>();
public static List<Vehicle> ShopVehicleList = new List<Vehicle>();
public static List<Vehicle> UserVehicleList = new List<Vehicle>();
[ServerEvent(Event.ResourceStart)]
public void OnResourceStart()
@@ -33,13 +30,6 @@ namespace reallife_gamemode.Server.Managers
b.Color, b.Name, b.Alpha, b.DrawDistance, b.ShortRange, (short) b.Rotation, b.Dimension);
}
}
foreach (GotoPoint g in loadData.GotoPoints)
{
if (g.Active == true)
{
GotoPointList.Add(g);
}
}
foreach(ServerVehicle veh in loadData.ServerVehicles)
{
@@ -52,24 +42,13 @@ namespace reallife_gamemode.Server.Managers
NAPI.Vehicle.CreateVehicle((uint)savedV.Model, new Vector3(savedV.PositionX, savedV.PositionY, savedV.PositionZ), savedV.Heading, savedV.PrimaryColor,
savedV.SecondaryColor, savedV.NumberPlate, 255, savedV.Locked);
}
if (veh is FactionVehicle factionV)
{
current.SetData("factionId", factionV.FactionId);
FactionVehicleList.Add(current);
}
if (veh is ShopVehicle shopV)
else if (veh is ShopVehicle shopV)
{
string displayName = NAPI.Vehicle.GetVehicleDisplayName(shopV.Model);
ShopVehicleList.Add(current);
NAPI.Vehicle.SetVehicleEngineHealth(current, 0);
var tLabel = NAPI.TextLabel.CreateTextLabel(displayName + " | " + shopV.Price + "~g~$", new Vector3(shopV.PositionX, shopV.PositionY, shopV.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false);
current.SetData("shopVehicleId", shopV.Id);
var tLabel = NAPI.TextLabel.CreateTextLabel(displayName + " | " + shopV.Price.ToMoneyString(), new Vector3(shopV.PositionX, shopV.PositionY, shopV.PositionZ + 1.5), 10, 1, 0, new Color(255, 255, 255), false);
tLabel.AttachTo(current, "chassis", new Vector3(0, 0, 1.5), new Vector3(0, 0, 0));
}
if (veh is UserVehicle userV)
{
UserVehicleList.Add(current);
}
}

View File

@@ -1,7 +1,9 @@
using GTANetworkAPI;
using reallife_gamemode.Model;
using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions;
using reallife_gamemode.Server.Managers;
using reallife_gamemode.Server.Saves;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -30,9 +32,9 @@ namespace reallife_gamemode.Server.Events
NAPI.Blip.CreateBlip(uint.Parse(blipSprite), new Vector3(x,y,z), scale, color, name, alpha, drawDistance, shortRange, short.Parse(blipRotation), dimension);
using (var saveData = new Model.DatabaseContext())
using (var saveData = new DatabaseContext())
{
var dataSet = new Server.Saves.SavedBlip
var dataSet = new SavedBlip
{
Sprite = sprite,
PositionX = x,
@@ -53,12 +55,12 @@ namespace reallife_gamemode.Server.Events
}
}
public static void SaveVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension)
public static Vehicle SaveVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked)
{
using (var saveData = new Model.DatabaseContext())
using (var saveData = new DatabaseContext())
{
var dataSet = new Server.Saves.SavedVehicle
var dataSet = new SavedVehicle
{
Model = vehicleModel,
PositionX = vehiclePosition.X,
@@ -71,16 +73,19 @@ namespace reallife_gamemode.Server.Events
Locked = vehicleLocked,
Active = true
};
saveData.ServerVehicles.Add(dataSet);
saveData.Vehicles.Add(dataSet);
saveData.SaveChanges();
return dataSet.Spawn(veh);
}
}
public static void SaveFactionVehicleData(VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, byte vehicleDimension, int? factionId)
public static Vehicle SaveFactionVehicleData(Vehicle veh, VehicleHash vehicleModel, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor, bool vehicleLocked, bool vehicleEngine, int? factionId)
{
using (var saveData = new Model.DatabaseContext())
using (var saveData = new DatabaseContext())
{
var dataSet = new Entities.FactionVehicle
Console.WriteLine("Adding Faction Vehicle Secondary Color: " + vehicleSecondaryColor);
var dataSet = new FactionVehicle
{
Model = vehicleModel,
FactionId = factionId,
@@ -94,16 +99,18 @@ namespace reallife_gamemode.Server.Events
Locked = vehicleLocked,
Active = true
};
saveData.ServerVehicles.Add(dataSet);
saveData.FactionVehicles.Add(dataSet);
saveData.SaveChanges();
return dataSet.Spawn(veh);
}
}
public static void SaveShopVehicleData(VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, byte vehiclePrimaryColor, byte vehicleSecondaryColor, byte vehicleDimension, int? factionId)
public static Vehicle SaveShopVehicleData(Vehicle veh, VehicleHash vehicleModel, string vehicleModelName, Vector3 vehiclePosition, float vehicleHeading,
string vehicleNumberPlate, int vehiclePrimaryColor, int vehicleSecondaryColor)
{
using (var saveData = new Model.DatabaseContext())
using (var saveData = new DatabaseContext())
{
var dataSet = new Entities.ShopVehicle
var dataSet = new ShopVehicle
{
Model = vehicleModel,
PositionX = vehiclePosition.X,
@@ -115,8 +122,10 @@ namespace reallife_gamemode.Server.Events
SecondaryColor = vehicleSecondaryColor,
Active = true
};
saveData.ServerVehicles.Add(dataSet);
saveData.ShopVehicles.Add(dataSet);
saveData.SaveChanges();
return dataSet.Spawn(veh);
}
}

View File

@@ -1,4 +1,6 @@
using GTANetworkAPI;
using reallife_gamemode.Server.Entities;
using reallife_gamemode.Server.Extensions;
using System.Collections.Generic;
namespace reallife_gamemode.Server.Managers
@@ -19,7 +21,12 @@ namespace reallife_gamemode.Server.Managers
{
if(c.IsInVehicle)
{
c.TriggerEvent("showTuningInfo", c.GetData("duty"));
Vehicle v = c.Vehicle;
if(v.GetServerVehicle() is FactionVehicle fV && fV.GetFaction().StateOwned)
{
return;
}
c.TriggerEvent("showTuningInfo");
}
};

View File

@@ -25,6 +25,21 @@ namespace reallife_gamemode.Server.Managers
_serverVehicles[serverVehicle.Id] = vehicle.Handle;
}
internal static void DeleteVehicle(Vehicle veh)
{
ServerVehicle sVeh;
if ((sVeh = GetServerVehicleFromVehicle(veh)) != null)
{
_serverVehicles.Remove(sVeh.Id);
}
veh.Delete();
}
public static Vehicle GetVehicleFromHandle(NetHandle handle)
{
return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == handle);
}
public static Vehicle GetVehicleFromServerVehicle(ServerVehicle serverVehicle)
{
@@ -34,7 +49,7 @@ namespace reallife_gamemode.Server.Managers
return null;
}
return NAPI.Pools.GetAllVehicles().Find(v => v.Handle == _serverVehicles[serverVehicle.Id]);
return GetVehicleFromHandle(_serverVehicles[serverVehicle.Id]);
}
public static ServerVehicle GetServerVehicleFromVehicle(Vehicle veh)