internal void SendActionShootUpdate(WeaponComponent comp, TerminalActionState state, int weaponId = -1) { var mId = 0u; if (weaponId == -1) { mId = ++comp.SyncIds.MIds[(int)PacketType.CompToolbarShootState]; } else { mId = ++comp.SyncIds.MIds[(int)PacketType.WeaponToolbarShootState]; } if (IsClient) { comp.Session.PacketsToServer.Add(new ShootStatePacket { EntityId = comp.MyCube.EntityId, SenderId = comp.Session.MultiplayerId, PType = weaponId == -1 ? PacketType.CompToolbarShootState : PacketType.WeaponToolbarShootState, MId = mId, Data = state, WeaponId = weaponId, }); } else if (HandlesInput) { comp.Session.PacketsToClient.Add(new PacketInfo { Entity = comp.MyCube, Packet = new ShootStatePacket { EntityId = comp.MyCube.EntityId, SenderId = comp.Session.MultiplayerId, PType = weaponId == -1 ? PacketType.CompToolbarShootState : PacketType.WeaponToolbarShootState, MId = mId, Data = state, WeaponId = weaponId, } }); } }
public override void CleanUp() { base.CleanUp(); Data = TerminalActionState.ShootOff; WeaponId = -1; }