// Receiver callback public void Released() { // Receiver has released our lock Receiver = null; }
// Sender target lock public bool LockTarget( BeltReceiverComponent targ ) { // Unlock old target if( ( Receiver != null )&&( targ != Receiver ) ) Receiver.Unlock( this ); // Lock new target if( targ.Lock( this ) ){ Receiver = targ; return true; } return false; }
public override void PostExposeData() { base.PostExposeData(); Scribe_Values.LookValue( ref CurrentState, "CurrentState", TeleportState.Default, true ); if( CurrentState == TeleportState.Default ){ Receiver = null; } else { IntVec3 pos = IntVec3.Invalid; if( Receiver != null ) pos = Receiver.parent.Position; Scribe_Values.LookValue( ref pos, "receiver", IntVec3.Invalid, true ); if( pos == IntVec3.Invalid ){ Receiver = null; } else { Receiver = Manager.GetReceiverAtPos( pos ); } } }