Ejemplo n.º 1
0
 public void LoadConverterPanelAsset()
 {
     InputBuffer     = new InputBuffer();
     KeyChecker      = new KeyChecker();
     NumberFormatter = new NumberFormatter();
 }
Ejemplo n.º 2
0
        /// <summary> 读取关键字 </summary>
        public override BaseKey ReadKeyLine(StreamReader reader)
        {
            string tempStr = string.Empty;

            while (!reader.EndOfStream)
            {
                tempStr = reader.ReadLine().TrimEnd();

                if (!tempStr.IsWorkLine())
                {
                    continue;
                }

                #region - 构建结构 -

                if (string.IsNullOrEmpty(this.carName))
                {
                    //  首先读取结构参数  'LGR1' 2 2 3 3 3 4   5   5   8 5 /
                    List <string> strs = tempStr.EclExtendToArray();

                    if (this.carName == null)
                    {
                        this.carName = strs[0];

                        region       = new RegionParam();
                        region.XFrom = strs[1].ToInt();
                        region.XTo   = strs[2].ToInt();
                        region.YFrom = strs[3].ToInt();
                        region.YTo   = strs[4].ToInt();
                        region.ZFrom = strs[5].ToInt();
                        region.ZTo   = strs[6].ToInt();

                        this.X = strs[7].ToInt();
                        this.Y = strs[8].ToInt();
                        this.Z = strs[9].ToInt();

                        newRegion.XFrom = 1;
                        newRegion.XTo   = this.x;
                        newRegion.YFrom = 1;
                        newRegion.YTo   = this.y;
                        newRegion.ZFrom = 1;
                        newRegion.ZTo   = this.z;


                        defaultRegion = newRegion;
                    }
                }

                #endregion

                //  读到结束符结束
                if (tempStr == _carfinEndFlag)
                {
                    break;
                }

                //  读到本关键字信息 处理两个CARFIN用一个ENDFIN问题
                if (tempStr == this.Name)
                {
                    BaseKey findKey = KeyConfigerFactroy.Instance.CreateKey <BaseKey>(tempStr, this.BaseFile.SimKeyType);
                    findKey.BaseFile  = this.BaseFile;
                    findKey.ParentKey = this.ParentKey;
                    this.ParentKey.Add(findKey);
                    //  调用子节点读取方法
                    findKey.ReadKeyLine(reader);
                    break;
                }

                bool isChildRegister = KeyConfigerFactroy.Instance.IsRegister(tempStr, this.BaseFile.SimKeyType);

                if (isChildRegister)
                {
                    //  读到下一关注关键字终止
                    BaseKey tempKey = KeyConfigerFactroy.Instance.CreateKey <BaseKey>(tempStr, this.BaseFile.SimKeyType);

                    //  是修正关键字
                    if (tempKey is ModifyKey)
                    {
                        tempKey.BaseFile  = this.BaseFile;
                        tempKey.ParentKey = this;

                        ModifyKey mk = tempKey as ModifyKey;
                        mk.DefautRegion = this.defaultRegion;
                        //  放入本定义下面
                        this._modifyKeyCar.Add(mk);
                        mk.BaseFile = this.BaseFile;
                        mk.ReadKeyLine(reader);

                        this.defaultRegion = mk.DefautRegion;

                        //  增加子修正关键字 如BOX
                        //this._modifyKeyCar.AddRange(mk.FindAll<ModifyKey>());
                    }
                    else if (tempKey is DynamicKey)
                    {
                        tempKey.BaseFile  = this.BaseFile;
                        tempKey.ParentKey = this;

                        //  放入本子节点下面
                        this.Keys.Add(tempKey);
                        tempKey.ReadKeyLine(reader);
                    }
                    else if (tempKey is TableKey)
                    {
                        ReadBOX(reader, tempStr);

                        return(this);
                    }

                    else
                    {
                        ReadBOX(reader, tempStr);

                        return(this);
                    }
                }
                else
                {
                    if (tempStr.IsKeyFormat())
                    {
                        UnkownKey findKey = new UnkownKey(KeyChecker.FormatKey(tempStr));

                        findKey.BaseFile = this.BaseFile;

                        //  触发事件
                        if (findKey.BaseFile != null && findKey.BaseFile.OnUnkownKey != null)
                        {
                            findKey.BaseFile.OnUnkownKey(findKey.BaseFile, findKey);
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(tempStr))
                        {
                            //  不是记录行
                            this.Lines.Add(tempStr);
                        }
                    }
                }
            }

            //  读到末尾返回空值
            return(this);
        }
Ejemplo n.º 3
0
 public void Setup()
 {
     checker = new KeyChecker();
 }
Ejemplo n.º 4
0
    //あとでKeyCehckerとかContactDealをPlayerStatusをとるクラスにする

    // Start is called before the first frame update
    void Start()
    {
        rb         = this.GetComponent <Rigidbody>();
        stumpready = false;
        checker    = GetComponent <KeyChecker>();
    }
 /// <summary>
 /// Checks if the environment variable provider has a variable with the given key
 /// </summary>
 /// <param name="key"></param>
 /// <returns></returns>
 public bool HasKey(string key) => KeyChecker?.Invoke(key) ?? Getter?.Invoke(key) != null;
Ejemplo n.º 6
0
 protected override bool IsLiving()
 {
     return(KeyChecker.IsNumKeyHolding() > 0);
 }
Ejemplo n.º 7
0
        /// <summary> 读取关键字 </summary>
        public override BaseKey ReadKeyLine(StreamReader reader)
        {
            string tempStr = string.Empty;

            while (!reader.EndOfStream)
            {
                tempStr = reader.ReadLine().TrimEnd();

                if (!tempStr.IsWorkLine())
                {
                    continue;
                }

                //  首先读取DefautRegion  1 40 1 20 1 4 /
                if (region == null)
                {
                    region = new RegionParam();
                    region.BuildExtend(tempStr);
                    this.DefautRegion = region;
                    //this.BaseFile.TempRegion = region;
                }

                //  读到结束符结束
                if (tempStr == endFlag)
                {
                    break;
                }

                bool isChildRegister = KeyConfigerFactroy.Instance.IsRegister(tempStr, this.BaseFile.SimKeyType);

                if (isChildRegister)
                {
                    //  读到下一关注关键字终止
                    BaseKey tempKey = KeyConfigerFactroy.Instance.CreateKey <BaseKey>(tempStr, this.BaseFile.SimKeyType);

                    //  是修正关键字
                    if (tempKey is ModifyKey)
                    {
                        tempKey.BaseFile  = this.BaseFile;
                        tempKey.ParentKey = this;

                        ModifyKey mk = tempKey as ModifyKey;
                        mk.DefautRegion = this.region;
                        this.Keys.Add(mk);
                        mk.BaseFile = this.BaseFile;
                        mk.ReadKeyLine(reader);

                        ////  执行更改
                        //mk.RunModify();
                    }
                    else if (tempKey is TableKey)
                    {
                        ReadBOX(reader, tempStr);

                        return(this);
                    }

                    else
                    {
                        ReadBOX(reader, tempStr);

                        return(this);
                    }
                }
                else
                {
                    if (tempStr.IsKeyFormat())
                    {
                        UnkownKey findKey = new UnkownKey(KeyChecker.FormatKey(tempStr));

                        findKey.BaseFile = this.BaseFile;

                        //  触发事件
                        if (findKey.BaseFile != null && findKey.BaseFile.OnUnkownKey != null)
                        {
                            findKey.BaseFile.OnUnkownKey(findKey.BaseFile, findKey);
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(tempStr))
                        {
                            //  不是记录行
                            this.Lines.Add(tempStr);
                        }
                    }
                }
            }

            //  读到末尾返回空值
            return(this);
        }