use renderer's max anisotropy, dispose of more resources

This commit is contained in:
Brian Beck 2026-03-12 20:57:59 -07:00
parent d31f3506a8
commit 409df9fcaa
68 changed files with 426 additions and 232 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,10 +1,10 @@
1:"$Sreact.fragment" 1:"$Sreact.fragment"
2:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 2:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
3:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/634517795b833f16.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"] 3:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/63afa42c92661c50.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"]
6:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 6:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
7:"$Sreact.suspense" 7:"$Sreact.suspense"
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","async":true}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","async":true}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/634517795b833f16.js","async":true}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","async":true}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/63afa42c92661c50.js","async":true}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","async":true}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
4:{} 4:{}
5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
8:null 8:null

View file

@ -3,7 +3,7 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
6:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/634517795b833f16.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"] 6:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/63afa42c92661c50.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"]
9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
a:"$Sreact.suspense" a:"$Sreact.suspense"
c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"] c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"]
@ -11,7 +11,7 @@ e:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBounda
10:I[68027,[],"default"] 10:I[68027,[],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/634517795b833f16.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/63afa42c92661c50.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
7:{} 7:{}
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" 8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]

View file

@ -3,4 +3,4 @@
3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"] 3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"]
4:"$Sreact.suspense" 4:"$Sreact.suspense"
5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"] 5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false}

View file

@ -3,4 +3,4 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false}

View file

@ -1,3 +1,3 @@
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,29055,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(15080),o=e.i(71753),i=e.i(90072),u=e.i(25645),c=e.i(12979),a=e.i(51434),s=e.i(79123),l=e.i(89887),f=e.i(58647);let d=(0,u.createLogger)("AudioEmitter"),p=new Map,m=new Map;function h(e,t=1){m.set(e,t)}function y(e){m.delete(e)}let g=0;function D(){return g}function R(){for(let[e]of(g++,m)){try{e.stop()}catch{}try{e.disconnect()}catch{}}m.clear()}function v(e,t){let r=t(e),n=r?.filename;if(!n)return null;let o=n.endsWith(".wav")?n:`${n}.wav`,i=r.description,u=null!=i?t(i):void 0,c=u?.is3D??!0,a=u?.isLooping??!1,s=u?.referenceDistance??20;return{filename:o,is3D:c,isLooping:a,refDist:s,maxDist:u?.maxDistance??100,volume:u?.volume??1}}function M(e,t,r,n,o){let u;try{u=(0,c.audioToUrl)(e.filename)}catch{return}let a=f.engineStore.getState().playback.rate,s=g;T(u,r,r=>{if(s===g)try{if(e.is3D&&o){let u=new i.PositionalAudio(t);u.setBuffer(r),u.setDistanceModel("inverse"),u.setRefDistance(e.refDist),u.setMaxDistance(e.maxDist),u.setRolloffFactor(1),u.setVolume(e.volume),u.setPlaybackRate(a),n&&u.position.copy(n),o.add(u),m.set(u,1),u.play(),u.source.onended=()=>{m.delete(u);try{u.disconnect()}catch{}o.remove(u)}}else{let n=new i.Audio(t);n.setBuffer(r),n.setVolume(e.volume),n.setPlaybackRate(a),m.set(n,1),n.play(),n.source.onended=()=>{m.delete(n);try{n.disconnect()}catch{}}}}catch{}})}function T(e,t,r){p.has(e)?r(p.get(e)):t.load(e,t=>{p.set(e,t),r(t)},void 0,t=>{d.error("Audio load error %s: %o",e,t)})}f.engineStore.subscribe(e=>e.playback.rate,e=>{for(let[t,r]of m)try{t.setPlaybackRate(r*e)}catch{}});let b=(0,r.memo)(function({entity:e}){let{debugMode:u}=(0,s.useDebug)(),f=e.audioFileName??"",d=e.audioVolume??1,p=e.audioMinDistance??1,m=e.audioMaxDistance??1,h=e.audioMinLoopGap??0,y=e.audioMaxLoopGap??0,g=e.audioIs3D??!0?1:0,D=e.audioIsLooping??!0,[R,v,M]=e.position??[0,0,0],b=(0,n.useThree)(e=>e.scene),x=(0,n.useThree)(e=>e.camera),{audioLoader:A,audioListener:S}=(0,a.useAudio)(),{audioEnabled:w}=(0,s.useSettings)(),P=(0,r.useRef)(null),k=(0,r.useRef)(null),B=(0,r.useRef)(null),L=(0,r.useRef)(!1),V=(0,r.useRef)(!1),j=(0,r.useRef)(new i.Vector3(R,v,M)),E=(0,r.useRef)(0),F=()=>{null!=k.current&&(clearTimeout(k.current),k.current=null),null!=B.current&&(clearTimeout(B.current),B.current=null)};(0,r.useEffect)(()=>{let e;if(A&&S){if(E.current++,g){let t=new i.PositionalAudio(S);t.position.copy(j.current),t.setDistanceModel("inverse"),t.setRefDistance(p),t.setMaxDistance(m),t.setRolloffFactor(1),t.setVolume(d),e=t,b.add(e)}else(e=new i.Audio(S)).setVolume(d);return P.current=e,()=>{F();try{e.stop()}catch{}try{e.disconnect()}catch{}g&&b.remove(e),P.current=null,L.current=!1,V.current=!1}}},[A,S,g,p,m,d,b]);let C=(e,t)=>{if(D)if(h>0||y>0){let r=Math.max(0,h),n=Math.max(r,y),o=r===n?r:Math.random()*(n-r)+r;e.loop=!1;let i=()=>{t===E.current&&(!1===e.isPlaying?k.current=setTimeout(()=>{if(t===E.current)try{e.play(),C(e,t)}catch{}},o):B.current=setTimeout(i,100))};B.current=setTimeout(i,100)}else e.setLoop(!0)},G=e=>{if(!A)return;let t=E.current;if(L.current)try{e.isPlaying||(e.play(),C(e,t))}catch{}else{let r;try{r=(0,c.audioToUrl)(f)}catch{return}T(r,A,r=>{if(t===E.current&&!e.buffer){e.setBuffer(r),L.current=!0;try{e.play(),C(e,t)}catch{}}})}};return(0,r.useEffect)(()=>{let e=P.current;e&&!g&&w&&f&&G(e)},[w,g,f,A,S]),(0,o.useFrame)(()=>{let e=P.current;if(!e||!g||!w||!f)return;let t=x.position.distanceTo(j.current),r=V.current,n=t<=m;if(n&&!r)V.current=!0,G(e);else if(!n&&r){V.current=!1,F();try{e.stop()}catch{}}}),(0,r.useEffect)(()=>{let e=P.current;if(e&&!w){F();try{e.stop()}catch{}V.current=!1}},[w]),u?(0,t.jsxs)("mesh",{position:j.current,children:[(0,t.jsx)("sphereGeometry",{args:[p,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:"#00ff00",wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,t.jsx)(l.FloatingLabel,{color:"#00ff00",position:[0,p+1,0],children:f})]}):null});e.s(["AudioEmitter",0,b,"audioBufferCache",0,p,"getCachedAudioBuffer",()=>T,"getSoundGeneration",()=>D,"playOneShotSound",()=>M,"resolveAudioProfile",()=>v,"stopAllTrackedSounds",()=>R,"trackSound",()=>h,"untrackSound",()=>y])}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,29055,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(15080),o=e.i(71753),i=e.i(90072),u=e.i(25645),c=e.i(12979),a=e.i(51434),s=e.i(79123),l=e.i(89887),f=e.i(58647);let d=(0,u.createLogger)("AudioEmitter"),p=new Map,m=new Map;function h(e,t=1){m.set(e,t)}function y(e){m.delete(e)}let g=0;function D(){return g}function v(){for(let[e]of(g++,m)){try{e.stop()}catch{}try{e.disconnect()}catch{}}m.clear()}function R(e,t){let r=t(e),n=r?.filename;if(!n)return null;let o=n.endsWith(".wav")?n:`${n}.wav`,i=r.description,u=null!=i?t(i):void 0,c=u?.is3D??!0,a=u?.isLooping??!1,s=u?.referenceDistance??20;return{filename:o,is3D:c,isLooping:a,refDist:s,maxDist:u?.maxDistance??100,volume:u?.volume??1}}function M(e,t,r,n,o){let u;try{u=(0,c.audioToUrl)(e.filename)}catch{return}let a=f.engineStore.getState().playback.rate,s=g;T(u,r,r=>{if(s===g)try{if(e.is3D&&o){let u=new i.PositionalAudio(t);u.setBuffer(r),u.setDistanceModel("inverse"),u.setRefDistance(e.refDist),u.setMaxDistance(e.maxDist),u.setRolloffFactor(1),u.setVolume(e.volume),u.setPlaybackRate(a),n&&u.position.copy(n),o.add(u),m.set(u,1),u.play(),u.source.onended=()=>{m.delete(u);try{u.disconnect()}catch{}o.remove(u)}}else{let n=new i.Audio(t);n.setBuffer(r),n.setVolume(e.volume),n.setPlaybackRate(a),m.set(n,1),n.play(),n.source.onended=()=>{m.delete(n);try{n.disconnect()}catch{}}}}catch{}})}function T(e,t,r){p.has(e)?r(p.get(e)):t.load(e,t=>{p.set(e,t),r(t)},void 0,t=>{d.error("Audio load error %s: %o",e,t)})}f.engineStore.subscribe(e=>e.playback.rate,e=>{for(let[t,r]of m)try{t.setPlaybackRate(r*e)}catch{}});let b=(0,r.memo)(function({entity:e}){let{debugMode:u}=(0,s.useDebug)(),f=e.audioFileName??"",d=e.audioVolume??1,p=e.audioMinDistance??1,m=e.audioMaxDistance??1,h=e.audioMinLoopGap??0,y=e.audioMaxLoopGap??0,g=e.audioIs3D??!0?1:0,D=e.audioIsLooping??!0,[v,R,M]=e.position??[0,0,0],b=(0,n.useThree)(e=>e.scene),x=(0,n.useThree)(e=>e.camera),{audioLoader:A,audioListener:S}=(0,a.useAudio)(),{audioEnabled:w}=(0,s.useSettings)(),P=(0,r.useRef)(null),k=(0,r.useRef)(null),B=(0,r.useRef)(null),E=(0,r.useRef)(!1),L=(0,r.useRef)(!1),V=(0,r.useRef)(new i.Vector3(v,R,M)),j=(0,r.useRef)(0),F=()=>{null!=k.current&&(clearTimeout(k.current),k.current=null),null!=B.current&&(clearTimeout(B.current),B.current=null)},[C]=(0,r.useState)(()=>Math.random());(0,r.useEffect)(()=>{let e;if(A&&S){if(j.current++,g){let t=new i.PositionalAudio(S);t.position.copy(V.current),t.setDistanceModel("inverse"),t.setRefDistance(p),t.setMaxDistance(m),t.setRolloffFactor(1),t.setVolume(d),e=t,b.add(e)}else(e=new i.Audio(S)).setVolume(d);return P.current=e,()=>{F();try{e.stop()}catch{}try{e.disconnect()}catch{}g&&b.remove(e),P.current=null,E.current=!1,L.current=!1}}},[A,S,g,p,m,d,b]);let G=(e,t)=>{if(D)if(h>0||y>0){let r=Math.max(0,h),n=Math.max(r,y),o=r===n?r:C*(n-r)+r;e.loop=!1;let i=()=>{t===j.current&&(!1===e.isPlaying?k.current=setTimeout(()=>{if(t===j.current)try{e.play(),G(e,t)}catch{}},o):B.current=setTimeout(i,100))};B.current=setTimeout(i,100)}else e.setLoop(!0)},U=(0,r.useEffectEvent)(e=>{if(!A)return;let t=j.current;if(E.current)try{e.isPlaying||(e.play(),G(e,t))}catch{}else{let r;try{r=(0,c.audioToUrl)(f)}catch{return}T(r,A,r=>{if(t===j.current&&!e.buffer){e.setBuffer(r),E.current=!0;try{e.play(),G(e,t)}catch{}}})}});return(0,r.useEffect)(()=>{let e=P.current;e&&!g&&w&&f&&U(e)},[w,g,f,A,S]),(0,o.useFrame)(()=>{let e=P.current;if(!e||!g||!w||!f)return;let t=x.position.distanceTo(V.current),r=L.current,n=t<=m;if(n&&!r)L.current=!0,U(e);else if(!n&&r){L.current=!1,F();try{e.stop()}catch{}}}),(0,r.useEffect)(()=>{let e=P.current;if(e&&!w){F();try{e.stop()}catch{}L.current=!1}},[w]),u?(0,t.jsxs)("mesh",{position:V.current,children:[(0,t.jsx)("sphereGeometry",{args:[p,12,12]}),(0,t.jsx)("meshBasicMaterial",{color:"#00ff00",wireframe:!0,opacity:.05,transparent:!0,toneMapped:!1}),(0,t.jsx)(l.FloatingLabel,{color:"#00ff00",position:[0,p+1,0],children:f})]}):null});e.s(["AudioEmitter",0,b,"audioBufferCache",0,p,"getCachedAudioBuffer",()=>T,"getSoundGeneration",()=>D,"playOneShotSound",()=>M,"resolveAudioProfile",()=>R,"stopAllTrackedSounds",()=>v,"trackSound",()=>h,"untrackSound",()=>y])}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
.GuiMarkup-module__CLgNnq__GuiMarkup{white-space:pre-wrap;font-size:14px;line-height:1.5}.GuiMarkup-module__CLgNnq__GuiMarkup a{color:inherit;text-decoration:underline}.GuiMarkup-module__CLgNnq__Bullet{margin-left:.5em;margin-right:.5em} .GuiMarkup-module__CLgNnq__GuiMarkup{white-space:pre-wrap;font-size:14px;line-height:1.5}.GuiMarkup-module__CLgNnq__GuiMarkup a{color:inherit;text-decoration:underline}.GuiMarkup-module__CLgNnq__Bullet{margin-left:.5em;margin-right:.5em}
.GameDialog-module__C6hZDW__Dialog{color:#b0d5c9;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:#142526cc;border:1px solid #41838b99;border-radius:4px;outline:none;max-width:calc(100dvw - 40px);max-height:calc(100dvh - 40px);font-size:14px;line-height:1.5;position:relative;overflow:hidden;box-shadow:0 0 50px #0006,inset 0 0 60px #01070d99}.GameDialog-module__C6hZDW__Overlay{z-index:10;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.GameDialog-module__C6hZDW__DialogButton{color:#99fff1;text-shadow:0 -1px 1px #0006;cursor:pointer;background:linear-gradient(#30a497cc,#1f9688cc 33%,#218377cc 67%,#046564cc);border:1px solid #387c74cc;border-top-color:#57b7b9cc;border-radius:4px;padding:4px 18px;font-family:inherit;font-size:14px;font-weight:500;box-shadow:inset 0 0 4px #02808e80}.GameDialog-module__C6hZDW__DialogButton:hover:not(:disabled){color:#b1fff5;border:1px solid #409188e6;border-top-color:#5ac6c2e6;box-shadow:inset 0 0 4px #02808e80,0 0 5px #3effbf80}.GameDialog-module__C6hZDW__DialogButton:active:not(:disabled){transform:translateY(1px)}.GameDialog-module__C6hZDW__DialogButton:disabled{opacity:.4;cursor:not-allowed}.GameDialog-module__C6hZDW__Secondary{box-shadow:none;color:#a2e2cfcc;text-shadow:none;background:0 0;border:1px solid #387c74cc;}.GameDialog-module__C6hZDW__Secondary:hover:not(:disabled){color:#a9ffe5cc;border:1px solid #3f9087e6} .GameDialog-module__C6hZDW__Dialog{color:#b0d5c9;-webkit-user-select:text;user-select:text;-webkit-touch-callout:default;background:#142526cc;border:1px solid #41838b99;border-radius:4px;outline:none;max-width:calc(100dvw - 40px);max-height:calc(100dvh - 40px);font-size:14px;line-height:1.5;position:relative;overflow:hidden;box-shadow:0 0 50px #0006,inset 0 0 60px #01070d99}.GameDialog-module__C6hZDW__Overlay{z-index:10;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.GameDialog-module__C6hZDW__DialogButton{color:#99fff1;text-shadow:0 -1px 1px #0006;cursor:pointer;background:linear-gradient(#30a497cc,#1f9688cc 33%,#218377cc 67%,#046564cc);border:1px solid #387c74cc;border-top-color:#57b7b9cc;border-radius:4px;padding:4px 18px;font-family:inherit;font-size:14px;font-weight:500;box-shadow:inset 0 0 4px #02808e80}.GameDialog-module__C6hZDW__DialogButton:hover:not(:disabled){color:#b1fff5;border:1px solid #409188e6;border-top-color:#5ac6c2e6;box-shadow:inset 0 0 4px #02808e80,0 0 5px #3effbf80}.GameDialog-module__C6hZDW__DialogButton:active:not(:disabled){transform:translateY(1px)}.GameDialog-module__C6hZDW__DialogButton:disabled{opacity:.4;cursor:not-allowed}.GameDialog-module__C6hZDW__Secondary{box-shadow:none;color:#a2e2cfcc;text-shadow:none;background:0 0;border:1px solid #387c74cc;}.GameDialog-module__C6hZDW__Secondary:hover:not(:disabled){color:#a9ffe5cc;border:1px solid #3f9087e6}.GameDialog-module__C6hZDW__Actions{align-items:center;gap:10px;display:flex}@media (max-width:719px){.GameDialog-module__C6hZDW__Dialog{border-radius:0;max-width:calc(100dvw - 20px);max-height:calc(100dvh - 20px)}}@media (max-width:639px){.GameDialog-module__C6hZDW__Overlay{padding:10px}}
.MapInfoDialog-module__m0lXla__Dialog{grid-template-rows:1fr auto;grid-template-columns:100%;width:800px;height:600px;display:grid;}.MapInfoDialog-module__m0lXla__Overlay{}.MapInfoDialog-module__m0lXla__Body{grid-template-rows:100%;grid-template-columns:1fr auto;min-height:0;display:grid;overflow:hidden}.MapInfoDialog-module__m0lXla__Left{padding:24px 28px;overflow-y:auto}.MapInfoDialog-module__m0lXla__PreviewImage{border-left:1px solid #00bedc40;height:100%;display:block}.MapInfoDialog-module__m0lXla__PreviewImageFloating{float:right;clear:right;width:auto;max-width:30%;max-height:260px;margin:0 0 16px 20px;display:block}.MapInfoDialog-module__m0lXla__Title{color:#7dffff;text-shadow:0 1px 6px #0006;margin:0;font-size:26px;font-weight:500}.MapInfoDialog-module__m0lXla__MapMeta{flex-wrap:wrap;gap:8px 16px;margin-bottom:4px;font-size:15px;font-weight:400;display:flex}.MapInfoDialog-module__m0lXla__MapPlanet{color:#dbcaa8b3}.MapInfoDialog-module__m0lXla__MapQuote{border-left:2px solid #00bedc59;margin:16px 0;padding:0 0 0 14px;font-style:italic}.MapInfoDialog-module__m0lXla__MapQuote p{white-space:pre-line;margin:0 0 4px}.MapInfoDialog-module__m0lXla__MapQuote cite{color:#d7edcb80;font-size:12px;font-style:normal;display:block}.MapInfoDialog-module__m0lXla__MapBlurb{margin:0 0 16px;font-size:13px}.MapInfoDialog-module__m0lXla__Section{margin-top:20px}.MapInfoDialog-module__m0lXla__SectionTitle{color:#7dffff;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 0 16px #00d2f040;margin:0 0 8px;font-size:16px;font-weight:500}.MapInfoDialog-module__m0lXla__MusicTrack{color:#d7edcb80;align-items:center;gap:6px;margin-top:16px;font-size:14px;font-style:italic;display:flex}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true]{color:#f7fdd8b3}.MapInfoDialog-module__m0lXla__MusicButton{cursor:pointer;color:#557663;opacity:.5;background:0 0;border:0;border-radius:20px;flex-shrink:0;place-content:center;width:32px;height:32px;padding:0;font-size:20px;font-style:normal;line-height:1;display:grid}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true] .MapInfoDialog-module__m0lXla__MusicButton{color:#6dffaa;opacity:1}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true] .MapInfoDialog-module__m0lXla__MusicButton:hover{opacity:.7}.MapInfoDialog-module__m0lXla__Footer{background:#021415b3;border-top:1px solid #00bedc40;flex-shrink:0;align-items:center;gap:16px;padding:10px 12px;display:flex}.MapInfoDialog-module__m0lXla__CloseButton{}.MapInfoDialog-module__m0lXla__Hint{color:#c9dcd84d;margin-left:auto;font-size:12px}.MapInfoDialog-module__m0lXla__MusicTrackName{text-transform:capitalize}@media (max-width:719px){.MapInfoDialog-module__m0lXla__Body{display:block;overflow:auto}.MapInfoDialog-module__m0lXla__Hint{display:none}.MapInfoDialog-module__m0lXla__Left{width:100%;height:auto;margin:0;padding:16px 20px;overflow:auto}.MapInfoDialog-module__m0lXla__PreviewImage{width:auto;height:auto;margin:16px auto}.MapInfoDialog-module__m0lXla__CloseButton{width:220px;height:36px;margin:0 auto}} .MapInfoDialog-module__m0lXla__Dialog{grid-template-rows:1fr auto;grid-template-columns:100%;width:800px;height:600px;display:grid;}.MapInfoDialog-module__m0lXla__Overlay{}.MapInfoDialog-module__m0lXla__Body{grid-template-rows:100%;grid-template-columns:1fr auto;min-height:0;display:grid;overflow:hidden}.MapInfoDialog-module__m0lXla__Left{padding:24px 28px;overflow-y:auto}.MapInfoDialog-module__m0lXla__PreviewImage{border-left:1px solid #00bedc40;height:100%;display:block}.MapInfoDialog-module__m0lXla__PreviewImageFloating{float:right;clear:right;width:auto;max-width:30%;max-height:260px;margin:0 0 16px 20px;display:block}.MapInfoDialog-module__m0lXla__Title{color:#7dffff;text-shadow:0 1px 6px #0006;margin:0;font-size:26px;font-weight:500}.MapInfoDialog-module__m0lXla__MapMeta{flex-wrap:wrap;gap:8px 16px;margin-bottom:4px;font-size:15px;font-weight:400;display:flex}.MapInfoDialog-module__m0lXla__MapPlanet{color:#dbcaa8b3}.MapInfoDialog-module__m0lXla__MapQuote{border-left:2px solid #00bedc59;margin:16px 0;padding:0 0 0 14px;font-style:italic}.MapInfoDialog-module__m0lXla__MapQuote p{white-space:pre-line;margin:0 0 4px}.MapInfoDialog-module__m0lXla__MapQuote cite{color:#d7edcb80;font-size:12px;font-style:normal;display:block}.MapInfoDialog-module__m0lXla__MapBlurb{margin:0 0 16px;font-size:13px}.MapInfoDialog-module__m0lXla__Section{margin-top:20px}.MapInfoDialog-module__m0lXla__SectionTitle{color:#7dffff;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 0 16px #00d2f040;margin:0 0 8px;font-size:16px;font-weight:500}.MapInfoDialog-module__m0lXla__MusicTrack{color:#d7edcb80;align-items:center;gap:6px;margin-top:16px;font-size:14px;font-style:italic;display:flex}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true]{color:#f7fdd8b3}.MapInfoDialog-module__m0lXla__MusicButton{cursor:pointer;color:#557663;opacity:.5;background:0 0;border:0;border-radius:20px;flex-shrink:0;place-content:center;width:32px;height:32px;padding:0;font-size:20px;font-style:normal;line-height:1;display:grid}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true] .MapInfoDialog-module__m0lXla__MusicButton{color:#6dffaa;opacity:1}.MapInfoDialog-module__m0lXla__MusicTrack[data-playing=true] .MapInfoDialog-module__m0lXla__MusicButton:hover{opacity:.7}.MapInfoDialog-module__m0lXla__Footer{background:#021415b3;border-top:1px solid #00bedc40;flex-shrink:0;align-items:center;gap:16px;padding:10px 12px;display:flex}.MapInfoDialog-module__m0lXla__CloseButton{}.MapInfoDialog-module__m0lXla__Hint{color:#c9dcd84d;margin-left:auto;font-size:12px}.MapInfoDialog-module__m0lXla__MusicTrackName{text-transform:capitalize}@media (max-width:719px){.MapInfoDialog-module__m0lXla__Body{display:block;overflow:auto}.MapInfoDialog-module__m0lXla__Hint{display:none}.MapInfoDialog-module__m0lXla__Left{width:100%;height:auto;margin:0;padding:16px 20px;overflow:auto}.MapInfoDialog-module__m0lXla__PreviewImage{width:auto;height:auto;margin:16px auto}.MapInfoDialog-module__m0lXla__CloseButton{width:220px;height:36px;margin:0 auto}}
.ServerBrowser-module__kqm3eq__Dialog{grid-template-rows:auto 1fr auto;grid-template-columns:100%;width:860px;height:560px;display:grid;}.ServerBrowser-module__kqm3eq__Overlay{}.ServerBrowser-module__kqm3eq__Header{border-bottom:1px solid #00bedc40;align-items:center;gap:12px;padding:12px 16px 10px;display:flex}.ServerBrowser-module__kqm3eq__Title{color:#7dffff;text-shadow:0 1px 6px #0006;flex:1;margin:0;font-size:18px;font-weight:500}.ServerBrowser-module__kqm3eq__HiddenRadio{opacity:0;z-index:-1;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.ServerBrowser-module__kqm3eq__RefreshButton{padding:3px 14px;font-size:12px;}.ServerBrowser-module__kqm3eq__ServerCount{color:#c9dcd866;font-size:12px}.ServerBrowser-module__kqm3eq__TableWrapper{min-height:0;overflow-y:auto}.ServerBrowser-module__kqm3eq__Table{border-collapse:collapse;width:100%;font-size:13px}.ServerBrowser-module__kqm3eq__Table th{z-index:1;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.04em;text-transform:uppercase;color:#7dffff99;background:#0a191af2;border-bottom:1px solid #00bedc33;padding:6px 12px;font-size:11px;font-weight:500;position:sticky;top:0}.ServerBrowser-module__kqm3eq__Table th:hover{color:#7dffff}.ServerBrowser-module__kqm3eq__Table th:nth-child(2),.ServerBrowser-module__kqm3eq__Table td:nth-child(2),.ServerBrowser-module__kqm3eq__Table th:nth-child(3),.ServerBrowser-module__kqm3eq__Table td:nth-child(3){text-align:right}.ServerBrowser-module__kqm3eq__Table td{z-index:0;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #ffffff0a;max-width:340px;padding:3px 12px;font-weight:500;position:relative;overflow:hidden}.ServerBrowser-module__kqm3eq__Table td.ServerBrowser-module__kqm3eq__EmptyServer{opacity:.4}.ServerBrowser-module__kqm3eq__Table tbody tr:not(.ServerBrowser-module__kqm3eq__Empty){cursor:pointer}.ServerBrowser-module__kqm3eq__Table tbody tr:not(.ServerBrowser-module__kqm3eq__Empty):hover{background:#41838b1f}.ServerBrowser-module__kqm3eq__Table tbody tr:has(input:checked){color:#1e2828;background:#5dffe1e6!important}.ServerBrowser-module__kqm3eq__PasswordIcon{color:#ffc83c99;margin-right:4px;font-size:11px}.ServerBrowser-module__kqm3eq__Empty td{text-align:center;color:#c9dcd84d;font-style:italic;padding:32px 12px!important}.ServerBrowser-module__kqm3eq__Footer{background:#021415b3;border-top:1px solid #00bedc40;flex-shrink:0;align-items:center;gap:16px;padding:10px 12px;display:flex}.ServerBrowser-module__kqm3eq__JoinButton{min-width:100px;}.ServerBrowser-module__kqm3eq__CloseButton{}.ServerBrowser-module__kqm3eq__WarriorField{align-items:center;gap:8px;display:flex}.ServerBrowser-module__kqm3eq__WarriorLabel{color:#7dffff99;font-size:12px;font-weight:500}.ServerBrowser-module__kqm3eq__WarriorInput{color:#b0d5c9;background:#00323ccc;border:1px solid #41838b80;border-radius:2px;outline:none;width:130px;padding:4px 6px;font-family:inherit;font-size:13px}.ServerBrowser-module__kqm3eq__WarriorInput:focus{border-color:#7dffff99}.ServerBrowser-module__kqm3eq__WarriorInput::placeholder{color:#c9dcd84d}.ServerBrowser-module__kqm3eq__Hint{color:#c9dcd84d;margin:0 auto;font-size:12px}@media (max-width:719px){.ServerBrowser-module__kqm3eq__Dialog{border-radius:0;width:100%;max-width:100dvw;height:100%;max-height:100dvh}.ServerBrowser-module__kqm3eq__Hint{display:none}.ServerBrowser-module__kqm3eq__Table td{max-width:200px}.ServerBrowser-module__kqm3eq__CloseButton{margin-left:auto}} .ServerBrowser-module__kqm3eq__Dialog{grid-template-rows:auto 1fr auto;grid-template-columns:100%;width:860px;height:560px;display:grid;}.ServerBrowser-module__kqm3eq__Overlay{}.ServerBrowser-module__kqm3eq__Header{border-bottom:1px solid #00bedc40;align-items:center;gap:12px;padding:12px 16px 10px;display:flex}.ServerBrowser-module__kqm3eq__Title{color:#7dffff;text-shadow:0 1px 6px #0006;flex:1;margin:0;font-size:18px;font-weight:500}.ServerBrowser-module__kqm3eq__HiddenRadio{opacity:0;z-index:-1;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.ServerBrowser-module__kqm3eq__RefreshButton{padding:3px 14px;font-size:12px;}.ServerBrowser-module__kqm3eq__ServerCount{color:#c9dcd866;font-size:12px}.ServerBrowser-module__kqm3eq__TableWrapper{min-height:0;overflow-y:auto}.ServerBrowser-module__kqm3eq__Table{border-collapse:collapse;width:100%;min-height:0;font-size:13px}.ServerBrowser-module__kqm3eq__Table th{z-index:1;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.04em;text-transform:uppercase;color:#7dffff99;background:#0a191af2;border-bottom:1px solid #00bedc33;padding:6px 12px;font-size:11px;font-weight:500;position:sticky;top:0}.ServerBrowser-module__kqm3eq__Table th:hover{color:#7dffff}.ServerBrowser-module__kqm3eq__Table th:nth-child(2),.ServerBrowser-module__kqm3eq__Table td:nth-child(2),.ServerBrowser-module__kqm3eq__Table th:nth-child(3),.ServerBrowser-module__kqm3eq__Table td:nth-child(3){text-align:right}.ServerBrowser-module__kqm3eq__Table td{z-index:0;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #ffffff0a;max-width:340px;padding:3px 12px;font-weight:500;position:relative;overflow:hidden}.ServerBrowser-module__kqm3eq__Table td.ServerBrowser-module__kqm3eq__EmptyServer{opacity:.4}.ServerBrowser-module__kqm3eq__Table tbody tr:not(.ServerBrowser-module__kqm3eq__Empty){cursor:pointer}.ServerBrowser-module__kqm3eq__Table tbody tr:not(.ServerBrowser-module__kqm3eq__Empty):hover{background:#41838b1f}.ServerBrowser-module__kqm3eq__Table tbody tr:has(input:checked){color:#1e2828;background:#5dffe1e6!important}.ServerBrowser-module__kqm3eq__PasswordIcon{color:#ffc83c99;margin-right:4px;font-size:11px}.ServerBrowser-module__kqm3eq__Empty td{text-align:center;color:#c9dcd84d;font-style:italic;padding:32px 12px!important}.ServerBrowser-module__kqm3eq__Footer{background:#021415b3;border-top:1px solid #00bedc40;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:10px 12px;display:flex}.ServerBrowser-module__kqm3eq__JoinButton{min-width:100px;}.ServerBrowser-module__kqm3eq__CloseButton{}.ServerBrowser-module__kqm3eq__WarriorField{align-items:center;gap:8px;display:flex}.ServerBrowser-module__kqm3eq__WarriorLabel{color:#7dffff99;font-size:12px;font-weight:500}.ServerBrowser-module__kqm3eq__WarriorInput{color:#b0d5c9;background:#00323ccc;border:1px solid #41838b80;border-radius:2px;outline:none;width:130px;padding:4px 6px;font-family:inherit;font-size:13px}.ServerBrowser-module__kqm3eq__WarriorInput:focus{border-color:#7dffff99}.ServerBrowser-module__kqm3eq__WarriorInput::placeholder{color:#c9dcd84d}.ServerBrowser-module__kqm3eq__Hint{color:#c9dcd84d;margin:0 auto;font-size:12px}.ServerBrowser-module__kqm3eq__Actions{}@media (max-width:719px){.ServerBrowser-module__kqm3eq__Hint{display:none}.ServerBrowser-module__kqm3eq__Table td{max-width:200px}.ServerBrowser-module__kqm3eq__CloseButton{margin-left:auto}}@media (max-width:539px){.ServerBrowser-module__kqm3eq__Footer{flex-direction:column;gap:8px}.ServerBrowser-module__kqm3eq__Actions{width:100%}.ServerBrowser-module__kqm3eq__WarriorLabel{font-size:14px}.ServerBrowser-module__kqm3eq__WarriorInput{min-width:12em;font-size:16px}.ServerBrowser-module__kqm3eq__JoinButton,.ServerBrowser-module__kqm3eq__CloseButton{flex:1 0 auto;height:32px}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,7 +8,7 @@
a:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"] a:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"]
c:I[68027,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] c:I[68027,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c","$undefined"],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c","$undefined"],"S":true}
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
d:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"] d:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"]
7:null 7:null

View file

@ -3,4 +3,4 @@
3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"] 3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"]
4:"$Sreact.suspense" 4:"$Sreact.suspense"
5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"] 5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false}

View file

@ -3,4 +3,4 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false}

View file

@ -1,5 +1,5 @@
1:"$Sreact.fragment" 1:"$Sreact.fragment"
2:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 2:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
3:"$Sreact.suspense" 3:"$Sreact.suspense"
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false}
4:null 4:null

View file

@ -1,4 +1,4 @@
1:"$Sreact.fragment" 1:"$Sreact.fragment"
2:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 2:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
3:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}

View file

@ -1,2 +1,2 @@
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}

File diff suppressed because one or more lines are too long

View file

@ -8,7 +8,7 @@
a:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"] a:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"]
c:I[68027,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] c:I[68027,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c","$undefined"],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],null]}],false]],"m":"$undefined","G":["$c","$undefined"],"S":true}
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] 9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]
d:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"] d:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"]
7:null 7:null

File diff suppressed because one or more lines are too long

View file

@ -3,7 +3,7 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
6:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/634517795b833f16.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"] 6:I[31713,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/63afa42c92661c50.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/0a364447adf881eb.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js"],"default"]
9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
a:"$Sreact.suspense" a:"$Sreact.suspense"
c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"] c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"]
@ -11,7 +11,7 @@ e:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBounda
10:I[68027,[],"default"] 10:I[68027,[],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/790c269d8dfa8bf7.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/114146b21a4f5f3e.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/634517795b833f16.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/1273ef014eba2bd5.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/63afa42c92661c50.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/0a364447adf881eb.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/cc36ef62835b35ab.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/af18e4f3fa33de6b.js","async":true,"nonce":"$undefined"}],["$","script","script-10",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-11",{"src":"/t2-mapper/_next/static/chunks/fcfc8a45de71c4a4.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
7:{} 7:{}
8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" 8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]

View file

@ -3,7 +3,7 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
6:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"] 6:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"]
9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
a:"$Sreact.suspense" a:"$Sreact.suspense"
c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"] c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"]
@ -11,7 +11,7 @@ e:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBounda
10:I[68027,[],"default"] 10:I[68027,[],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["","shapes",""],"q":"","i":false,"f":[[["",{"children":["shapes",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["","shapes",""],"q":"","i":false,"f":[[["",{"children":["shapes",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
7:{} 7:{}
8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" 8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]

View file

@ -3,4 +3,4 @@
3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"] 3:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBoundary"]
4:"$Sreact.suspense" 4:"$Sreact.suspense"
5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"] 5:I[27201,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"IconMark"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"MapGenius  Explore maps for Tribes 2"}],["$","meta","1",{"name":"description","content":"Tribes 2 forever."}],["$","link","2",{"rel":"icon","href":"/t2-mapper/icon.png?icon.2911bba1.png","sizes":"108x128","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"loading":null,"isPartial":false}

View file

@ -3,4 +3,4 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false}

View file

@ -1,3 +1,3 @@
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"shapes","paramType":null,"paramKey":"shapes","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"shapes","paramType":null,"paramKey":"shapes","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}

View file

@ -1,10 +1,10 @@
1:"$Sreact.fragment" 1:"$Sreact.fragment"
2:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 2:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
3:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"] 3:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"]
6:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 6:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
7:"$Sreact.suspense" 7:"$Sreact.suspense"
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","async":true}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","async":true}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
4:{} 4:{}
5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
8:null 8:null

View file

@ -1,4 +1,4 @@
1:"$Sreact.fragment" 1:"$Sreact.fragment"
2:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 2:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
3:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
0:{"buildId":"hT_425m97F9QlWX2JJZPJ","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} 0:{"buildId":"HUIHRvyaa6D1abkRRPPoG","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}

File diff suppressed because one or more lines are too long

View file

@ -3,7 +3,7 @@
3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 3:I[39756,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"] 4:I[37457,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"default"]
5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"] 5:I[47257,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ClientPageRoot"]
6:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","/t2-mapper/_next/static/chunks/3b423df62fc674df.js","/t2-mapper/_next/static/chunks/994d42eb1af43673.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"] 6:I[39724,["/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","/t2-mapper/_next/static/chunks/57517f0359971c33.js","/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","/t2-mapper/_next/static/chunks/9a99559140e82f06.js","/t2-mapper/_next/static/chunks/21659079be7af0ab.js","/t2-mapper/_next/static/chunks/153d5796298dee1e.js","/t2-mapper/_next/static/chunks/acace6aadc879a08.js","/t2-mapper/_next/static/chunks/727710e55f003daf.js"],"default"]
9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"] 9:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"OutletBoundary"]
a:"$Sreact.suspense" a:"$Sreact.suspense"
c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"] c:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"ViewportBoundary"]
@ -11,7 +11,7 @@ e:I[97367,["/t2-mapper/_next/static/chunks/2f236954d6a65e12.js"],"MetadataBounda
10:I[68027,[],"default"] 10:I[68027,[],"default"]
:HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"] :HL["/t2-mapper/_next/static/chunks/ad52ebedad251428.css","style"]
:HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"] :HL["/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","style"]
0:{"P":null,"b":"hT_425m97F9QlWX2JJZPJ","c":["","shapes",""],"q":"","i":false,"f":[[["",{"children":["shapes",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/d06053c14447cd9a.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/3b423df62fc674df.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/994d42eb1af43673.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true} 0:{"P":null,"b":"HUIHRvyaa6D1abkRRPPoG","c":["","shapes",""],"q":"","i":false,"f":[[["",{"children":["shapes",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/ad52ebedad251428.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/89fcb9c19e93d0ef.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"defaultOptions":{"clearOnDefault":false},"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","link","0",{"rel":"stylesheet","href":"/t2-mapper/_next/static/chunks/309d84bbb5b2092f.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/t2-mapper/_next/static/chunks/39402d7e86cbc15f.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/t2-mapper/_next/static/chunks/df1e111d87e0ccf8.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/t2-mapper/_next/static/chunks/57517f0359971c33.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/t2-mapper/_next/static/chunks/926fdfc108de2b2e.js","async":true,"nonce":"$undefined"}],["$","script","script-4",{"src":"/t2-mapper/_next/static/chunks/9236f2f78e6373a1.js","async":true,"nonce":"$undefined"}],["$","script","script-5",{"src":"/t2-mapper/_next/static/chunks/9a99559140e82f06.js","async":true,"nonce":"$undefined"}],["$","script","script-6",{"src":"/t2-mapper/_next/static/chunks/21659079be7af0ab.js","async":true,"nonce":"$undefined"}],["$","script","script-7",{"src":"/t2-mapper/_next/static/chunks/153d5796298dee1e.js","async":true,"nonce":"$undefined"}],["$","script","script-8",{"src":"/t2-mapper/_next/static/chunks/acace6aadc879a08.js","async":true,"nonce":"$undefined"}],["$","script","script-9",{"src":"/t2-mapper/_next/static/chunks/727710e55f003daf.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
7:{} 7:{}
8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" 8:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params"
d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]] d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"}]]

View file

@ -18,7 +18,7 @@ export default defineConfig(
], ],
"react-hooks/immutability": "warn", "react-hooks/immutability": "warn",
"react-hooks/refs": "warn", "react-hooks/refs": "warn",
"react-hooks/set-state-in-effect": "warn", "react-hooks/set-state-in-effect": "off",
}, },
}, },
); );

View file

@ -1,4 +1,4 @@
import { memo, useEffect, useRef } from "react"; import { memo, useEffect, useEffectEvent, useRef, useState } from "react";
import { useThree, useFrame } from "@react-three/fiber"; import { useThree, useFrame } from "@react-three/fiber";
import { import {
Audio, Audio,
@ -253,6 +253,8 @@ export const AudioEmitter = memo(function AudioEmitter({
} }
}; };
const [randomValue] = useState(() => Math.random());
// Create sound object on mount. // Create sound object on mount.
useEffect(() => { useEffect(() => {
if (!audioLoader || !audioListener) return; if (!audioLoader || !audioListener) return;
@ -312,7 +314,7 @@ export const AudioEmitter = memo(function AudioEmitter({
const gapMin = Math.max(0, minLoopGap); const gapMin = Math.max(0, minLoopGap);
const gapMax = Math.max(gapMin, maxLoopGap); const gapMax = Math.max(gapMin, maxLoopGap);
const gap = const gap =
gapMin === gapMax ? gapMin : Math.random() * (gapMax - gapMin) + gapMin; gapMin === gapMax ? gapMin : randomValue * (gapMax - gapMin) + gapMin;
sound.loop = false; sound.loop = false;
@ -340,7 +342,7 @@ export const AudioEmitter = memo(function AudioEmitter({
}; };
// Load and play audio. For 3D, gated by proximity; for 2D, plays immediately. // Load and play audio. For 3D, gated by proximity; for 2D, plays immediately.
const loadAndPlay = (sound: Audio<GainNode | PannerNode>) => { const loadAndPlay = useEffectEvent((sound: Audio<GainNode | PannerNode>) => {
if (!audioLoader) return; if (!audioLoader) return;
const gen = generationRef.current; const gen = generationRef.current;
if (!isLoadedRef.current) { if (!isLoadedRef.current) {
@ -373,7 +375,7 @@ export const AudioEmitter = memo(function AudioEmitter({
/* expected */ /* expected */
} }
} }
}; });
// 2D emitters: load and play on mount (no proximity gating). // 2D emitters: load and play on mount (no proximity gating).
useEffect(() => { useEffect(() => {

View file

@ -67,7 +67,6 @@
cursor: not-allowed; cursor: not-allowed;
} }
/* Secondary/ghost variant for less prominent actions (Close, Cancel). */
.Secondary { .Secondary {
composes: DialogButton; composes: DialogButton;
background: transparent; background: transparent;
@ -81,3 +80,23 @@
color: rgba(169, 255, 229, 0.8); color: rgba(169, 255, 229, 0.8);
border: 1px solid rgba(63, 144, 135, 0.9); border: 1px solid rgba(63, 144, 135, 0.9);
} }
.Actions {
display: flex;
align-items: center;
gap: 10px;
}
@media (max-width: 719px) {
.Dialog {
max-width: calc(100dvw - 20px);
max-height: calc(100dvh - 20px);
border-radius: 0;
}
}
@media (max-width: 639px) {
.Overlay {
padding: 10px;
}
}

View file

@ -20,6 +20,7 @@ import {
import type { AnimationAction } from "three"; import type { AnimationAction } from "three";
import * as SkeletonUtils from "three/examples/jsm/utils/SkeletonUtils.js"; import * as SkeletonUtils from "three/examples/jsm/utils/SkeletonUtils.js";
import { setupTexture } from "../textureUtils"; import { setupTexture } from "../textureUtils";
import { useAnisotropy } from "./useAnisotropy";
import { useDebug, useSettings } from "./SettingsProvider"; import { useDebug, useSettings } from "./SettingsProvider";
import { useShapeInfo, isOrganicShape } from "./ShapeInfoProvider"; import { useShapeInfo, isOrganicShape } from "./ShapeInfoProvider";
import { useEngineSelector, effectNow, engineStore } from "../state/engineStore"; import { useEngineSelector, effectNow, engineStore } from "../state/engineStore";
@ -37,6 +38,7 @@ import { injectShapeLighting } from "../shapeMaterial";
import { import {
processShapeScene, processShapeScene,
replaceWithShapeMaterial, replaceWithShapeMaterial,
disposeClonedScene,
} from "../stream/playbackUtils"; } from "../stream/playbackUtils";
import type { ThreadState as StreamThreadState } from "../stream/types"; import type { ThreadState as StreamThreadState } from "../stream/types";
@ -198,7 +200,13 @@ const IflTexture = memo(function IflTexture({
animated = false, animated = false,
}: TextureProps) { }: TextureProps) {
const resourcePath = material.userData.resource_path; const resourcePath = material.userData.resource_path;
const flagNames = new Set<string>(material.userData.flag_names ?? []); const flagNames = useMemo(
() =>
material.userData.flag_names
? new Set<string>(material.userData.flag_names)
: EMPTY_FLAG_NAMES,
[material.userData.flag_names],
);
const iflPath = `textures/${resourcePath}.ifl`; const iflPath = `textures/${resourcePath}.ifl`;
const texture = useIflTexture(iflPath); const texture = useIflTexture(iflPath);
@ -217,6 +225,8 @@ const IflTexture = memo(function IflTexture({
[material, texture, flagNames, isOrganic, vis, animated], [material, texture, flagNames, isOrganic, vis, animated],
); );
useDisposeMaterial(customMaterial);
// Two-pass rendering for organic/translucent materials // Two-pass rendering for organic/translucent materials
// Render BackSide first (with flipped normals), then FrontSide // Render BackSide first (with flipped normals), then FrontSide
if (Array.isArray(customMaterial)) { if (Array.isArray(customMaterial)) {
@ -251,6 +261,18 @@ const IflTexture = memo(function IflTexture({
); );
}); });
function useDisposeMaterial(material: MaterialResult) {
useEffect(() => {
return () => {
if (Array.isArray(material)) {
material.forEach((m) => m.dispose());
} else {
material.dispose();
}
};
}, [material]);
}
const EMPTY_FLAG_NAMES = new Set<string>(); const EMPTY_FLAG_NAMES = new Set<string>();
const StaticTexture = memo(function StaticTexture({ const StaticTexture = memo(function StaticTexture({
@ -281,14 +303,15 @@ const StaticTexture = memo(function StaticTexture({
const isOrganic = shapeName && isOrganicShape(shapeName); const isOrganic = shapeName && isOrganicShape(shapeName);
const isTranslucent = flagNames.has("Translucent"); const isTranslucent = flagNames.has("Translucent");
const anisotropy = useAnisotropy();
const texture = useTexture(url, (texture) => { const texture = useTexture(url, (texture) => {
// Organic/alpha-tested textures need special handling to avoid mipmap artifacts // Organic/alpha-tested textures need special handling to avoid mipmap artifacts
if (isOrganic || isTranslucent) { if (isOrganic || isTranslucent) {
return setupTexture(texture, { disableMipmaps: true }); return setupTexture(texture, { disableMipmaps: true, anisotropy });
} }
// Standard color texture setup for diffuse-only materials // Standard color texture setup for diffuse-only materials
return setupTexture(texture); return setupTexture(texture, { anisotropy });
}); });
const customMaterial = useMemo( const customMaterial = useMemo(
@ -304,6 +327,8 @@ const StaticTexture = memo(function StaticTexture({
[material, texture, flagNames, isOrganic, vis, animated], [material, texture, flagNames, isOrganic, vis, animated],
); );
useDisposeMaterial(customMaterial);
// Two-pass rendering for organic/translucent materials // Two-pass rendering for organic/translucent materials
// Render BackSide first (with flipped normals), then FrontSide // Render BackSide first (with flipped normals), then FrontSide
if (Array.isArray(customMaterial)) { if (Array.isArray(customMaterial)) {
@ -501,6 +526,7 @@ export const ShapeModel = memo(function ShapeModel({
const { debugMode } = useDebug(); const { debugMode } = useDebug();
const { animationEnabled } = useSettings(); const { animationEnabled } = useSettings();
const runtime = useEngineSelector((state) => state.runtime.runtime); const runtime = useEngineSelector((state) => state.runtime.runtime);
const anisotropy = useAnisotropy();
const { clonedScene, mixer, clipsByName, visNodesBySequence, iflMeshes } = const { clonedScene, mixer, clipsByName, visNodesBySequence, iflMeshes } =
useMemo(() => { useMemo(() => {
@ -549,7 +575,7 @@ export const ShapeModel = memo(function ShapeModel({
} }
}); });
processShapeScene(scene, shapeName ?? undefined); processShapeScene(scene, shapeName ?? undefined, { anisotropy });
// Un-hide IFL meshes that don't have a vis sequence — they should always // Un-hide IFL meshes that don't have a vis sequence — they should always
// be visible. IFL meshes WITH vis sequences stay hidden until their // be visible. IFL meshes WITH vis sequences stay hidden until their
@ -607,7 +633,16 @@ export const ShapeModel = memo(function ShapeModel({
visNodesBySequence: visBySeq, visNodesBySequence: visBySeq,
iflMeshes: iflInfos, iflMeshes: iflInfos,
}; };
}, [gltf]); }, [gltf, anisotropy]);
// Dispose cloned geometries and materials when the scene is replaced or
// the component unmounts, to prevent GPU memory from accumulating.
useEffect(() => {
return () => {
disposeClonedScene(clonedScene);
mixer?.uncacheRoot(clonedScene);
};
}, [clonedScene, mixer]);
const threadsRef = useRef(new Map<number, ThreadState>()); const threadsRef = useRef(new Map<number, ThreadState>());
const iflMeshAtlasRef = useRef(new Map<any, IflAtlas>()); const iflMeshAtlasRef = useRef(new Map<any, IflAtlas>());

View file

@ -22,6 +22,7 @@ import {
import { setupTexture } from "../textureUtils"; import { setupTexture } from "../textureUtils";
import { FloatingLabel } from "./FloatingLabel"; import { FloatingLabel } from "./FloatingLabel";
import { useDebug } from "./SettingsProvider"; import { useDebug } from "./SettingsProvider";
import { useAnisotropy } from "./useAnisotropy";
import { injectCustomFog } from "../fogShader"; import { injectCustomFog } from "../fogShader";
import { globalFogUniforms } from "../globalFogUniforms"; import { globalFogUniforms } from "../globalFogUniforms";
import { injectInteriorLighting } from "../interiorMaterial"; import { injectInteriorLighting } from "../interiorMaterial";
@ -47,8 +48,9 @@ function InteriorTexture({
}) { }) {
const debugContext = useDebug(); const debugContext = useDebug();
const debugMode = debugContext?.debugMode ?? false; const debugMode = debugContext?.debugMode ?? false;
const anisotropy = useAnisotropy();
const url = textureToUrl(materialName); const url = textureToUrl(materialName);
const texture = useTexture(url, (texture) => setupTexture(texture)); const texture = useTexture(url, (texture) => setupTexture(texture, { anisotropy }));
// Check for self-illuminating flag in material userData // Check for self-illuminating flag in material userData
// Note: The io_dif Blender add-on needs to be updated to export material flags // Note: The io_dif Blender add-on needs to be updated to export material flags
const flagNames = new Set<string>(material?.userData?.flag_names ?? []); const flagNames = new Set<string>(material?.userData?.flag_names ?? []);

View file

@ -386,18 +386,22 @@ export function MapInspector() {
) : null} ) : null}
</footer> </footer>
{mapInfoOpen ? ( {mapInfoOpen ? (
<Suspense> <ViewTransition>
<MapInfoDialog <Suspense>
onClose={() => setMapInfoOpen(false)} <MapInfoDialog
missionName={missionName} onClose={() => setMapInfoOpen(false)}
missionType={missionType ?? ""} missionName={missionName}
/> missionType={missionType ?? ""}
</Suspense> />
</Suspense>
</ViewTransition>
) : null} ) : null}
{serverBrowserOpen ? ( {serverBrowserOpen ? (
<Suspense> <ViewTransition>
<ServerBrowser onClose={() => setServerBrowserOpen(false)} /> <Suspense>
</Suspense> <ServerBrowser onClose={() => setServerBrowserOpen(false)} />
</Suspense>
</ViewTransition>
) : null} ) : null}
</SettingsProvider> </SettingsProvider>
</RecordingProvider> </RecordingProvider>

View file

@ -18,6 +18,7 @@ import * as SkeletonUtils from "three/examples/jsm/utils/SkeletonUtils.js";
import { import {
ANIM_TRANSITION_TIME, ANIM_TRANSITION_TIME,
DEFAULT_EYE_HEIGHT, DEFAULT_EYE_HEIGHT,
disposeClonedScene,
getKeyframeAtTime, getKeyframeAtTime,
getPosedNodeTransform, getPosedNodeTransform,
processShapeScene, processShapeScene,
@ -27,6 +28,7 @@ import { WeaponImageStateMachine } from "../stream/weaponStateMachine";
import type { WeaponAnimState } from "../stream/weaponStateMachine"; import type { WeaponAnimState } from "../stream/weaponStateMachine";
import { getAliasedActions } from "../torqueScript/shapeConstructor"; import { getAliasedActions } from "../torqueScript/shapeConstructor";
import { useStaticShape, ShapePlaceholder } from "./GenericShape"; import { useStaticShape, ShapePlaceholder } from "./GenericShape";
import { useAnisotropy } from "./useAnisotropy";
import { ShapeErrorBoundary } from "./ShapeErrorBoundary"; import { ShapeErrorBoundary } from "./ShapeErrorBoundary";
import { DebugSuspense } from "./DebugSuspense"; import { DebugSuspense } from "./DebugSuspense";
import { useAudio } from "./AudioContext"; import { useAudio } from "./AudioContext";
@ -174,12 +176,13 @@ export function PlayerModel({ entity }: { entity: PlayerEntity }) {
const sn = shapeName?.toLowerCase(); const sn = shapeName?.toLowerCase();
return sn ? state.runtime.sequenceAliases.get(sn) : undefined; return sn ? state.runtime.sequenceAliases.get(sn) : undefined;
}); });
const anisotropy = useAnisotropy();
// Clone scene preserving skeleton bindings, create mixer, find mount bones. // Clone scene preserving skeleton bindings, create mixer, find mount bones.
const { clonedScene, mixer, mount0, mount1, mount2, iflInitializers } = const { clonedScene, mixer, mount0, mount1, mount2, iflInitializers } =
useMemo(() => { useMemo(() => {
const scene = SkeletonUtils.clone(gltf.scene) as Group; const scene = SkeletonUtils.clone(gltf.scene) as Group;
const iflInits = processShapeScene(scene); const iflInits = processShapeScene(scene, undefined, { anisotropy });
// Use front-face-only rendering so the camera can see out from inside the // Use front-face-only rendering so the camera can see out from inside the
// model in first-person (backface culling hides interior faces). // model in first-person (backface culling hides interior faces).
@ -209,7 +212,14 @@ export function PlayerModel({ entity }: { entity: PlayerEntity }) {
mount2: m2, mount2: m2,
iflInitializers: iflInits, iflInitializers: iflInits,
}; };
}, [gltf]); }, [gltf, anisotropy]);
useEffect(() => {
return () => {
disposeClonedScene(clonedScene);
mixer.uncacheRoot(clonedScene);
};
}, [clonedScene, mixer]);
// Build case-insensitive clip lookup with alias support. // Build case-insensitive clip lookup with alias support.
const animActionsRef = useRef(new Map<string, AnimationAction>()); const animActionsRef = useRef(new Map<string, AnimationAction>());
@ -659,6 +669,7 @@ function WeaponModel({
}) { }) {
const engineStore = useEngineStoreApi(); const engineStore = useEngineStoreApi();
const weaponGltf = useStaticShape(weaponShape); const weaponGltf = useStaticShape(weaponShape);
const anisotropy = useAnisotropy();
// Clone weapon with skeleton bindings, create dedicated mixer. // Clone weapon with skeleton bindings, create dedicated mixer.
const { const {
@ -669,7 +680,7 @@ function WeaponModel({
weaponIflInitializers, weaponIflInitializers,
} = useMemo(() => { } = useMemo(() => {
const clone = SkeletonUtils.clone(weaponGltf.scene) as Group; const clone = SkeletonUtils.clone(weaponGltf.scene) as Group;
const iflInits = processShapeScene(clone); const iflInits = processShapeScene(clone, undefined, { anisotropy });
// Compute Mountpoint inverse offset so the weapon's grip aligns to Mount0. // Compute Mountpoint inverse offset so the weapon's grip aligns to Mount0.
const mp = getPosedNodeTransform( const mp = getPosedNodeTransform(
@ -714,7 +725,14 @@ function WeaponModel({
visNodesBySequence: visBySeq, visNodesBySequence: visBySeq,
weaponIflInitializers: iflInits, weaponIflInitializers: iflInits,
}; };
}, [weaponGltf]); }, [weaponGltf, anisotropy]);
useEffect(() => {
return () => {
disposeClonedScene(weaponClone);
weaponMixer.uncacheRoot(weaponClone);
};
}, [weaponClone, weaponMixer]);
// Build case-insensitive action map for weapon animations. // Build case-insensitive action map for weapon animations.
const weaponActionsRef = useRef(new Map<string, AnimationAction>()); const weaponActionsRef = useRef(new Map<string, AnimationAction>());
@ -1013,10 +1031,11 @@ function PackModel({
mountBone: Object3D; mountBone: Object3D;
}) { }) {
const packGltf = useStaticShape(packShape); const packGltf = useStaticShape(packShape);
const anisotropy = useAnisotropy();
const { packClone, packIflInitializers } = useMemo(() => { const { packClone, packIflInitializers } = useMemo(() => {
const clone = SkeletonUtils.clone(packGltf.scene) as Group; const clone = SkeletonUtils.clone(packGltf.scene) as Group;
const iflInits = processShapeScene(clone); const iflInits = processShapeScene(clone, undefined, { anisotropy });
// Compute Mountpoint inverse offset so the pack aligns to Mount1. // Compute Mountpoint inverse offset so the pack aligns to Mount1.
const mp = getPosedNodeTransform( const mp = getPosedNodeTransform(
@ -1032,12 +1051,13 @@ function PackModel({
} }
return { packClone: clone, packIflInitializers: iflInits }; return { packClone: clone, packIflInitializers: iflInits };
}, [packGltf]); }, [packGltf, anisotropy]);
useEffect(() => { useEffect(() => {
mountBone.add(packClone); mountBone.add(packClone);
return () => { return () => {
mountBone.remove(packClone); mountBone.remove(packClone);
disposeClonedScene(packClone);
}; };
}, [packClone, mountBone]); }, [packClone, mountBone]);

View file

@ -56,6 +56,7 @@
.Table { .Table {
width: 100%; width: 100%;
min-height: 0;
border-collapse: collapse; border-collapse: collapse;
font-size: 13px; font-size: 13px;
} }
@ -133,6 +134,7 @@
.Footer { .Footer {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between;
gap: 16px; gap: 16px;
padding: 10px 12px; padding: 10px 12px;
border-top: 1px solid rgba(0, 190, 220, 0.25); border-top: 1px solid rgba(0, 190, 220, 0.25);
@ -187,15 +189,11 @@
margin: 0 auto; margin: 0 auto;
} }
@media (max-width: 719px) { .Actions {
.Dialog { composes: Actions from "./GameDialog.module.css";
width: 100%; }
height: 100%;
max-width: 100dvw;
max-height: 100dvh;
border-radius: 0;
}
@media (max-width: 719px) {
.Hint { .Hint {
display: none; display: none;
} }
@ -208,3 +206,29 @@
margin-left: auto; margin-left: auto;
} }
} }
@media (max-width: 539px) {
.Footer {
flex-direction: column;
gap: 8px;
}
.Actions {
width: 100%;
}
.WarriorLabel {
font-size: 14px;
}
.WarriorInput {
font-size: 16px;
min-width: 12em;
}
.JoinButton,
.CloseButton {
flex: 1 0 auto;
height: 32px;
}
}

View file

@ -195,16 +195,18 @@ export function ServerBrowser({ onClose }: { onClose: () => void }) {
/> />
</div> </div>
<span className={styles.Hint}>Double-click a server to join</span> <span className={styles.Hint}>Double-click a server to join</span>
<button onClick={onClose} className={styles.CloseButton}> <div className={styles.Actions}>
Cancel <button onClick={onClose} className={styles.CloseButton}>
</button> Cancel
<button </button>
onClick={handleJoinSelected} <button
disabled={!selectedAddress} onClick={handleJoinSelected}
className={styles.JoinButton} disabled={!selectedAddress}
> className={styles.JoinButton}
Join >
</button> Join
</button>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -7,6 +7,7 @@ import * as SkeletonUtils from "three/examples/jsm/utils/SkeletonUtils.js";
import { import {
_r90, _r90,
_r90inv, _r90inv,
disposeClonedScene,
getPosedNodeTransform, getPosedNodeTransform,
processShapeScene, processShapeScene,
} from "../stream/playbackUtils"; } from "../stream/playbackUtils";
@ -17,6 +18,7 @@ import {
} from "./useIflTexture"; } from "./useIflTexture";
import type { IflAtlas } from "./useIflTexture"; import type { IflAtlas } from "./useIflTexture";
import { ShapeRenderer, useStaticShape } from "./GenericShape"; import { ShapeRenderer, useStaticShape } from "./GenericShape";
import { useAnisotropy } from "./useAnisotropy";
import { ShapeInfoProvider } from "./ShapeInfoProvider"; import { ShapeInfoProvider } from "./ShapeInfoProvider";
import type { TorqueObject } from "../torqueScript"; import type { TorqueObject } from "../torqueScript";
import type { ExplosionEntity, ShapeEntity } from "../state/gameEntityTypes"; import type { ExplosionEntity, ShapeEntity } from "../state/gameEntityTypes";
@ -50,7 +52,6 @@ export function WeaponModel({ entity }: { entity: ShapeEntity }) {
const playerGltf = useStaticShape(playerShapeName); const playerGltf = useStaticShape(playerShapeName);
const weaponGltf = useStaticShape(shapeName); const weaponGltf = useStaticShape(shapeName);
// eslint-disable-next-line react-hooks/preserve-manual-memoization
const mountTransform = useMemo(() => { const mountTransform = useMemo(() => {
// Get Mount0 from the player's posed skeleton with arm animation applied. // Get Mount0 from the player's posed skeleton with arm animation applied.
const armThread = getArmThread(shapeName); const armThread = getArmThread(shapeName);
@ -96,7 +97,13 @@ export function WeaponModel({ entity }: { entity: ShapeEntity }) {
const mountQuat = _r90.clone().multiply(combinedQuat).multiply(_r90inv); const mountQuat = _r90.clone().multiply(combinedQuat).multiply(_r90inv);
return { position: mountPos, quaternion: mountQuat }; return { position: mountPos, quaternion: mountQuat };
}, [playerGltf, weaponGltf]); }, [
playerGltf.animations,
playerGltf.scene,
shapeName,
weaponGltf.animations,
weaponGltf.scene,
]);
const torqueObject = useMemo<TorqueObject>( const torqueObject = useMemo<TorqueObject>(
() => ({ () => ({
@ -207,6 +214,7 @@ function interpolateSize(
export function ExplosionShape({ entity }: { entity: ExplosionEntity }) { export function ExplosionShape({ entity }: { entity: ExplosionEntity }) {
const playback = streamPlaybackStore.getState().playback; const playback = streamPlaybackStore.getState().playback;
const gltf = useStaticShape(entity.shapeName!); const gltf = useStaticShape(entity.shapeName!);
const anisotropy = useAnisotropy();
const groupRef = useRef<Group>(null); const groupRef = useRef<Group>(null);
const startTimeRef = useRef(effectNow()); const startTimeRef = useRef(effectNow());
// eslint-disable-next-line react-hooks/purity // eslint-disable-next-line react-hooks/purity
@ -267,7 +275,7 @@ export function ExplosionShape({ entity }: { entity: ExplosionEntity }) {
} }
}); });
processShapeScene(scene, entity.shapeName); processShapeScene(scene, entity.shapeName, { anisotropy });
// Collect vis-animated nodes keyed by sequence name. // Collect vis-animated nodes keyed by sequence name.
const visNodes: VisNode[] = []; const visNodes: VisNode[] = [];
@ -342,7 +350,14 @@ export function ExplosionShape({ entity }: { entity: ExplosionEntity }) {
}); });
return { scene, mixer, visNodes, iflInfos, materials }; return { scene, mixer, visNodes, iflInfos, materials };
}, [gltf, expBlock]); }, [gltf, expBlock, anisotropy]);
useEffect(() => {
return () => {
disposeClonedScene(scene);
mixer?.uncacheRoot(scene);
};
}, [scene, mixer]);
// Load IFL texture atlases. // Load IFL texture atlases.
useEffect(() => { useEffect(() => {

View file

@ -1,13 +1,11 @@
import { Suspense, useCallback, useEffect, useRef, useState } from "react"; import { Suspense, useCallback, useEffect, useRef, useState } from "react";
import { useFrame } from "@react-three/fiber"; import { useFrame } from "@react-three/fiber";
import { useGLTF } from "@react-three/drei";
import { Quaternion, Vector3 } from "three"; import { Quaternion, Vector3 } from "three";
import { import {
DEFAULT_EYE_HEIGHT, DEFAULT_EYE_HEIGHT,
STREAM_TICK_SEC, STREAM_TICK_SEC,
torqueHorizontalFovToThreeVerticalFov, torqueHorizontalFovToThreeVerticalFov,
} from "../stream/playbackUtils"; } from "../stream/playbackUtils";
import { shapeToUrl } from "../loaders";
import { ParticleEffects } from "./ParticleEffects"; import { ParticleEffects } from "./ParticleEffects";
import { PlayerEyeOffset } from "./PlayerModel"; import { PlayerEyeOffset } from "./PlayerModel";
import { stopAllTrackedSounds } from "./AudioEmitter"; import { stopAllTrackedSounds } from "./AudioEmitter";
@ -302,12 +300,6 @@ export function StreamingController({
savedConnectedPlayerName ?? recording.recorderName ?? undefined, savedConnectedPlayerName ?? recording.recorderName ?? undefined,
recordingDate: recording.recordingDate ?? undefined, recordingDate: recording.recordingDate ?? undefined,
}); });
// Preload weapon effect shapes (explosions) so they're cached before
// the first projectile detonates -- otherwise the GLB fetch latency
// causes the short-lived explosion entity to expire before it renders.
for (const shape of stream.getEffectShapes()) {
useGLTF.preload(shapeToUrl(shape));
}
const snapshot = stream.getSnapshot(); const snapshot = stream.getSnapshot();
streamPlaybackStore.setState({ time: snapshot.timeSec }); streamPlaybackStore.setState({ time: snapshot.timeSec });

View file

@ -14,6 +14,7 @@ import {
import { setupTexture } from "../textureUtils"; import { setupTexture } from "../textureUtils";
import { updateTerrainTextureShader } from "../terrainMaterial"; import { updateTerrainTextureShader } from "../terrainMaterial";
import { useDebug } from "./SettingsProvider"; import { useDebug } from "./SettingsProvider";
import { useAnisotropy } from "./useAnisotropy";
import { injectCustomFog } from "../fogShader"; import { injectCustomFog } from "../fogShader";
import { globalFogUniforms } from "../globalFogUniforms"; import { globalFogUniforms } from "../globalFogUniforms";
@ -58,11 +59,12 @@ const BlendedTerrainTextures = memo(function BlendedTerrainTextures({
lightmap?: DataTexture; lightmap?: DataTexture;
}) { }) {
const { debugMode } = useDebug(); const { debugMode } = useDebug();
const anisotropy = useAnisotropy();
const baseTextures = useTexture( const baseTextures = useTexture(
textureNames.map((name) => terrainTextureToUrl(name)), textureNames.map((name) => terrainTextureToUrl(name)),
(textures) => { (textures) => {
textures.forEach((tex) => setupTexture(tex)); textures.forEach((tex) => setupTexture(tex, { anisotropy }));
}, },
); );
@ -74,7 +76,7 @@ const BlendedTerrainTextures = memo(function BlendedTerrainTextures({
const detailTexture = useTexture( const detailTexture = useTexture(
detailTextureUrl ?? FALLBACK_TEXTURE_URL, detailTextureUrl ?? FALLBACK_TEXTURE_URL,
(tex) => { (tex) => {
setupTexture(tex); setupTexture(tex, { anisotropy });
}, },
); );

View file

@ -9,6 +9,7 @@ import {
matrixFToQuaternion, matrixFToQuaternion,
} from "../scene"; } from "../scene";
import { setupTexture } from "../textureUtils"; import { setupTexture } from "../textureUtils";
import { useAnisotropy } from "./useAnisotropy";
import { createWaterMaterial } from "../waterMaterial"; import { createWaterMaterial } from "../waterMaterial";
import { useDebug, useSettings } from "./SettingsProvider"; import { useDebug, useSettings } from "./SettingsProvider";
import { usePositionTracker } from "./usePositionTracker"; import { usePositionTracker } from "./usePositionTracker";
@ -61,7 +62,8 @@ export function WaterMaterial({
attach?: string; attach?: string;
}) { }) {
const url = textureToUrl(surfaceTexture); const url = textureToUrl(surfaceTexture);
const texture = useTexture(url, (texture) => setupTexture(texture)); const anisotropy = useAnisotropy();
const texture = useTexture(url, (texture) => setupTexture(texture, { anisotropy }));
return ( return (
<meshStandardMaterial <meshStandardMaterial
@ -303,13 +305,14 @@ const WaterReps = memo(function WaterReps({
}) { }) {
const baseUrl = textureToUrl(surfaceTexture); const baseUrl = textureToUrl(surfaceTexture);
const envUrl = textureToUrl(envMapTexture ?? "special/lush_env"); const envUrl = textureToUrl(envMapTexture ?? "special/lush_env");
const anisotropy = useAnisotropy();
const [baseTexture, envTexture] = useTexture( const [baseTexture, envTexture] = useTexture(
[baseUrl, envUrl], [baseUrl, envUrl],
(textures) => { (textures) => {
const texArray = Array.isArray(textures) ? textures : [textures]; const texArray = Array.isArray(textures) ? textures : [textures];
texArray.forEach((tex) => { texArray.forEach((tex) => {
setupTexture(tex); setupTexture(tex, { anisotropy });
tex.colorSpace = NoColorSpace; tex.colorSpace = NoColorSpace;
tex.wrapS = RepeatWrapping; tex.wrapS = RepeatWrapping;
tex.wrapT = RepeatWrapping; tex.wrapT = RepeatWrapping;

View file

@ -0,0 +1,5 @@
import { useThree } from "@react-three/fiber";
export function useAnisotropy(): number {
return useThree((s) => s.gl.capabilities.getMaxAnisotropy());
}

View file

@ -64,11 +64,14 @@ const alphaAsRoughnessShaderModifier = (shader: any) => {
* Configures a texture for use with alpha-as-roughness materials * Configures a texture for use with alpha-as-roughness materials
* @param texture - The texture to configure * @param texture - The texture to configure
*/ */
export function setupAlphaAsRoughnessTexture(texture: Texture) { export function setupAlphaAsRoughnessTexture(
texture: Texture,
options: { anisotropy?: number } = {},
) {
texture.wrapS = texture.wrapT = RepeatWrapping; texture.wrapS = texture.wrapT = RepeatWrapping;
texture.colorSpace = SRGBColorSpace; texture.colorSpace = SRGBColorSpace;
texture.flipY = false; texture.flipY = false;
texture.anisotropy = 16; texture.anisotropy = options.anisotropy ?? 1;
texture.generateMipmaps = true; texture.generateMipmaps = true;
texture.minFilter = LinearMipmapLinearFilter; texture.minFilter = LinearMipmapLinearFilter;
texture.magFilter = LinearFilter; texture.magFilter = LinearFilter;

View file

@ -27,7 +27,7 @@ import {
getFrameIndexForTime, getFrameIndexForTime,
updateAtlasFrame, updateAtlasFrame,
} from "../components/useIflTexture"; } from "../components/useIflTexture";
import { getHullBoneIndices, filterGeometryByVertexGroups } from "../meshUtils"; import { getHullBoneIndices } from "../meshUtils";
import { loadTexture, setupTexture } from "../textureUtils"; import { loadTexture, setupTexture } from "../textureUtils";
import { textureToUrl } from "../loaders"; import { textureToUrl } from "../loaders";
import type { Keyframe } from "./types"; import type { Keyframe } from "./types";
@ -193,6 +193,51 @@ export function getPosedNodeTransform(
return { position, quaternion }; return { position, quaternion };
} }
/**
* Remove faces influenced by hull bones, mutating the geometry in place.
* Unlike filterGeometryByVertexGroups (which clones), this is safe when the
* geometry is already our own copy (e.g. from SkeletonUtils.clone).
*/
function filterHullFaces(
geometry: BufferGeometry,
hullBoneIndices: Set<number>,
): void {
if (hullBoneIndices.size === 0 || !geometry.attributes.skinIndex) return;
const skinIndex = geometry.attributes.skinIndex;
const skinWeight = geometry.attributes.skinWeight;
const index = geometry.index;
if (!index) return;
const vertexHasHullInfluence = new Array(skinIndex.count).fill(false);
for (let i = 0; i < skinIndex.count; i++) {
for (let j = 0; j < 4; j++) {
const boneIndex = skinIndex.array[i * 4 + j];
const weight = skinWeight.array[i * 4 + j];
if (weight > 0.01 && hullBoneIndices.has(boneIndex)) {
vertexHasHullInfluence[i] = true;
break;
}
}
}
const newIndices: number[] = [];
const indexArray = index.array;
for (let i = 0; i < indexArray.length; i += 3) {
const i0 = indexArray[i];
const i1 = indexArray[i + 1];
const i2 = indexArray[i + 2];
if (
!vertexHasHullInfluence[i0] &&
!vertexHasHullInfluence[i1] &&
!vertexHasHullInfluence[i2]
) {
newIndices.push(i0, i1, i2);
}
}
geometry.setIndex(newIndices);
}
/** /**
* Smooth vertex normals across co-located split vertices (same position, different * Smooth vertex normals across co-located split vertices (same position, different
* UVs). Matches the technique used by ShapeModel for consistent lighting. * UVs). Matches the technique used by ShapeModel for consistent lighting.
@ -262,6 +307,7 @@ export function replaceWithShapeMaterial(
mat: MeshStandardMaterial, mat: MeshStandardMaterial,
vis: number, vis: number,
isOrganic = false, isOrganic = false,
options: { anisotropy?: number } = {},
): ShapeMaterialResult { ): ShapeMaterialResult {
const resourcePath: string | undefined = mat.userData?.resource_path; const resourcePath: string | undefined = mat.userData?.resource_path;
const flagNames = new Set<string>(mat.userData?.flag_names ?? []); const flagNames = new Set<string>(mat.userData?.flag_names ?? []);
@ -311,9 +357,9 @@ export function replaceWithShapeMaterial(
const texture = loadTexture(url); const texture = loadTexture(url);
const isTranslucent = flagNames.has("Translucent"); const isTranslucent = flagNames.has("Translucent");
if (isOrganic || isTranslucent) { if (isOrganic || isTranslucent) {
setupTexture(texture, { disableMipmaps: true }); setupTexture(texture, { disableMipmaps: true, anisotropy: options.anisotropy });
} else { } else {
setupTexture(texture); setupTexture(texture, { anisotropy: options.anisotropy });
} }
const result = createMaterialFromFlags( const result = createMaterialFromFlags(
@ -368,6 +414,7 @@ async function initializeIflMaterial(
export function processShapeScene( export function processShapeScene(
scene: Object3D, scene: Object3D,
shapeName?: string, shapeName?: string,
options: { anisotropy?: number } = {},
): IflInitializer[] { ): IflInitializer[] {
const iflInitializers: IflInitializer[] = []; const iflInitializers: IflInitializer[] = [];
const isOrganic = shapeName ? isOrganicShape(shapeName) : false; const isOrganic = shapeName ? isOrganicShape(shapeName) : false;
@ -402,14 +449,11 @@ export function processShapeScene(
} }
// Filter hull-influenced triangles and smooth normals. // Filter hull-influenced triangles and smooth normals.
// SkeletonUtils.clone already deep-clones geometry, so no extra clone
// is needed — we can mutate in place.
if (node.geometry) { if (node.geometry) {
let geometry = filterGeometryByVertexGroups( filterHullFaces(node.geometry, hullBoneIndices);
node.geometry, smoothVertexNormals(node.geometry);
hullBoneIndices,
);
geometry = geometry.clone();
smoothVertexNormals(geometry);
node.geometry = geometry;
} }
// Replace PBR materials with diffuse-only Lambert materials. // Replace PBR materials with diffuse-only Lambert materials.
@ -418,7 +462,7 @@ export function processShapeScene(
const vis: number = hasVisSequence ? 1 : (node.userData?.vis ?? 1); const vis: number = hasVisSequence ? 1 : (node.userData?.vis ?? 1);
if (Array.isArray(node.material)) { if (Array.isArray(node.material)) {
node.material = node.material.map((m: MeshStandardMaterial) => { node.material = node.material.map((m: MeshStandardMaterial) => {
const result = replaceWithShapeMaterial(m, vis, isOrganic); const result = replaceWithShapeMaterial(m, vis, isOrganic, options);
if (result.initialize) { if (result.initialize) {
iflInitializers.push({ mesh: node, initialize: result.initialize }); iflInitializers.push({ mesh: node, initialize: result.initialize });
} }
@ -430,7 +474,7 @@ export function processShapeScene(
return result.material; return result.material;
}); });
} else if (node.material) { } else if (node.material) {
const result = replaceWithShapeMaterial(node.material, vis, isOrganic); const result = replaceWithShapeMaterial(node.material, vis, isOrganic, options);
if (result.initialize) { if (result.initialize) {
iflInitializers.push({ mesh: node, initialize: result.initialize }); iflInitializers.push({ mesh: node, initialize: result.initialize });
} }
@ -451,6 +495,26 @@ export function processShapeScene(
return iflInitializers; return iflInitializers;
} }
/**
* Dispose all geometries and materials on a cloned scene graph.
* Textures are intentionally left alone since they're shared via caches.
*/
export function disposeClonedScene(root: Object3D): void {
root.traverse((node: any) => {
if (node.geometry) {
node.geometry.dispose();
}
if (node.material) {
const mats: Material[] = Array.isArray(node.material)
? node.material
: [node.material];
for (const mat of mats) {
mat.dispose();
}
}
});
}
export function entityTypeColor(type: string): string { export function entityTypeColor(type: string): string {
switch (type.toLowerCase()) { switch (type.toLowerCase()) {
case "player": case "player":

View file

@ -84,6 +84,8 @@ export interface TextureSetupOptions {
repeat?: [number, number]; repeat?: [number, number];
/** Disable mipmaps (for alpha-tested textures to prevent artifacts). Default: false */ /** Disable mipmaps (for alpha-tested textures to prevent artifacts). Default: false */
disableMipmaps?: boolean; disableMipmaps?: boolean;
/** Override anisotropy level. Default: max supported by the GPU. */
anisotropy?: number;
} }
/** /**
@ -97,13 +99,13 @@ export function setupTexture<T extends Texture>(
tex: T, tex: T,
options: TextureSetupOptions = {}, options: TextureSetupOptions = {},
): T { ): T {
const { repeat = [1, 1], disableMipmaps = false } = options; const { repeat = [1, 1], disableMipmaps = false, anisotropy } = options;
tex.wrapS = tex.wrapT = RepeatWrapping; tex.wrapS = tex.wrapT = RepeatWrapping;
tex.colorSpace = SRGBColorSpace; tex.colorSpace = SRGBColorSpace;
tex.repeat.set(...repeat); tex.repeat.set(...repeat);
tex.flipY = false; // DDS/DIF textures are already flipped tex.flipY = false; // DDS/DIF textures are already flipped
tex.anisotropy = 16; tex.anisotropy = anisotropy ?? 1;
if (disableMipmaps) { if (disableMipmaps) {
// Disable mipmaps - prevents checkerboard artifacts on alpha-tested materials // Disable mipmaps - prevents checkerboard artifacts on alpha-tested materials