Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Steam Setup Code
- private const uint AppId = 480;
- public override void _Ready()
- {
- base._Ready();
- instance = this;
- OS.SetEnvironment("SteamAppId", AppId.ToString());
- OS.SetEnvironment("SteamGameId", AppId.ToString());
- Steam.SteamInit();
- var isSteamRunning = Steam.IsSteamRunning();
- if (!isSteamRunning)
- {
- GD.Print("Steam is not running.");
- return;
- }
- steamId = Steam.GetSteamID();
- steamName = Steam.GetFriendPersonaName(steamId);
- GD.Print("Your Steam Name: " + steamName);
- Steam.JoinRequested += steamConnect;
- }
- //Hosting Code
- public void hostPressed(){
- if(!GlobalState.instance.isServer){
- if(STEAM_MULTIPLAYER){
- GD.Print("Initializsing Steam Based Server");
- Steam.CreateLobby(Steam.LobbyType.FriendsOnly,4);
- SteamMultiplayerPeer peer = new SteamMultiplayerPeer();
- GD.Print(peer.CreateServer(7777));
- GlobalState.instance.peer = peer;
- GD.Print(peer.GetConnectionStatus());
- GD.Print(peer._GetTransferChannel());
- GD.Print(peer._GetTransferMode());
- GD.Print(peer.GetUniqueId());
- Steam.LobbyChatUpdate += (ulong _, long updatee,long _,long newState)=>{
- if((Steam.ChatMemberStateChange)newState == Steam.ChatMemberStateChange.Entered){
- GD.Print("GAMER CONNECTED");
- addPeerToList(peer.GetPeerIdFromSteam64((ulong)updatee));
- }else{
- GD.Print("GAMER LEFT");
- removePeerFromList(peer.GetPeerIdFromSteam64((ulong)updatee));
- }
- };
- }else{
- ENetMultiplayerPeer peer = new ENetMultiplayerPeer();
- peer.CreateServer(7777);
- GlobalState.instance.peer = peer;
- Multiplayer.PeerConnected += addPeerToList;
- Multiplayer.PeerDisconnected += removePeerFromList;
- }
- Multiplayer.MultiplayerPeer = GlobalState.instance.peer;
- GlobalState.instance.connected = true;
- GlobalState.instance.isServer = true;
- Multiplayer.PeerConnected += addPeerToList;
- Multiplayer.PeerDisconnected += removePeerFromList;
- // serverVisuals();
- }
- }
- //Client code
- public void connectPressed(){
- if(!GlobalState.instance.connected){
- if(STEAM_MULTIPLAYER){
- Steam.ActivateGameOverlay(GameOverlayType.Friends);
- Steam.LobbyJoined+=(ulong _, long _, bool _, long errNo) =>{GD.Print(errNo);};
- }else{
- ENetMultiplayerPeer peer = new ENetMultiplayerPeer();
- peer.CreateClient("127.0.0.1",7777);
- GlobalState.instance.peer = peer;
- Multiplayer.MultiplayerPeer = GlobalState.instance.peer;
- GlobalState.instance.connected = true;
- }
- Multiplayer.PeerConnected += (long _)=>{GD.Print("GAMER SPOTTED");};
- Multiplayer.ConnectedToServer += connectCallback;
- Multiplayer.ConnectionFailed += ()=>{GD.Print("CONNECTION TO SERVER FAILED??");};
- }
- }
- void steamConnect(ulong lobbyId, ulong userID){
- if(!connected){
- SteamMultiplayerPeer peer = new SteamMultiplayerPeer();
- GD.Print("CONNECTED");
- Steam.JoinLobby(lobbyId);
- GD.Print(peer.CreateClient(userID,7777));
- this.peer = peer;
- GD.Print(peer.GetConnectionStatus());
- GD.Print(peer._GetTransferChannel());
- GD.Print(peer._GetTransferMode());
- GD.Print(peer.GetUniqueId());
- Steam.JoinRequested-=steamConnect;
- }
- }
Advertisement