protected internal override GameObject Instantiate(PlayerCharacterMasterController owner) { buttonBindingInfos.Clear(); thetaOffsetDegr = 0f; foreach (var player in PlayerCharacterMasterController._instancesReadOnly) { if (!respondables.ContainsKey(player)) { continue; } var respdat = respondables[player]; if (Time.unscaledTime - respdat.birthday > RESPONDABLE_LIFETIME) { continue; } var pingType = PingCatalog.Get(respdat.pingTypeIndex); var sprite = pingType.pingSkins[respdat.pingSkinIndex].sprite; buttonBindingInfos.Add(new DirectedPingBindingInfo { iconColor = Color.white, descriptionToken = $"{player.GetDisplayName()}", sprite = sprite, targetPCMC = player, orderedTypes = new[] { responseMap[responseType] } }); } var menuObj = base.Instantiate(owner); var pingHelper = menuObj.AddComponent <PingMenuHelper>(); pingHelper.owner = owner; pingHelper.TryUpdatePingInfo(); return(menuObj); }
public void Deserialize(NetworkReader reader) { _pingType = PingCatalog.Get(reader.ReadInt32()); _pingData = reader.Read <PingCatalog.PingData>(); }
void Start() { PingCatalog.Init(); }