Beispiel #1
0
 public override void DoWork(WorkData unused)
 {
     if (MySession.Static.Ready)
     {
         MyEntityIdentifier.InEntityCreationBlock = true;
         MyEntityIdentifier.LazyInitPerThreadStorage(0x800);
         int num = 0;
         while (true)
         {
             if (num < this.debrisPieces)
             {
                 MyDebrisBase base2 = this.Context.CreateRandomDebris();
                 if (base2 != null)
                 {
                     float      randomFloat = MyUtils.GetRandomFloat(this.minDeviationAngle, this.maxDeviationAngle);
                     Matrix     matrix      = Matrix.CreateRotationX(MyUtils.GetRandomFloat(this.minDeviationAngle, this.maxDeviationAngle)) * Matrix.CreateRotationY(randomFloat);
                     Vector3    vector      = Vector3.Transform(this.offsetDirection, matrix);
                     DebrisData item        = new DebrisData {
                         Object          = base2,
                         StartPos        = this.sourceWorldPosition + (vector * MyUtils.GetRandomFloat(this.minSourceDistance, this.maxSourceDistance)),
                         InitialVelocity = vector * this.initialSpeed
                     };
                     this.m_pieces.Add(item);
                     num++;
                     continue;
                 }
             }
             MyEntityIdentifier.ClearPerThreadEntities();
             MyEntityIdentifier.InEntityCreationBlock = false;
             return;
         }
     }
 }
Beispiel #2
0
                // Constructors
                public KillData(BINAReader reader)
                {
                    KillType = (KillTypes)reader.ReadUInt32();

                    KillTime        = reader.ReadSingle();
                    BreakMotionName = reader.GetString();
                    reader.JumpAhead(12);

                    _DebrisData = new DebrisData(reader);
                    reader.JumpAhead(4);
                }
Beispiel #3
0
    public void UpdateDebrisItem()
    {
        PopText.Instance.Show("OK  ");
        COM_Item item = BagSystem.instance.GetItemByInstId((int)Debris.instId_);

        if (item == null)
        {
            dNumLab.text    = "0/" + DebrisData.GetData((int)_item.itemId_).needNum_;
            okBtn.isEnabled = false;
            dNumLab.color   = Color.red;
        }
        else
        {
            Debris = item;
        }
    }
Beispiel #4
0
    public static void ParseData(string content, string fileName)
    {
        metaData = new Dictionary <int, DebrisData> ();
        empData  = new Dictionary <int, DebrisData> ();
        CSVParser parser = new CSVParser();

        if (!parser.Parse(content))
        {
            ClientLog.Instance.LogError("debrisData" + ConfigLoader.Instance.csvext + "解析错误");
            return;
        }
        int        recordCounter = parser.GetRecordCounter();
        DebrisData data          = null;

        for (int i = 0; i < recordCounter; ++i)
        {
            data          = new DebrisData();
            data.id_      = parser.GetInt(i, "ID");
            data.needNum_ = parser.GetInt(i, "Number");
            data.itemId_  = parser.GetInt(i, "Item");
            data.itemNum_ = parser.GetInt(i, "ItemNumber");
            data.subType_ = (ItemSubType)Enum.Parse(typeof(ItemSubType), parser.GetString(i, "ItemSubType"));

            if (metaData.ContainsKey(data.id_))
            {
                ClientLog.Instance.LogError("debrisData" + ConfigLoader.Instance.csvext + "ID重复 " + data.id_);
                return;
            }
            metaData[data.id_] = data;
            if (empData.ContainsKey(data.itemId_))
            {
                ClientLog.Instance.LogError("debrisData" + ConfigLoader.Instance.csvext + "ID重复 " + data.id_);
                return;
            }
            empData[data.itemId_] = data;
        }
        parser.Dispose();
        parser = null;
    }
        public override void ReadXML(XElement ele, ElderScrollsPlugin master)
        {
            XElement subEle;

            if (ele.TryPathTo("Data", false, out subEle))
            {
                if (Data == null)
                {
                    Data = new DebrisData();
                }

                Data.ReadXML(subEle, master);
            }
            if (ele.TryPathTo("TextureFileHashes", false, out subEle))
            {
                if (TextureFileHashes == null)
                {
                    TextureFileHashes = new SimpleSubrecord <Byte[]>();
                }

                TextureFileHashes.ReadXML(subEle, master);
            }
        }
 public DebrisModel(DebrisData Data, SimpleSubrecord <Byte[]> TextureFileHashes)
 {
     this.Data = Data;
     this.TextureFileHashes = TextureFileHashes;
 }
 public DebrisModel()
 {
     Data = new DebrisData();
 }