饥荒联机版Mod开发——制作栏(九)

  • 前言
  • 添加物品到制作栏
  • 添加分解配方
  • 自定义制作栏过滤器
  • 配方后初始化
  • 传送门

前言

物品栏的API是写在modmain.lua里的,基本上就一行代码。不过在使用前先加上下面这行代码,实现一键GLOBAL,直接用XXX来访问GLOBAL.XXX。

GLOBAL.setmetatable(env,{__index=function(t,k) return GLOBAL.rawget(GLOBAL,k) end})

添加物品到制作栏

--写法参考:recipes.lua,直接把Recipe2(...)的那堆参数copy过来用就行,参数是对应的--添加配方,默认添加在MODS过滤器中
--name: 预设物名,自定义预设物需要配置config中的atlas--ingredients:{Ingredient(...),Ingredient(...)} Ingredient定义在在recipe.lua
--Ingredient(prefab, amount, atlas=nil, deconstruct=false, imageoverride=nil)
--当材料是自定义prefab时,指定atlas为材料物品栏贴图即可, "images/inventoryimages/yyy.xml" --tech:TECH.NONE TECH.SCIENCE_ONE TECH.SCIENCE_TWO,看constants.lua中的TECH表
--[[
config={builder_tag = {"wilson"},   --建筑者需要的tag,一般用于专属配方atlas = "images/inventoryimages/xxx.xml",     --自定义预设物需要指定贴图image = "xxx.tex", --不填就默认是参数 name..".tex"--其他参数如:build_distance,min_spacing,nounlock等建筑解锁相关的
}
--看recipe.lua中Recipe2的config参数]]
--filters = {"TOOLS", "LIGHT"},recipes_filter.lua中CRAFTING_FILTER_DEFS的name
AddRecipe2(name, ingredients, tech, config=nil, filters=nil)--添加角色专属配方
--在建筑者标签是必须的,记得在你人物的预设物中添加这个标签
--config={builder_tag = ""}
--extra_filters:除角色过滤器外的过滤器名,如{"TOOLS", "LIGHT"}
AddCharacterRecipe(name, ingredients, tech, config, extra_filters=nil)

例子:添加自定义预设物到MODS过滤器

--modmain.lua
GLOBAL.setmetatable(env,{__index=function(t,k) return GLOBAL.rawget(GLOBAL,k) end})    PrefabFiles = {"xxx",
}
--[[
xxx.lua 预设物中记得加载贴图
local assets = {Asset( "IMAGE", "images/inventoryimages/xxx.tex" ),    Asset( "ATLAS", "images/inventoryimages/xxx.xml" ),
}
--]]
AddRecipe2("xxx", {Ingredient("cutgrass", 2), Ingredient("ice", 1)},TECH.NONE, {atlas = "images/inventoryimages/xxx.xml"})

添加分解配方

--recipes.lua,直接把DeconstructRecipe(...)的那堆参数copy过来用就行,参数是对应的
--name和ingredients参数同上
AddDeconstructRecipe(name, ingredients)

自定义制作栏过滤器

--[[
filter_def = { --参考recipes_filter.lua中的CRAFTING_FILTER_DEFS的写法name = "MYFILTER",    --独一无二的过滤器名atlas = "images/myfilter.xml",    --原始贴图54x54像素,64x64的也会默认缩放成54x54image = "myfilter.tex",--下面是可选参数--image_size = 80,  --表示缩放到80x80像素   --custom_pos = true,  --表示不添加在下面的网格中,如FAVORITES(收藏夹)
}
--]]
--index:插入表的位置,默认是插在最后面
同时要在modmain.lua中设置鼠标悬浮时的文字
STRINGS.UI.CRAFTING_FILTERS[filter_def.name] = "Hover Text"AddRecipeFilter(filter_def, index=#CRAFTING_FILTER_DEFS+1)--从过滤器中添加/删除配方
--recipe_name:Recipe2及AddRecipe2中的name
--filter_name:filter_def中的name,及recipes_filter.lua中CRAFTING_FILTER_DEFS的name
AddRecipeToFilter(recipe_name, filter_name)
RemoveRecipeFromFilter(recipe_name, filter_name)

例子:

--modmain.lua
GLOBAL.setmetatable(env,{__index=function(t,k) return GLOBAL.rawget(GLOBAL,k) end})        --加载必须的贴图资源
Assets = {Asset( "IMAGE", "images/myfilter.tex" ), --64x64像素即可Asset( "ATLAS", "images/myfilter.xml" ),
}--添加悬浮文字
STRINGS.UI.CRAFTING_FILTERS["myfilter"] = "Hover Text"
--自定义过滤器
AddRecipeFilter({name = "MYFILTER",  --独一无二的过滤器名atlas = "images/myfilter.xml",    --原始贴图54x54像素,64x64的也会默认缩放成54x54image = "myfilter.tex",--下面是可选参数--image_size = 80,  --表示缩放到80x80像素   --custom_pos = true,  --表示不添加在下面的网格中,如FAVORITES(收藏夹)
})
--添加配方到过滤器
AddRecipeToFilter("tophat", "MYFILTER")
AddRecipe2("waterballoon",{Ingredient("cutgrass", 2), Ingredient("ice", 1)},
TECH.NONE, nil, {"MYFILTER"})

配方后初始化

--fn参数:self,对应recipe中的Recipe类的对象
AddRecipePostInitAny(fn)
AddRecipePostInit(recipe_name, fn)

传送门

→饥荒联机版Mod开发——两种帽子(十)
←饥荒联机版Mod开发——常用inst方法(八)

饥荒联机版Mod开发——制作栏(九)相关推荐

  1. 饥荒联机版Mod开发——制作烹饪锅食物(六)

    饥荒联机版Mod开发--制作烹饪锅食物(六) 前言 准备工作 编写菜谱 制作预设物 添加菜谱 传送门 前言 核心组件及其流程如下: 材料 -> 烹饪锅(stewer) -> 食物(吃edi ...

  2. 饥荒联机版Mod开发——制作可入锅,烹饪,凉干的食物(七)

    饥荒联机版Mod开发--制作可入锅,烹饪,凉干的食物(七) 可入锅 可烹饪 可凉干 传送门 可入锅 参考:cooking.lua 先来看一下官方代码 --names:{"prefab1&qu ...

  3. 饥荒联机版Mod开发——两种帽子(十)

    饥荒联机版Mod开发--两种帽子(十) 前言 总览与下载 动画 代码 modmain 露头类帽子 基本的预设物框架 穿戴 可交易 腐烂及可放冰箱 总的代码 不露头类帽子 差异 基本代码 耐久 其他功能 ...

  4. 饥荒联机版Mod开发——常用inst方法(八)

    饥荒联机版Mod开发--常用inst方法(八) 前言 生成实体 监听/推送事件 使用标签 增删组件 网络组件 定时/阶段任务 回调函数 父子实体 平台 删除 位置,角度 显示/隐藏 判断 大脑 状态图 ...

  5. 饥荒联机版Mod开发——配置代码环境(二)

    饥荒联机版Mod开发--配置代码环境(二) 前言 下载VS Code和Lua插件 建立工作区 配置Lua插件 Git和GitHub(可选) 排除多余文件 删除scripts里多余文件 VS Code快 ...

  6. 饥荒联机版Mod开发——modmain(五)

    饥荒联机版Mod开发--modmain(五) 前言 modmain环境 常用方法 设置环境具体流程 mods.lua modutil.lua 传送门 前言 在modmain中我们可以通过 Prefab ...

  7. 饥荒联机版Mod开发——Class, Prefab, component,debug(四)

    饥荒联机版Mod开发--class, prefab, component,debug(四) Class的使用方法 Prefab component Entity Component Normal Co ...

  8. 饥荒联机版Mod开发——准备工具(一)

    饥荒联机版Mod开发--准备工具 前言 工具下载 工具功能和使用 动画 c_start:反解压动画 Sprite:制作动画 打包工具:把动画再打包回去 贴图 TEXTool:查找/反解压tex tex ...

  9. 饥荒联机版Mod开发——衣服(十一)

    饥荒联机版Mod开发--衣服(十一) 前言 总览与下载 modmain prefab 动画 前言 饥荒里面装备栏有三个地方,手,身体,头.上一期我们讲了戴头上的帽子,这期我们讲讲穿在身上的衣服.事实上 ...

  10. 饥荒联机版服务器mod模组在哪个文件夹,饥荒联机版MOD使用图文教程_饥荒联机版MOD怎么用_牛游戏网...

    饥荒联机版相信大家都玩得不亦乐乎,在饥荒中使用MOD也是一大乐趣,不少萌新可能还不知道饥荒联机版怎么使用MOD,饥荒联机版MOD要怎么安装使用呢,下面小编就为大家带来了饥荒联机版MOD使用图文教程,给 ...

最新文章

  1. 大型网站采用什么系统架构保证性能稳定性
  2. 绘制电路图风格的纠结
  3. Linux 交换内存空间原理(swap)(Linux内存管理)(cgroups)
  4. 图解Android - Zygote, System Server 启动分析
  5. OpenCV训练面部界标探测器face_landmark_trainer
  6. AI+游戏:高效利用样本的强化学习 | 腾讯AI Lab学术论坛演讲
  7. python不同版本安装;第三方库的安装
  8. Maven 在eclipse中如何配置
  9. 百度云搜索引擎森林战士_纯干货:网盘搜索引擎整理
  10. tiny4412 编译并烧写系统
  11. 淘宝客系统教学系列_2.应用登录接口对接
  12. arcgis10.2之Maplex(高级标注扩展模块)
  13. codeforce 741 B. Arpa's weak amphitheater and Mehrdad's valuable Hoses(背包 dp)
  14. 那一年岳云鹏14岁,郭德纲26岁
  15. 五大常用百度高级搜索语法
  16. fio_generate_plots
  17. wps VBA 更改模块的名字,VBA模块重命名,坑
  18. 绩效面谈的4种技巧(一)
  19. 南昌计算机高职公立学校,南昌公立大专院校排名,2021年南昌专科学校名单及排名榜...
  20. 【周年福利Round2】都0202年了,您还不会Elasticsearch?

热门文章

  1. RapidMiner 数值调整
  2. Win11画图工具没了怎么重新安装
  3. kubesphere+kubernetes搭建生产环境高可用集群(四-2)
  4. 数据抽取工具选型调研
  5. centos 雷凌凌ralink无线网卡驱动 安装
  6. Hybird接口的理解
  7. 计算机能不装显卡么,电脑不装显卡能玩CF吗
  8. linux 7zip 安装包,linux下安装7zip
  9. opencv 摄像机标定
  10. phpbb简体中文语言包的安装