CaveworldFlora.ClusterPlant.IsNaturalRoughRockAt C# (CSharp) Method

IsNaturalRoughRockAt() public static method

public static IsNaturalRoughRockAt ( IntVec3 position ) : bool
position IntVec3
return bool
        public static bool IsNaturalRoughRockAt(IntVec3 position)
        {
            TerrainDef terrain = Find.TerrainGrid.TerrainAt(position);
            if ((terrain.layerable == false)
                && terrain.defName.Contains("Rough"))
            {
                return true;
            }
            return false;
        }
        

Usage Example

Beispiel #1
0
        /// <summary>
        /// Check if a new fungiponics basin can be built at this location.
        /// - the fungiponics basin must be roofed.
        /// - must not be too near from another fungiponics basin.
        /// </summary>
        public override AcceptanceReport AllowsPlacing(BuildableDef checkingDef, IntVec3 loc, Rot4 rot)
        {
            foreach (IntVec3 cell in GenAdj.CellsOccupiedBy(loc, rot, checkingDef.Size))
            {
                if (ClusterPlant.IsNaturalRoughRockAt(cell) == false)
                {
                    return(new AcceptanceReport("Fungiponics basin must be built on rough rock."));
                }
                if (Find.RoofGrid.Roofed(loc) == false)
                {
                    return(new AcceptanceReport("Fungiponics basin must be roofed."));
                }
            }

            List <Thing>        fungiponicsBasinsList = new List <Thing>();
            IEnumerable <Thing> list = Find.ListerThings.ThingsOfDef(ThingDef.Named("FungiponicsBasin"));

            foreach (Thing basin in list)
            {
                fungiponicsBasinsList.Add(basin);
            }
            list = Find.ListerThings.ThingsOfDef(ThingDef.Named("FungiponicsBasin").blueprintDef);
            foreach (Thing basin in list)
            {
                fungiponicsBasinsList.Add(basin);
            }
            list = Find.ListerThings.ThingsOfDef(ThingDef.Named("FungiponicsBasin").frameDef);
            foreach (Thing basin in list)
            {
                fungiponicsBasinsList.Add(basin);
            }
            foreach (Thing basin in fungiponicsBasinsList)
            {
                if (basin.Position.InHorDistOf(loc, minDistanceBetweenFungiponicsBasins))
                {
                    return(new AcceptanceReport("An other fungiponics basin is too close."));
                }
            }

            return(true);
        }
All Usage Examples Of CaveworldFlora.ClusterPlant::IsNaturalRoughRockAt