@ adatechnology/ game- items- 货物
现实世界项目目录 @adatechnology/game-items数字 : 327个项目 及其真实大小(米)和重量(公斤),加上发动机使用它们所需的一切
(17个类别,24个位置,17个容器,6个稀有物,7个储存种类,33个食谱,9个使用效果,房屋家具的显性池,耗竭和产卵数量,弹药箱,
melee到达和噪音)和pt-BR(团队自有名称)和en. 它是数据和一个细打字包:没有逻辑,没有渲染器,没有游戏.
数据是 生成 以 tools/items-catalog 取自 Vale Cinzento 送出 (Itens page, 游戏, 3D 房屋取景器) 和 SDK 的家庭项目; 不编辑
src/data/*.json 手动(但 src/data/locales/en.json英文译本, kinds.json, (中文(简体) ), item-contracts.json 财务报告和审定财务报表 known-gaps.json每件物品的种类会增加多少 tools/items-catalog/kinds-overlay.json) (中文(简体) ). 运行 pnpm --filter @adatechnology/items-catalog-tool catalog 更改后 decisions.json。 。 。 .
安装
pnpm add @adatechnology/game-items @adatechnology/game-items-goods
一个平地 <script src=".../dist/index.global.js"> 揭露 GameItemsGoods global (引擎捆绑在一起).
使用量
import { createGoodsItems, goodsPack, GOODS_STRINGS, goodsText } from '@adatechnology/game-items-goods'
import { createItems, createFindsProvider } from '@adatechnology/game-items'
const items = createGoodsItems({ patch: { canned_beans: { weight: 0.5 } }, remove: ['dvd'] }) // goods first, then your packs and options
// the same, by hand: createItems({ packs: [goodsPack, myPack], ... })
items.get('hammer').size // [w, h, d] in metres
createFindsProvider(items).findsFor({ place: 'house', container: 'fridge', state: 'normal', rng, day: 0 })
goodsText('item.canned_beans', 'pt-BR') // 'Feijão em lata'
GOODS_STRINGS.en['place.pharmacy'] // 'Pharmacy'
里面有什么东西
| 导出 | 内容 |
|---|---|
goodsPack, (中文(简体) ), createGoodsItems(options?) | 页:1 ItemPack (物品、类别、地点、容器、使用效果、食谱、池)和 createItems 先用这个 |
GOODS_ITEMS, (中文(简体) ), GOODS_CATEGORIES, (中文(简体) ), GOODS_PLACES, (中文(简体) ), GOODS_CONTAINERS, (中文(简体) ), GOODS_RECIPES, (中文(简体) ), GOODS_USE_EFFECTS | 输入的数据 |
GOODS_HOUSE_POOLS | 由 3D 查看器的家具密钥, 加上共享的密钥 |
GOODS_TABLES | 日数、储存量、消耗量、产卵数量和母体统计值(按 DEFAULT_RULES 通过测试证明发动机与它们相等) |
GOODS_ARSENAL_RECORDS | 弹药箱、三把火器和两把可以扔的游戏 EXTRA,用于 itemsFromArsenal(arsenal, { records }) |
GOODS_PROVENANCE | 每个项目:团队代号,家庭代号,观看者池类型,游戏代号,以及代号与度量的出处 |
GOODS_KINDS, (中文(简体) ), createGoodsKinds(options?), (中文(简体) ), checkGoodsItems(options?), (中文(简体) ), ITEM_CONTRACTS, (中文(简体) ), createItemContracts(options?), (中文(简体) ), GOODS_KNOWN_GAPS | 种类树、其登记、目录验证器、合同核对器和允许的空白 |
GOODS_STRINGS, (中文(简体) ), goodsText(key, locale?), (中文(简体) ), pickGoodsLocale | 按密钥排列的文本 : item.<id>, (中文(简体) ), kind.<id>, (中文(简体) ), kind.<id>.description, (中文(简体) ), category.<id>, (中文(简体) ), place.<id>, (中文(简体) ), rarity.<id>, (中文(简体) ), container.<id>, (中文(简体) ), recipe.<id> |
物品从哪里来
327 = 团队的245个(其他12个团队项目为属于游戏的故事项目)+54个没有团队等同的家用项目+28个所需的目录项目(集合条目和食谱术语)
(资料来源不足)。 38个家用物品被与相当于他们的团队合并,并保留家庭身份。 度量衡是家庭拥有一个, 模型盒乘以24的正比分
模拟项目和其余项目的参考措施provenance.sizeSource) (中文(简体) ). 故事项目(日记,军事地图,疏散命令. )不在这里:它们生活在游戏的切片中.
添加项目
每件东西都有 kind (单位:千美元)src/data/kinds.json,树: item > consumable > food_ready > canned_food, (中文(简体) ), item > equipment > electronics(......) (中文(简体) ). 该类型带有默认值(部分和
材料、撞击反应、使用动画和声音、剩余、原始效果......) 合同 项目必须满足(physical, (中文(简体) ), destructible, (中文(简体) ), impact, (中文(简体) ), edible, (中文(简体) ), use_animation, (中文(简体) ),
leftover, (中文(简体) ), preparation, (中文(简体) ), recipe_input, (中文(简体) ), liquid_container, (中文(简体) ), heat_resistant, (中文(简体) ), weapon, (中文(简体) ), wearable, (中文(简体) ), battery: 见 src/contracts.ts) (中文(简体) ). 某物品只申报与它不同之处.
- 选择最接近的类型( N)
createGoodsKinds().ids();每个地方都有名称和描述:kind.<id>) (中文(简体) ). 修饰一种metal_can)修改了其中的每一个项目. - 添加项目的方式
tools/items-catalog说( 一个extraItems增 减dimensions),并给它一行英寸tools/items-catalog/kinds-overlay.json数字 :{ "kind": "canned_food", ...only what differs }。生成器拒绝一个无一行的项目。 你因缺少团队号码而填入的真人世界值"estimated": ["field", ...]列表:意为"从现实世界中估计, 团队可以调整它。". - 重新生成( E)
pnpm --filter @adatechnology/items-catalog-tool catalog运行pnpm check:items:它打印每个问题(例如)"x" (canned_food): missing nutrition, required by food_ready)和出入口 非为零.known-gaps.json列出迄今为止允许的几处空白; 它只会缩小( 当一个空白停止应用时测试失败, 并限制其大小) , 因此新项目必须满足其类型. - 一个新类型,或介于两种类型之间的父类型,也是数据,永不改变引擎:
import { checkGoodsItems, createGoodsKinds } from '@adatechnology/game-items-goods'
const kinds = createGoodsKinds({
extra: [{ id: 'sealed_can', extends: 'food_ready', defaults: { impact: { response: 'dent', pushImpulse: true, shed: false } } }], // a new kind...
patches: { canned_food: { extends: 'sealed_can' } }, // ...inserted above canned_food
})
const report = checkGoodsItems({ kinds, entries: myItems }) // { ok, problems, allowed }
葡萄牙
专辑,嗯项目. 待办事宜 kind (单位:千美元)src/data/kinds.json玛·阿尔沃雷 (a) 混合体、相克体、相克体、相克体;
(原始内容存档于2017-03-28) (英语). Project só Declara o que muda. (原始内容存档于2018-10-21) (英语). Escolha o kind mais próximo, dê ao role uma linha em tools/items-catalog/kinds-overlay.json (单位:千美元)"estimated": [...] {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}我就是这个意思,
(原始内容存档于2018-09-21) (英语). regenere o cataálogo e rode pnpm check:items: ele lista cada problema e sai com mrofo. 互联网档案馆的存檔,存档日期2013-12-21. 别再这样了,别这样,爸爸extra 电子 patches 页:1 createGoodsKinds(原始内容存档于2017-07-21). não mudança de motor.
测试
pnpm --filter @adatechnology/game-items-goods test: 包验证为 createItems,IDs是独一无二的和英语的,每个参考文献(类别,地点,稀有性,池,食谱,效果)都存在,来源地被子
每个项目,每个键都有两种语言的文本. 该工具自己的测试证明了数据与团队来源的对比.