Пример #1
0
        public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
        {
            assetBundle = AssetBundle.LoadFromMemory(Properties.Resources.lunarscrap);

            LanguageTokens.Add("ITEM_SCRAPLUNAR_NAME", "Item Scrap, Lunar");
            LanguageTokens.Add("ITEM_SCRAPLUNAR_LORE", "No notes found.");
            LanguageTokens.Add("ITEM_SCRAPLUNAR_DESC", "Does nothing. Prioritized when used with 3D printers.");
            LanguageTokens.Add("ITEM_SCRAPLUNAR_PICKUP", "Does nothing. Prioritized when used with 3D printers.");

            LunarScrapDef = ScriptableObject.CreateInstance <ItemDef>();

            LunarScrapDef.canRemove         = true;
            LunarScrapDef.descriptionToken  = "ITEM_SCRAPLUNAR_DESC";
            LunarScrapDef.hidden            = false;
            LunarScrapDef.loreToken         = "ITEM_SCRAPLUNAR_LORE";
            LunarScrapDef.name              = "ScrapLunar";
            LunarScrapDef.nameToken         = "ITEM_SCRAPLUNAR_NAME";
            LunarScrapDef.pickupIconSprite  = assetBundle.LoadAsset <Sprite>("Assets/LunarScrap.png");
            LunarScrapDef.pickupModelPrefab = Resources.Load <GameObject>("Prefabs/PickupModels/PickupScrap");
            LunarScrapDef.pickupToken       = "ITEM_SCRAPLUNAR_PICKUP";
            LunarScrapDef.tier              = ItemTier.Lunar;
            LunarScrapDef.tags              = new ItemTag[] { ItemTag.Scrap, ItemTag.WorldUnique };
            LunarScrapDef.unlockableDef     = null;

            ContentPack.itemDefs.Add(new ItemDef[] { LunarScrapDef });

            args.ReportProgress(1f);
            yield break;
        }
        public bool MoveNext()
        {
            InitlializeTokenBufferIfEmpty();
            if (CurrentSymbol == LexiconSymbol.SkipMaterial ||
                CurrentSymbol == LexiconSymbol.NA)
            {
                CurrentTokenBuffer.Clear();
            }

            while (!TokenStreamReader.EndOfStream)
            {
                var rawCharacter       = TokenStreamReader.Read();
                var convertedCharacter = Convert.ToChar(rawCharacter);
                var singleToken        = LanguageTokens.FindLexiconSymbol(convertedCharacter);

                CurrentTokenBuffer.Add(convertedCharacter);

                var validTokenBuffer = LanguageTokens.FindLexiconSymbol(CurrentTokenBuffer);

                var tempValidTokenBuffer = validTokenBuffer;
                var rulesToApply         = validTokenBuffer;
                rulesToApply = Rules.Select(appliedRule => rulesToApply = appliedRule(singleToken, rulesToApply, CurrentSymbol))
                               .Where(ls => ls != LexiconSymbol.NA)
                               .LastOrDefault();
                if (rulesToApply != tempValidTokenBuffer)
                {
                    validTokenBuffer = rulesToApply;
                }



                if (CurrentTokenBuffer.Count > 0 && validTokenBuffer == LexiconSymbol.Assign)
                {
                    CurrentTokenBuffer.RemoveAt(CurrentTokenBuffer.Count - 1);
                }



                CurrentSymbol = validTokenBuffer;

                var mayStopSymbol = LanguageTokens.FindLexiconSymbol(new List <char>()
                {
                    convertedCharacter
                });
                if (mayStopSymbol == LexiconSymbol.SkipMaterial)
                {
                    CurrentSymbol = mayStopSymbol;
                }

                if (CurrentSymbol != LexiconSymbol.NA)
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #3
0
 internal static void LoadResources()
 {
     //Loads the main asset bundle just like it says
     LoadMainAssetbundle();
     //Register the language tokens
     LanguageTokens.RegisterLanguageTokens();
     //Loads our icons (U the best SOM)
     Sprites.LoadIcons();
     //Registers our custom projectiles
     Projectiles.RegisterProjectiles();
 }
Пример #4
0
        public IEnumerator LoadStaticContentAsync(LoadStaticContentAsyncArgs args)
        {
            DebrisBundle = AssetBundle.LoadFromMemory(Properties.Resources.debrisartifact);

            DebrisArtifact = ScriptableObject.CreateInstance <ArtifactDef>();

            LanguageTokens.Add("DEB_NAME_TOKEN", "Artifact of Debris");
            LanguageTokens.Add("DEB_DESC_TOKEN", "All items turn to scrap to be printed.");

            DebrisArtifact.nameToken                 = "DEB_NAME_TOKEN";
            DebrisArtifact.descriptionToken          = "DEB_DESC_TOKEN";
            DebrisArtifact.smallIconDeselectedSprite = DebrisBundle.LoadAsset <Sprite>("Assets/Scrap_Dim.png");
            DebrisArtifact.smallIconSelectedSprite   = DebrisBundle.LoadAsset <Sprite>("Assets/Scrap.png");

            ContentPack.artifactDefs.Add(new ArtifactDef[] { DebrisArtifact });

            args.ReportProgress(1f);
            yield break;
        }
Пример #5
0
 public static string GetString(LanguageTokens token) => strings[(int)token];