Ejemplo n.º 1
0
        private void IntegrateBetterSprinklers()
        {
            IBetterSprinklersApi api = theMod.helper.ModRegistry.GetApi <IBetterSprinklersApi>("Speeder.BetterSprinklers");

            if (api == null)
            {
                return;
            }
            theMod.api.RemoveItemRangeHighlighter("jltaylor-us.RangeHighlight/sprinkler");
            IntegrateSprinklerCommon("jltaylor-us.RangeHighlight/better-sprinkler", api.GetSprinklerCoverage, false);
        }
        /*********
        ** Public methods
        *********/
        /// <summary>Construct an instance.</summary>
        /// <param name="modRegistry">An API for fetching metadata about loaded mods.</param>
        /// <param name="monitor">Encapsulates monitoring and logging.</param>
        public BetterSprinklersIntegration(IModRegistry modRegistry, IMonitor monitor)
            : base("Better Sprinklers", "Speeder.BetterSprinklers", "2.3.1-unofficial.6-pathoschild", modRegistry, monitor)
        {
            if (!this.IsLoaded)
            {
                return;
            }

            // get mod API
            this.ModApi    = this.GetValidatedApi <IBetterSprinklersApi>();
            this.IsLoaded  = this.ModApi != null;
            this.MaxRadius = this.ModApi?.GetMaxGridSize() ?? 0;
        }
Ejemplo n.º 3
0
        private void IntegrateBetterSprinklers()
        {
            IBetterSprinklersApi api = theMod.helper.ModRegistry.GetApi <IBetterSprinklersApi>("Speeder.BetterSprinklers");

            if (api == null)
            {
                return;
            }
            theMod.api.RemoveItemRangeHighlighter("jltaylor-us.RangeHighlight/sprinkler");
            theMod.api.AddItemRangeHighlighter("jltaylor-us.RangeHighlight/better-sprinkler",
                                               theMod.config.ShowSprinklerRangeKey,
                                               theMod.config.ShowOtherSprinklersWhenHoldingSprinkler,
                                               (item, itemID, itemName) => {
                Vector2[] tiles;
                if (api.GetSprinklerCoverage().TryGetValue(itemID, out tiles))
                {
                    return(new Tuple <Color, bool[, ]>(theMod.config.SprinklerRangeTint, PointsToMask(tiles)));
                }
                else
                {
                    return(null);
                }
            });
        }