public virtual void Load(jmp data, int entryIndex) { FieldInfo[] fields = this.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance); for (int i = 0; i < data.fields.Count; i++) { switch (data.fields[i].type) { case jmp.JMPType.FLOAT: if (fields[i].FieldType == typeof(float)) { fields[i].SetValue(this, data.getFloatField(entryIndex, i)); } break; case jmp.JMPType.INTEGER: if (fields[i].FieldType == typeof(int)) { fields[i].SetValue(this, data.getIntField(entryIndex, i)); } break; case jmp.JMPType.STRING: if (fields[i].FieldType == typeof(string)) { fields[i].SetValue(this, data.getStringField(entryIndex, i)); } break; default: break; } } }
public override void Load(jmp data, int entryIndex) { base.Load(data, entryIndex); Position = new OpenTK.Vector3(posX, posY, posZ); Rotation = new OpenTK.Quaternion(new OpenTK.Vector3(rotX, rotY, rotZ)); Scale = new OpenTK.Vector3(scaleX, scaleY, scaleZ); HasRoomNumber = true; }