1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39346],{16965:(e,t,r)=>{r.r(t),r.d(t,{default:()=>m});var n=r(95155),a=r(7534),l=r(98909),o=r(34170),s=r(43646),i=r(12115),u=r(24832),d=r(92414),c=r(61415),p=r(10416);let f=Math.PI/4;function g(e,t){return t<=0?e:Math.round(e/t)*t}let m=()=>{let e=(0,o.ur)(e=>e.selection.levelId),[t,r]=(0,i.useState)(null),[m,v]=(0,i.useState)(0),S=(0,i.useRef)(0),h=(0,i.useMemo)(()=>a.JSC.parse({...c.k.defaults(),name:"Furnace"}),[]),x=(0,i.useMemo)(()=>{let e=(0,p.l)(h);return e.traverse(e=>{e.material&&(e.material.transparent=!0,e.material.opacity=.55)}),e},[h]);return((0,i.useEffect)(()=>{if(!e)return;let t=e=>(0,u._)((e=>{let t=(0,l.Tck)()?l.hGv.getState().gridSnapStep:0;return[g(e.localPosition[0],t),0,g(e.localPosition[2],t)]})(e),{applySnap:(0,l.rrt)(),bypass:!1}),n=e=>r(t(e)),s=r=>{let n=t(r),s=a.JSC.parse({...c.k.defaults(),name:"Furnace",position:n,rotation:S.current,parentId:e}),i=a.JSC.parse({...s,...(0,a.KOU)(s,a.YJj.getState().nodes)});a.YJj.getState().createNode(i,e),o.ur.getState().setSelection({selectedIds:[i.id]}),(0,l.oIO)("sfx:item-place")},i=e=>{var t;let r=null==(t=e.target)?void 0:t.tagName;if("INPUT"===r||"TEXTAREA"===r)return;let n=e.key;if("r"!==n&&"R"!==n&&"t"!==n&&"T"!==n)return;e.preventDefault(),e.stopPropagation();let a="t"===n||"T"===n||e.shiftKey?-1:1;S.current+=a*f,v(S.current),(0,l.oIO)("sfx:item-rotate")};return a.PDs.on("grid:move",n),a.PDs.on("grid:click",s),window.addEventListener("keydown",i,!0),()=>{a.PDs.off("grid:move",n),a.PDs.off("grid:click",s),window.removeEventListener("keydown",i,!0),(0,u.N)()}},[e]),e&&t)?(0,n.jsxs)(d.N,{children:[(0,n.jsx)("group",{position:t,rotation:[0,m,0],children:(0,n.jsx)("primitive",{object:x})}),(0,n.jsx)(s.E,{center:!0,position:[t[0],t[1]+h.height+.4,t[2]],style:{pointerEvents:"none",userSelect:"none"},zIndexRange:[100,0],children:(0,n.jsx)("div",{className:"flex items-center gap-2 whitespace-nowrap rounded-full border border-border/60 bg-background/90 px-4 py-1.5 text-xs tabular-nums shadow-sm backdrop-blur",children:(0,n.jsx)("span",{className:"font-medium text-foreground",children:"R/T rotate"})})})]}):null}},24832:(e,t,r)=>{r.d(t,{N:()=>l,_:()=>a});
1var n=r(98909);function a(e,t){if(t.bypass)return n.wvN.getState().clear(),e;let[r,a]=(0,n.ot3)([e[0],e[2]],{applySnap:t.applySnap});return[r,e[1],a]}function l(){n.wvN.getState().clear()}},92414:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(95155),a=r(7534),l=r(34170),o=r(69037),s=r(12115);function i(e){let{children:t}=e,r=(0,l.ur)(e=>e.selection.levelId),i=(0,s.useRef)(null);return(0,o.D)(()=>{let e=i.current;if(!e)return;let t=r?a.uKV.nodes.get(r):null;e.position.y=t?t.position.y:0}),(0,n.jsx)("group",{ref:i,children:t})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.