Launcher 1

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 4

using System.

Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
using TMPro;
using Photon.Realtime;
using System.Linq;

public class Launcher : MonoBehaviourPunCallbacks


{
public static Launcher Instance;

[SerializeField] TMP_InputField roomNameInputField;


[SerializeField] TMP_Text errorText;
[SerializeField] TMP_Text roomNameText;
[SerializeField] Transform roomListContent;
[SerializeField] GameObject roomListItemPrefab;
[SerializeField] Transform playerListContent;
[SerializeField] GameObject PlayerListItemPrefab;
[SerializeField] GameObject startGameButton;

public static string ModeMain;

void Awake()
{
Instance = this;
}

void Start()
{
Debug.Log("Connecting to Master");
PhotonNetwork.ConnectUsingSettings();
}

public override void OnConnectedToMaster()


{
Debug.Log("Connected to Master");
PhotonNetwork.JoinLobby();
PhotonNetwork.AutomaticallySyncScene = true;
}

public override void OnJoinedLobby()


{
MenuManager.Instance.OpenMenu("title");
//PhotonNetwork.CreateRoom("ENTER METAVERSE");
Debug.Log("Joined Lobby");
}

public void CreateRoom()


{
if(string.IsNullOrEmpty(roomNameInputField.text))
{
//return;
}
//PhotonNetwork. JoinOrCreateRoom("MAIN");
PhotonNetwork.CreateRoom("ENTER METAVERSE");
MenuManager.Instance.OpenMenu("loading");
}

public void CreateRoomMetaverse() ///////////////


METAVERSE ////////////////////
{

ModeMain = "METAVERSE";
Debug.Log("ModeMain " + ModeMain);

RoomOptions roomOptionsMetaverse = new RoomOptions();


roomOptionsMetaverse.IsVisible = true;
roomOptionsMetaverse.MaxPlayers = 20;
PhotonNetwork.JoinOrCreateRoom("ENTER METAVERSE", roomOptionsMetaverse,
TypedLobby.Default);
MenuManager.Instance.OpenMenu("loading");
}

public void CreateRoomShooter() /////////////// SHOOTER ////////////////////

ModeMain = "SHOOTER";
Debug.Log("ModeMain " + ModeMain);

RoomOptions roomOptionsShooter = new RoomOptions();


roomOptionsShooter.IsVisible = true;
roomOptionsShooter.MaxPlayers = 20;
PhotonNetwork.JoinOrCreateRoom("ENTER SHOOTER", roomOptionsShooter,
TypedLobby.Default);
MenuManager.Instance.OpenMenu("loading");
}

public void JoinRandom()


{
PhotonNetwork.JoinRandomRoom();
// MASUK ROOM SECARA ACAK, TAPI NGGAK DIPAKAI
}

public override void OnJoinedRoom()


{

Debug.Log("Load Level : ");

if (ModeMain == "METAVERSE")
{
Debug.Log("Load Level Metaverse");
PhotonNetwork.LoadLevel(1);
}

if (ModeMain == "SHOOTER")
{
Debug.Log("Load Level Shooter");
PhotonNetwork.LoadLevel(2);
}

//PhotonNetwork.LoadLevel(1); //
JOIN ROOM LANGSUNG MAIN GAME
//MenuManager.Instance.OpenMenu("loading2");
//MenuManager.Instance.OpenMenu("room");
//roomNameText.text = PhotonNetwork.CurrentRoom.Name;

// Player[] players = PhotonNetwork.PlayerList;

// foreach(Transform child in playerListContent) // DAFTAR PEMAIN


// {
// Destroy(child.gameObject);
// }

// for(int i = 0; i < players.Count(); i++)


// {
// Instantiate(PlayerListItemPrefab,
playerListContent).GetComponent<PlayerListItem>().SetUp(players[i]);
// }

//startGameButton.SetActive(PhotonNetwork.IsMasterClient);
}

public override void OnMasterClientSwitched(Player newMasterClient)


{
startGameButton.SetActive(PhotonNetwork.IsMasterClient);
}

public override void OnCreateRoomFailed(short returnCode, string message)


// KALAU ERROR
{
PhotonNetwork.JoinRoom("ENTER METAVERSE");
//PhotonNetwork.JoinRandomRoom();
//PhotonNetwork.LoadLevel(1); // MASIH ERROR
//MenuManager.Instance.OpenMenu("loading2");
// errorText.text = "Room Creation Failed: " + message;
// Debug.LogError("Room Creation Failed: " + message);
// MenuManager.Instance.OpenMenu("error");
}

public void StartGame()


{
if (ModeMain == "METAVERSE")
{
PhotonNetwork.LoadLevel(1);
}

if (ModeMain == "SHOOTER")
{
PhotonNetwork.LoadLevel(2);
}
}

public void LeaveRoom()


{
PhotonNetwork.LeaveRoom();
MenuManager.Instance.OpenMenu("loading");
}

public void JoinRoom(RoomInfo info)


{
PhotonNetwork.JoinRoom("ENTER METAVERSE");
//MenuManager.Instance.OpenMenu("loading2");
}

public override void OnLeftRoom()


{
MenuManager.Instance.OpenMenu("title");
}

public override void OnRoomListUpdate(List<RoomInfo> roomList)


{
foreach(Transform trans in roomListContent)
{
Destroy(trans.gameObject);
}

for(int i = 0; i < roomList.Count; i++)


{
if(roomList[i].RemovedFromList)
continue;
Instantiate(roomListItemPrefab,
roomListContent).GetComponent<RoomListItem>().SetUp(roomList[i]);
}
}

public override void OnPlayerEnteredRoom(Player newPlayer)


{
Instantiate(PlayerListItemPrefab,
playerListContent).GetComponent<PlayerListItem>().SetUp(newPlayer);
}
}

You might also like