Example #1
0
        public void Parse(StringGridRow row)
        {
            this.RenderTextureType = AdvParser.ParseCellOptional <AdvRenderTextureMode>(row, AdvColumnName.RenderTexture, AdvRenderTextureMode.None);

            if (RenderTextureType != AdvRenderTextureMode.None)
            {
                try
                {
                    float[] rect = row.ParseCellArray <float>(AdvColumnName.RenderRect.QuickToString());
                    if (rect.Length != 4)
                    {
                        Debug.LogError(row.ToErrorString("IconRect. Array size is not 4"));
                    }
                    else
                    {
                        this.RenderTextureOffset = new Vector3(-rect[0], -rect[1], 1000);
                        this.RenderTextureSize   = new Vector2(rect[2], rect[3]);
                    }
                    this.RenderTextureScale = row.ParseCellOptional(AdvColumnName.RenderTextureScale.QuickToString(), 1.0f);
                    this.RenderTextureSize *= RenderTextureScale;
                }
                catch (Exception)
                {
//					Debug.LogError(row.ToErrorString("IconRect. Array size is not 4"));
                }
            }
        }
Example #2
0
        //現在の設定言語にローカライズされたテキストを取得
        string ParseCellLocalizedTextBySwapDefaultLanguage(StringGridRow row, string defaultColumnName)
        {
            string columnName = defaultColumnName;

            if (row.Grid.ContainsColumn(CurrentLanguage))
            {
                //現在の言語があるなら、その列を
                columnName = currentLanguage;
            }
            else
            {
                if (DataLanguage == CurrentLanguage)
                {
                    columnName = defaultColumnName;
                }
                else if (!string.IsNullOrEmpty(DefaultLanguage))
                {
                    columnName = DefaultLanguage;
                }
                else
                {
                    if (!string.IsNullOrEmpty(DataLanguage))
                    {
                        if (CurrentLanguage == DataLanguage)
                        {
                            //「DataLanguage」で言語指定がある場合、Text列は指定言語の場合にのみ表示されるようになります。
                            columnName = defaultColumnName;
                        }
                        else
                        {
                            //DefaultLanguageの列のテキストが基本の表示テキストとして使用されます。
                            columnName = DefaultLanguage;
                        }
                    }
                }
            }
            if (row.IsEmptyCell(columnName))
            {               //指定の言語が空なら、デフォルトのText列を
                //(DefaultLanguageの列のテキストが空の場合は、やはりText列のテキストを表示)
                return(row.ParseCellOptional <string>(defaultColumnName, ""));
            }
            else
            {               //指定の言語を
                return(row.ParseCellOptional <string>(columnName, ""));
            }
        }
Example #3
0
        //現在の設定言語にローカライズされたテキストを取得
        public static string ParseCellLocalizedText(StringGridRow row, string defaultColumnName)
        {
            LanguageManagerBase languageManager = LanguageManagerBase.Instance;

            if (languageManager == null)
            {
                return(row.ParseCellOptional <string>(defaultColumnName, ""));
            }

            return(languageManager.ParseCellLocalizedText(row, defaultColumnName));
        }
Example #4
0
        //現在の設定言語にローカライズされたテキストを取得
        public static string ParseCellLocalizedText(StringGridRow row, string defaultColumnName)
        {
            string columnName = defaultColumnName;

            if (LanguageManager.Instance != null)
            {
                string currentLanguage = LanguageManager.Instance.CurrentLanguage;
                if (row.Grid.ContainsColumn(currentLanguage))
                {
                    //現在の言語があるなら、その列を
                    columnName = currentLanguage;
                }
                else
                {
                    //デフォルトデータの言語指定がある場合、
                    //現在の言語とデフォルトデータの言語が違う場合、
                    string dataLanguage = LanguageManager.Instance.DataLanguage;
                    if (!string.IsNullOrEmpty(dataLanguage))
                    {
                        if (currentLanguage == dataLanguage)
                        {
                            columnName = defaultColumnName;
                        }
                        else
                        {
                            columnName = LanguageManager.Instance.DefaultLanguage;
                        }
                    }
                }
            }
            if (row.IsEmptyCell(columnName))
            {               //指定の言語が空なら、デフォルトのText列を
                return(row.ParseCellOptional <string>(defaultColumnName, ""));
            }
            else
            {               //指定の言語を
                return(row.ParseCellOptional <string>(columnName, ""));
            }
        }
Example #5
0
        bool CheckMacroArg(string str, StringGridRow macroArgs, StringGridRow macroHeader, out string macroText)
        {
            bool ret   = false;
            int  index = 0;

            macroText = "";
            while (index < str.Length)
            {
                bool isFind = false;
                if (str[index] == '%')
                {
                    foreach (string key in Grid.ColumnIndexTbl.Keys)
                    {
                        if (key.Length <= 0)
                        {
                            continue;
                        }
                        for (int i = 0; i < key.Length; ++i)
                        {
                            if (key[i] != str[index + 1 + i])
                            {
                                break;
                            }
                            else if (i == key.Length - 1)
                            {
                                isFind = true;
                            }
                        }
                        if (isFind)
                        {
                            string def = macroHeader.ParseCellOptional <string>(key, "");
                            macroText += macroArgs.ParseCellOptional <string>(key, def);
                            index     += key.Length;
                            ret        = true;
                            break;
                        }
                    }
                }
                if (!isFind)
                {
                    macroText += str[index];
                }
                ++index;
            }
            return(ret);
        }
Example #6
0
        //指定の行をマクロ展開
        public List <StringGridRow> MacroExpansion(StringGridRow args, string debugMsg)
        {
            //マクロ展開後の行リスト
            List <StringGridRow> list = new List <StringGridRow>();

            if (DataList.Count <= 0)
            {
                return(list);
            }


            //展開先の列数と同じ数のセル(文字列の配列)をもつ
            int maxStringCount = 0;

            foreach (var keyValue in args.Grid.ColumnIndexTbl)
            {
                maxStringCount = Mathf.Max(keyValue.Value, maxStringCount);
            }
            maxStringCount += 1;
            for (int i = 0; i < DataList.Count; ++i)
            {
                string[] strings = new string[maxStringCount];
                for (int index = 0; index < strings.Length; ++index)
                {
                    strings[index] = "";
                }
                StringGridRow data = DataList[i];
                //展開先の列数と同じ数のセル(文字列の配列)をもつ
                foreach (var keyValue in args.Grid.ColumnIndexTbl)
                {
                    string argKey   = keyValue.Key;
                    int    argIndex = keyValue.Value;
                    strings[argIndex] = ParaseMacroArg(data.ParseCellOptional <string>(argKey, ""), args);
                }
                //展開先のシートの構造に合わせる
                //展開先シートを親Girdに持ち
                StringGridRow macroData = new StringGridRow(args.Grid, args.RowIndex);
                macroData.InitFromStringArray(strings);
                list.Add(macroData);

                //デバッグ情報の記録
                macroData.DebugInfo = debugMsg + " : " + (data.RowIndex + 1) + " ";
            }
            return(list);
        }
Example #7
0
        //現在の設定言語にローカライズされたテキストを取得
        string ParseCellLocalizedTextByNoSwap(StringGridRow row, string defaultColumnName)
        {
            string columnName = GetLocalizedColumnName(defaultColumnName);

            if (!row.Grid.ContainsColumn(columnName))
            {
                Debug.LogError(row.ToErrorString(columnName + " is empty column. Set localize text column"));
                return("");
            }

            if (this.BlankTextType == LanguageBlankTextType.NoBlankText)
            {
                //テキストセルの内容が空で、PageCtrlの設定もない場合はエラーを出す
                if (row.IsEmptyCell(columnName) && row.IsEmptyCell(AdvColumnName.PageCtrl.QuickToString()))
                {
                    Debug.LogError(row.ToErrorString(columnName + " is empty cell. Set localize text"));
                    return("");
                }
            }

            //指定の言語を
            return(row.ParseCellOptional <string>(columnName, ""));
        }
Example #8
0
 //指定の名前のセルを、型Tとして解析・取得(データがなかったらデフォルト値を返す)
 public static T ParseCellOptional <T>(StringGridRow row, AdvColumnName name, T defaultVal)
 {
     return(row.ParseCellOptional <T>(Localize(name), defaultVal));
 }
Example #9
0
 private void ParseHeader(StringGridRow row)
 {
     this.Clip.set_name(row.ParseCell <string>(0).Substring(1));
     this.Clip.set_wrapMode(row.ParseCellOptional <WrapMode>(1, 0));
 }
Example #10
0
 void ParseHeader(StringGridRow row)
 {
     Clip.name     = row.ParseCell <string>(0).Substring(1);
     Clip.wrapMode = row.ParseCellOptional <WrapMode>(1, WrapMode.Default);
 }
Example #11
0
        //指定の行をマクロ展開
        public List <StringGridRow> MacroExpansion(StringGridRow args, string debugMsg)
        {
            //マクロ展開後の行リスト
            List <StringGridRow> list = new List <StringGridRow>();

            if (DataList.Count <= 0)
            {
                return(list);
            }

/*
 *                      //マクロシート
 *                      StringGrid macroSheet = DataList[0].Grid;
 *                      string sheetName = args.Grid.Name + ":" + (args.RowIndex+1).ToString() + "-> Macro : " + macroSheet.Name;
 *                      StringGrid grid = new StringGrid(sheetName, args.Grid.SheetName, macroSheet.Type);
 *                      grid.Macro = new StringGrid.MacroInfo(args);
 *                      grid.ColumnIndexTbl = macroSheet.ColumnIndexTbl;
 */

            /*
             *                      //マクロ用の情報
             *              internal class MacroInfo
             *              {
             *                      StringGridRow args;
             *                      internal MacroInfo(StringGridRow args)
             *                      {
             *                              this.args = args;
             *                      }
             *
             *                      internal string ToDebugString()
             *                      {
             *                              if (args.Grid.Macro != null)
             *                              {
             *                                      return args.Grid.Macro.ToDebugString();
             *                              }
             *                              else
             *                              {
             *                                      string sheetName = args.Grid.SheetName;
             *                                      return sheetName + ":" + (args.RowIndex + 1) + " ";
             *                              }
             *                      }
             *
             *              };
             *              internal MacroInfo Macro { get; set; }
             */
            for (int i = 0; i < DataList.Count; ++i)
            {
                StringGridRow data = DataList[i];
                //展開先の列数と同じ数のセル(文字列の配列)をもつ
                string[] strings = new string[args.Grid.ColumnIndexTbl.Count];
                foreach (var keyValue in args.Grid.ColumnIndexTbl)
                {
                    string argKey   = keyValue.Key;
                    int    argIndex = keyValue.Value;
                    strings[argIndex] = ParaseMacroArg(data.ParseCellOptional <string>(argKey, ""), args);
                }
                //展開先のシートの構造に合わせる
                //展開先シートを親Girdに持ち
                StringGridRow macroData = new StringGridRow(args.Grid, args.RowIndex);
                macroData.InitFromStringArray(strings);
                list.Add(macroData);

                //デバッグ情報の記録
                macroData.DebugInfo = debugMsg + " : " + (data.RowIndex + 1) + " ";
            }
            return(list);
        }
Example #12
0
        public AdvGraphicInfo(string dataType, int index, string key, StringGridRow row, IAdvSettingData advSettindData)
        {
            this.DataType    = dataType;
            this.Index       = index;
            this.Key         = key;
            this.SettingData = advSettindData;
            this.RowData     = row;

            switch (DataType)
            {
            case AdvGraphicInfo.TypeParticle:
                this.FileType = AdvGraphicInfo.FileTypeParticle;
                break;

            default:
                this.FileType = AdvParser.ParseCellOptional <string>(row, AdvColumnName.FileType, "");
                break;
            }

            this.FileName = AdvParser.ParseCell <string>(row, AdvColumnName.FileName);
            try
            {
                this.Pivot = ParserUtil.ParsePivotOptional(AdvParser.ParseCellOptional <string>(row, AdvColumnName.Pivot, ""), new Vector2(0.5f, 0.5f));
            }
            catch (System.Exception e)
            {
                Debug.LogError(row.ToErrorString(e.Message));
            }

            try
            {
                this.Pivot0 = ParserUtil.ParsePivotOptional(AdvParser.ParseCellOptional <string>(row, AdvColumnName.Pivot0, ""), new Vector2(0.5f, 0.5f));
            }
            catch (System.Exception e)
            {
                Debug.LogError(row.ToErrorString(e.Message));
            }

            try
            {
                this.Scale = ParserUtil.ParseScale3DOptional(AdvParser.ParseCellOptional <string>(row, AdvColumnName.Scale, ""), Vector3.one);
            }
            catch (System.Exception e)
            {
                Debug.LogError(row.ToErrorString(e.Message));
            }

            Vector3 pos;

            pos.x         = AdvParser.ParseCellOptional <float>(row, AdvColumnName.X, 0);
            pos.y         = AdvParser.ParseCellOptional <float>(row, AdvColumnName.Y, 0);
            pos.z         = AdvParser.ParseCellOptional <float>(row, AdvColumnName.Z, 0);
            this.Position = pos;

            this.SubFileName = AdvParser.ParseCellOptional <string>(row, AdvColumnName.SubFileName, "");

            this.ConditionalExpression = AdvParser.ParseCellOptional <string>(row, AdvColumnName.Conditional, "");
            this.RenderTextureSetting.Parse(row);

            this.Loop = row.ParseCellOptional <bool>("Loop", true);
        }