Exemplo n.º 1
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="monitor">Encapsulates monitoring and logging.</param>
 /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param>
 /// <param name="reflection">An API for accessing private code.</param>
 public ModIntegrations(IMonitor monitor, IModRegistry modRegistry, IReflectionHelper reflection)
 {
     this.BetterJunimos    = new BetterJunimosIntegration(modRegistry, monitor);
     this.BetterSprinklers = new BetterSprinklersIntegration(modRegistry, monitor);
     this.Cobalt           = new CobaltIntegration(modRegistry, monitor);
     this.PelicanFiber     = new PelicanFiberIntegration(modRegistry, reflection, monitor);
     this.PrismaticTools   = new PrismaticToolsIntegration(modRegistry, monitor);
     this.SimpleSprinkler  = new SimpleSprinklerIntegration(modRegistry, monitor);
 }
Exemplo n.º 2
0
 /*********
 ** Public methods
 *********/
 /// <summary>Construct an instance.</summary>
 /// <param name="monitor">Encapsulates monitoring and logging.</param>
 /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param>
 /// <param name="reflection">An API for accessing private code.</param>
 public ModIntegrations(IMonitor monitor, IModRegistry modRegistry, IReflectionHelper reflection)
 {
     this.Automate         = new AutomateIntegration(modRegistry, monitor);
     this.BetterJunimos    = new BetterJunimosIntegration(modRegistry, monitor);
     this.BetterSprinklers = new BetterSprinklersIntegration(modRegistry, monitor);
     this.LineSprinklers   = new LineSprinklersIntegration(modRegistry, monitor);
     this.MultiFertilizer  = new MultiFertilizerIntegration(modRegistry, monitor);
     this.PelicanFiber     = new PelicanFiberIntegration(modRegistry, reflection, monitor);
     this.SimpleSprinkler  = new SimpleSprinklerIntegration(modRegistry, monitor);
 }
Exemplo n.º 3
0
        /*********
        ** Private methods
        *********/
        /// <summary>The method invoked on the first game update tick.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void GameEvents_FirstUpdateTick(object sender, EventArgs e)
        {
            IModHelper helper = this.Helper;

            this.PelicanFiber = new PelicanFiberIntegration(helper.ModRegistry, helper.Reflection, this.Monitor);
            var betterSprinklers = new BetterSprinklersIntegration(helper.ModRegistry, this.Monitor);
            var cobalt           = new CobaltIntegration(helper.ModRegistry, this.Monitor);
            var simpleSprinklers = new SimpleSprinklerIntegration(helper.ModRegistry, this.Monitor);

            this.Maps = this.GetDataMaps(this.Config, this.Helper.Translation, this.PelicanFiber, betterSprinklers, cobalt, simpleSprinklers).ToArray();
        }
Exemplo n.º 4
0
        /*********
        ** Private methods
        *********/
        /// <summary>The method invoked on the first game update tick.</summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void GameEvents_FirstUpdateTick(object sender, EventArgs e)
        {
            IModHelper helper = this.Helper;

            this.PelicanFiber = new PelicanFiberIntegration(helper.ModRegistry, helper.Reflection, this.Monitor);
            var betterSprinklers = new BetterSprinklersIntegration(helper.ModRegistry, this.Monitor);
            var cobalt           = new CobaltIntegration(helper.ModRegistry, this.Monitor);
            var simpleSprinklers = new SimpleSprinklerIntegration(helper.ModRegistry, this.Monitor);

            this.Maps = new IDataMap[]
            {
                new AccessibilityMap(helper.Translation),
                new BeeHouseMap(helper.Translation),
                new ScarecrowMap(helper.Translation),
                new SprinklerMap(helper.Translation, betterSprinklers, cobalt, simpleSprinklers),
                new JunimoHutMap(helper.Translation, this.PelicanFiber)
            };
        }
Exemplo n.º 5
0
        private void DoSimpleSprinklers()
        {
            if (SimpleSprinklerLoaded)
            {
                //Lets load up the integration from Simple Sprinklers
                SimpleSprinklerIntegration   ssi       = new SimpleSprinklerIntegration(this.Helper.ModRegistry, this.Monitor);
                IDictionary <int, Vector2[]> ssi_tiles = ssi.GetNewSprinklerTiles();
                sprinkler         = new List <Vector2>();
                quality_sprinkler = new List <Vector2>();
                iridium_sprinkler = new List <Vector2>();

                foreach (KeyValuePair <int, Vector2[]> tiles in ssi_tiles)
                {
                    for (int i = 0; i < tiles.Value.Length; i++)
                    {
                        if (tiles.Key == 599)
                        {
                            if (!sprinkler.Contains(tiles.Value[i]))
                            {
                                sprinkler.Add(tiles.Value[i]);
                            }
                        }
                        if (tiles.Key == 621)
                        {
                            if (!quality_sprinkler.Contains(tiles.Value[i]))
                            {
                                quality_sprinkler.Add(tiles.Value[i]);
                            }
                        }
                        if (tiles.Key == 645)
                        {
                            if (!iridium_sprinkler.Contains(tiles.Value[i]))
                            {
                                iridium_sprinkler.Add(tiles.Value[i]);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
 /// <summary>Get the enabled data maps.</summary>
 /// <param name="config">The mod configuration.</param>
 /// <param name="translation">Provides translations for the mod.</param>
 /// <param name="pelicanFiber">Handles access to the Pelican Fiber mod.</param>
 /// <param name="betterSprinklers">Handles access to the Better Sprinklers mod.</param>
 /// <param name="cobalt">Handles access to the Cobalt mod.</param>
 /// <param name="simpleSprinklers">Handles access to the Simple Sprinklers mod.</param>
 private IEnumerable <IDataMap> GetDataMaps(ModConfig config, ITranslationHelper translation, PelicanFiberIntegration pelicanFiber, BetterSprinklersIntegration betterSprinklers, CobaltIntegration cobalt, SimpleSprinklerIntegration simpleSprinklers)
 {
     if (config.EnableMaps.Accessibility)
     {
         yield return(new AccessibilityMap(translation));
     }
     if (config.EnableMaps.CoverageForBeeHouses)
     {
         yield return(new BeeHouseMap(translation));
     }
     if (config.EnableMaps.CoverageForScarecrows)
     {
         yield return(new ScarecrowMap(translation));
     }
     if (config.EnableMaps.CoverageForSprinklers)
     {
         yield return(new SprinklerMap(translation, betterSprinklers, cobalt, simpleSprinklers));
     }
     if (config.EnableMaps.CoverageForJunimoHuts)
     {
         yield return(new JunimoHutMap(translation, this.PelicanFiber));
     }
     if (config.EnableMaps.CropWater)
     {
         yield return(new CropWaterMap(translation));
     }
     if (config.EnableMaps.CropFertilizer)
     {
         yield return(new CropFertilizerMap(translation));
     }
 }
Exemplo n.º 7
0
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="translations">Provides translations in stored in the mod folder's i18n folder.</param>
        /// <param name="betterSprinklers">Handles access to the Better Sprinklers mod.</param>
        /// <param name="cobalt">Handles access to the Cobalt mod.</param>
        /// <param name="simpleSprinkler">Handles access to the Simple Sprinkler mod.</param>
        public SprinklerMap(ITranslationHelper translations, BetterSprinklersIntegration betterSprinklers, CobaltIntegration cobalt, SimpleSprinklerIntegration simpleSprinkler)
        {
            // init
            this.BetterSprinklers = betterSprinklers;
            this.Name             = translations.Get("maps.sprinklers.name");
            this.Legend           = new[]
            {
                new LegendEntry(translations.Get("maps.sprinklers.covered"), this.WetColor),
                new LegendEntry(translations.Get("maps.sprinklers.dry-crops"), this.DryColor)
            };

            // get static sprinkler coverage
            this.StaticTilesBySprinklerID = this.GetStaticSprinklerTiles(cobalt, simpleSprinkler);

            // get max sprinkler radius
            this.MaxRadius = this.StaticTilesBySprinklerID.Max(p => this.GetMaxRadius(p.Value));
            if (betterSprinklers.IsLoaded)
            {
                this.MaxRadius = Math.Max(this.MaxRadius, betterSprinklers.MaxRadius);
            }
        }
Exemplo n.º 8
0
        /// <summary>Get the relative sprinkler tile coverage, including any mod customisations which don't change after launch.</summary>
        /// <param name="cobalt">Handles access to the Cobalt mod.</param>
        /// <param name="simpleSprinkler">Handles access to the Simple Sprinkler mod.</param>
        private IDictionary <int, Vector2[]> GetStaticSprinklerTiles(CobaltIntegration cobalt, SimpleSprinklerIntegration simpleSprinkler)
        {
            IDictionary <int, Vector2[]> tiles = new Dictionary <int, Vector2[]>();

            // vanilla coverage
            {
                Vector2 center = Vector2.Zero;

                // basic sprinkler
                tiles[599] = Utility.getAdjacentTileLocationsArray(center).Concat(new[] { center }).ToArray();

                // quality sprinkler
                tiles[621] = Utility.getSurroundingTileLocationsArray(center).Concat(new[] { center }).ToArray();

                // iridium sprinkler
                List <Vector2> iridiumTiles = new List <Vector2>(4 * 4);
                for (int x = -2; x <= 2; x++)
                {
                    for (int y = -2; y <= 2; y++)
                    {
                        iridiumTiles.Add(new Vector2(x, y));
                    }
                }
                tiles[645] = iridiumTiles.ToArray();
            }

            // Cobalt mod adds new sprinkler
            if (cobalt.IsLoaded)
            {
                tiles[cobalt.GetSprinklerId()] = cobalt.GetSprinklerTiles().ToArray();
            }

            // Simple Sprinkler mod adds tiles to default coverage
            if (simpleSprinkler.IsLoaded)
            {
                foreach (var pair in simpleSprinkler.GetNewSprinklerTiles())
                {
                    int sprinklerID = pair.Key;
                    if (tiles.TryGetValue(sprinklerID, out Vector2[] currentTiles))