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; } } }
// 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); }
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; } }
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(); }