public static void LoadUIElement(FakeStruct fake, UIElement parent) { UIElement ui = new UIElement(); ui.parent = parent; ui.name = fake.GetData <string>(1); }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var img = com as Image; if (img == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, ImageData.ElementSize); ImageData *data = (ImageData *)fake.ip; data->alphaHit = img.alphaHitTestMinimumThreshold; data->fillAmount = img.fillAmount; data->fillCenter = img.fillCenter; data->fillClockwise = img.fillClockwise; data->fillMethod = img.fillMethod; data->fillOrigin = img.fillOrigin; data->preserveAspect = img.preserveAspect; data->type = img.type; data->color = img.color; if (img.sprite != null) { var tn = img.sprite.texture.name; var sn = img.sprite.name; var an = ElementAsset.TxtureFormAsset(img.sprite.texture.name); data->assetName = buffer.AddData(an); data->textureName = buffer.AddData(tn); data->spriteName = buffer.AddData(sn); } if (img.material != null) { data->shader = buffer.AddData(img.material.shader.name); } return(fake); }
public override unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var obj = com as EdgeCollider2D; if (obj == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, EdgeColliderData.ElementSize); EdgeColliderData *ec = (EdgeColliderData *)fake.ip; if (obj.sharedMaterial != null) { ec->sharedMaterial = buffer.AddData(obj.sharedMaterial.name); } ec->offset = obj.offset; ec->usedByEffector = obj.usedByEffector; ec->isTrigger = obj.isTrigger; ec->density = obj.density; ec->edgeRadius = obj.edgeRadius; if (obj.points != null) { ec->points = buffer.AddArray <Vector2>(obj.points); } return(fake); }
/// <summary> /// 初始化 /// </summary> /// <param name="fake">数据模型</param> /// <param name="element">主体元素</param> public override void Initial(FakeStruct fake, UIElement element, Initializer initializer) { base.Initial(fake, element, initializer); element.SizeChanged = (o) => { Refresh(); }; eventCall = Enity.RegEvent <UserEvent>(); eventCall.Drag = (o, e, s) => { Scrolling(o, s); }; eventCall.DragEnd = (o, e, s) => { Scrolling(o, s); }; eventCall.ScrollEndY = OnScrollEnd; eventCall.Scrolling = Scrolling; eventCall.ForceEvent = true; Size = Enity.SizeDelta; eventCall.CutRect = true; var trans = element.transform; BodyParent = trans.Find("Bodys"); TitleParent = trans.Find("Titles"); HGUIManager.GameBuffer.RecycleChild(Enity.gameObject, new string[] { "Bodys", "Titles" }); TitleMod = HGUIManager.FindChild(fake, "Title"); ItemMod = HGUIManager.FindChild(fake, "Item"); TailMod = HGUIManager.FindChild(fake, "Tail"); Body = HGUIManager.FindChild(fake, "Body"); unsafe { ItemSize = ((UITransfromData *)ItemMod.ip)->size; TitleSize = ((UITransfromData *)TitleMod.ip)->size; if (TailMod != null) { TailSize = ((UITransfromData *)TailMod.ip)->size; } } }
public unsafe override void Load(FakeStruct fake) { data = *(RawImageData *)fake.ip; shader = fake.buffer.GetData(data.shader) as string; assetName = fake.buffer.GetData(data.assetName) as string; textureName = fake.buffer.GetData(data.textureName) as string; }
protected void LoadHText(FakeStruct fake, HText tar) { HTextData tmp = new HTextData(); unsafe { HTextData *src = &tmp; TextHelper.LoadData((byte *)src, fake.ip); var buffer = fake.buffer; tar.m_text = buffer.GetData(src->text) as string; fontName = buffer.GetData(src->font) as string; if (fontName != null) { tar._font = FindFont(fontName); } else { tar._font = null; } } tar.TextPivot = tmp.pivot; tar.m_hof = tmp.m_hof; tar.m_vof = tmp.m_vof; tar.TextAnchor = tmp.anchor; tar.m_richText = tmp.m_richText; tar.m_lineSpace = tmp.m_lineSpace; tar.m_fontSize = tmp.m_fontSize; tar.m_align = tmp.m_align; tar.m_fontStyle = tmp.m_fontStyle; tar.sizeFitter = tmp.sizeFitter; tar.OutLine = tmp.OutLine; }
public override unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var sr = com as SpriteMask; if (sr == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, SpriteMaskData.ElementSize); SpriteMaskData *data = (SpriteMaskData *)fake.ip; data->alphaCutoff = sr.alphaCutoff; data->isCustomRangeActive = sr.isCustomRangeActive; data->frontSortingLayerID = sr.frontSortingLayerID; data->frontSortingOrder = sr.frontSortingOrder; data->backSortingLayerID = sr.backSortingLayerID; data->backSortingOrder = sr.backSortingOrder; data->spriteSortPoint = sr.spriteSortPoint; if (sr.sprite != null) { var tn = sr.sprite.texture.name; var sn = sr.sprite.name; var an = ElementAsset.TxtureFormAsset(sr.sprite.texture.name); data->assetName = buffer.AddData(an); data->textureName = buffer.AddData(tn); data->spriteName = buffer.AddData(sn); } return(fake); }
/// <summary> /// 初始化 /// </summary> /// <param name="fake">数据模型</param> /// <param name="script">元素主体</param> public override void Initial(FakeStruct fake, UIElement script, Initializer initializer) { base.Initial(fake, script, initializer); items = new List <Item>(); eventCall = Enity.RegEvent <UserEvent>(); eventCall.AutoColor = false; eventCall.ForceEvent = true; eventCall.Drag = (o, e, s) => { Scrolling(o, s); }; eventCall.DragEnd = (o, e, s) => { if (o.VelocityY == 0) { OnScrollEnd(o); } else { Scrolling(o, s); } }; eventCall.Scrolling = Scrolling; eventCall.ScrollEndY = OnScrollEnd; eventCall.MouseWheel = (o, e) => { Move(e.MouseWheelDelta * 100); }; model = fake; var trans = Enity.transform; HGUIManager.GameBuffer.RecycleChild(trans.gameObject); }
/// <summary> /// 初始化 /// </summary> /// <param name="fake">数据模型</param> /// <param name="element">主体元素</param> public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer) { base.Initial(fake, element, initializer); element.SizeChanged = (o) => { Refresh(); }; eventCall = Enity.RegEvent <UserEvent>(); eventCall.PointerDown = (o, e) => { UpdateVelocity = false; }; eventCall.Drag = (o, e, s) => { Scrolling(o, s); }; eventCall.DragEnd = OnDragEnd; eventCall.MouseWheel = (o, e) => { Point += BounceBack((e.MouseWheelDelta * 100)); Order(); UpdateVelocity = true; }; eventCall.ForceEvent = true; Size = Enity.SizeDelta; eventCall.CutRect = true; BodyParent = element.Find("Bodys"); TitleParent = element.Find("Titles"); HGUIManager.RecycleChild(Enity, new string[] { "Bodys", "Titles" }); TitleMod = HGUIManager.FindChild(fake, "Title"); ItemMod = HGUIManager.FindChild(fake, "Item"); TailMod = HGUIManager.FindChild(fake, "Tail"); Body = HGUIManager.FindChild(fake, "Body"); ItemSize = UIElementLoader.GetSize(ItemMod); TitleSize = UIElementLoader.GetSize(TitleMod); if (TailMod != null) { TailSize = UIElementLoader.GetSize(TailMod); } }
public void Should_set_subobj_property_subobj_is_struct_and_readwrite() { var fake = new FakeStruct { Name = "Old Value" }; var view = new ViewHasSubProps { FakeVal = fake }; var page = new ContentPage { Content = view }; var ctx = new XenMessageContext(); ctx.SetRequest <SetPropertyRequest>(r => { r.WidgetId = view.Id.ToString(); r.Path = new[] { "FakeVal", "Name" }; r.Value = "A New Value"; }); Assert.AreEqual("Old Value", fake.Name); XamarinFormsReaction.Register <SetPropertyRequest, SetPropertyReaction>(page); Reaction.Execute(ctx); Assert.AreEqual("A New Value", view.FakeVal.Name); }
/// <summary> /// 构造函数 /// </summary> /// <param name="container">模型名称</param> /// <param name="mod">模式数据</param> public UILinker(UIContainer container, FakeStruct mod) { con = container; model = mod; container.linkers.Add(this); initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T))); }
/// <summary> /// 初始化 /// </summary> /// <param name="fake">数据模型</param> /// <param name="script">元素主体</param> public override void Initial(FakeStruct fake, UIElement script, Initializer initializer) { base.Initial(fake, script, initializer); Size = Enity.SizeDelta; eventCall = Enity.RegEvent <UserEvent>(); eventCall.Drag = (o, e, s) => { Scrolling(o, s); }; eventCall.DragEnd = (o, e, s) => { Scrolling(o, s); o.DecayRateX = 0.998f; o.DecayRateY = 0.998f; }; eventCall.ScrollEndX = OnScrollEndX; eventCall.ScrollEndY = OnScrollEndY; eventCall.Scrolling = Scrolling; eventCall.ForceEvent = true; eventCall.CutRect = true; var chi = Enity.transform.Find("Content"); if (chi != null) { Content = chi.GetComponent <UIElement>(); if (Content != null) { ContentSize = Content.SizeDelta; } } }
public unsafe override void Load(FakeStruct fake) { data = *(TextData *)fake.ip; shader = fake.buffer.GetData(data.shader) as string; text = fake.buffer.GetData(data.text) as string; fontName = fake.buffer.GetData(data.font) as string; }
public override void Initial(FakeStruct mod, UIElement script) { base.Initial(mod, script); var trans = script.transform; callBack = Enity.RegEvent <UserEvent>(); callBack.Drag = callBack.DragEnd = Draging; callBack.PointerDown = PointDown; callBack.AutoColor = false; var tmp = trans.Find("FillImage"); if (tmp != null) { FillImage = tmp.GetComponent <HImage>(); } tmp = trans.Find("Nob"); Nob = tmp.GetComponent <HImage>(); unsafe { var ex = mod.buffer.GetData(((TransfromData *)mod.ip)->ex) as FakeStruct; if (ex != null) { info = *(SliderInfo *)ex.ip; } } }
public void GetTranslationEnum_UseNotEnum_ThrowException() { var translationServiceMock = new Mock <ITranslationService>(); var fake = new FakeStruct(); Assert.ThrowsException <ArgumentException>(() => fake.GetTranslationEnum(translationServiceMock.Object, "PL")); }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var txt = com as Text; if (txt == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, TextData.ElementSize); TextData * data = (TextData *)fake.ip; data->alignByGeometry = txt.alignByGeometry; data->alignment = txt.alignment; data->fontSize = txt.fontSize; data->fontStyle = txt.fontStyle; data->horizontalOverflow = txt.horizontalOverflow; data->lineSpacing = txt.lineSpacing; data->resizeTextForBestFit = txt.resizeTextForBestFit; data->resizeTextMaxSize = txt.resizeTextMaxSize; data->resizeTextMinSize = txt.resizeTextMinSize; data->supportRichText = txt.supportRichText; data->verticalOverflow = txt.verticalOverflow; data->color = txt.color; data->text = buffer.AddData(txt.text); if (txt.font != null) { data->font = buffer.AddData(txt.font.name); } if (txt.material != null) { data->shader = buffer.AddData(txt.material.shader.name); } return(fake); }
protected unsafe void LoadHText(FakeStruct fake, HText tar) { HTextData *src = (HTextData *)fake.ip; var buffer = fake.buffer; tar.m_text = buffer.GetData(src->text) as string; fontName = buffer.GetData(src->font) as string; if (fontName != null) { tar._font = FindFont(fontName); } else { tar._font = null; } tar.TextPivot = src->pivot; tar.m_hof = src->m_hof; tar.m_vof = src->m_vof; tar.TextAnchor = src->anchor; tar.m_richText = src->m_richText; tar.m_lineSpace = src->m_lineSpace; tar.m_fontSize = src->m_fontSize; tar.m_align = src->m_align; tar.m_fontStyle = src->m_fontStyle; tar.sizeFitter = src->sizeFitter; }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var obj = com as PolygonCollider2D; if (obj == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, PolygonColliderData.ElementSize); PolygonColliderData *ec = (PolygonColliderData *)fake.ip; if (obj.sharedMaterial != null) { ec->sharedMaterial = buffer.AddData(obj.sharedMaterial.name); } ec->offset = obj.offset; ec->usedByEffector = obj.usedByEffector; ec->isTrigger = obj.isTrigger; ec->density = obj.density; ec->autoTiling = obj.autoTiling; ec->pathCount = obj.pathCount; if (obj.points != null) { ec->points = buffer.AddArray <Vector2>(obj.points); } return(fake); }
public unsafe override void LoadToObject(FakeStruct fake, Component game) { var data = (SpriteMaskData *)fake.ip; var obj = game.GetComponent <SpriteMask>(); if (obj == null) { return; } obj.alphaCutoff = data->alphaCutoff; obj.isCustomRangeActive = data->isCustomRangeActive; obj.frontSortingLayerID = data->frontSortingLayerID; obj.frontSortingOrder = data->frontSortingOrder; obj.backSortingLayerID = data->backSortingLayerID; obj.backSortingOrder = data->backSortingOrder; obj.spriteSortPoint = data->spriteSortPoint; string assetsName = fake.buffer.GetData(data->assetName) as string; string textureName = fake.buffer.GetData(data->textureName) as string; string spriteName = fake.buffer.GetData(data->spriteName) as string; if (textureName != null) { obj.sprite = ElementAsset.FindSprite(assetsName, textureName, spriteName); } }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var ae = com as BoxCollider2D; if (ae == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, BoxColliderData.ElementSize); BoxColliderData *data = (BoxColliderData *)fake.ip; if (ae.sharedMaterial != null) { data->sharedMaterial = buffer.AddData(ae.sharedMaterial.name); } data->offset = ae.offset; data->usedByComposite = ae.usedByComposite; data->usedByEffector = ae.usedByEffector; data->isTrigger = ae.isTrigger; data->density = ae.density; data->size = ae.size; data->edgeRadius = ae.edgeRadius; data->autoTiling = ae.autoTiling; return(fake); }
/// <summary> /// 创建项目 /// </summary> /// <param name="buffer">项目缓存</param> /// <param name="con">构造器</param> /// <param name="mod">UI模型数据</param> /// <param name="parent">父坐标变换</param> /// <returns></returns> protected ScrollItem CreateItem(List <ScrollItem> buffer, Constructor con, FakeStruct mod, Transform parent) { if (buffer.Count > 0) { var it = buffer[0]; it.target.gameObject.SetActive(true); it.index = -1; buffer.RemoveAt(0); return(it); } ScrollItem a = new ScrollItem(); if (con == null) { a.obj = a.target = HGUIManager.GameBuffer.Clone(mod).transform; } else { a.obj = con.Create(); a.target = HGUIManager.GameBuffer.Clone(mod, con.initializer).transform; } a.target.SetParent(parent); a.target.localScale = Vector3.one; a.target.localRotation = Quaternion.identity; return(a); }
public override void Initial(FakeStruct fake, UIElement element) { base.Initial(fake, element); palette = new Palette(); callBackR = element.RegEvent <UserEvent>(); callBackR.IsCircular = true; callBackR.Drag = callBackR.DragEnd = DragingR; callBackR.PointerDown = PointDownR; var mod = element.transform; NobA = mod.Find("NobA"); NobB = mod.Find("NobB"); hc = mod.Find("HTemplate"); template = hc.GetComponent <HImage>(); callBackC = template.RegEvent <UserEvent>(); callBackC.Drag = callBackC.DragEnd = DragingC; callBackC.PointerDown = PointDownC; htemp = mod.GetComponent <HImage>(); htemp.MainTexture = Palette.LoadCTemplateAsync(); template.MainTexture = palette.texture; palette.AwaitLoadHSVT(1); SelectColor.a = 1; var son = mod.Find("Slider"); slider = son.GetComponent <HImage>(); slider.MainTexture = Palette.AlphaTemplate(); uISlider = slider.composite as UISlider; uISlider.OnValueChanged = AlphaChanged; uISlider.Percentage = 1; }
/// <summary> /// 载入一个预制体资源 /// </summary> /// <param name="db">资源数据</param> /// <param name="name">资源名</param> /// <returns></returns> public unsafe static PrefabAsset LoadModels(DataBuffer db, string name) { var fake = db.fakeStruct; var asset = new PrefabAsset(); asset.models = fake.GetData <FakeStruct>(0); Int16[] arr = fake.GetData <Int16[]>(1); if (arr != null) { FakeStruct[] fsa = new FakeStruct[arr.Length]; for (int i = 0; i < arr.Length; i++) { fsa[i] = db.GetData(arr[i]) as FakeStruct; } asset.tables = fsa; } asset.Version = fake.GetData <string>(2); asset.name = name; for (int i = 0; i < prefabAssets.Count; i++) { if (prefabAssets[i].name == name) { prefabAssets.RemoveAt(i); break; } } prefabAssets.Add(asset); return(asset); }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var obj = com as SliderJoint2D; if (obj == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, SliderJointData.ElementSize); SliderJointData *dj = (SliderJointData *)fake.ip; dj->enableCollision = obj.enableCollision; dj->breakForce = obj.breakForce; dj->breakTorque = obj.breakTorque; dj->anchor = obj.anchor; dj->connectedAnchor = obj.connectedAnchor; dj->autoConfigure = obj.autoConfigureConnectedAnchor; dj->autoConfigureAngle = obj.autoConfigureAngle; dj->angle = obj.angle; dj->useMotor = obj.useMotor; dj->useLimits = obj.useLimits; dj->motor = obj.motor; dj->limits = obj.limits; return(fake); }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var img = com as RawImage; if (img == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, RawImageData.ElementSize); RawImageData *data = (RawImageData *)fake.ip; data->uvRect = img.uvRect; data->color = img.color; if (img.texture != null) { var tn = img.texture.name; var an = ElementAsset.TxtureFormAsset(img.texture.name); data->assetName = buffer.AddData(an); data->textureName = buffer.AddData(tn); } if (img.material != null) { data->shader = buffer.AddData(img.material.shader.name); } return(fake); }
public static unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var ae = com.GetComponent <CompositeCollider2D>(); if (ae == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, CompositeColliderData.ElementSize); CompositeColliderData *data = (CompositeColliderData *)fake.ip; if (ae.sharedMaterial != null) { data->sharedMaterial = buffer.AddData(ae.sharedMaterial.name); } data->offset = ae.offset; data->usedByComposite = ae.usedByComposite; data->usedByEffector = ae.usedByEffector; data->isTrigger = ae.isTrigger; data->density = ae.density; data->geometryType = ae.geometryType; data->generationType = ae.generationType; data->vertexDistance = ae.vertexDistance; return(fake); }
protected void LoadHImage(FakeStruct fake, HImage tar) { HImageData tmp = new HImageData(); unsafe { HImageData *src = &tmp; ImageHelper.LoadData((byte *)src, fake.ip); Sprite = fake.buffer.GetData(src->Sprite) as string; } if (Sprite != null) { tar.Sprite = ElementAsset.FindSprite(asset, MainTexture, Sprite); } else { tar.Sprite = null; if (MainTexture != null) { tar.MainTexture = ElementAsset.FindTexture(asset, MainTexture); } } tar.m_spriteType = tmp.spriteType; tar.m_fillAmount = tmp.fillAmount; tar.m_fillCenter = tmp.fillCenter; tar.m_fillClockwise = tmp.fillClockwise; tar.m_fillMethod = tmp.fillMethod; tar.m_fillOrigin = tmp.fillOrigin; tar.m_pixelsPerUnit = tmp.pixelsPerUnit; tar.m_preserveAspect = tmp.preserveAspect; }
/// <summary> /// 将假结构体中的数据载入到组件实体中 /// </summary> /// <param name="fake">假结构体数据</param> /// <param name="com">unity组件</param> /// <param name="initializer">初始化器,用于反射</param> public unsafe override void LoadToObject(FakeStruct fake, Component com, Initializer initializer) { //TransfromData src = new TransfromData(); //unsafe { transHelper.LoadData((byte*)&src,fake.ip); } var src = (TransfromData *)fake.ip; var buff = fake.buffer; var trans = com as Transform; com.name = buff.GetData(src->name) as string; com.tag = buff.GetData(src->tag) as string; trans.localEulerAngles = src->localEulerAngles; trans.localPosition = src->localPosition; trans.localScale = src->localScale; trans.gameObject.layer = src->layer; Int16[] chi = fake.buffer.GetData(src->child) as Int16[]; if (chi != null) { for (int i = 0; i < chi.Length; i++) { var fs = buff.GetData(chi[i]) as FakeStruct; if (fs != null) { var go = gameobjectBuffer.CreateNew(fs.GetInt64(0)); if (go != null) { go.transform.SetParent(trans); this.LoadToObject(fs, go.transform, initializer); } } } } Int16[] coms = buff.GetData(src->coms) as Int16[]; if (coms != null) { for (int i = 0; i < coms.Length; i++) { int index = coms[i]; i++; int type = coms[i]; var fs = buff.GetData(index) as FakeStruct; if (fs != null) { var loader = gameobjectBuffer.GetDataLoader(type); if (loader != null) { loader.initializer = initializer; loader.LoadToComponent(fs, com, fake); } } } } if (initializer != null) { initializer.Initialiezd(fake, trans); initializer.AddContext(trans, src->insID); } }
void StartCountdown() { Countdown--; if (Countdown <= 0) { RoomState = State_HairCards; Countdown = 10; landlord.ReStart(); for (int i = 0; i < 3; i++) { var cards = landlord.GamerCards[i]; gamers[i].Cards = new List <int>(cards); var linker = gamers[i].linker; if (linker != null) { DataBuffer db = new DataBuffer(); var fake = new FakeStruct(db, Req.Length); fake[Req.Cmd] = RpcCmd.HairCards; fake[Req.Type] = MessageType.Rpc; fake.SetData(Req.Args, cards); db.fakeStruct = fake; //linker.Send(AES.Instance.Encrypt(db.ToBytes()), EnvelopeType.AesDataBuffer); } } } else { BroadcastCountdown(); } }
/// <summary> /// /// </summary> /// <param name="uiRoot"></param> /// <returns></returns> public static DataBuffer GetPrefab(Transform uiRoot) { var ui = uiRoot.GetComponent <Helper.HGUI.UIContext>(); if (ui != null) { DataBuffer db = new DataBuffer(1024); string tn = ui.GetType().Name; var loader = GameBuffer.FindDataLoader(tn); var root = loader.SaveUI(ui, db); FakeStruct fake = new FakeStruct(db, 3); fake[0] = db.AddData(root); var list = AddDataTable(db); int c = list.Count; Int16[] arr = new Int16[c]; for (int i = 0; i < arr.Length; i++) { arr[i] = (Int16)db.AddData(list[i]); } fake[1] = db.AddData(arr); fake[2] = db.AddData(Version); db.fakeStruct = fake; return(db); } return(null); }