public override Building AdjacentReachableHopper(Pawn reacher) { // Check for generic hoppers if (compHopperUser != null) { var hoppers = compHopperUser.FindHoppers(); if (!hoppers.NullOrEmpty()) { foreach (var hopper in hoppers) { if ( reacher.CanReach( ( TargetInfo )(( Thing )hopper.parent), PathEndMode.Touch, reacher.NormalMaxDanger(), false) ) { return((Building)hopper.parent); } } } } // Check for vanilla hoppers return(base.AdjacentReachableHopper(reacher)); }
/// <summary> /// Draws a target highlight on all connectable Hoppers around target /// </summary> /// <param name="def"></param> /// <param name="center"></param> /// <param name="rot"></param> public override void DrawGhost(ThingDef def, IntVec3 center, Rot4 rot) { List <CompHopper> hoppers = CompHopperUser.FindHoppers(center, rot, def.Size); foreach (var hopper in hoppers) { GenDraw.DrawFieldEdges(hopper.parent.OccupiedRect().Cells.ToList()); GenDraw.DrawTargetHighlight(hopper.parent); } }
public Building AdjacentReachableHopper(Pawn reacher) { //Log.Message( string.Format( "{0}.AdjacentReachableHopper( {1} )", this.ThingID, reacher == null ? "null" : reacher.NameStringShort ) ); var hoppers = CompHopperUser.FindHoppers(); if (!hoppers.NullOrEmpty()) { foreach (var hopper in hoppers) { if ( reacher.CanReach( ( TargetInfo )(( Thing )hopper.parent), PathEndMode.Touch, reacher.NormalMaxDanger(), false) ) { return((Building)hopper.parent); } } } return((Building)null); }