private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI) { deepWoodsAPI.OnCreate += (IDeepWoodsLocation deepWoodsLocation) => { deepWoodsLocation.CanGetLost = false; }; }
/// <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); } } }
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); } } }; }
private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI) { deepWoodsAPI.OnCreate += (IDeepWoodsLocation deepWoodsLocation) => { if (!deepWoodsLocation.IsCustomMap) // we don't touch custom levels { deepWoodsLocation.IsClearing = true; } }; }
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); } }
private void CustomizeDeepWoods(IDeepWoodsAPI deepWoodsAPI) { deepWoodsAPI.RegisterObject(ShouldAddSeasonableObjectHere, CreateSeasonableObject); deepWoodsAPI.OverrideFill += FillClearingWithEvenMoreThings; }