internal void Sync(InputStateData syncFrom) { MouseButtonLeft = syncFrom.MouseButtonLeft; MouseButtonMenu = syncFrom.MouseButtonMenu; MouseButtonRight = syncFrom.MouseButtonRight; InMenu = syncFrom.InMenu; }
private bool FindPlayer(IMyPlayer player, long id) { if (player.IdentityId == id) { Players[id] = player; SteamToPlayer[player.SteamUserId] = id; PlayerMouseStates[id] = new InputStateData(); PlayerDummyTargets[id] = new FakeTarget(); PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>(); PlayerMIds[player.SteamUserId] = new uint[Enum.GetValues(typeof(PacketType)).Length]; PlayerEventId++; if (AuthorIds.Contains(player.SteamUserId)) { ConnectedAuthors.Add(id, player.SteamUserId); } if (IsServer && MpActive) { SendPlayerConnectionUpdate(id, true); SendServerStartup(player.SteamUserId); } } return(false); }
private bool ServerClientMouseEvent(PacketObj data) { var packet = data.Packet; var inputPacket = (InputPacket)packet; var ent = MyEntities.GetEntityByIdOrDefault(packet.EntityId); if (ent == null) { return(Error(data, Msg("Entity"))); } if (inputPacket.Data == null) { return(Error(data, Msg("Data"))); } long playerId; if (SteamToPlayer.TryGetValue(packet.SenderId, out playerId)) { uint[] mIds; if (PlayerMIds.TryGetValue(packet.SenderId, out mIds) && mIds[(int)packet.PType] < packet.MId) { mIds[(int)packet.PType] = packet.MId; if (PlayerMouseStates.ContainsKey(playerId)) { PlayerMouseStates[playerId].Sync(inputPacket.Data); } else { PlayerMouseStates[playerId] = new InputStateData(inputPacket.Data); } PacketsToClient.Add(new PacketInfo { Entity = ent, Packet = inputPacket }); data.Report.PacketValid = true; } else { Log.Line($"ServerClientMouseEvent: MidsHasSenderId:{PlayerMIds.ContainsKey(packet.SenderId)} - midsNull:{mIds == null} - senderId:{packet.SenderId}"); } } else { return(Error(data, Msg("Player Not Found"))); } return(true); }
private bool FindPlayer(IMyPlayer player, long id) { if (player.IdentityId == id) { Players[id] = player; SteamToPlayer[player.SteamUserId] = id; PlayerMouseStates[id] = new InputStateData(); PlayerEventId++; if (player.SteamUserId == AuthorSteamId) { AuthorPlayerId = player.IdentityId; } } return(false); }
private bool FindPlayer(IMyPlayer player, long id) { if (player.IdentityId == id) { Players[id] = player; SteamToPlayer[player.SteamUserId] = id; PlayerMouseStates[id] = new InputStateData(); PlayerDummyTargets[id] = new FakeTargets(); PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>(); PlayerMIds[player.SteamUserId] = new uint[Enum.GetValues(typeof(PacketType)).Length]; var controller = player.Controller; if (controller != null && PlayerControllerMonitor.Add(player)) { controller.ControlledEntityChanged += OnPlayerController; OnPlayerController(null, controller.ControlledEntity); } PlayerEventId++; if (AuthorIds.Contains(player.SteamUserId)) { ConnectedAuthors.Add(id, player.SteamUserId); } if (IsServer && MpActive) { SendPlayerConnectionUpdate(id, true); SendServerStartup(player.SteamUserId); } else if (MpActive && MultiplayerId != player.SteamUserId && JokePlayerList.Contains(player.SteamUserId)) { PracticalJokes(); } } return(false); }
internal InputStateData(InputStateData createFrom) { Sync(createFrom); }
public override void CleanUp() { base.CleanUp(); Data = null; }
internal UiInput(Session session) { _session = session; ClientInputState = new InputStateData(); }