public GfxObj(DatLoader.FileTypes.GfxObj gfxObj) { if (gfxObj == null) { return; } ID = gfxObj.Id; VertexArray = gfxObj.VertexArray; Polygons = new Dictionary <ushort, Polygon>(); foreach (var kvp in gfxObj.Polygons) { Polygons.Add(kvp.Key, PolygonCache.Get(new Polygon(kvp.Value, gfxObj.VertexArray))); } if (gfxObj.PhysicsPolygons.Count > 0) { PhysicsPolygons = new Dictionary <ushort, Polygon>(); foreach (var kvp in gfxObj.PhysicsPolygons) { PhysicsPolygons.Add(kvp.Key, PolygonCache.Get(new Polygon(kvp.Value, gfxObj.VertexArray))); } PhysicsBSP = BSPCache.Get(gfxObj.PhysicsBSP, gfxObj.PhysicsPolygons, gfxObj.VertexArray); PhysicsSphere = PhysicsBSP.GetSphere(); } SortCenter = gfxObj.SortCenter; DrawingBSP = BSPCache.Get(gfxObj.DrawingBSP, gfxObj.Polygons, gfxObj.VertexArray); DrawingSphere = DrawingBSP.GetSphere(); Init(); }
/// <summary> /// 获取AccessToken值 /// </summary> /// <returns></returns> public string GetAccessToken() { var obj = BSPCache.Get("wxAccessToken"); if (obj != null) { return(obj.ToString()); } string url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", WxPayConfig.APPID, WxPayConfig.APPSECRET); string result = HttpService.Get(url); JsonData jd = JsonMapper.ToObject(result); try { string access_token = (string)jd["access_token"]; int expires_in = (int)jd["expires_in"]; BSPCache.Insert("wxAccessToken--GetAccessToken", access_token, expires_in); return(access_token); } catch (Exception ex) { Log.Error("JsSdkHelper", "数据:" + result + "异常:" + ex.Message); } return(null); }
/// <summary> /// 获取jsapi_ticket /// </summary> /// <returns></returns> public string GetJsApiTicket() { var obj = BSPCache.Get("wxJsApiTicket"); if (obj != null) { return(obj.ToString()); } string accessToken = GetAccessToken(); string url = string.Format( "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi", accessToken); string result = HttpService.Get(url); JsonData jd = JsonMapper.ToObject(result); try { string ticket = (string)jd["ticket"]; int expires_in = (int)jd["expires_in"]; BSPCache.Insert("wxJsApiTicket", ticket, expires_in); return(ticket); } catch (Exception ex) { Log.Error("JsSdkHelper--GetJsApiTicket", "数据:" + result + "异常:" + ex.Message); } return(null); }
public CellStruct(DatLoader.Entity.CellStruct cellStruct) { Polygons = new Dictionary <ushort, Polygon>(); foreach (var poly in cellStruct.Polygons) { Polygons.Add(poly.Key, PolygonCache.Get(poly.Value, cellStruct.VertexArray)); } Portals = new List <Polygon>(); foreach (var portal in cellStruct.Portals) { Portals.Add(Polygons[portal]); } PhysicsPolygons = new Dictionary <ushort, Polygon>(); foreach (var poly in cellStruct.PhysicsPolygons) { PhysicsPolygons.Add(poly.Key, PolygonCache.Get(poly.Value, cellStruct.VertexArray)); } if (cellStruct.CellBSP != null) { CellBSP = BSPCache.Get(cellStruct.CellBSP, cellStruct.PhysicsPolygons, cellStruct.VertexArray); } if (cellStruct.DrawingBSP != null) { DrawingBSP = BSPCache.Get(cellStruct.DrawingBSP, cellStruct.Polygons, cellStruct.VertexArray); } if (cellStruct.PhysicsBSP != null) { PhysicsBSP = BSPCache.Get(cellStruct.PhysicsBSP, cellStruct.PhysicsPolygons, cellStruct.VertexArray); } }