public override bool OnInitialize() { base.OnInitialize(); _name = "Emitter"; _desc = *Descriptor; _drawSetting = _desc._drawSetting; typeOption2 = _drawSetting.typeOption2; return(TevStageCount > 0); }
public override bool OnInitialize() { base.OnInitialize(); _name = "Emitter"; _desc = *Descriptor; _drawSetting = *(EmitterDrawSetting7 *)&Descriptor->_drawSetting; typeOption2 = new Bin8(_drawSetting.typeOption2); return(TevStageCount > 0); }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { return(Bin8.FromString(value?.ToString() ?? "")); }
public override bool OnInitialize() { _hdr = *Header; _name = KindType; _random = new Random(RandomSeed); Bin8 enabled = Header->kindEnable; List <int> enabledIndices = new List <int>(); for (int i = 0; i < 8; i++) { if (enabled[i]) { enabledIndices.Add(i); } } int size = 0; switch (CurveFlag) { case AnimCurveType.ParticleByte: size = 1; break; case AnimCurveType.ParticleFloat: size = 4; break; case AnimCurveType.ParticleRotate: size = 1; break; case AnimCurveType.ParticleTexture: break; case AnimCurveType.Child: break; case AnimCurveType.EmitterFloat: break; case AnimCurveType.Field: break; case AnimCurveType.PostField: break; } //Dictionary<int, KeyValuePair<int, float>> values; //VoidPtr offset = (VoidPtr)Header + 0x20; //if (KeyTableSize > 4) //{ // AnimCurveTableHeader* hdr = (AnimCurveTableHeader*)offset; // AnimCurveKeyHeader* key = hdr->First; // for (int i = 0; i < hdr->_count; i++, key = key->Next(enabledIndices.Count, size)) // { // key->GetFrameIndex(enabledIndices.Count, size); // } //} //offset += KeyTableSize; //if (RangeTableSize > 4) //{ // AnimCurveTableHeader* hdr = (AnimCurveTableHeader*)offset; //} //offset += RangeTableSize; //if (RandomTableSize > 4) //{ // AnimCurveTableHeader* hdr = (AnimCurveTableHeader*)offset; //} //offset += RandomTableSize; //if (NameTableSize > 4) //{ // AnimCurveTableHeader* hdr = (AnimCurveTableHeader*)offset; // _names = new List<string>(); // bushort* addr = (bushort*)((VoidPtr)hdr + 4 + hdr->_count * 4); // for (int i = 0; i < hdr->_count; i++, addr = (bushort*)((VoidPtr)addr + 2 + *addr)) // _names.Add(new String((sbyte*)addr + 2)); //} //offset += NameTableSize; //if (InfoTableSize > 4) //{ // AnimCurveTableHeader* hdr = (AnimCurveTableHeader*)offset; // //switch ((v9AnimCurveTargetField)_hdr.kindType) // //{ // //} //} #if DEBUG if (CurveFlag == AnimCurveType.EmitterFloat || CurveFlag == AnimCurveType.PostField) { MessageBox.Show(TreePath); } #endif switch (CurveFlag) { case AnimCurveType.ParticleByte: break; case AnimCurveType.ParticleFloat: break; case AnimCurveType.ParticleRotate: break; case AnimCurveType.ParticleTexture: break; case AnimCurveType.Child: break; } return(false); }