Example #1
0
 private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI)
 {
     deepWoodsAPI.OnCreate += (IDeepWoodsLocation deepWoodsLocation) =>
     {
         deepWoodsLocation.CanGetLost = false;
     };
 }
Example #2
0
        /// <summary>Warp the player back to the map they collapsed in.</summary>
        private void WarpToPreCollapseMap()
        {
            if (this.PreCollapseMap == null)
            {
                return;
            }

            if (Game1.getLocationFromName(this.PreCollapseMap) != null)
            {
                Game1.warpFarmer(this.PreCollapseMap, this.PreCollapseTile.X, this.PreCollapseTile.Y, false);
            }
            else if (this.PreCollapseMap.StartsWith("DeepWoods") && this.Helper.ModRegistry.IsLoaded("maxvollmer.deepwoodsmod"))
            {
                // If player was deep in the forest and has a Woods Obelisk, warp them into the appropriate level
                IDeepWoodsAPI deepWoodsAPI = this.Helper.ModRegistry.GetApi <IDeepWoodsAPI>("maxvollmer.deepwoodsmod");
                if (deepWoodsAPI != null && this.PreCollapseDeepWoodsLevel > 1 && Game1.getFarm().buildings.Any(b => b.buildingType.Value == "Woods Obelisk"))
                {
                    deepWoodsAPI.WarpPlayerToDeepWoodsLevel(this.PreCollapseDeepWoodsLevel);
                }
                else // warp player into root level ("DeepWoods")
                {
                    // DeepWoods mod will automagically put the player to the entrance position if we warp them to (0,0)
                    Game1.warpFarmer("DeepWoods", 0, 0, false);
                }
            }
        }
Example #3
0
        private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI)
        {
            var settings = Helper.ReadConfig <Settings>() ?? new Settings();

            // Disable baubles and weatherdebris (we could also reduce the amount in AfterDebrisCreation)
            deepWoodsAPI.OverrideDebrisCreation += (IDeepWoodsLocation) =>
            {
                return(true);
            };

            // Reduce amount of grass
            deepWoodsAPI.AfterFill += (IDeepWoodsLocation deepWoodsLocation) =>
            {
                if (deepWoodsLocation.IsCustomMap) // we don't touch custom levels
                {
                    return;
                }

                var random = new Random(deepWoodsLocation.Seed ^ SALT);

                var terrainFeatures         = (deepWoodsLocation as GameLocation).terrainFeatures;
                var terrainFeatureLocations = new List <Vector2>(terrainFeatures.Keys);
                foreach (var location in terrainFeatureLocations)
                {
                    if (terrainFeatures[location] is Grass &&
                        (random.NextDouble() < settings.GrassReduction))
                    {
                        terrainFeatures.Remove(location);
                    }
                }
            };
        }
Example #4
0
 private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI)
 {
     deepWoodsAPI.OnCreate += (IDeepWoodsLocation deepWoodsLocation) =>
     {
         if (!deepWoodsLocation.IsCustomMap) // we don't touch custom levels
         {
             deepWoodsLocation.IsClearing = true;
         }
     };
 }
Example #5
0
 private void GameEvents_UpdateTicked(object sender, UpdateTickedEventArgs e)
 {
     if (Helper.ModRegistry.IsLoaded("maxvollmer.deepwoodsmod"))
     {
         IDeepWoodsAPI deepWoodsAPI = Helper.ModRegistry.GetApi <IDeepWoodsAPI>("maxvollmer.deepwoodsmod");
         if (deepWoodsAPI != null)
         {
             CustomizeDeepWoods(deepWoodsAPI);
         }
         else
         {
             Monitor.Log("DeepWoodsAPI could not be loaded.", LogLevel.Warn);
         }
     }
     else
     {
         Monitor.Log("DeepWoodsMod is not loaded.", LogLevel.Warn);
     }
 }
Example #6
0
 private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI)
 {
     deepWoodsAPI.RegisterObject(ShouldAddSeasonableObjectHere, CreateSeasonableObject);
     deepWoodsAPI.OverrideFill += FillClearingWithEvenMoreThings;
 }