コード例 #1
0
ファイル: HitchTrough.cs プロジェクト: Ailtop/RustDocuments
 public bool AttemptToHitch(RidableHorse horse, HitchSpot hitch = null)
 {
     if (horse == null)
     {
         return(false);
     }
     if (hitch == null)
     {
         hitch = GetClosest(horse.transform.position);
     }
     if (hitch != null)
     {
         object obj = Interface.CallHook("OnHorseHitch", horse, hitch);
         if (obj is bool)
         {
             return((bool)obj);
         }
         hitch.SetOccupiedBy(horse);
         horse.SetHitch(this);
         horse.transform.SetPositionAndRotation(hitch.spot.position, hitch.spot.rotation);
         horse.DismountAllPlayers();
         return(true);
     }
     return(false);
 }
コード例 #2
0
ファイル: HitchTrough.cs プロジェクト: Ailtop/RustDocuments
    public HitchSpot GetClosest(Vector3 testPos, bool includeOccupied = false, float maxRadius = -1f)
    {
        float     num    = 10000f;
        HitchSpot result = null;

        for (int i = 0; i < hitchSpots.Length; i++)
        {
            float num2 = Vector3.Distance(testPos, hitchSpots[i].spot.position);
            if (num2 < num && (maxRadius == -1f || num2 <= maxRadius) && (includeOccupied || !hitchSpots[i].IsOccupied()))
            {
                num    = num2;
                result = hitchSpots[i];
            }
        }
        return(result);
    }