/// <inheritdoc /> public void SetStateModeBaseMotion(IWorldEntity entity, StateModeBaseMotion motionState, Item item = null) { if (motionState == StateModeBaseMotion.BASEMOTION_ON) { entity.Object.StateMode |= StateMode.BASEMOTION_MODE; } else { entity.Object.StateMode &= ~StateMode.BASEMOTION_MODE; } _moverPacketFactory.SendStateMode(entity, motionState, item); }
/// <inheritdoc /> public void SendStateMode(IWorldEntity entity, StateModeBaseMotion flags, Item item = null) { using var packet = new FFPacket(); packet.StartNewMergedPacket(entity.Id, SnapshotType.STATEMODE); packet.Write((int)entity.Object.StateMode); packet.Write((byte)flags); if (flags == StateModeBaseMotion.BASEMOTION_ON && item != null) { packet.Write(item.Id); } SendToVisible(packet, entity, sendToPlayer: true); }
/// <summary> /// Creates a new <see cref="SpecialEffectBaseMotionEventArgs"/> instance. /// </summary> /// <param name="motion">Motion.</param> /// <param name="item">Item to be used.</param> public SpecialEffectBaseMotionEventArgs(StateModeBaseMotion motion, Item item = null) { this.Motion = motion; this.Item = item; }
/// <inheritdoc /> public void Deserialize(INetPacketStream packet) { StateMode = (StateMode)packet.Read <int>(); Flag = (StateModeBaseMotion)packet.Read <byte>(); }