{"mappings":"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","sources":["src/editor.js"],"sourcesContent":["const editor = {\r\n tab: localStorage.getItem('tab') || 'items',\r\n page: 0,\r\n selectedItem: 0,\r\n actorItem: 0,\r\n originResultItem: 0,\r\n actorResultItem: 0,\r\n workingItem: null,\r\n workingRecipe: null,\r\n offX: 0,\r\n offY: 0,\r\n targetX: 0,\r\n targetY: 0,\r\n};\r\n\r\nfunction getEditorInput(num) {\r\n return document.getElementById('editor-input-' + num);\r\n}\r\n\r\nfunction drawButton(x, y, w, h, t, callback) {\r\n const hovered = mouseIsWithin(x, y, w, h);\r\n if (hovered) {\r\n fill(200, 0, 200);\r\n } else {\r\n fill(100, 0, 100);\r\n }\r\n if (hovered && input.mouse[LEFT] === 1) {\r\n fill(255, 0, 255);\r\n callback();\r\n }\r\n rect(x, y, w, h);\r\n fill(255);\r\n textAlign(CENTER, CENTER);\r\n textFont(Fonts.bold);\r\n text(t, x + w / 2, y + h / 2 - 2);\r\n}\r\n\r\nfunction drawItemsPage() {\r\n if (!editor.cp437counts) {\r\n editor.cp437counts = {};\r\n for (const item of REGISTRY.items) {\r\n for (const display of item.display) {\r\n editor.cp437counts[display.character] = (editor.cp437counts[display.character] || 0) + 1;\r\n }\r\n }\r\n editor.cp437max = 0;\r\n for (const key in editor.cp437counts) {\r\n editor.cp437max = max(editor.cp437max, editor.cp437counts[key]);\r\n }\r\n }\r\n if (!editor.workingItem) {\r\n editor.workingItem = JSON.parse(JSON.stringify(REGISTRY.getItem(0)));\r\n delete editor.workingItem.id;\r\n editor.page = floor((REGISTRY.itemCount - 1) / 32);\r\n\r\n \r\n }\r\n fill(255);\r\n \r\n for (let i = 0; i < 32; i += 1) {\r\n \r\n textAlign(LEFT, TOP);\r\n \r\n const index = i + editor.page * 32;\r\n const selected = index === editor.selectedItem;\r\n\r\n if (index >= REGISTRY.itemCount) {\r\n break;\r\n }\r\n const item = REGISTRY.getItem(index);\r\n\r\n const offX = floor(i / 16) * width / 2;\r\n \r\n fill(selected ? 100 : (i % 2 === 0 ? 20 : 40));\r\n rect(offX, 64 + (i%16) * 32, width / 2, 32);\r\n fill(0);\r\n rect(offX + 4, 64 + (i%16) * 32 + 4, 24, 24);\r\n if (mouseIsWithin(offX + 0, 64 + (i%16) * 32, width / 2, 32) && input.mouse[LEFT] === 1) {\r\n editor.workingItem = JSON.parse(JSON.stringify(item));\r\n delete editor.workingItem.id;\r\n }\r\n drawItem(item.display, offX + 8, (i%16) * 32 + 72);\r\n textFont(Fonts.bold);\r\n fill(255);\r\n text('(' + index + ') ' + item.name, offX + 32, 64 + (i%16) * 32 + 6);\r\n noStroke();\r\n drawButton(offX + width / 2 - 320, 64 + (i%16) * 32 + 4, 84, 24, 'Select (O)', () => {\r\n editor.selectedItem = index;\r\n });\r\n drawButton(offX + width / 2 - 90, 64 + (i%16) * 32 + 4, 64, 24, 'Tree', () => {\r\n editor.selectedItem = index;\r\n editor.tab = 'tree';\r\n editor.targetX = 0;\r\n editor.targetY = 0;\r\n editor.offX = 0;\r\n editor.offY = 0;\r\n });\r\n if (editor.selectedItem > 0) {\r\n drawButton(offX + width / 2 - 232, 64 + (i%16) * 32 + 4, 40, 24, '(A)', () => {\r\n editor.actorItem = index;\r\n });\r\n drawButton(offX + width / 2 - 188, 64 + (i%16) * 32 + 4, 40, 24, '(OR)', () => {\r\n editor.originResultItem = index;\r\n });\r\n drawButton(offX + width / 2 - 144, 64 + (i%16) * 32 + 4, 40, 24, '(AR)', () => {\r\n editor.actorResultItem = index;\r\n });\r\n }\r\n \r\n if (selected) {\r\n stroke(255);\r\n noFill();\r\n rect(offX + width / 2 - 320, 64 + (i%16) * 32 + 4, 84, 24);\r\n }\r\n if (editor.actorItem === index) {\r\n stroke(255);\r\n noFill();\r\n rect(offX + width / 2 - 232, 64 + (i%16) * 32 + 4, 40, 24);\r\n } \r\n if (editor.originResultItem === index) {\r\n stroke(255);\r\n noFill();\r\n rect(offX + width / 2 - 188, 64 + (i%16) * 32 + 4, 40, 24);\r\n } \r\n if (editor.actorResultItem === index) {\r\n stroke(255);\r\n noFill();\r\n rect(offX + width / 2 - 144, 64 + (i%16) * 32 + 4, 40, 24);\r\n } \r\n noStroke();\r\n }\r\n if ((input.keys[RIGHT_ARROW] === 1 || input.keys['D'.charCodeAt(0)] === 1) && document.activeElement.tagName !== 'INPUT') {\r\n editor.page += 1;\r\n if (editor.page * 32 >= REGISTRY.itemCount) {\r\n editor.page -= 1;\r\n }\r\n } else if ((input.keys[LEFT_ARROW] === 1 || input.keys['A'.charCodeAt(0)] === 1) && document.activeElement.tagName !== 'INPUT') {\r\n editor.page -= 1;\r\n if (editor.page < 0) {\r\n editor.page = 0;\r\n }\r\n }\r\n drawButton(0, 64 + 32 * 16, 64, 32, 'PREV', () => {\r\n editor.page -= 1;\r\n if (editor.page < 0) {\r\n editor.page = 0;\r\n }\r\n });\r\n drawButton(64, 64 + 32 * 16, 64, 32, 'NEXT', () => {\r\n editor.page += 1;\r\n if (editor.page * 32 >= REGISTRY.itemCount) {\r\n editor.page -= 1;\r\n }\r\n });\r\n\r\n noFill();\r\n stroke(255);\r\n rect(128, 576, width - 128, height - 576 - 1);\r\n rect(128 + 16, 576 + 16, 140, 140);\r\n textSize(128);\r\n textAlign(LEFT, TOP);\r\n noStroke();\r\n drawItem(editor.workingItem.display, 128 + 22, 576 + 22);\r\n noStroke();\r\n textSize(16);\r\n for (let i = 0; i < editor.workingItem.display.length; i += 1) {\r\n drawButton(128 + 16 + i * 32, 576 + 16 + 140 + 8, 32, 32, i, () => {\r\n if (editor.workingItem.display.length > 1)\r\n editor.workingItem.display = [...editor.workingItem.display.slice(0, i), ...editor.workingItem.display.slice(i + 1)];\r\n });\r\n }\r\n drawButton(128 + 16, 576 + 16 + 140 + 40, 140, 32, '+', () => {\r\n editor.workingItem.display = [...editor.workingItem.display, {...editor.workingItem.display[editor.workingItem.display.length - 1]}]; \r\n });\r\n const lastDisplay = editor.workingItem.display[editor.workingItem.display.length - 1];\r\n fill(COLORS[lastDisplay.color]);\r\n textFont(Fonts.pixel);\r\n textSize(12);\r\n textAlign(LEFT, TOP);\r\n for (let i = 0; i < 256; i += 1) {\r\n const x = i % 16;\r\n const y = floor(i / 16);\r\n fill((editor.cp437counts[i] ?? 0) / editor.cp437max * 255);\r\n rect(300 + x * 12, 576 + 16 + y * 12, 12, 12);\r\n fill(COLORS[lastDisplay.color]);\r\n text(CP_437[i], 300 + x * 12, 576 + 16 + y * 12);\r\n if (i === lastDisplay.character) {\r\n stroke(255);\r\n noFill();\r\n rect(300 + x * 12, 576 + 16 + y * 12, 12, 12);\r\n noStroke();\r\n } \r\n if (mouseIsWithin(300 + x * 12, 576 + 16 + y * 12, 12, 12) && input.mouse[LEFT] === 1) {\r\n lastDisplay.character = i;\r\n }\r\n }\r\n for (let i = 0; i < 64; i += 1) {\r\n const x = i % 8;\r\n const y = floor(i / 8);\r\n fill(COLORS[i]);\r\n if (i === lastDisplay.color) {\r\n stroke(255);\r\n } else {\r\n noStroke();\r\n }\r\n rect(500 + x * 16 + 4, 576 + 16 + y * 16 + 4, 16, 16);\r\n if (mouseIsWithin(500 + x * 16 + 4, 576 + 16 + y * 16 + 4, 16, 16) && input.mouse[LEFT] === 1) {\r\n lastDisplay.color = i;\r\n }\r\n }\r\n textSize(16);\r\n fill(255);\r\n editor.workingItem.name = getEditorInput(0).value.trim();\r\n editor.workingItem.tags = getEditorInput(1).value.split(',').map(tag => tag.trim()).filter(tag => tag.length > 0);\r\n textAlign(LEFT, TOP);\r\n textFont(Fonts.regular);\r\n text('Name: `' + editor.workingItem.name + '`', 700, 576 + 16);\r\n text('Tags: ', 700, 576 + 40);\r\n text('Properties: ', 700, 576 + 100);\r\n let tagX = 0;\r\n for (const tag of editor.workingItem.tags) {\r\n fill(50);\r\n rect(750 + tagX, 576 + 40, textWidth(tag) + 16, 32);\r\n fill(255);\r\n text(tag, 750 + tagX + 8, 576 + 40 + 8);\r\n tagX += textWidth(tag) + 18;\r\n }\r\n tagX = 0;\r\n textFont(Fonts.bold);\r\n for (const key in editor.workingItem.properties) {\r\n const value = editor.workingItem.properties[key];\r\n const txt = `\"${key}\":${value}`;\r\n drawButton(800 + tagX, 576 + 100, textWidth(txt) + 16, 32, txt, () => {\r\n delete editor.workingItem.properties[key];\r\n })\r\n tagX += textWidth(txt) + 18;\r\n }\r\n textAlign(LEFT, TOP);\r\n textFont(Fonts.bold);\r\n text('NAME', width - 720, height - 60);\r\n text('TAGS', width - 545, height - 60);\r\n text('PROPERTY', width - 365, height - 60);\r\n text('VALUE', width - 190, height - 60);\r\n drawButton(width - 100, height - 70, 50, 24, 'ADD', () => {\r\n const value = parseInt(getEditorInput(3).value.trim());\r\n if (isNaN(value)) return;\r\n editor.workingItem.properties[getEditorInput(2).value.trim()] = value;\r\n getEditorInput(2).value = '';\r\n getEditorInput(3).value = '';\r\n });\r\n\r\n drawButton(500, height - 40, 200, 32, 'COPY TO CLIPBOARD', () => {\r\n navigator.clipboard.writeText(JSON.stringify(editor.workingItem));\r\n\r\n });\r\n}\r\n\r\nfunction drawRecipesPage() {\r\n if (!editor.workingRecipe) {\r\n let origin = [];\r\n if (editor.selectedItem > 0) {\r\n origin = [{ type: 'Is', data: editor.selectedItem }];\r\n }\r\n let actor = undefined;\r\n if (editor.actorItem > 0) {\r\n actor = {conditions: [{ type: 'Is', data: editor.actorItem }]};\r\n }\r\n let results = [{ origin: {type: ''}, actor: {type: ''}}];\r\n if (editor.actorResultItem > 0 || editor.originResultItem > 0) {\r\n let origin = { type: '', data: undefined };\r\n if (editor.originResultItem > 0) {\r\n origin = { \r\n type: editor.originResultItem === editor.selectedItem ? 'SameItem' : 'NewItem',\r\n data: editor.originResultItem === editor.selectedItem ? { op: '', ref: 0 } : editor.originResultItem\r\n };\r\n }\r\n let actor = { type: '', data: undefined }\r\n if (editor.actorResultItem > 0) {\r\n actor = { \r\n type: editor.actorResultItem === editor.actorItem ? 'SameItem' : 'NewItem',\r\n data: editor.actorResultItem === editor.actorItem ? { op: '', ref: 0 } : editor.actorResultItem\r\n };\r\n }\r\n results = [{ origin, actor }];\r\n }\r\n editor.workingRecipe = new Recipe(0, { conditions: origin }, results, { actor })\r\n delete editor.workingRecipe.id;\r\n }\r\n\r\n noFill();\r\n stroke(255);\r\n rect(100, 128, 140, 140);\r\n if (!editor.workingRecipe.time) {\r\n rect(300, 128, 140, 140);\r\n }\r\n for (let i = 0; i < editor.workingRecipe.results.length; i += 1) {\r\n rect(600, 128 + 240 * i, 140, 140);\r\n rect(800, 128 + 240 * i, 140, 140);\r\n }\r\n\r\n line(250, 200, 290, 200);\r\n line(270, 180, 270, 220);\r\n\r\n line(450, 200, 590, 200);\r\n line(570, 180, 590, 200);\r\n line(570, 220, 590, 200);\r\n textSize(128);\r\n textAlign(LEFT, TOP);\r\n noStroke();\r\n const originQuery = editor.workingRecipe.origin ? REGISTRY.query(editor.workingRecipe.origin) : [];\r\n const originItem = REGISTRY.getItem(originQuery[0] || 0);\r\n const actorQuery = editor.workingRecipe.actor ? REGISTRY.query(editor.workingRecipe.actor) : [];\r\n const actorItem = REGISTRY.getItem(actorQuery[0] || 0);\r\n drawItem(originItem.display, 104, 132);\r\n drawItem(actorItem.display, 304, 132);\r\n \r\n fill(255);\r\n textSize(16);\r\n textFont(Fonts.bold);\r\n text(originItem.name || '', 100, 80);\r\n if (!editor.workingRecipe.time) {\r\n textFont(Fonts.regular);\r\n text(actorItem.name || '' + ' (Hands)', 300, 100);\r\n } else {\r\n textFont(Fonts.bold);\r\n textAlign(CENTER, CENTER);\r\n textSize(16);\r\n text('TIME', 370, 120);\r\n textSize(32);\r\n text(editor.workingRecipe.time + 's', 370, 150);\r\n fill(200);\r\n textSize(16);\r\n textFont(Fonts.regular);\r\n text(floor(editor.workingRecipe.time / 60) + 'm, ' + floor(editor.workingRecipe.time / 3600) + 'h, ' + floor(editor.workingRecipe.time / 86400) + 'd', 370, 180);\r\n\r\n drawButton(380, 200, 40, 16, '+1s', () => {\r\n editor.workingRecipe.time += 1;\r\n });\r\n drawButton(320, 200, 40, 16, '-1s', () => {\r\n editor.workingRecipe.time -= 1;\r\n });\r\n drawButton(380, 220, 40, 16, '+1m', () => {\r\n editor.workingRecipe.time += 60;\r\n });\r\n drawButton(320, 220, 40, 16, '-1m', () => {\r\n editor.workingRecipe.time -= 60;\r\n });\r\n drawButton(380, 240, 40, 16, '+1h', () => {\r\n editor.workingRecipe.time += 3600;\r\n });\r\n drawButton(320, 240, 40, 16, '-1h', () => {\r\n editor.workingRecipe.time -= 3600;\r\n });\r\n drawButton(380, 260, 40, 16, '+1d', () => {\r\n editor.workingRecipe.time += 86400;\r\n });\r\n drawButton(320, 260, 40, 16, '-1d', () => {\r\n editor.workingRecipe.time -= 86400;\r\n });\r\n }\r\n\r\n \r\n\r\n textAlign(LEFT, TOP)\r\n for (let i = 0; i < editor.workingRecipe.results.length; i += 1) {\r\n const result = editor.workingRecipe.results[i];\r\n let origin = 0;\r\n if (result.origin.type === 'NewItem') {\r\n origin = result.origin.data;\r\n } else if (result.origin.type === 'SameItem') {\r\n origin = originItem.id;\r\n }\r\n let actor = 0;\r\n if (result.origin.type === 'NewItem') {\r\n actor = result.actor.data;\r\n } else if (result.origin.type === 'SameItem') {\r\n actor = actorItem.id;\r\n }\r\n const originResult = REGISTRY.getItem(origin);\r\n const actorResult = REGISTRY.getItem(actor);\r\n textAlign(LEFT, TOP);\r\n textSize(128);\r\n drawItem(originResult.display, 604, 132 + 240 * i);\r\n drawItem(actorResult.display, 804, 132 + 240 * i);\r\n\r\n \r\n fill(255);\r\n textSize(16);\r\n textFont(Fonts.bold);\r\n text(`${originResult.name || ''} (${result.origin.type || 'None'})`, 600, 80 + i * 240);\r\n textFont(Fonts.regular);\r\n text(`${actorResult.name || ''} (${result.actor.type || 'None'}) (Hands)`, 800, 100 + i * 240);\r\n\r\n textSize(8);\r\n drawButton(600, 270 + i * 240, 40, 20, 'NONE', () => {\r\n result.origin = { type: '' };\r\n });\r\n drawButton(640, 270 + i * 240, 40, 20, 'SAME', () => {\r\n result.origin = { type: 'SameItem', data: { op: '~', ref: 0 } };\r\n });\r\n drawButton(680, 270 + i * 240, 40, 20, 'NEW', () => {\r\n result.origin = { type: 'NewItem', data: editor.originResultItem };\r\n });\r\n\r\n drawButton(800, 270 + i * 240, 40, 20, 'NONE', () => {\r\n result.actor = { type: '' };\r\n });\r\n drawButton(840, 270 + i * 240, 40, 20, 'SAME', () => {\r\n result.actor = { type: 'SameItem', data: { op: '~', ref: 0 } };\r\n });\r\n drawButton(880, 270 + i * 240, 40, 20, 'NEW', () => {\r\n result.actor = { type: 'NewItem', data: editor.actorResultItem };\r\n });\r\n\r\n textSize(16);\r\n let j = 0;\r\n for (const op of ['~', '=', '+', '-']) {\r\n if (result.origin.type === 'SameItem') {\r\n drawButton(1000, 100 + i * 240 + j * 40, 30, 30, op, () => {\r\n result.origin.data.op = op;\r\n });\r\n }\r\n if (result.actor.type === 'SameItem') {\r\n drawButton(1200, 100 + i * 240 + j * 40, 30, 30, op, () => {\r\n result.actor.data.op = op;\r\n });\r\n }\r\n j += 1;\r\n }\r\n\r\n fill(255);\r\n textAlign(LEFT, TOP);\r\n if (result.origin.type === 'SameItem' && ['=', '+', '-'].includes(result.origin.data.op)) {\r\n text(result.origin.data.op + ' ' + result.origin.data.ref, 1050, 100 + i * 240);\r\n drawButton(1050, 150 + i * 240, 30, 30, '-1', () => {\r\n result.origin.data.ref -= 1;\r\n });\r\n drawButton(1050, 190 + i * 240, 30, 30, '+1', () => {\r\n result.origin.data.ref += 1;\r\n });\r\n drawButton(1090, 150 + i * 240, 30, 30, '-10', () => {\r\n result.origin.data.ref -= 10;\r\n });\r\n drawButton(1090, 190 + i * 240, 30, 30, '+10', () => {\r\n result.origin.data.ref += 10;\r\n });\r\n }\r\n if (result.actor.type === 'SameItem' && ['=', '+', '-'].includes(result.actor.data.op)) {\r\n text(result.actor.data.op + ' ' + result.actor.data.ref, 1250, 100 + i * 240);\r\n drawButton(1250, 150 + i * 240, 30, 30, '-1', () => {\r\n result.actor.data.ref -= 1;\r\n });\r\n drawButton(1250, 190 + i * 240, 30, 30, '+1', () => {\r\n result.actor.data.ref += 1;\r\n });\r\n drawButton(1290, 150 + i * 240, 30, 30, '-10', () => {\r\n result.actor.data.ref -= 10;\r\n });\r\n drawButton(1290, 190 + i * 240, 30, 30, '+10', () => {\r\n result.actor.data.ref += 10;\r\n });\r\n }\r\n textAlign(CENTER, CENTER);\r\n fill(255);\r\n if (editor.workingRecipe.results.length > 1) {\r\n result.chance = result.chance || 1;\r\n textSize(32);\r\n text(result.chance, 1400, 150 + i * 240);\r\n textSize(16);\r\n text('CHANCE', 1400, 120 + i * 240);\r\n drawButton(1355, 200 + i * 240, 40, 40, '-1', () => {\r\n result.chance -= 1;\r\n });\r\n drawButton(1405, 200 + i * 240, 40, 40, '+1', () => {\r\n result.chance += 1;\r\n });\r\n }\r\n }\r\n textSize(16);\r\n drawButton(600, 70 + editor.workingRecipe.results.length * 240, 340, 30, 'ADD', () => {\r\n editor.workingRecipe.results = [...editor.workingRecipe.results, JSON.parse(JSON.stringify(editor.workingRecipe.results[editor.workingRecipe.results.length - 1]))];\r\n });\r\n\r\n \r\n drawButton(300, 300, 100, 30, 'TIME', () => {\r\n editor.workingRecipe.time = 60;\r\n editor.workingRecipe.actor = undefined;\r\n editor.workingRecipe.actorValue = undefined;\r\n });\r\n drawButton(300, 330, 100, 30, 'ACTOR', () => {\r\n editor.workingRecipe.time = 0;\r\n editor.workingRecipe.actor = {conditions: [{ type: 'Is', data: editor.actorItem }]};\r\n });\r\n\r\n let i = 0;\r\n for (const type of ['~', '=', '<', '>', '<=', '>=']) {\r\n drawButton(100, 300 + i * 40, 30, 30, type, () => {\r\n if (i === 0) {\r\n editor.workingRecipe.originValue = undefined; \r\n return;\r\n } else {\r\n editor.workingRecipe.originValue = { op: type, ref: 0 };\r\n }\r\n });\r\n if (editor.workingRecipe.actor) {\r\n drawButton(300, 400 + i * 40, 30, 30, type, () => {\r\n if (i === 0) {\r\n editor.workingRecipe.actorValue = undefined; \r\n return;\r\n } else {\r\n editor.workingRecipe.actorValue = { op: type, ref: 0 };\r\n }\r\n })\r\n }\r\n i += 1;\r\n }\r\n\r\n fill(255);\r\n textFont(Fonts.bold);\r\n textSize(16);\r\n textAlign(LEFT, TOP);\r\n \r\n if (editor.workingRecipe.originValue) {\r\n text(editor.workingRecipe.originValue.op + ' ' + editor.workingRecipe.originValue.ref, 150, 300);\r\n drawButton(150, 350, 30, 30, '-1', () => {\r\n editor.workingRecipe.originValue.ref -= 1;\r\n });\r\n drawButton(190, 350, 30, 30, '+1', () => {\r\n editor.workingRecipe.originValue.ref += 1;\r\n });\r\n drawButton(150, 390, 30, 30, '-10', () => {\r\n editor.workingRecipe.originValue.ref -= 10;\r\n });\r\n drawButton(190, 390, 30, 30, '+10', () => {\r\n editor.workingRecipe.originValue.ref += 10;\r\n });\r\n }\r\n\r\n textAlign(LEFT, TOP);\r\n if (editor.workingRecipe.actorValue) {\r\n text(editor.workingRecipe.actorValue.op + ' ' + editor.workingRecipe.actorValue.ref, 350, 400);\r\n drawButton(350, 450, 30, 30, '-1', () => {\r\n editor.workingRecipe.actorValue.ref -= 1;\r\n });\r\n drawButton(390, 450, 30, 30, '+1', () => {\r\n editor.workingRecipe.actorValue.ref += 1;\r\n });\r\n drawButton(350, 490, 30, 30, '-10', () => {\r\n editor.workingRecipe.actorValue.ref -= 10;\r\n });\r\n drawButton(390, 490, 30, 30, '+10', () => {\r\n editor.workingRecipe.actorValue.ref += 10;\r\n });\r\n }\r\n\r\n drawButton(100, 600, 200, 40, 'COPY TO CLIPBOARD', () => {\r\n navigator.clipboard.writeText(JSON.stringify(editor.workingRecipe));\r\n })\r\n\r\n textAlign(LEFT, TOP);\r\n text('ORIGIN', width - 720, height - 60);\r\n text('ACTOR', width - 545, height - 60);\r\n}\r\n\r\n\r\n\r\nfunction drawTreePage() {\r\n\r\n translate(width / 2 + editor.offX, height / 2 - 200 + editor.offY);\r\n if (input.mouse[LEFT] >= 1) {\r\n editor.targetX += mouseX - pmouseX;\r\n editor.targetY += mouseY - pmouseY;\r\n }\r\n editor.offX = lerp(editor.offX, editor.targetX, 0.5);\r\n editor.offY = lerp(editor.offY, editor.targetY, 0.5);\r\n\r\n\r\n function treeWidth(id, depth = 0) {\r\n if (id === 0 || depth > 10) {\r\n return 1;\r\n }\r\n const item = REGISTRY.getItem(id);\r\n if (item.tags.includes('root') || item.tags.includes('natural')) {\r\n return 1;\r\n }\r\n if (item.resultedBy.length === 0) {\r\n return 1;\r\n }\r\n const recipe = item.resultedBy[0];\r\n if (recipe.getAnActor() === 0) {\r\n return 1;\r\n }\r\n return treeWidth(recipe.getAnOrigin(), depth + 1) + treeWidth(recipe.getAnActor(), depth + 1) + 1;\r\n }\r\n\r\n function drawTree(id, x, y, time = 0, depth = 0) {\r\n noFill();\r\n stroke(255);\r\n rect(x - 10, y - 10, 20, 20);\r\n noStroke();\r\n if (id === -1) {\r\n const dispTime = time > 86400 ? floor(time / 86400) + 'd' : time > 3600 ? floor(time / 3600) + 'h' : time > 60 ? floor(time / 60) + 'm' : time + 's';\r\n fill(255);\r\n textAlign(CENTER, CENTER);\r\n textFont(Fonts.bold);\r\n textSize(8);\r\n text(dispTime, x, y);\r\n return;\r\n }\r\n const item = REGISTRY.getItem(id);\r\n textSize(16);\r\n textAlign(LEFT, TOP);\r\n drawItem(item.display, x - 8, y - 8);\r\n textSize(8);\r\n textAlign(CENTER, BOTTOM);\r\n textFont(Fonts.regular)\r\n fill(255);\r\n text(item.name, x, y - 12);\r\n if (depth > 10 || item.resultedBy.length === 0 || item.tags.includes('root') || item.tags.includes('natural')) {\r\n return;\r\n }\r\n\r\n noFill();\r\n stroke(255);\r\n line(x, y + 10, x, y + 30);\r\n line(x - 5, y + 15, x, y + 10);\r\n line(x + 5, y + 15, x, y + 10);\r\n \r\n const origin = item.resultedBy[0].getAnOrigin();\r\n const actor = item.resultedBy[0].getAnActor();\r\n const isTimed = item.resultedBy[0].time > 0;\r\n if (actor === 0 && !isTimed) {\r\n line(x, y + 30, x, y + 60);\r\n drawTree(origin, x, y + 60, 0, depth + 1);\r\n return;\r\n }\r\n \r\n const leftWidth = treeWidth(origin);\r\n const rightWidth = isTimed ? 1 : treeWidth(actor, depth);\r\n const leftX = x - leftWidth * 20;\r\n const rightX = x + rightWidth * 20;\r\n line(x, y + 30, leftX, y + 30);\r\n line(leftX, y + 30, leftX, y + 40);\r\n line(x, y + 30, rightX, y + 30);\r\n line(rightX, y + 30, rightX, y + 40);\r\n drawTree(origin, leftX, y + 60, 0, depth + 1);\r\n if (!isTimed) {\r\n drawTree(actor, rightX, y + 60, 0, depth + 1);\r\n } else {\r\n drawTree(-1, rightX, y + 60, item.resultedBy[0].time, depth + 1);\r\n }\r\n }\r\n\r\n drawTree(editor.selectedItem, 0, 0);\r\n}\r\n\r\nfunction drawEditor() {\r\n background(0);\r\n textFont(Fonts.bold);\r\n textSize(16);\r\n fill(255);\r\n noStroke();\r\n textAlign(LEFT, TOP);\r\n text('EDITOR', 4, 4);\r\n \r\n drawButton(0, 32, 64, 32, 'ITEMS', () => {\r\n editor.workingRecipe = null;\r\n editor.workingItem = null;\r\n editor.selectedItem = 0;\r\n editor.actorItem = 0;\r\n editor.actorResultItem = 0;\r\n editor.originResultItem = 0;\r\n editor.tab = 'items';\r\n localStorage.setItem('tab', 'items');\r\n });\r\n const goToRecipes = () => {\r\n editor.tab = 'recipes';\r\n editor.workingRecipe = null;\r\n editor.workingItem = null;\r\n };\r\n if (input.keys['R'.charCodeAt(0)] === 1 && document.activeElement.tagName !== 'INPUT') {\r\n goToRecipes();\r\n }\r\n drawButton(64, 32, 128, 32, 'RECIPES', goToRecipes);\r\n if (editor.tab === 'items') {\r\n drawItemsPage();\r\n } else if (editor.tab === 'recipes') {\r\n drawRecipesPage();\r\n } else if (editor.tab === 'tree') {\r\n drawTreePage();\r\n }\r\n}"],"names":[],"version":3,"file":"index.b121d1ad.js.map","sourceRoot":"/__parcel_source_root/"}