public EveTypeManager(EveTypeDetails details, EveTypeList list, ModelLayer model) { _list = list; _list.EveTypeSelected += eveTypeDataGridView_CellContentClick; _details = details; _model = model; }
protected void btn_Click(object sender, EventArgs e) { string id = ((Control)sender).ID; int question_id = 0; switch (id) { case "btn_check": int exist_indicator = BusinessLayer.Check_Username_Existence(txt_forgot_password.Text); if (exist_indicator == 0) { question_id = LoadQuestions(txt_forgot_password.Text); pnl_email.Visible = false; pnl_question.Visible = true; pnl_confirm.Visible = false; } else { StringBuilder sb = new StringBuilder(); sb.Append("<p class='error bold'>Your account does not exist. Please check email address again.</p>"); lit_error.Text = sb.ToString(); } break; case "btn_submit": tblQuestion q = ModelLayer.GetQuestion(question_id); tblQuestionAnswer a = ModelLayer.GetQuestionAnswer(q.iQuestionAnswer); if (a.vQuestionAnswer == txt_question_answer.Text) { string result = SendEmail(txt_forgot_password.Text); if (result == "Success") { pnl_email.Visible = false; pnl_question.Visible = false; pnl_confirm.Visible = true; } else { Common.ErrorLog(@"c:\logs\debug.txt", result); } } else { StringBuilder sb = new StringBuilder(); sb.Append("<p class='error bold'>Your security question answer does not match with our records. Please check your answer again.</p>"); lit_error.Text = sb.ToString(); } break; case "btn_confirm": Response.RedirectToRoute("Login"); break; default: break; } }
public EveTypeManager(EveTypeDetails details, EveTypeList list, ModelLayer model) { _list = list; _list.EveTypeSelected += eveTypeDataGridView_CellContentClick; _details = details; _model = model; }
private void ClickChangeLayerState(ModelLayer layer) { if (!instanceLoaded) { Debug.Log("No model loaded, cannot show layer."); return; } bool addLayer = !layersLoaded.ContainsKey(layer); if (!addLayer) { UnloadLayer(layer); } else { if (layer.DataType == DataType.Volumetric) { List <ModelLayer> layersToUnload = new List <ModelLayer>(); foreach (KeyValuePair <ModelLayer, LayerLoaded> entry in layersLoaded) { layersToUnload.Add(entry.Key); } foreach (ModelLayer l in layersToUnload) { UnloadLayer(l); HoloUtilities.SetButtonStateText(layersButtons[l], false); } } LoadLayer(layer); } HoloUtilities.SetButtonStateText(layersButtons[layer], addLayer); }
public MainForm() { InitializeComponent(); model = new ModelLayer(); eveTypeManager = new EveTypeManager(eveTypeDetails, eveTypeList, model); eveTypeManager.Update(); }
/* Instantiate new animated layer from currently loaded model. * If the layer is already instantiated, does nothing * (for now it makes a warning, but we can disable the warning if it's useful). * * This can only be used after LoadInstance (and before corresponding UnloadInstance). * * After calling this, remember to call RefreshUserInterface at some point. */ private void LoadLayer(ModelLayer layer) { if (!instanceLoaded) { throw new Exception("Cannot call LoadLayer before LoadInstance"); } if (layersLoaded.ContainsKey(layer)) { Debug.LogWarning("Layer already loaded"); return; } LayerLoaded l = new LayerLoaded(); l.Instance = layer.InstantiateGameObject(instanceTransformation.transform); l.Animation = l.Instance.GetComponent <BlendShapeAnimation>(); if (l.Animation != null) { l.Animation.InitializeBlendShapes(); l.Animation.Playing = AnimationPlaying; l.Animation.CurrentTime = AnimationTime; l.Animation.SpeedNormalized = AnimationSpeed; } // Assign material to all MeshRenderer and SkinnedMeshRenderer inside foreach (var renderer in l.Instance.GetComponentsInChildren <Renderer>()) { renderer.sharedMaterial = LayerMaterial(layer); } // update layersLoaded dictionary layersLoaded[layer] = l; }
// Descendants must use this on all GameObjects representing layers protected void AddLayerComponent(GameObject go, ModelLayerInfo layerInfo) { ModelLayer layer = go.AddComponent <ModelLayer>(); layer.Caption = layerInfo.Caption; layer.Simulation = CheckIfSimulation(layerInfo.DataType); layer.DataType = GetDataType(layerInfo.DataType); }
/* Handle a click on some button inside. Called by ButtonsClickReceiver. */ public void Click(GameObject clickObject) { if (SharingSceneData.Singleton.isClient && !SharingSceneData.Singleton.isServer) { return; } switch (clickObject.name) { case "TogglePlay": ClickTogglePlay(); break; case "Rewind": ClickRewind(); break; case "Remove": ClickRemove(); break; case "Speed": ClickSpeed(); break; case "ConfirmPreview": ClickConfirmPreview(); break; case "CancelPreview": ClickCancelPreview(); break; case "ButtonTranslate": ClickChangeTransformationState(TransformationState.Translate); break; case "ButtonRotate": ClickChangeTransformationState(TransformationState.Rotate); break; case "ButtonScale": ClickChangeTransformationState(TransformationState.Scale); break; case "ButtonLayers": ClickToggleLayersState(); break; case "ButtonAnimationSpeed": AnimationSubmenu.SetActive(!AnimationSubmenu.activeSelf); break; case "ButtonTransparency": ClickTransparency(); break; case "ButtonPlateTransform": ClickPlateTransform(); break; default: { ModelLayer layer = ButtonOfLayer(clickObject); if (layer != null) { ClickChangeLayerState(layer); } else { const string addPrefix = "Add"; int addInstanceIndex; if (clickObject.name.StartsWith(addPrefix) && int.TryParse(clickObject.name.Substring(addPrefix.Length), out addInstanceIndex)) { ClickAdd(ModelsCollection.Singleton.BundleName(addInstanceIndex)); } } break; } } }
private void UnloadLayer(ModelLayer layer) { if (!layersLoaded.ContainsKey(layer)) { Debug.LogWarning("Cannot unload layer " + layer.Caption + ", it is not loaded yet"); return; } Destroy(layersLoaded[layer].Instance); layersLoaded.Remove(layer); }
public static DateTime?Return_Last_Login(int account_id) { DateTime?last_login = null; tblAccount a = ModelLayer.GetAccount(account_id); last_login = a.dLastUpdated; return(last_login); }
public static string Return_Full_Name(int profile_id) { string full_name = string.Empty; tblProfile p = ModelLayer.GetProfile(profile_id); full_name = p.vLastname + ", " + p.vFirstname; return(full_name); }
public static int Login(string username, string password) { int accound_id = 0; tblAccount a = ModelLayer.GetAccount(username, password); if (a != null) { accound_id = a.iAccount; } return(accound_id); }
private void Load_FieldSet(int account_id) { tblAccount a = ModelLayer.GetAccount(account_id); int profile_id = a.iProfile; label_full_name.Text = BusinessLayer.Return_Full_Name(profile_id); StringBuilder sb = new StringBuilder(); sb.Append("<span class='f_1 bold white italic'>Last Login: "******"</span>"); lit_login_msg.Text = sb.ToString(); }
private void LoadInitialLayers() { if (!instanceLoaded) { throw new Exception("Cannot call TodoLoadMeshLayer before LoadInstance"); } Assert.IsTrue(instanceBundle != null); ModelLayer layer = instanceBundle.Layers.First <ModelLayer>(l => !l.Simulation); LoadLayer(layer); HoloUtilities.SetButtonStateText(layersButtons[layer], true); }
private void LoadDDL() { List <tblAccountType> account_types = ModelLayer.GetAccountTypes(); ListItem item = new ListItem("Please Select.", "0"); ddl_account_type.Items.Insert(0, item); foreach (tblAccountType account_type in account_types) { ddl_account_type.Items.Add(new ListItem(account_type.vAccountType, account_type.iAccountType.ToString())); } }
private void UnloadLayer(ModelLayer layer) { if (!layersLoaded.ContainsKey(layer)) { Debug.LogWarning("Cannot unload layer " + layer.Caption + ", it is not loaded yet"); return; } foreach (var renderer in layersLoaded[layer].Instance.GetComponentsInChildren <Renderer>()) { renderer.sharedMaterial = LayerMaterial(layer); ModelClipPlane.GetComponent <ClippingPlane>().RemoveRenderer(renderer); } Destroy(layersLoaded[layer].Instance); layersLoaded.Remove(layer); }
public static int Check_Username_Existence(string username) { List <tblAccount> accounts = ModelLayer.GetAccounts(username); if (accounts != null && accounts.Count == 1) { return(0); } else if (accounts != null && accounts.Count > 1) { return(1); } else { return(2); } }
public static tblQuestion Forgot_Password_Questions() { tblQuestion q = new tblQuestion(); int question_set_type = 0; List <int> q_ids = new List <int>(); tblQuestionSet qs = ModelLayer.GetQuestionSet(0, question_set_type); List <tblQuestion> questions = ModelLayer.GetQuestions(qs.iQuestionSet); foreach (tblQuestion question in questions) { q_ids.Add(question.iQuestion); } Random ranNum = new Random(); int question_id = q_ids[ranNum.Next(q_ids.Count)]; q = ModelLayer.GetQuestion(question_id); return(q); }
/* Based on layer properties, and current properties like Transparent, * determine proper material of the layer. */ private Material LayerMaterial(ModelLayer layer) { Debug.Log("Getting LayerMaterial for layer: " + layer.name); if (layer.DataType == DataType.Volumetric) { return(DefaultVolumetricMaterial); } else if (layer.Simulation) { return(DataVisualizationMaterial); } else if (Transparent) { return(DefaultModelTransparentMaterial); } else { return(DefaultModelMaterial); } }
private void LoadProfile(int iAccount) { if (iAccount != 0) { tblAccount a = ModelLayer.GetAccount(iAccount); tblProfile p = ModelLayer.GetProfile(a.iProfile); tblAccountType at = ModelLayer.GetAccountType(a.iAccountType); label_name.Text = p.vLastname + ", " + p.vFirstname; label_country.Text = p.vCountry; label_account_type.Text = at.vAccountType; label_age.Text = p.vAge; label_sex.Text = p.vSex; } else { label_name.Text = "Admin"; label_country.Text = "Admin"; label_account_type.Text = "Admin"; label_age.Text = "Admin"; label_sex.Text = "Admin"; } }
internal static async ValueTask <ulong> GenModelIdAsync(uint appId, ModelType type, ModelLayer layer) { if (layer == ModelLayer.SYS) //不允许SYS Layer { throw new ArgumentException(nameof(layer)); } var seq = await HostApi.MetaGenModelIdAsync(appId, layer == ModelLayer.DEV); var nid = (ulong)appId << IdUtil.MODELID_APPID_OFFSET; nid |= (ulong)type << IdUtil.MODELID_TYPE_OFFSET; nid |= (ulong)seq << IdUtil.MODELID_SEQ_OFFSET; nid |= (ulong)layer; return(nid); }
public override PaymentMessage PeymentCore(ModelLayer.BankRequest bankRequest) { PaymentMessage mesaj = new PaymentMessage(); C_Posnet posnetObj = new C_Posnet(); posnetObj.SetMid(bankaApi.ClientId); posnetObj.SetTid(bankaApi.ApiName); posnetObj.SetURL(bankaApi.HostName); // Yapı Kredi Bilgi Formatı string tarihYil = bankRequest.KrediKart.Yil.Substring(2) + bankRequest.KrediKart.Ay; // Yapı Kredi Toplam Fiyat İşlemi string ykbtaksitToplam = bankRequest.TaksitToplam.ToString("c"); ykbtaksitToplam = ykbtaksitToplam.Replace("TL", ""); ykbtaksitToplam = ykbtaksitToplam.Replace(",", ""); ykbtaksitToplam = ykbtaksitToplam.Replace(".", ""); string taksit = null; if (bankRequest.Taksit.ToString() == "01") { taksit = "00"; } else { taksit = bankRequest.Taksit.ToString(); } bankRequest.KrediKart.AdSoyad = string.Format("{0}-", BusinessLayer.UrlTR.Replace(bankRequest.KrediKart.AdSoyad)); //Ad Soyad için kalan alan int nNameLastIndex = (23 - bankRequest.SiparisNo.Length); for (int i = bankRequest.KrediKart.AdSoyad.Length; i < nNameLastIndex; i++) { bankRequest.KrediKart.AdSoyad += "0"; } if (bankRequest.KrediKart.AdSoyad.Length > nNameLastIndex) { bankRequest.KrediKart.AdSoyad = bankRequest.KrediKart.AdSoyad.Substring(0, nNameLastIndex); } bankRequest.SiparisNo = string.Format("{0}-{1}", bankRequest.KrediKart.AdSoyad, bankRequest.SiparisNo); Boolean baglanti = posnetObj.DoSaleTran(bankRequest.KrediKart.No, tarihYil, bankRequest.KrediKart.CV2, bankRequest.SiparisNo, ykbtaksitToplam, "YT", taksit, "", ""); if (baglanti == false) { mesaj.RedMesaj = "Banka ile Bağlantı Kurulamadı, Lütfen tekrar deneyiniz."; mesaj.RedMesajKodu = "yapikerediBaglanti"; } if (posnetObj.GetApprovedCode() == "1") { if (posnetObj.GetAuthcode().ToString().Trim() != "" && posnetObj.GetHostlogkey().ToString().Trim() != "") { mesaj.Success = true; mesaj.OnayKodu = posnetObj.GetAuthcode(); mesaj.ReferansNo = posnetObj.GetHostlogkey(); } } else if (posnetObj.GetApprovedCode() == "2") { mesaj.RedMesaj = "Kredi kartı ile ödeme işlemini daha önce yapıldı. <br/> Resptext: " + posnetObj.GetResponseText(); mesaj.RedMesajKodu = posnetObj.GetResponseCode(); } else { #region Yapı Kredi Hata Mesajları string hataKodu = posnetObj.GetResponseCode(); string hataMesaji = posnetObj.GetResponseText(); mesaj.RedMesajKodu = posnetObj.GetResponseCode(); if (hataKodu.Trim() == "0095") { mesaj.RedMesaj = "* Hata Mesajı: " + posnetObj.GetResponseText() + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir."; } else if (hataKodu.Trim() == "150") { mesaj.RedMesaj = "* Yanlış CVC no hatası."; } else if (hataKodu.Trim() == "0213") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartın bakiyesi yetersiz. Kartı veren bankayı arayın."; } else if (hataKodu.Trim() == "0220") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Taksitli işlemler ancak 1 YTL'nin üstündeki tutarlarla yapılabilirler."; } else if (hataKodu.Trim() == "0225") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no hatalı"; } else if (hataKodu.Trim() == "0400") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Posnet sunucu teknik bir sorun yaşıyor. Lütfen tekrar deneyin."; } else if (hataKodu.Trim() == "0551") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Numara bir kredi kartına ait değil."; } else if (hataKodu.Trim() == "131") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart no bilgisi hiçbir boşluk içermeden 4912065000461139 şeklinde gönderilmelidir."; } else if (hataKodu.Trim() == "139") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kredi kartı güvenlik numarası (CVC) parametre hatalı."; } else if (hataKodu.Trim() == "0800") { mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* işlemde kullanılan kredi kartının YKB provizyon sisteminde tutulan çalıntı kredi kartı listesinde bulunmasıdır."; } else if (hataKodu.Trim() == "0876") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kart bilgilerinden ( KK No, SKT, CVV) biri yada birkaçı hatalı girilmiş veya Worldcard'lar için bankaca tanımlanmış günlük limitler aşılmış olabilir."; } else if (hataKodu.Trim() == "0877") { mesaj.RedMesaj = "* CVC no girilmeli"; } else if (hataKodu.Trim() == "0995") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* Kartı veren banka ile iletişimde zaman aşımı oldu (bankadan zamanında yanıt alınamadı). Lütfen Tekrar deneyin."; } else if (hataKodu.Trim() == "0100") { mesaj.RedMesaj = "* Resptext: " + hataMesaji + "<br/>* Banka sistemlerimizde anlık sorunlar olduğundan. Lütfen tekrar deneyin."; } else if (hataKodu.Trim() == "0173") { mesaj.RedMesaj = "* Hata Mesajı: " + hataMesaji + "<br/>* işlemde kullanılan kredi kartının internetten işlem yapma yetkisi bulunmamaktadır. <br/> Kredi kartını aldığı bankanın kredi kartları servisiyle görüşüp kredi kartını e-ticarette kullanamadığını belirtiniz."; } else { mesaj.RedMesaj = "* Ödeme İşlemi Yapılırken Bankadan Hata Mesajı Döndü.<br/> Hata Mesajı: " + hataMesaji + "<br/>Hata kodu: " + hataKodu; } #endregion } return mesaj; }
private void LoadLayers() { layers = new List <ModelLayer>(); bounds = null; int?newBlendShapesCount = null; foreach (string bundleObjectName in assetBundle.GetAllAssetNames()) { if (!bundleObjectName.EndsWith(".prefab")) { continue; } // ignore other objects GameObject layerGameObject = assetBundle.LoadAsset <GameObject>(bundleObjectName); string layerDebugName = "Prefab '" + bundleObjectName + "' layer '" + layerGameObject.name + "'"; SkinnedMeshRenderer skinnedMesh = layerGameObject.GetComponent <SkinnedMeshRenderer>(); if (skinnedMesh != null && skinnedMesh.sharedMesh != null && skinnedMesh.sharedMesh.blendShapeCount != 0) { // Update bounds // Note that we use skinnedMesh.bounds, not skinnedMesh.localBounds, because we want to preserve local rotations BoundsAdd(ref bounds, skinnedMesh.bounds); // check and update newBlendShapesCount if (newBlendShapesCount.HasValue && newBlendShapesCount.Value != skinnedMesh.sharedMesh.blendShapeCount) { Debug.LogWarning(layerDebugName + " have different number of blend shapes, " + newBlendShapesCount.Value.ToString() + " versus " + skinnedMesh.sharedMesh.blendShapeCount.ToString()); } newBlendShapesCount = skinnedMesh.sharedMesh.blendShapeCount; // check BlendShapeAnimation BlendShapeAnimation animation = layerGameObject.GetComponent <BlendShapeAnimation>(); if (animation == null) { Debug.LogWarning(layerDebugName + " does not contain BlendShapeAnimation component, adding"); animation = layerGameObject.AddComponent <BlendShapeAnimation>(); } // check Animator does not exist (we do not animate using Mecanim) Animator animator = layerGameObject.GetComponent <Animator>(); if (animator != null) { Debug.LogWarning(layerDebugName + " contains Animator component, removing"); UnityEngine.Object.Destroy(animator); } } else { // Model not animated using BlendShapeAnimation, search for meshes (skinned or not) inside var renderers = layerGameObject.GetComponentsInChildren <Renderer>(); if (renderers.Length == 0) { Debug.LogWarning(layerDebugName + " has nothing visible, ignoring"); continue; } foreach (Renderer renderer in renderers) { BoundsAdd(ref bounds, renderer.bounds); } } // check ModelLayer existence ModelLayer layer = layerGameObject.GetComponent <ModelLayer>(); if (layer == null) { layer = layerGameObject.AddComponent <ModelLayer>(); layer.Caption = Path.GetFileNameWithoutExtension(bundleObjectName); layer.Simulation = bundleObjectName.Contains("dataflow") || bundleObjectName.Contains("simulation"); if (layer.Simulation) { int simulationsCount = layers.Count(c => c.Simulation); layer.Caption = "Simulation " + (simulationsCount + 1).ToString(); } Debug.LogWarning(layerDebugName + " does not contain ModelLayer component, guessing layer Caption (" + layer.Caption + ") and simulation (" + layer.Simulation.ToString() + ")"); } layer.LayerIndex = layers.Count; // add to layers list layers.Add(layer); } if (!bounds.HasValue) { Debug.LogWarning("Empty model, no layers with something visible"); } else { Debug.Log("Loaded model with bounds " + bounds.ToString()); } if (!newBlendShapesCount.HasValue) { Debug.LogWarning("Not animated model, no layers with blend shapes"); blendShapeCount = 0; } else { blendShapeCount = newBlendShapesCount.Value; Debug.Log("Loaded model with blend shapes " + blendShapeCount.ToString()); } }
/* Handle a click on some button inside. Called by ButtonsClickReceiver. */ public void Click(GameObject clickObject) { if (SharingSceneData.Singleton.isClient && !SharingSceneData.Singleton.isServer) { return; } Debug.Log("ModelWithPlate Click: " + clickObject.name); switch (clickObject.name) { case "TogglePlay": ClickTogglePlay(); break; case "Rewind": ClickRewind(); break; case "Remove": ClickRemove(); break; case "Speed": ClickSpeed(); break; case "ConfirmPreview": ClickConfirmPreview(); break; case "CancelPreview": ClickCancelPreview(); break; case "ButtonLayers": ClickToggleLayersState(clickObject.GetComponent <PressableButtonHoloLens2>()); break; case "ButtonTransform": ClickTransform(); break; case "ButtonTranslate": ChangeTransformationState(TransformationState.Translate); break; case "ButtonRotate": ChangeTransformationState(TransformationState.Rotate); break; case "ButtonScale": ChangeTransformationState(TransformationState.Scale); break; case "ButtonClipping": ClickClipping(); break; case "ButtonAnimationSpeed": ClickAnimationSpeed(); break; case "ButtonTransparency": ClickTransparency(); break; case "ButtonPlateRotation": ClickPlateRotation(); break; default: { ModelLayer layer = ButtonOfLayer(clickObject); if (layer != null) { ClickChangeLayerState(layer); } else { const string addPrefix = "Add"; int addInstanceIndex; if (clickObject.name.StartsWith(addPrefix) && !PlateRotation && int.TryParse(clickObject.name.Substring(addPrefix.Length), out addInstanceIndex)) { ClickAdd(ModelsCollection.Singleton.BundleName(addInstanceIndex)); CloseSubmenus(); } } break; } } }
// Update is called once per frame void Update() { /////////////////// Load Player if (recvMsg.Count <= peopleNum && flag == false) { recvMsg = LoadController.LoadCharacter(); for (int i = 0; i < recvMsg.Count; i++) { //Debug.Log(recvMsg[i].Username); if (GameObject.Find(recvMsg[i].Username) == null) { //Debug.Log(recvMsg[i].Username); ModelLayer.CreateCharacter(recvMsg[i]); ViewLayer.CreateCharacter(recvMsg[i], playerObject); } } } //Debug.Log(recvMsg.Count + " " + flag); if (recvMsg.Count == peopleNum && flag == false) { for (int i = 0; i < peopleNum; i++) { Debug.Log("index = " + i + ", name = " + ModelLayer.PlayerName[i] + ", id = " + ModelLayer.PlayerMap[ModelLayer.PlayerName[i]]); } startTime = Time.time + 3f; flag = true; } /////////////////// Player Operation if (flag == true && Time.time >= startTime) { ModelLayer.RefreshMessage(username); ModelLayer.MovePosition(username); //Debug.Log("1 " + ModelLayer.msg.Optype); Skill0Button.onClick.AddListener( delegate { ModelLayer.ReleaseSkill0(username); } ); Skill1Button.onClick.AddListener( delegate { ModelLayer.ReleaseSkill1(username); } ); //Debug.Log("2 " + ModelLayer.msg.Optype + " " + ModelLayer.skillQueue.Count); ModelLayer.SendMessage(); //Debug.Log("3 " + ModelLayer.msg.Optype); ModelLayer.ReceiveMessage(); int userId = ModelLayer.PlayerMap[username]; int diff = ModelLayer.SkillNextFrame[userId][0] - ModelLayer.clientFrame; if (diff >= 0) { Skill0CD.text = (diff / 20).ToString(); } else { Skill0CD.text = ""; } diff = ModelLayer.SkillNextFrame[userId][1] - ModelLayer.clientFrame; if (diff >= 0) { Skill1CD.text = (diff / 20).ToString(); } else { Skill1CD.text = ""; } ViewLayer.MovePosition(); ViewLayer.PlayerAnimation(); } }
internal static async ValueTask <ulong> GenModelIdAsync(uint appId, ModelType type, ModelLayer layer) { if (layer == ModelLayer.SYS) //不允许SYS Layer { throw new ArgumentException(nameof(layer)); } var meta = layer == ModelLayer.DEV ? Meta_App_Model_Dev_Counter : Meta_App_Model_Usr_Counter; var id = appId.ToString(); var db = SqlStore.Default; var esc = db.NameEscaper; using var conn = db.MakeConnection(); await conn.OpenAsync(); using var txn = conn.BeginTransaction(); //不支持select for update的事务隔离级别 using var cmd1 = db.MakeCommand(); cmd1.Connection = txn.Connection; cmd1.Transaction = txn; cmd1.CommandText = $"Select data From {esc}sys.Meta{esc} Where meta={meta} And id='{id}' For Update"; using var reader = await cmd1.ExecuteReaderAsync(); byte[] counterData = null; uint seq = 0; using var cmd2 = db.MakeCommand(); if (await reader.ReadAsync()) //已存在计数器 { counterData = (byte[])reader.GetValue(0); seq = BitConverter.ToUInt32(counterData) + 1; //TODO:判断溢出 counterData = BitConverter.GetBytes(seq); BuildUpdateMetaCommand(cmd2, meta, id, counterData); } else //不存在计数器 { seq = 1; counterData = BitConverter.GetBytes(seq); BuildInsertMetaCommand(cmd2, meta, id, (byte)ModelType.Application, counterData, false); } reader.Close(); cmd2.Connection = txn.Connection; cmd2.Transaction = txn; await cmd2.ExecuteNonQueryAsync(); txn.Commit(); var nid = (ulong)appId << IdUtil.MODELID_APPID_OFFSET; nid |= (ulong)type << IdUtil.MODELID_TYPE_OFFSET; nid |= (ulong)seq << IdUtil.MODELID_SEQ_OFFSET; nid |= (ulong)layer; return(nid); }
public void DeleteAppointment(ModelLayer.Appointment appointment) { aCtr.DeleteAppointment(appointment); }