vehicle sync OHNE FEHLER

This commit is contained in:
hydrant
2020-05-09 01:41:39 +02:00
parent 93540e721b
commit 2e91fe76ee
12 changed files with 163 additions and 429 deletions

View File

@@ -1,6 +1,7 @@
import game, { VehicleData } from '../index';
import { IVehicle, EntityType, IEntity, VehicleSeat } from '../game';
import game from '../index';
import { IVehicle, EntityType, IEntity, VehicleSeat, DoorState } from '../game';
import { parseJson } from '../util';
import { VehicleData } from '../game';
game.events.add('SERVER:Vehicle:UpdateData', (vehId, dataStr) => {
var data: VehicleData = parseJson(dataStr);
@@ -48,10 +49,11 @@ function setVehicleData(veh: IVehicle, data: VehicleData): void {
return;
}
if (data === null) {
if (!data) {
data = {
EngineState: false,
Locked: false
Locked: false,
Doors: {}
};
}
@@ -64,6 +66,19 @@ function setVehicleData(veh: IVehicle, data: VehicleData): void {
veh.setUndriveable(!engineState);
}
var doors = Object.keys(data.Doors);
doors.forEach(door => {
var doorNumber = parseInt(door);
var doorState = <number>data.Doors[doorNumber];
if (doorState === DoorState.DoorOpen.valueOf()) {
veh.setDoorOpen(doorNumber, false, false);
} else if (doorState === DoorState.DoorClosed.valueOf()) {
veh.setDoorShut(doorNumber, false);
}
});
var locked: boolean = data.Locked;
veh.setDoorsLocked(locked);
}