public void Reserve(Pawn claimant, Job job, LocalTargetInfo target) { if (!this.IsReservedBy(claimant, target)) { PhysicalInteractionReservation physicalInteractionReservation = new PhysicalInteractionReservation(); physicalInteractionReservation.target = target; physicalInteractionReservation.claimant = claimant; physicalInteractionReservation.job = job; this.reservations.Add(physicalInteractionReservation); } }
public Pawn FirstReserverOf(LocalTargetInfo target) { for (int i = 0; i < this.reservations.Count; i++) { PhysicalInteractionReservation physicalInteractionReservation = this.reservations[i]; if (physicalInteractionReservation.target == target) { return(physicalInteractionReservation.claimant); } } return(null); }
public bool IsReservedBy(Pawn claimant, LocalTargetInfo target) { for (int i = 0; i < this.reservations.Count; i++) { PhysicalInteractionReservation physicalInteractionReservation = this.reservations[i]; if (physicalInteractionReservation.target == target && physicalInteractionReservation.claimant == claimant) { return(true); } } return(false); }
public void Release(Pawn claimant, Job job, LocalTargetInfo target) { for (int i = 0; i < this.reservations.Count; i++) { PhysicalInteractionReservation physicalInteractionReservation = this.reservations[i]; if (physicalInteractionReservation.target == target && physicalInteractionReservation.claimant == claimant && physicalInteractionReservation.job == job) { this.reservations.RemoveAt(i); return; } } Log.Warning(claimant + " tried to release reservation on target " + target + ", but it's not reserved by him."); }