Пример #1
0
        internal override void LinkToParent(ModCraftTreeLinkingNode parent)
        {
            base.LinkToParent(parent);

            if (IsExistingTab)
            {
                return;
            }

            LanguagePatcher.AddCustomLanguageLine(ModName, $"{base.SchemeAsString}Menu_{Name}", DisplayText);

            string spriteID = $"{SchemeAsString}_{Name}";

#if SUBNAUTICA
            ModSprite modSprite;
            if (Asprite != null)
            {
                modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Asprite);
            }
            else
            {
                modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Usprite);
            }

            ModSprite.Add(modSprite);
#elif BELOWZERO
            ModSprite modSprite;
            modSprite = new ModSprite(SpriteManager.Group.Category, spriteID, Usprite);
            ModSprite.Add(modSprite);
#endif
        }
        internal static PingType AddPingType(string name, Sprite sprite)
        {
            var cache = cacheManager.RequestCacheForTypeName(name) ?? new EnumTypeCache()
            {
                Name  = name,
                Index = cacheManager.GetNextAvailableIndex()
            };

            var pingType = (PingType)cache.Index;

            cacheManager.Add(pingType, cache.Index, cache.Name);
            ModSprite.Add(SpriteManager.Group.Pings, cache.Name, sprite);

            if (PingManager.sCachedPingTypeStrings.valueToString.ContainsKey(pingType) == false)
            {
                PingManager.sCachedPingTypeStrings.valueToString.Add(pingType, name);
            }

            if (PingManager.sCachedPingTypeTranslationStrings.valueToString.ContainsKey(pingType) == false)
            {
                PingManager.sCachedPingTypeTranslationStrings.valueToString.Add(pingType, name);
            }

            Logger.Log($"Successfully added PingType: '{name}' to Index: '{cache.Index}'", LogLevel.Debug);
            return(pingType);
        }
Пример #3
0
        internal TabNode(string[] path, CraftTree.Type scheme, UnityEngine.Sprite sprite, string modName, string name, string displayName) : base(path, scheme)
        {
            Sprite      = sprite;
            DisplayName = displayName;
            Name        = name;

            ModSprite.Add(new ModSprite(SpriteManager.Group.Category, $"{Scheme.ToString()}_{Name}", Sprite));
            LanguagePatcher.AddCustomLanguageLine(modName, $"{Scheme.ToString()}Menu_{Name}", DisplayName);
        }
Пример #4
0
        internal ModSprite GetModSprite()
        {
            var customSprite = new ModSprite(TechType, Sprite);

            customSprite.Id    = Id;
            customSprite.Group = Group;

            return(customSprite);
        }
Пример #5
0
        /// <summary>
        /// Adds a new <see cref="TechType"/> into the game, with a sprite.
        /// </summary>
        /// <param name="internalName">The internal name of the TechType. Should not contain special characters.</param>
        /// <param name="displayName">The display name of the TechType. Can be anything.</param>
        /// <param name="tooltip">The tooltip, displayed when hovered in an inventory. Can be anything.</param>
        /// <param name="sprite">The sprite that will related to this TechType.</param>
        /// <param name="unlockAtStart">Whether this TechType should be unlocked on game start, or not. By default, <c>true</c>.</param>
        /// <returns>The new <see cref="TechType"/> that is created.</returns>
        TechType ITechTypeHandler.AddTechType(string internalName, string displayName, string tooltip, Sprite sprite, bool unlockAtStart)
        {
            // Register the TechType using overload.
            TechType techType = Main.AddTechType(internalName, displayName, tooltip, unlockAtStart);

            // Register the Sprite
            if (sprite != null)
            {
                ModSprite.Add(SpriteManager.Group.None, internalName, new Atlas.Sprite(sprite));
            }

            // Return the new TechType
            return(techType);
        }
Пример #6
0
        /// <summary>
        /// Adds a new <see cref="TechType"/> into the game, with a sprite.
        /// </summary>
        /// <param name="internalName">The internal name of the TechType. Should not contain special characters.</param>
        /// <param name="displayName">The display name of the TechType. Can be anything.</param>
        /// <param name="tooltip">The tooltip, displayed when hovered in an inventory. Can be anything.</param>
        /// <param name="sprite">The sprite that will related to this TechType.</param>
        /// <param name="unlockAtStart">Whether this TechType should be unlocked on game start, or not. By default, <c>true</c>.</param>
        /// <returns>The new <see cref="TechType"/> that is created.</returns>
        TechType ITechTypeHandler.AddTechType(string internalName, string displayName, string tooltip, Sprite sprite, bool unlockAtStart)
        {
            string modName = ReflectionHelper.CallingAssemblyNameByStackTrace();

            // Register the TechType using overload.
            TechType techType = Main.AddTechType(internalName, displayName, tooltip, unlockAtStart);

            // Register the Sprite
            if (sprite != null)
            {
                ModSprite.Add(SpriteManager.Group.None, internalName, sprite);
            }

            // Return the new TechType
            return(techType);
        }
Пример #7
0
 /// <summary>
 /// Registers a new sprite to the game.
 /// </summary>
 /// <param name="type">The techtype paired to this sprite.</param>
 /// <param name="sprite">The sprite to be added.</param>
 void ISpriteHandler.RegisterSprite(TechType type, Sprite sprite)
 {
     ModSprite.Add(SpriteManager.Group.None, type.AsString(), new Atlas.Sprite(sprite));
 }
Пример #8
0
 /// <summary>
 /// Registers a new sprite to the game.
 /// </summary>
 /// <param name="group">The sprite group this sprite will be added to.</param>
 /// <param name="id">The sprite internal identifier.</param>
 /// <param name="sprite">The sprite to be added.</param>
 void ISpriteHandler.RegisterSprite(SpriteManager.Group group, string id, Sprite sprite)
 {
     ModSprite.Add(group, id, new Atlas.Sprite(sprite));
 }
Пример #9
0
 internal static void Patch()
 {
     customSprites.ForEach(x => ModSprite.Add(x.GetModSprite()));
 }