Example #1
0
        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();
        }
Example #2
0
        /// <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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        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);
            }
        }