public ServerOrSingle_Player(uint identifier, string name, bool bot, UserManagementServerNetworkService.UserInfo user) { this.identifier = identifier; this.name = name; this.bot = bot; this.user = user; }
void Server_ChatService_ReceiveText(ChatServerNetworkService sender, UserManagementServerNetworkService.UserInfo fromUser, string text, UserManagementServerNetworkService.UserInfo privateToUser) { string userName = fromUser != null ? fromUser.Name : "(null)"; AddMessage(string.Format("{0}: {1}", userName, text)); }
void ChatService_ReceiveText(ChatServerNetworkService sender, UserManagementServerNetworkService.UserInfo fromUser, string text, UserManagementServerNetworkService.UserInfo privateToUser) { string userName = fromUser != null ? fromUser.Name : "(null)"; string toUserName = privateToUser != null ? privateToUser.Name : "All"; Log("Chat: {0} -> {1}: {2}", userName, toUserName, text); }
void Server_UserManagementService_AddUserEvent(UserManagementServerNetworkService sender, UserManagementServerNetworkService.UserInfo user) { GameNetworkServer server = GameNetworkServer.Instance; //send map name to new client server.CustomMessagesService.SendToClient(user.ConnectedNode, "Lobby_MapName", SelectedMapName); //send AllowToConnectDuringGame flag to new client server.CustomMessagesService.SendToClient(user.ConnectedNode, "Lobby_AllowToConnectDuringGame", checkBoxAllowToConnectDuringGame.Checked.ToString()); }
public ServerOrSingle_Player ServerOrSingle_GetPlayer( UserManagementServerNetworkService.UserInfo user ) { if( user == null ) Log.Fatal( "PlayerManager: ServerOrSingle_GetPlayerByIntellect: user == null." ); //it is can be slowly. need to use Dictionary. foreach( ServerOrSingle_Player player in serverOrSingle_players ) { if( player.User == user ) return player; } return null; }
public ServerOrSingle_Player Server_AddClientPlayer( UserManagementServerNetworkService.UserInfo user ) { uint identifier = serverOrSingle_playerIdentifierCounter; serverOrSingle_playerIdentifierCounter++; ServerOrSingle_Player player = new ServerOrSingle_Player( identifier, user.Name, false, user ); serverOrSingle_players.Add( player ); Server_SendAddPlayerToClients( EntitySystemWorld.Instance.RemoteEntityWorlds, player ); return player; }
private void Server_ReceiveMoveTryToFinish(RemoteEntityWorld sender, ReceiveDataReader reader) { if (!reader.Complete()) { return; } //get network user by remote entity world EntitySystemServerNetworkService.ClientRemoteEntityWorld clientRemoteEntityWorld = (EntitySystemServerNetworkService.ClientRemoteEntityWorld)sender; UserManagementServerNetworkService.UserInfo user = clientRemoteEntityWorld.User; if (user == server_movingByUser) { ServerOrSingle_MoveFinish(); } }
protected override void Server_OnClientDisconnected(RemoteEntityWorld remoteEntityWorld) { base.Server_OnClientDisconnected(remoteEntityWorld); //finish moving when user disconnected if (serverOrSingle_Moving) { EntitySystemServerNetworkService.ClientRemoteEntityWorld clientRemoteEntityWorld = (EntitySystemServerNetworkService.ClientRemoteEntityWorld)remoteEntityWorld; UserManagementServerNetworkService.UserInfo user = clientRemoteEntityWorld.User; if (user == server_movingByUser) { ServerOrSingle_MoveFinish(); } } }
bool Server_CheckRemoteEntityWorldAssociatedWithThisIntellect(RemoteEntityWorld sender) { UserManagementServerNetworkService.UserInfo senderUser = ((EntitySystemServerNetworkService.ClientRemoteEntityWorld)sender).User; if (PlayerManager.Instance != null) { PlayerManager.ServerOrSingle_Player player = PlayerManager.Instance. ServerOrSingle_GetPlayer(this); if (senderUser != player.User) { return(false); } } return(true); }
public void Server_MoveBegin(UserManagementServerNetworkService.UserInfo user) { if (serverOrSingle_Moving) { Log.Fatal("JigsawPuzzlePiece: Server_BeginMoving: serverOrSingle_Moving == true."); } serverOrSingle_Moving = true; serverOrSingle_movingTime = 0; server_movingByUser = user; //inform clients (send to the clients MoveBeginToClient message) SendDataWriter writer = BeginNetworkMessage(typeof(JigsawPuzzlePiece), (ushort)NetworkMessages.MoveBeginToClient); writer.WriteVariableUInt32(server_movingByUser.Identifier); EndNetworkMessage(); }
private void Server_ReceiveMoveUpdatePosition(RemoteEntityWorld sender, ReceiveDataReader reader) { Vec2 newPosition = reader.ReadVec2(); if (!reader.Complete()) { return; } //get network user by remote entity world EntitySystemServerNetworkService.ClientRemoteEntityWorld clientRemoteEntityWorld = (EntitySystemServerNetworkService.ClientRemoteEntityWorld)sender; UserManagementServerNetworkService.UserInfo user = clientRemoteEntityWorld.User; if (user == server_movingByUser) { ServerOrSingle_MoveUpdatePosition(newPosition); } }
private void Server_ReceiveMoveTryToBegin(RemoteEntityWorld sender, ReceiveDataReader reader) { if (!reader.Complete()) { return; } //already moving if (serverOrSingle_Moving) { return; } //get network user by remote entity world EntitySystemServerNetworkService.ClientRemoteEntityWorld clientRemoteEntityWorld = (EntitySystemServerNetworkService.ClientRemoteEntityWorld)sender; UserManagementServerNetworkService.UserInfo user = clientRemoteEntityWorld.User; Server_MoveBegin(user); }
void UserManagementService_RemoveUserEvent(UserManagementServerNetworkService sender, UserManagementServerNetworkService.UserInfo user) { listBoxUsers.Items.Remove(user); Log("User disconnected: " + user.ToString()); }
void UserManagementService_AddUserEvent(UserManagementServerNetworkService sender, UserManagementServerNetworkService.UserInfo user) { Log("User connected: " + user.ToString()); listBoxUsers.Items.Add(user); }
public void ServerOrSingle_MoveFinish() { if (!serverOrSingle_Moving) { return; } serverOrSingle_Moving = false; server_movingByUser = null; serverOrSingle_movingTime = 0; bool putToDestinationPlace = false; //check for destination place { Vec2 destination = JigsawPuzzleManager.Instance.GetPieceDestinationPosition(Index); if (Math.Abs(Position.X - destination.X) < .2f && Math.Abs(Position.Y - destination.Y) < .2f) { //move to destination place //"Position" will be send to clients from JigsawPuzzlePiece.OnSetTransform() method Position = new Vec3(destination.X, destination.Y, 0); putToDestinationPlace = true; } } //check for complete puzzle bool completePuzzle = true; { foreach (Entity entity in Map.Instance.Children) { JigsawPuzzlePiece piece = entity as JigsawPuzzlePiece; if (piece != null) { Vec2 destination = JigsawPuzzleManager.Instance.GetPieceDestinationPosition( piece.Index); if (Math.Abs(piece.Position.X - destination.X) > .01f || Math.Abs(piece.Position.Y - destination.Y) > .01f) { completePuzzle = false; break; } } } } if (EntitySystemWorld.Instance.IsServer()) { SendDataWriter writer = BeginNetworkMessage(typeof(JigsawPuzzlePiece), (ushort)NetworkMessages.MoveFinishToClient); writer.Write(putToDestinationPlace); writer.Write(completePuzzle); EndNetworkMessage(); } if (EntitySystemWorld.Instance.IsServer() || EntitySystemWorld.Instance.IsSingle()) { //play sounds if (putToDestinationPlace) { ClientOrSingle_SoundPlay("Maps\\JigsawPuzzleGame\\PutToDestinationPlace.ogg"); } if (completePuzzle) { ClientOrSingle_SoundPlay("Maps\\JigsawPuzzleGame\\CompletePuzzle.ogg"); } } }