Example #1
0
        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;
 }