Make sure vehicle exists before saving pos/rot

This commit is contained in:
Vortrex
2022-01-01 13:26:51 -06:00
parent 8bad9eb5a6
commit ecbe91895b

View File

@@ -78,13 +78,15 @@ function saveVehicleToDatabase(vehicleDataId) {
logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Saving vehicle ${tempVehicleData.databaseId} to database ...`); logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Saving vehicle ${tempVehicleData.databaseId} to database ...`);
let dbConnection = connectToDatabase(); let dbConnection = connectToDatabase();
if(dbConnection) { if(dbConnection) {
if(!tempVehicleData.spawnLocked) { if(tempVehicleData.vehicle != false) {
if(areServerElementsSupported()) { if(!tempVehicleData.spawnLocked) {
tempVehicleData.spawnPosition = tempVehicleData.vehicle.position; if(areServerElementsSupported()) {
tempVehicleData.spawnRotation = tempVehicleData.vehicle.heading; tempVehicleData.spawnPosition = tempVehicleData.vehicle.position;
} else { tempVehicleData.spawnRotation = tempVehicleData.vehicle.heading;
tempVehicleData.spawnPosition = tempVehicleData.syncPosition; } else {
tempVehicleData.spawnRotation = tempVehicleData.syncHeading; tempVehicleData.spawnPosition = tempVehicleData.syncPosition;
tempVehicleData.spawnRotation = tempVehicleData.syncHeading;
}
} }
} }
@@ -1174,6 +1176,7 @@ function respawnVehicle(vehicle) {
// =========================================================================== // ===========================================================================
function spawnVehicle(vehicleData) { function spawnVehicle(vehicleData) {
logToConsole(LOG_DEBUG, `[VRR.Vehicle]: Spawning ${getVehicleNameFromModel(vehicleData.model)} at ${vehicleData.spawnPosition.x}, ${vehicleData.spawnPosition.y}, ${vehicleData.spawnPosition.z} with heading ${vehicleData.spawnRotation}`);
let vehicle = createGameVehicle(vehicleData.model, vehicleData.spawnPosition, vehicleData.spawnRotation); let vehicle = createGameVehicle(vehicleData.model, vehicleData.spawnPosition, vehicleData.spawnRotation);
addToWorld(vehicle); addToWorld(vehicle);
@@ -1184,25 +1187,30 @@ function spawnVehicle(vehicleData) {
if(isGameFeatureSupported("vehicleColours")) { if(isGameFeatureSupported("vehicleColours")) {
if(vehicleData.colour1IsRGBA && vehicleData.colour2IsRGBA) { if(vehicleData.colour1IsRGBA && vehicleData.colour2IsRGBA) {
vehicle.setRGBColours(vehicleData.colour1RGBA, vehicleData.colour2RGBA); vehicle.setRGBColours(vehicleData.colour1RGBA, vehicleData.colour2RGBA);
let colour1 = rgbaArrayFromToColour(vehicleData.colour1RGBA);
let colour2 = rgbaArrayFromToColour(vehicleData.colour2RGBA);
logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s colours to RGBA [${colour1[0]}, ${colour1[1]}, ${colour1[2]}, ${colour1[3]}], [(]${colour2[0]}, ${colour2[1]}, ${colour2[2]}, ${colour2[3]}]`);
vehicle.setRGBColours(vehicleData.colour1RGBA, vehicleData.colour2RGBA);
} else { } else {
vehicle.colour1 = vehicleData.colour1; setVehicleColours(vehicle, vehicleData.colour1, vehicleData.colour2, vehicleData.colour3, vehicleData.colour4);
vehicle.colour2 = vehicleData.colour2; logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s colours to ${vehicleData.colour1}, ${vehicleData.colour2}, ${vehicleData.colour3}, ${vehicleData.colour4}`);
vehicle.colour3 = vehicleData.colour3;
vehicle.colour4 = vehicleData.colour4;
} }
} }
if(vehicleData.spawnLocked == true) { if(vehicleData.spawnLocked == true) {
vehicle.engine = false; setVehicleEngine(vehicle, false);
logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s engine to OFF`);
} else { } else {
vehicle.engine = intToBool(vehicleData.engine); setVehicleEngine(vehicle, intToBool(vehicleData.engine));
logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s engine to ${toUpperCase(getOnOffFromBool(getVehicleEngineState(vehicle)))}`);
} }
if(typeof vehicle.locked != "undefined") { if(typeof vehicle.locked != "undefined") {
vehicle.locked = intToBool(vehicleData.locked); setVehicleLocked(vehicle, intToBool(vehicleData.locked));
logToConsole(LOG_VERBOSE, `[VRR.Vehicle]: Setting vehicle ${vehicle.id}'s lock state to ${toUpperCase(getOnOffFromBool(getVehicleLockState(vehicle)))}`);
} }
vehicle.dimension = vehicleData.dimension; setElementDimension(vehicle.dimension, vehicleData.dimension);
vehicleData.vehicle = vehicle; vehicleData.vehicle = vehicle;