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);
        }
예제 #2
0
 public void Deserialize(NetworkReader reader)
 {
     _pingType = PingCatalog.Get(reader.ReadInt32());
     _pingData = reader.Read <PingCatalog.PingData>();
 }
 void Start()
 {
     PingCatalog.Init();
 }