public static void SendDamageToServer(VehicleEntity vehicle, EntityKey entityKey, float damage) { var e = VehicleDamangeSyncEvent.Allocate(); e.EType = VehicleSyncEventType.Damage; e.SourceObjectId = vehicle.entityKey.Value.EntityId; e.TargetObject = entityKey; e.Damage = damage; var comp = vehicle.vehicleSyncEvent; comp.SyncEvents.Enqueue(e); }
public static IVehicleSyncEvent FromProtoBuf(VehicleEventMessage message) { switch (message.EventType) { case (int)VehicleSyncEventType.Damage: { var damageSyncEvent = VehicleDamangeSyncEvent.Allocate(); damageSyncEvent.EType = VehicleSyncEventType.Damage; damageSyncEvent.SourceObjectId = message.SourceId; damageSyncEvent.TargetObject = new EntityKey(message.Ints[1], (short)message.Ints[0]); damageSyncEvent.Damage = message.Floats[0]; return(damageSyncEvent); } default: throw new Exception("Unkown VehicleSyncEventType : " + message.EventType); } }
private void ProcessDamageSyncEvent(VehicleDamangeSyncEvent e) { switch (e.TargetObject.EntityType) { case (int)EEntityType.Player: var player = _contexts.player.GetEntityWithEntityKey(e.TargetObject); if (player != null) { DoProcessDamageToPlayer(_contexts, player, e.Damage); } break; case (int)EEntityType.Vehicle: var vehicle = _contexts.vehicle.GetEntityWithEntityKey(e.TargetObject); if (vehicle != null) { DoProcessDamageToVehicle(vehicle, e.Damage); } break; } }