Ejemplo n.º 1
0
        // Token: 0x06000060 RID: 96 RVA: 0x000058C0 File Offset: 0x00003AC0
        public static float GetTProxMoveSpeedOffSet(TerrainDef terrain)
        {
            if (terrain.HasModExtension <ProximityDefs>())
            {
                return(new float?(terrain.GetModExtension <ProximityDefs>().ProxMoveSpeedOffSet).Value);
            }

            return(0f);
        }
Ejemplo n.º 2
0
        // Token: 0x0600008F RID: 143 RVA: 0x00006530 File Offset: 0x00004730
        public static int GetTProxRange(TerrainDef terrain)
        {
            if (terrain.HasModExtension <ProximityDefs>())
            {
                return(new int?(terrain.GetModExtension <ProximityDefs>().ProxRange).Value);
            }

            return(0);
        }
Ejemplo n.º 3
0
        // Token: 0x06000083 RID: 131 RVA: 0x0000620C File Offset: 0x0000440C
        public static float GetTProxButcheryMechanoidEfficiencyOffSet(TerrainDef terrain)
        {
            if (terrain.HasModExtension <ProximityDefs>())
            {
                return(new float?(terrain.GetModExtension <ProximityDefs>().ProxButcheryMechanoidEfficiencyOffSet).Value);
            }

            return(0f);
        }
Ejemplo n.º 4
0
        public static void Postfix(Thing __instance, ref float __result)
        {
            float temperature = __result;

            IntVec3 c   = __instance.Position;
            Map     map = __instance.Map;


            //check if we should have temperature affected by contact with terrain
            if (map != null && c.InBounds(map))
            {
                TerrainDef terrain = c.GetTerrain(map);
                if (terrain.HasModExtension <TerrainWeatherReactions>() && terrain.GetModExtension <TerrainWeatherReactions>().temperatureAdjust != 0)
                {
                    temperature = temperature + terrain.GetModExtension <TerrainWeatherReactions>().temperatureAdjust;
                }
            }
            __result = temperature;
        }
Ejemplo n.º 5
0
        // Token: 0x06000087 RID: 135 RVA: 0x0000631C File Offset: 0x0000451C
        public static float GetTProxFixBrokenDownBuildingSuccessChanceOffSet(TerrainDef terrain)
        {
            if (terrain.HasModExtension <ProximityDefs>())
            {
                return(new float?(terrain.GetModExtension <ProximityDefs>().ProxFixBrokenDownBuildingSuccessChanceOffSet)
                       .Value);
            }

            return(0f);
        }
Ejemplo n.º 6
0
        public bool IsPackable(TerrainDef terrain)
        {
            var settings = terrain.GetModExtension <DefModExtension_PackedTerrain>();

            if (settings != null)
            {
                return(!settings.disabled &&
                       terrain != settings.packedTerrain);
            }
            return(terrain != TerrainDefOf.PackedDirt && terrain.takeFootprints);
        }
 // Token: 0x06000054 RID: 84 RVA: 0x00005F60 File Offset: 0x00004160
 public static string GetCamoDefTerrain(TerrainDef terrain)
 {
     if (terrain.HasModExtension <CompCamoDefs>())
     {
         string text = terrain?.GetModExtension <CompCamoDefs>().CamoType;
         if (CamoGearUtility.CamoTypes().Contains(text))
         {
             return(text);
         }
     }
     return("notDefined");
 }
Ejemplo n.º 8
0
        private bool CanHaveFrost(int ind)
        {
            Building building = this.map.edificeGrid[ind];

            if (building != null && !map.GetComponent <FrostGrid>().CanCoexistWithFrost(building.def))
            {
                return(false);
            }

            TerrainDef terrainDef = this.map.terrainGrid.TerrainAt(ind);

            if (terrainDef.HasModExtension <TerrainWeatherReactions>())
            {
                return(terrainDef.GetModExtension <TerrainWeatherReactions>().holdFrost);
            }
            else
            {
                return(terrainDef.holdSnow);
                //return terrainDef.affordances.Contains(TerrainAffordance.Light);
            }
        }
Ejemplo n.º 9
0
 public static Material BiomesBridgeRightMat(this TerrainDef terrain)
 {
     if (terrain.HasModExtension <TerrainDef_Bridge>())
     {
         if (!BridgeRightMats.TryGetValue(terrain, out Material mat))
         {
             string rightTexPath = terrain.GetModExtension <TerrainDef_Bridge>().rightTexPath;
             if (rightTexPath != null)
             {
                 mat = MaterialPool.MatFrom(rightTexPath, ShaderDatabase.Transparent);
                 BridgeRightMats.Add(terrain, mat);
             }
             else
             {
                 mat = null;
             }
         }
         return(mat);
     }
     return(null);
 }
Ejemplo n.º 10
0
        public void setTerrain(string type)
        {
            if (this.map == null)
            {
                return;
            }
            //Make sure it hasn't been made a floor or a floor hasn't been removed.
            if (!currentTerrain.HasModExtension <TerrainWeatherReactions>())
            {
                this.baseTerrain = currentTerrain;
            }
            else if (!baseTerrain.HasModExtension <TerrainWeatherReactions>() && this.baseTerrain != currentTerrain)
            {
                this.baseTerrain = currentTerrain;
            }
            else //If the terrain has extentions, make sure the current terrain is one of the possible extentions of the base terrain.
            //If the current terrain isn't an extention of the base, the terrain has been modified (ie Moisture Pump) or terraformed, and the current terrain should replace the base terrain.
            {
                var terrainReactions = baseTerrain.GetModExtension <TerrainWeatherReactions>();
                if (terrainReactions != null)
                {
                    if (terrainReactions.tideTerrain != currentTerrain &&
                        terrainReactions.floodTerrain != currentTerrain &&
                        terrainReactions.wetTerrain != currentTerrain &&
                        terrainReactions.freezeTerrain != currentTerrain &&
                        terrainReactions.dryTerrain != currentTerrain &&
                        terrainReactions.baseOverride != currentTerrain)
                    {
                        this.baseTerrain = currentTerrain;
                    }
                }
            }
            if (weather == null)
            {
                return;
            }

            //change the terrain
            if (type == "frozen")
            {
                this.setFrozenTerrain();
            }
            else if (type == "dry")
            {
                this.setWetTerrain();
            }
            else if (type == "wet")
            {
                this.setWetTerrain();
            }
            else if (type == "thaw")
            {
                if (isFrozen == true)
                {
                    this.howWet = 1;
                    this.setWetTerrain();
                    isFrozen = false;
                }
                else
                {
                    this.setFrozenTerrain();
                }
            }
            else if (type == "flooded")
            {
                this.setFloodedTerrain();
            }
            else if (type == "tide")
            {
                this.setTidesTerrain();
            }

            this.overrideType = "";
        }
Ejemplo n.º 11
0
 public TerrainDef PackedTerrain(TerrainDef terrain)
 {
     return(terrain.GetModExtension <DefModExtension_PackedTerrain>()?.packedTerrain ?? TerrainDefOf.PackedDirt);
 }