void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedItemMask, UpdateMask requestedAzeriteItemMask, Player target) { UpdateFieldFlag flags = GetUpdateFieldFlagsFor(target); UpdateMask valuesMask = new UpdateMask((int)TypeId.Max); if (requestedObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.Object); } m_itemData.FilterDisallowedFieldsMaskForFlag(requestedItemMask, flags); if (requestedItemMask.IsAnySet()) { valuesMask.Set((int)TypeId.Item); } m_azeriteItemData.FilterDisallowedFieldsMaskForFlag(requestedAzeriteItemMask, flags); if (requestedAzeriteItemMask.IsAnySet()) { valuesMask.Set((int)TypeId.AzeriteItem); } WorldPacket buffer = new WorldPacket(); buffer.WriteUInt32(valuesMask.GetBlock(0)); if (valuesMask[(int)TypeId.Object]) { m_objectData.WriteUpdate(buffer, requestedObjectMask, true, this, target); } if (valuesMask[(int)TypeId.Item]) { m_itemData.WriteUpdate(buffer, requestedItemMask, true, this, target); } if (valuesMask[(int)TypeId.AzeriteItem]) { m_azeriteItemData.WriteUpdate(buffer, requestedAzeriteItemMask, true, this, target); } WorldPacket buffer1 = new WorldPacket(); buffer1.WriteUInt8((byte)UpdateType.Values); buffer1.WritePackedGuid(GetGUID()); buffer1.WriteUInt32(buffer.GetSize()); buffer1.WriteBytes(buffer.GetData()); data.AddUpdateBlock(buffer1); }
void BuildValuesUpdateForPlayerWithMask(UpdateData data, UpdateMask requestedObjectMask, UpdateMask requestedDynamicObjectMask, Player target) { UpdateMask valuesMask = new UpdateMask((int)TypeId.Max); if (requestedObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.Object); } if (requestedDynamicObjectMask.IsAnySet()) { valuesMask.Set((int)TypeId.DynamicObject); } WorldPacket buffer = new WorldPacket(); buffer.WriteUInt32(valuesMask.GetBlock(0)); if (valuesMask[(int)TypeId.Object]) { m_objectData.WriteUpdate(buffer, requestedObjectMask, true, this, target); } if (valuesMask[(int)TypeId.DynamicObject]) { m_dynamicObjectData.WriteUpdate(buffer, requestedDynamicObjectMask, true, this, target); } WorldPacket buffer1 = new WorldPacket(); buffer1.WriteUInt8((byte)UpdateType.Values); buffer1.WritePackedGuid(GetGUID()); buffer1.WriteUInt32(buffer.GetSize()); buffer1.WriteBytes(buffer.GetData()); data.AddUpdateBlock(buffer1); }
public override void BuildValuesUpdateWithFlag(WorldPacket data, UpdateFieldFlag flags, Player target) { UpdateMask valuesMask = new UpdateMask(14); valuesMask.Set((int)TypeId.Item); valuesMask.Set((int)TypeId.AzeriteItem); WorldPacket buffer = new WorldPacket(); buffer.WriteUInt32(valuesMask.GetBlock(0)); UpdateMask mask = new UpdateMask(40); m_itemData.AppendAllowedFieldsMaskForFlag(mask, flags); m_itemData.WriteUpdate(buffer, mask, true, this, target); UpdateMask mask2 = new UpdateMask(9); m_azeriteItemData.AppendAllowedFieldsMaskForFlag(mask2, flags); m_azeriteItemData.WriteUpdate(buffer, mask2, true, this, target); data.WriteUInt32(buffer.GetSize()); data.WriteBytes(buffer); }
public UpdateField <UU> ModifyValue <U, UU>(Expression <Func <U, UpdateField <UU> > > expression) where UU : new() { var fieldInfo = ((MemberExpression)expression.Body).Member as FieldInfo; if (fieldInfo == null) { throw new ArgumentException("The lambda expression 'property' should point to a valid Property"); } var updateField = (UpdateField <UU>)fieldInfo.GetValue(this); _changesMask.Set(updateField.BlockBit); _changesMask.Set(updateField.Bit); return(updateField); }
public BaseUpdateData <T> ModifyValue <T>(BaseUpdateData <T> updateData) { _changesMask.Set(updateData.Bit); return(updateData); }
public DynamicUpdateField <U> ModifyValue <U>(DynamicUpdateField <U> updateField) where U : new() { _changesMask.Set(updateField.BlockBit); _changesMask.Set(updateField.Bit); return(updateField); }