feat: 发布咸鱼喵喵全能助手,加入全收集地图与图文说明

This commit is contained in:
Kitasami_Nya
2026-10-24 01:37:15 +08:00
parent 8f6ac4ff04
commit 3823e38b07
39 changed files with 2918 additions and 194 deletions
+15
View File
@@ -0,0 +1,15 @@
const test=require('node:test');
const assert=require('node:assert/strict');
const vm=require('node:vm');
const {readItemIcons}=require('../lib/item-icons');
test('item thumbnails use the native icon frames without creating sprites or writing files',async()=>{
const draws=[];
const bitmap={width:384,height:192,isReady:()=>true,canvas:{source:true}};
const c=vm.createContext({items:[{type:'consumables',id:0},{type:'ornaments',id:25}],setTimeout,clearTimeout,
Sprite_ItemIcon:{prototype:{itemBitmap:()=>bitmap,refreshIdx(id){this.setFrame(id===25?32:0,id===25?160:32,32,32);}}},
document:{createElement:()=>({getContext:()=>({drawImage(...args){draws.push(args.slice(1));}}),toDataURL:()=> 'data:image/png;base64,dGVzdA=='})}});
const result=JSON.parse(await vm.runInContext(`(${readItemIcons.toString()})(items).then(JSON.stringify)`,c));
assert.equal(result.ok,true);assert.equal(Object.keys(result.icons).length,2);
assert.deepEqual(draws[0],[0,32,32,32,0,0,32,32]);assert.deepEqual(draws[1],[32,160,32,32,0,0,32,32]);
});