Improve player creation

This commit is contained in:
Lncvrt committed 2026-03-05 11:33:18 -07:00
1 parent 94b55caf8f
commit 720215b114
1 file changed
+31 -55
@@ -61,34 +61,7 @@ public class MultiplayerGamePlayer : MonoBehaviour {
SceneManager.LoadScene("MainMenu");
return;
}
foreach (var player in multiplayerGameTempData.players) {
var birdCopy = Instantiate(birdTemplate);
Destroy(birdCopy.GetComponent<Rigidbody2D>());
Destroy(birdCopy.GetComponent<CircleCollider2D>());
birdCopy.AddComponent<MultiplayerSmoothMove>();
birdCopy.transform.SetParent(birdsParent.transform, false);
birdCopy.name = "Bird_" + player.ID;
birdCopy.SetActive(true);
MultiplayerUser playerToInsert = new() {
ID = player.ID,
Username = player.Username,
Admin = player.Admin,
JoinedAt = player.JoinedAt,
};
players.Add(playerToInsert);
Tools.LoadIcon(
birdCopy.GetComponent<Image>(),
birdCopy.transform.GetChild(0).GetComponent<Image>(),
player.IconData.Icon,
player.IconData.Overlay,
player.IconData.IconColor,
player.IconData.OverlayColor,
player.IconData.CustomIcon,
player.UserID
);
}
foreach (var player in multiplayerGameTempData.players) CreatePlayer(player);
Destroy(multiplayerGameTempData.gameObject);
var backgroundColor = BazookaManager.Instance.GetColorSettingBackground();
@@ -145,33 +118,7 @@ public class MultiplayerGamePlayer : MonoBehaviour {
berries.Add(berry);
} else if (data["type"].ToString() == "multiplayer_player_join") {
var userFromResponse = data.ToObject<MultiplayerPlayerFromResponse>();
var birdCopy = Instantiate(birdTemplate);
Destroy(birdCopy.GetComponent<Rigidbody2D>());
Destroy(birdCopy.GetComponent<CircleCollider2D>());
birdCopy.AddComponent<MultiplayerSmoothMove>();
birdCopy.transform.SetParent(birdsParent.transform, false);
birdCopy.name = "Bird_" + userFromResponse.ID;
birdCopy.SetActive(true);
MultiplayerUser player = new() {
ID = userFromResponse.ID,
Username = userFromResponse.Username,
Admin = userFromResponse.Admin,
JoinedAt = userFromResponse.JoinedAt,
};
players.Add(player);
Tools.LoadIcon(
birdCopy.GetComponent<Image>(),
birdCopy.transform.GetChild(0).GetComponent<Image>(),
userFromResponse.IconData.Icon,
userFromResponse.IconData.Overlay,
userFromResponse.IconData.IconColor,
userFromResponse.IconData.OverlayColor,
userFromResponse.IconData.CustomIcon,
userFromResponse.UserID
);
CreatePlayer(userFromResponse);
} else if (data["type"].ToString() == "multiplayer_player_leave") {
var userBird = GameObject.Find("Bird_" + data["id"].ToString());
if (userBird) Destroy(userBird);
@@ -524,4 +471,33 @@ public class MultiplayerGamePlayer : MonoBehaviour {
Destroy(berry);
berries.RemoveAll(b => b.ID == berry.name[6..]);
}
void CreatePlayer(MultiplayerPlayerFromResponse player) {
var birdCopy = Instantiate(birdTemplate);
Destroy(birdCopy.GetComponent<Rigidbody2D>());
Destroy(birdCopy.GetComponent<CircleCollider2D>());
birdCopy.AddComponent<MultiplayerSmoothMove>();
birdCopy.transform.SetParent(birdsParent.transform, false);
birdCopy.name = "Bird_" + player.ID;
birdCopy.SetActive(true);
MultiplayerUser playerToInsert = new() {
ID = player.ID,
Username = player.Username,
Admin = player.Admin,
JoinedAt = player.JoinedAt,
};
players.Add(playerToInsert);
Tools.LoadIcon(
birdCopy.GetComponent<Image>(),
birdCopy.transform.GetChild(0).GetComponent<Image>(),
player.IconData.Icon,
player.IconData.Overlay,
player.IconData.IconColor,
player.IconData.OverlayColor,
player.IconData.CustomIcon,
player.UserID
);
}
}