Exemplo n.º 1
0
 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));
 }
Exemplo n.º 2
0
        /// <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);
        }