@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
1 lines • 3.67 kB
JavaScript
"use strict";(self.webpackChunkmctools_app=self.webpackChunkmctools_app||[]).push([[616],{5616:(e,t,s)=>{s.d(t,{default:()=>c});var a=s(74848),i=s(96540),l=s(90904),h=s(76033),n=s(14466);const d=["bow","crossbow","diamond_chestplate","diamond_helmet","iron_chestplate","shield","trident"];class c extends i.Component{_attachableIds=[];constructor(e){super(e),this.state={isLoaded:!1,currentItemIndex:0,currentAttachableTypeId:"",isHeadless:"true"===new URLSearchParams(window.location.search).get("headless")},this._handleNextItem=this._handleNextItem.bind(this),this._handlePrevItem=this._handlePrevItem.bind(this),this._handleItemSelect=this._handleItemSelect.bind(this)}async componentDidMount(){await this._loadItemList()}_getItemFromUrl(){return new URLSearchParams(window.location.search).get("item")||void 0}async _loadItemList(){try{this._attachableIds=await h.A.getVanillaAttachableTypeIds(),0===this._attachableIds.length&&(this._attachableIds=[...d]);const e=this._getItemFromUrl()||this.props.itemId;let t=0;if(e){const s=this._attachableIds.findIndex(t=>t===e);s>=0&&(t=s)}const s=this._attachableIds[t]||"";this.setState({isLoaded:!0,currentItemIndex:t,currentAttachableTypeId:s?`minecraft:${s}`:""})}catch(e){n.Ay.verbose("Failed to load item list: "+e),this._attachableIds=[...d],this._attachableIds.sort(),this.setState({isLoaded:!0,currentItemIndex:0,currentAttachableTypeId:"minecraft:bow",errorMessage:`Using fallback item list: ${e}`})}}_handleNextItem(){const{currentItemIndex:e}=this.state;if(e<this._attachableIds.length-1){const t=e+1,s=this._attachableIds[t];this.setState({currentItemIndex:t,currentAttachableTypeId:`minecraft:${s}`,errorMessage:void 0})}}_handlePrevItem(){const{currentItemIndex:e}=this.state;if(e>0){const t=e-1,s=this._attachableIds[t];this.setState({currentItemIndex:t,currentAttachableTypeId:`minecraft:${s}`,errorMessage:void 0})}}_handleItemSelect(e){const t=parseInt(e.target.value,10),s=this._attachableIds[t];this.setState({currentItemIndex:t,currentAttachableTypeId:`minecraft:${s}`,errorMessage:void 0})}render(){const{heightOffset:e}=this.props,{isLoaded:t,currentItemIndex:s,currentAttachableTypeId:i,errorMessage:h,isHeadless:n}=this.state;return n?(0,a.jsx)("div",{className:"mv-container mv-headless",style:{height:"100vh",width:"100vw"},children:i&&(0,a.jsx)(l.default,{heightOffset:0,attachableTypeId:i,readOnly:!0})}):(0,a.jsxs)("div",{className:"mv-container",style:{height:`calc(100vh - ${e}px)`},children:[t?(0,a.jsxs)("div",{className:"mv-toolbar",children:[(0,a.jsx)("button",{className:"mv-button",onClick:this._handlePrevItem,disabled:s<=0,children:"← Prev"}),(0,a.jsx)("select",{className:"mv-select",value:s,onChange:this._handleItemSelect,disabled:!t,"aria-label":"Select item",children:this._attachableIds.map((e,t)=>(0,a.jsx)("option",{value:t,children:e},e))}),(0,a.jsx)("button",{className:"mv-button",onClick:this._handleNextItem,disabled:s>=this._attachableIds.length-1,children:"Next →"}),(0,a.jsxs)("span",{className:"mv-info",children:["Item ",s+1," of ",this._attachableIds.length]})]}):(0,a.jsx)("div",{className:"mv-toolbar",children:(0,a.jsx)("span",{className:"mv-info",children:"Loading items..."})}),(0,a.jsxs)("div",{className:"mv-mob-info",children:[(0,a.jsx)("h2",{children:this._attachableIds[s]||"Loading..."}),(0,a.jsx)("div",{className:"mv-mob-details",children:(0,a.jsxs)("span",{children:["Type ID: ",i]})})]}),h&&(0,a.jsx)("div",{className:"mv-error",children:h}),i&&(0,a.jsx)(l.default,{heightOffset:e+120,attachableTypeId:i,readOnly:!0}),(0,a.jsx)("div",{className:"mv-footer",children:(0,a.jsx)("p",{children:"Use mouse to rotate, scroll to zoom"})})]})}}}}]);