Пример #1
0
    void Update()
    {
        if (Application.platform != RuntimePlatform.Android && Application.platform != RuntimePlatform.IPhonePlayer)
        {
            if (Camera.main.GetComponent <ScreenCapture>() == null)
            {
                screenCapture = Camera.main.gameObject.AddComponent <ScreenCapture>();
            }
            else
            {
                screenCapture = Camera.main.GetComponent <ScreenCapture>();
            }
        }

        if (ConnectionController.MyConnectionState == ConnectionController.ConnectionState.NotConnected)
        {
            return;
        }
        screenWidth  = Screen.width;
        screenHeight = Screen.height;

        if (screenCapture != null && screenCapture.capturedTexture != null)
        {
            desktopData = new DesktopData();
            desktopData.showTouchscreenKeyboard = false;
            desktopData.imageData           = screenCapture.capturedTexture.EncodeToJPG(settings.ScreenShareQuality);
            desktopData.screenOrientation   = settings.DeviceOrientation;
            desktopData.currentWebcamDevice = currentWebcamDevice;
            ConnectionController.SendData(desktopData);
        }
    }
Пример #2
0
    //---------------------------------------------------------------------
    public async Task enterDesktopPrivate(PrivateDesktopCreateInfo desktop_createinfo)
    {
        if (IsEntering)
        {
            EbLog.Note("CellPlayerDesktop.enterDesktopPrivate() 错误:正在进入中");
            return;
        }
        IsEntering = true;

        if (!string.IsNullOrEmpty(DesktopEtGuid))
        {
            await leaveDesktop();
        }

        var grain = Entity.getUserData <GrainCellPlayer>();
        var grain_desktopservice = grain.GF.GetGrain <ICellDesktopService>(0);
        var desktop_info         = await grain_desktopservice.createPrivateDesktop(desktop_createinfo);

        // Step1:监听桌子广播
        await _createDesktopStreamConsumer(desktop_info.desktop_etguid);

        // 自动下注
        int bet_chip  = 2000;
        int left_chip = CoActor.Def.PropGold.get();

        if (left_chip < bet_chip)
        {
            bet_chip = left_chip;
        }
        left_chip -= bet_chip;
        CoPlayer.CoActor.Def.PropGold.set(left_chip);

        DesktopRequestPlayerEnter request_enter;

        request_enter.desktop_etguid = desktop_info.desktop_etguid;
        request_enter.seat_index     = 0;
        request_enter.player_clip    = 0;
        request_enter.player_gold    = CoActor.Def.PropGold.get();
        request_enter.is_vip         = CoActor.Def.mPropIsVIP.get();

        // Step2:进入桌子并获取桌子初始化信息
        var         grain_desktop = grain.GF.GetGrain <ICellDesktop>(new Guid(desktop_info.desktop_etguid));
        DesktopData desktop_data  = await grain_desktop.s2sPlayerEnter(request_enter, CoPlayer.exportEtPlayerMirror());

        IsEntering    = false;
        DesktopEtGuid = desktop_data.desktop_cfg_data.desktop_etguid;

        DesktopNotify desktop_notify;

        desktop_notify.id   = DesktopNotifyId.DesktopInit;
        desktop_notify.data = EbTool.protobufSerialize <DesktopData>(desktop_data);

        MethodData notify_data = new MethodData();

        notify_data.method_id = MethodType.s2cPlayerDesktopNotify;
        notify_data.param1    = EbTool.protobufSerialize <DesktopNotify>(desktop_notify);
        var grain_player = grain.GF.GetGrain <ICellPlayer>(new Guid(Entity.Guid));

        grain_player.s2sNotify(notify_data);
    }
Пример #3
0
    public void LoadListItemAttributes()
    {
        Attributes    = new DesktopData[2];
        Attributes[0] = new DesktopData("text");
        Attributes[1] = new DesktopData("value");

        try
        {
            Attributes[0].SetValue(TruncString(Element.Name, 52));
            Attributes[1].SetValue(TruncString(Element.Patterns.LegacyIAccessible.Pattern.Value, 52));
        }
        catch { }
    }
Пример #4
0
    //-------------------------------------------------------------------------
    DesktopData _getDesktopData()
    {
        DesktopData desktop_data = new DesktopData();

        desktop_data.desktop_cfg_data = DesktopConfigData;
        desktop_data.list_actormirror = new List <EntityData>();
        foreach (var i in AllSeat)
        {
            if (i.et_playermirror == null)
            {
                continue;
            }

            var et_data = i.et_playermirror.genEntityData4All();
            desktop_data.list_actormirror.Add(et_data);
        }

        return(desktop_data);
    }
Пример #5
0
    //-------------------------------------------------------------------------
    // 玩家进入桌子
    public Task <DesktopData> s2sPlayerEnter(DesktopRequestPlayerEnter request_enter, EntityData etdata_playermirror)
    {
        byte seat_index = request_enter.seat_index;

        if (getPlayerCountInSeat() >= DesktopConfigData.seat_num)
        {
            // 没有空座位了,观战
            seat_index = 255;
        }

        if (!isValidSeatIndex(seat_index))
        {
            // 座位索引范围不合法,重新分配空座位
            foreach (var i in AllSeat)
            {
                if (i.et_playermirror == null)
                {
                    seat_index = i.index;
                    break;
                }
            }
        }

        if (isValidSeatIndex(seat_index) && AllSeat[seat_index].et_playermirror != null)
        {
            // 座位上已经有人坐了,重新分配空座位
            foreach (var i in AllSeat)
            {
                if (i.et_playermirror == null)
                {
                    seat_index = i.index;
                    break;
                }
            }
        }

        var et_playermirror = EntityMgr.genEntity <EtPlayerMirror, Entity>(etdata_playermirror, Entity);
        var co_actormirror  = et_playermirror.getComponent <CellActorMirror <DefActorMirror> >();
        var co_ai           = et_playermirror.getComponent <CellActorMirrorAi <DefActorMirrorAi> >();

        byte actorid_indesktop = _genPlayerId();

        co_actormirror.Def.PropActorIdInDesktop.set(actorid_indesktop);

        EbLog.Note("CellDesktop.s2sPlayerEnter() PlayerEtGuid=" + et_playermirror.Guid);

        MapAllPlayer1[actorid_indesktop]   = et_playermirror;
        MapAllPlayer[et_playermirror.Guid] = et_playermirror;
        if (isValidSeatIndex(seat_index))
        {
            AllSeat[seat_index].et_playermirror = et_playermirror;
        }

        co_actormirror.onEnterDesktop(seat_index);

        // 更新DesktopInfo
        refreshDesktopInfo();

        // 广播玩家进入桌子
        DesktopNotify desktop_notify;

        desktop_notify.id   = DesktopNotifyId.PlayerEnter;
        desktop_notify.data = EbTool.protobufSerialize <EntityData>(et_playermirror.genEntityData4All());

        StreamData sd = new StreamData();

        sd.event_id = StreamEventId.DesktopStreamEvent;
        sd.param1   = desktop_notify;
        var grain_desktop = Entity.getUserData <GrainCellDesktop>();

        grain_desktop.AsyncStream.OnNextAsync(sd);

        // 通知场景玩家坐下
        LogicScene.scenePlayerEnter(actorid_indesktop, 1, "aabb", false, -1, TbDataTurret.TurretType.NormalTurret);
        float player_rate = 1.0f;// mEtDesktopPumping.getPlayerUpgradeRate();// 抽水率

        LogicScene.scenePlayerRateChanged(1, player_rate);

        DesktopData desktop_data = _getDesktopData();

        return(Task.FromResult(desktop_data));
    }
Пример #6
0
        public override Queue <AtsElement> GetElements(string tag, string[] attributes, AutomationElement root, DesktopManager desktop)
        {
            Attributes = new DesktopData[0];
            Queue <AtsElement> listElements = new Queue <AtsElement>();

            listElements.Enqueue(this);

            AutomationElement[] desktopChildren = Element.FindAllChildren(desktop.OnScreenProperty);

            List <AutomationElement> desktopElements = new List <AutomationElement>();

            int len = attributes.Length;

            foreach (AutomationElement child in desktopChildren)
            {
                desktopElements.Add(child);
                if (DesktopManager.IsDesktopComponent(child.ClassName))
                {
                    Stack <AutomationElement> items = new Stack <AutomationElement>();
                    AtsElement.LoadDescendants(desktop.OnScreenProperty, items, child);

                    foreach (AutomationElement subChild in items)
                    {
                        desktopElements.Add(subChild);
                    }
                }
            }

            if ("*".Equals(tag) || string.IsNullOrEmpty(tag))
            {
                if (len > 0)
                {
                    string[] newAttributes = new string[len];

                    for (int i = 0; i < len; i++)
                    {
                        string[] attributeData = attributes[i].Split('\t');
                        newAttributes[i] = attributeData[0];

                        /*if (attributeData.Length == 2)
                         * {
                         *  string propertyValue = attributeData[1];
                         * }*/
                    }

                    for (int i = 0; i < desktopElements.Count; i++)
                    {
                        AddToQueue(listElements, new AtsElement(desktopElements[i], newAttributes));
                    }
                }
                else
                {
                    for (int i = 0; i < desktopElements.Count; i++)
                    {
                        AddToQueue(listElements, new AtsElement(desktop, desktopElements[i]));
                    }
                }
            }
            else
            {
                if (len > 0)
                {
                    string[] newAttributes = new string[len];

                    for (int i = 0; i < len; i++)
                    {
                        string[] attributeData = attributes[i].Split('\t');
                        newAttributes[i] = attributeData[0];
                    }

                    for (int i = 0; i < desktopElements.Count; i++)
                    {
                        AutomationElement elem = desktopElements[i];
                        if (tag.Equals(GetTag(elem), StringComparison.OrdinalIgnoreCase))
                        {
                            AddToQueue(listElements, new AtsElement(elem, newAttributes));
                        }
                    }
                }
                else
                {
                    for (int i = 0; i < desktopElements.Count; i++)
                    {
                        AutomationElement elem = desktopElements[i];
                        if (tag.Equals(GetTag(elem), StringComparison.OrdinalIgnoreCase))
                        {
                            AddToQueue(listElements, new AtsElement(elem));
                        }
                    }
                }
            }

            return(listElements);
        }