1 line
13 KiB
JSON

[{"data":1,"prerenderedAt":580},["ShallowReactive",2],{"navigation_docs":3,"-client-addons-actor":145,"-client-addons-actor-surround":575},[4,27,41,93],{"title":5,"path":6,"stem":7,"children":8,"icon":26},"Getting Started","\u002Fgetting-started","1.getting-started\u002F0.index",[9,10,14,18,22],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Framework Architecture","\u002Fgetting-started\u002Farchitecture","1.getting-started\u002F1.architecture",{"title":15,"path":16,"stem":17},"Module Reference","\u002Fgetting-started\u002Fmodule-reference","1.getting-started\u002F2.module-reference",{"title":19,"path":20,"stem":21},"Development Guide","\u002Fgetting-started\u002Fdevelopment","1.getting-started\u002F3.development",{"title":23,"path":24,"stem":25},"SurrealDB Setup","\u002Fgetting-started\u002Fsurrealdb-setup","1.getting-started\u002F4.surrealdb-setup","i-lucide-rocket",{"title":28,"path":29,"stem":30,"children":31},"Forge Server Extension","\u002Fserver-extension","2.server-extension\u002F0.index",[32,33,37],{"title":28,"path":29,"stem":30},{"title":34,"path":35,"stem":36},"Forge Server API Reference","\u002Fserver-extension\u002Fapi-reference","2.server-extension\u002F1.api-reference",{"title":38,"path":39,"stem":40},"Forge Server Usage Examples","\u002Fserver-extension\u002Fusage-examples","2.server-extension\u002F2.usage-examples",{"title":42,"path":43,"stem":44,"children":45,"icon":92},"Server Modules","\u002Fserver-modules","3.server-modules\u002F0.index",[46,48,52,56,60,64,68,72,76,80,84,88],{"title":47,"path":43,"stem":44},"Server Module Guides",{"title":49,"path":50,"stem":51},"Actor Usage Guide","\u002Fserver-modules\u002Factor","3.server-modules\u002F1.actor",{"title":53,"path":54,"stem":55},"Store Usage Guide","\u002Fserver-modules\u002Fstore","3.server-modules\u002F10.store",{"title":57,"path":58,"stem":59},"Task Usage Guide","\u002Fserver-modules\u002Ftask","3.server-modules\u002F11.task",{"title":61,"path":62,"stem":63},"Bank Usage Guide","\u002Fserver-modules\u002Fbank","3.server-modules\u002F2.bank",{"title":65,"path":66,"stem":67},"CAD Usage Guide","\u002Fserver-modules\u002Fcad","3.server-modules\u002F3.cad",{"title":69,"path":70,"stem":71},"Economy Usage Guide","\u002Fserver-modules\u002Feconomy","3.server-modules\u002F4.economy",{"title":73,"path":74,"stem":75},"Garage Usage Guide","\u002Fserver-modules\u002Fgarage","3.server-modules\u002F5.garage",{"title":77,"path":78,"stem":79},"Locker Usage Guide","\u002Fserver-modules\u002Flocker","3.server-modules\u002F6.locker",{"title":81,"path":82,"stem":83},"Organization Usage Guide","\u002Fserver-modules\u002Forganization","3.server-modules\u002F7.organization",{"title":85,"path":86,"stem":87},"Owned Storage Usage Guide","\u002Fserver-modules\u002Fowned-storage","3.server-modules\u002F8.owned-storage",{"title":89,"path":90,"stem":91},"Phone Usage Guide","\u002Fserver-modules\u002Fphone","3.server-modules\u002F9.phone","i-lucide-layers-3",{"title":94,"path":95,"stem":96,"children":97,"icon":144},"Client Addons","\u002Fclient-addons","4.client-addons\u002F0.index",[98,100,104,108,112,116,120,124,128,132,136,140],{"title":99,"path":95,"stem":96},"Client Usage Guide",{"title":101,"path":102,"stem":103},"Client Main Usage Guide","\u002Fclient-addons\u002Fmain","4.client-addons\u002F1.main",{"title":105,"path":106,"stem":107},"Client Phone Usage Guide","\u002Fclient-addons\u002Fphone","4.client-addons\u002F10.phone",{"title":109,"path":110,"stem":111},"Client Store Usage Guide","\u002Fclient-addons\u002Fstore","4.client-addons\u002F11.store",{"title":113,"path":114,"stem":115},"Client Common Usage Guide","\u002Fclient-addons\u002Fcommon","4.client-addons\u002F2.common",{"title":117,"path":118,"stem":119},"Client Actor Usage Guide","\u002Fclient-addons\u002Factor","4.client-addons\u002F3.actor",{"title":121,"path":122,"stem":123},"Client Bank Usage Guide","\u002Fclient-addons\u002Fbank","4.client-addons\u002F4.bank",{"title":125,"path":126,"stem":127},"Client CAD Usage Guide","\u002Fclient-addons\u002Fcad","4.client-addons\u002F5.cad",{"title":129,"path":130,"stem":131},"Client Garage Usage Guide","\u002Fclient-addons\u002Fgarage","4.client-addons\u002F6.garage",{"title":133,"path":134,"stem":135},"Client Locker Usage Guide","\u002Fclient-addons\u002Flocker","4.client-addons\u002F7.locker",{"title":137,"path":138,"stem":139},"Client Notifications Usage Guide","\u002Fclient-addons\u002Fnotifications","4.client-addons\u002F8.notifications",{"title":141,"path":142,"stem":143},"Client Organization Usage Guide","\u002Fclient-addons\u002Forganization","4.client-addons\u002F9.organization","i-lucide-monitor-smartphone",{"id":146,"title":117,"body":147,"description":157,"extension":569,"links":570,"meta":571,"navigation":572,"path":118,"seo":573,"stem":119,"__hash__":574},"docs\u002F4.client-addons\u002F3.actor.md",{"type":148,"value":149,"toc":560},"minimark",[150,154,158,163,180,195,199,208,211,230,233,242,245,254,258,261,269,272,370,376,380,507,510,514,517,521,556],[151,152,117],"h1",{"id":153},"client-actor-usage-guide",[155,156,157],"p",{},"The client actor addon owns the player interaction menu and client-side actor\nrepository. It is the main launcher for nearby player actions and other Forge\nclient UIs.",[159,160,162],"h2",{"id":161},"open-the-actor-menu","Open the Actor Menu",[164,165,170],"pre",{"className":166,"code":167,"language":168,"meta":169,"style":169},"language-sqf shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","call forge_client_actor_fnc_openUI;\n","sqf","",[171,172,173],"code",{"__ignoreMap":169},[174,175,178],"span",{"class":176,"line":177},"line",1,[174,179,167],{},[155,181,182,183,186,187,190,191,194],{},"The actor menu opens ",[171,184,185],{},"RscActorMenu",", loads ",[171,188,189],{},"ui\u002F_site\u002Findex.html",", and routes\nbrowser alerts through ",[171,192,193],{},"forge_client_actor_fnc_handleUIEvents",".",[159,196,198],{"id":197},"repository","Repository",[155,200,201,204,205,194],{},[171,202,203],{},"forge_client_actor_fnc_initRepository"," creates ",[171,206,207],{},"GVAR(ActorRepository)",[155,209,210],{},"The repository:",[212,213,214,218,221,224,227],"ul",{},[215,216,217],"li",{},"requests actor initialization from the server",[215,219,220],{},"saves actor state through the server actor addon",[215,222,223],{},"caches client-visible actor fields",[215,225,226],{},"applies position, direction, stance, rank, and loadout on JIP sync when the\nrelevant settings allow it",[215,228,229],{},"provides nearby interaction actions to the browser UI",[155,231,232],{},"Initialize actor state through the repository:",[164,234,236],{"className":166,"code":235,"language":168,"meta":169,"style":169},"GVAR(ActorRepository) call [\"init\", []];\n",[171,237,238],{"__ignoreMap":169},[174,239,240],{"class":176,"line":177},[174,241,235],{},[155,243,244],{},"Save actor state through the server:",[164,246,248],{"className":166,"code":247,"language":168,"meta":169,"style":169},"GVAR(ActorRepository) call [\"save\", [true]];\n",[171,249,250],{"__ignoreMap":169},[174,251,252],{"class":176,"line":177},[174,253,247],{},[159,255,257],{"id":256},"nearby-actions","Nearby Actions",[155,259,260],{},"The menu asks for nearby actions with:",[164,262,267],{"className":263,"code":265,"language":266,"meta":169},[264],"language-text","actor::get::actions\n","text",[171,268,265],{"__ignoreMap":169},[155,270,271],{},"The repository scans objects within 5 meters and returns actions based on\nmission object variables:",[273,274,275,288],"table",{},[276,277,278],"thead",{},[279,280,281,285],"tr",{},[282,283,284],"th",{},"Variable",[282,286,287],{},"Action",[289,290,291,302,312,322,332,342,352,362],"tbody",{},[279,292,293,299],{},[294,295,296],"td",{},[171,297,298],{},"storeType",[294,300,301],{},"store",[279,303,304,309],{},[294,305,306],{},[171,307,308],{},"isAtm",[294,310,311],{},"ATM",[279,313,314,319],{},[294,315,316],{},[171,317,318],{},"isBank",[294,320,321],{},"bank",[279,323,324,329],{},[294,325,326],{},[171,327,328],{},"isGarage",[294,330,331],{},"garage",[279,333,334,339],{},[294,335,336],{},[171,337,338],{},"garageType",[294,340,341],{},"garage subtype",[279,343,344,349],{},[294,345,346],{},[171,347,348],{},"isLocker",[294,350,351],{},"virtual arsenal action when VA is enabled",[279,353,354,359],{},[294,355,356],{},[171,357,358],{},"deviceType",[294,360,361],{},"device action placeholder",[279,363,364,367],{},[294,365,366],{},"nearby player unit",[294,368,369],{},"player interaction placeholder",[155,371,372,373,194],{},"The response is pushed into the browser with ",[171,374,375],{},"updateAvailableActions(...)",[159,377,379],{"id":378},"browser-events","Browser Events",[273,381,382,392],{},[276,383,384],{},[279,385,386,389],{},[282,387,388],{},"Event",[282,390,391],{},"Client behavior",[289,393,394,404,414,424,434,444,454,464,474,487,497],{},[279,395,396,401],{},[294,397,398],{},[171,399,400],{},"actor::get::actions",[294,402,403],{},"Refresh nearby actions.",[279,405,406,411],{},[294,407,408],{},[171,409,410],{},"actor::close::menu",[294,412,413],{},"Close actor menu.",[279,415,416,421],{},[294,417,418],{},[171,419,420],{},"actor::open::atm",[294,422,423],{},"Open bank UI in ATM mode.",[279,425,426,431],{},[294,427,428],{},[171,429,430],{},"actor::open::bank",[294,432,433],{},"Open bank UI in bank mode.",[279,435,436,441],{},[294,437,438],{},[171,439,440],{},"actor::open::cad",[294,442,443],{},"Open CAD UI.",[279,445,446,451],{},[294,447,448],{},[171,449,450],{},"actor::open::garage",[294,452,453],{},"Open garage UI.",[279,455,456,461],{},[294,457,458],{},[171,459,460],{},"actor::open::vgarage",[294,462,463],{},"Open virtual garage.",[279,465,466,471],{},[294,467,468],{},[171,469,470],{},"actor::open::org",[294,472,473],{},"Open organization UI.",[279,475,476,481],{},[294,477,478],{},[171,479,480],{},"actor::open::vlocker",[294,482,483,484,194],{},"Open ACE arsenal on ",[171,485,486],{},"FORGE_Locker_Box",[279,488,489,494],{},[294,490,491],{},[171,492,493],{},"actor::open::phone",[294,495,496],{},"Open phone UI.",[279,498,499,504],{},[294,500,501],{},[171,502,503],{},"actor::open::store",[294,505,506],{},"Open store UI.",[155,508,509],{},"Device and player interaction events currently display placeholder feedback.",[159,511,513],{"id":512},"authoritative-state","Authoritative State",[155,515,516],{},"Actor persistence is server-owned. The client repository requests and displays\nactor data, but actor creation, durable updates, and hot-state behavior are\nhandled by the server actor addon and extension.",[159,518,520],{"id":519},"related-guides","Related Guides",[212,522,523,528,532,536,540,544,548,552],{},[215,524,525],{},[526,527,49],"a",{"href":50},[215,529,530],{},[526,531,121],{"href":122},[215,533,534],{},[526,535,125],{"href":126},[215,537,538],{},[526,539,129],{"href":130},[215,541,542],{},[526,543,133],{"href":134},[215,545,546],{},[526,547,141],{"href":142},[215,549,550],{},[526,551,105],{"href":106},[215,553,554],{},[526,555,109],{"href":110},[557,558,559],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":169,"searchDepth":561,"depth":561,"links":562},2,[563,564,565,566,567,568],{"id":161,"depth":561,"text":162},{"id":197,"depth":561,"text":198},{"id":256,"depth":561,"text":257},{"id":378,"depth":561,"text":379},{"id":512,"depth":561,"text":513},{"id":519,"depth":561,"text":520},"md",null,{},true,{"title":117,"description":157},"CeusWIDeAc6KDGfoUngW1_lAMAWRX8g6N17xG10V1Tc",[576,578],{"title":113,"path":114,"stem":115,"description":577,"children":-1},"The client common addon contains shared browser UI bridge declarations and\ncommon client-side browser integration patterns.",{"title":121,"path":122,"stem":123,"description":579,"children":-1},"The client bank addon opens the bank and ATM browser UI, forwards banking\nrequests to the server bank addon, and pushes account updates back into the\nbrowser.",1776806627742]