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); } }
//--------------------------------------------------------------------- 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); }
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 { } }
//------------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------- // 玩家进入桌子 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)); }
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); }