public float[] GetRotation() { return(UpdateFields.GetArray <GameObjectField, float>(GameObjectField.GAMEOBJECT_PARENTROTATION, 4)); }
public override void LoadValuesFromUpdateFields() { Bytes0 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_0); Bytes1 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_1); Bytes2 = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BYTES_2); Size = UpdateFields.GetValue <ObjectField, float?>(ObjectField.OBJECT_FIELD_SCALE_X); MaxHealth = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MAXHEALTH); Level = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_LEVEL); Faction = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_FACTIONTEMPLATE); if (ClientVersion.AddedInVersion(ClientType.Legion)) { ScalingMinLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MIN); ScalingMaxLevel = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_SCALING_LEVEL_MAX); ScalingDelta = UpdateFields.GetValue <UnitField, int>(UnitField.UNIT_FIELD_SCALING_LEVEL_DELTA);; EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 6); } else { EquipmentRaw = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_VIRTUAL_ITEM_SLOT_ID, 3); } UnitFlags = UpdateFields.GetEnum <UnitField, UnitFlags?>(UnitField.UNIT_FIELD_FLAGS); UnitFlags2 = UpdateFields.GetEnum <UnitField, UnitFlags2?>(UnitField.UNIT_FIELD_FLAGS_2); if (ClientVersion.AddedInVersion(ClientType.Legion)) { UnitFlags3 = UpdateFields.GetEnum <UnitField, UnitFlags3?>(UnitField.UNIT_FIELD_FLAGS_3); } MeleeTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASEATTACKTIME); RangedTime = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_RANGEDATTACKTIME); Model = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_DISPLAYID); Mount = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_MOUNTDISPLAYID); if (ClientVersion.AddedInVersion(ClientType.WarlordsOfDraenor)) { DynamicFlagsWod = UpdateFields.GetEnum <ObjectField, UnitDynamicFlagsWOD?>(ObjectField.OBJECT_DYNAMIC_FLAGS); } else { DynamicFlags = UpdateFields.GetEnum <UnitField, UnitDynamicFlags?>(UnitField.UNIT_DYNAMIC_FLAGS); } if (ClientVersion.AddedInVersion(ClientType.Legion)) { // @TODO TEMPORARY HACK // For read NpcFlags as ulong uint[] tempNpcFlags = UpdateFields.GetArray <UnitField, uint>(UnitField.UNIT_NPC_FLAGS, 2); NpcFlags = (NPCFlags)Utilities.MAKE_PAIR64(tempNpcFlags[0], tempNpcFlags[1]); } else { NpcFlags = UpdateFields.GetEnum <UnitField, NPCFlags?>(UnitField.UNIT_NPC_FLAGS); } EmoteState = UpdateFields.GetEnum <UnitField, EmoteType?>(UnitField.UNIT_NPC_EMOTESTATE); Resistances = UpdateFields.GetArray <UnitField, short>(UnitField.UNIT_FIELD_RESISTANCES, 7); ManaMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_MANA); HealthMod = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_BASE_HEALTH); BoundingRadius = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_BOUNDINGRADIUS); CombatReach = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_COMBATREACH); HoverHeight = UpdateFields.GetValue <UnitField, float?>(UnitField.UNIT_FIELD_HOVERHEIGHT); if (ClientVersion.AddedInVersion(ClientVersionBuild.V5_4_0_17359)) { PowerType = UpdateFields.GetEnum <UnitField, PowerType?>(UnitField.UNIT_FIELD_DISPLAY_POWER); InteractSpellID = UpdateFields.GetValue <UnitField, uint?>(UnitField.UNIT_FIELD_INTERACT_SPELLID); } ComputeBytes0(); ComputeEquipment(); }