Beispiel #1
0
        private static void Postfix(VehicleDockingBay __instance)
        {
            bool flag  = __instance.subRoot is BaseRoot;
            bool flag2 = flag;

            if (flag2)
            {
                __instance.CancelInvoke("OnUndockingStart");
                __instance.InvokeRepeating("OnUndockingStart", 0.0f, 1f);
            }
        }
Beispiel #2
0
        private void FinishVehicleUndocking(VehicleUndocking packet, Vehicle vehicle, VehicleDockingBay vehicleDockingBay)
        {
            if (vehicleDockingBay.GetSubRoot().isCyclops)
            {
                vehicleDockingBay.SetVehicleUndocked();
            }
            vehicleDockingBay._dockedVehicle = null;
            vehicleDockingBay.CancelInvoke("RepairVehicle");
            vehicle.docked = false;
            Optional <RemotePlayer> player = remotePlayerManager.Find(packet.PlayerId);

            if (player.HasValue)
            {
                // Sometimes the player is not set accordingly which stretches the player's model instead of putting them in place
                // after undocking. This fixes it (the player rigid body seems to not be set right sometimes)
                player.Value.SetSubRoot(null);
                player.Value.SetVehicle(null);
                player.Value.SetVehicle(vehicle);
            }
            vehicles.SetOnPilotMode(packet.VehicleId, packet.PlayerId, true);
            Log.Debug($"Set vehicle undocking complete");
        }