饥荒Mod 开发(二五)(github源码):常用组件 总结

本文详细介绍了如何在饥荒Mod中使用各种组件,如可检查、库存、装备、燃料、防护等,展示了如何通过组件扩展预制物的功能,包括添加、调用方法以及组件的常见用法和设置。

饥荒Mod 开发(二四):制作一把万能工具
在前面的文章介绍了很多和饥荒相关的知识点,做了很多有趣的东西,接下来简单做个总结,总结一下组件的用法

组件用法

一个预制物可以添加多个组件,每个组件会有自己的功能,当你的预制物添加了组件之后, 物品就拥有了这个组件的能力,添加组件很简答

--添加组件
inst:AddComponent(${
   
   组件名})
--调用组件的XXX 方法
inst.components.${
   
   组件名}:XXX()

常用组件

1 可检查

inst:AddComponent("inspectable")

moamain.lua 中设置检查显示提示

-- LIGHTSWORD  是预制物的大写名称
GLOBAL.STRINGS.CHARACTERS.GENERIC.DESCRIBE.LIGHTSWORD = "这是一把光剑"

在这里插入图片描述

2 可放入物品栏

	--需要先加载资源
	local assets=
	{
   
   
	    Asset("ANIM", "anim/lightsword.zip"), -- 加载动画资源
	    Asset("ATLAS", "images/inventoryimages/lightsword.xml"), -- 加载图像资源
	}
    inst:AddComponent("inventoryitem") -- 添加库存物品组件
    inst.components.inventoryitem.atlasname = "images/inventoryimages/lightsword.xml" -- 设置在物品栏的图像

在这里插入图片描述

3 可装备

 	--添加可装备组件
    inst:AddComponent("equippable") -- 添加可装备组件
    --装备在手上
    inst.components.equippable.equipslot = EQUIPSLOTS.HANDS
    inst.components.equippable:SetOnEquip(function(inst, owner) -- 设置装备时的回调函数
        owner.AnimState:OverrideSymbol("swap_object", "lightsword", "lightsword") -- 设置玩家的动画
        owner.AnimState:Show("ARM_carry") -- 显示玩家的手臂
        owner.AnimState:Hide("ARM_normal") -- 隐藏玩家的手臂
    end)
    inst.components.equippable:SetOnUnequip(function(inst, owner) -- 设置卸下时的回调函数
        owner.AnimState:Hide("ARM_carry") -- 隐藏玩家的手臂
        owner.AnimState:Show("ARM_normal") -- 显示玩家的手臂
    end)

在这里插入图片描述

4 可当燃料使用

  	 -- 添加燃料组件
    inst:AddComponent("fuel") 
    -- 设置燃料值为100
    inst.components.fuel.fuelvalue = 100
    -- 设置燃料类型为"BURNABLE"
    inst.components.fuel.fueltype = "BURNABLE"

在这里插入图片描述

5 防雨

很多装备都可以防雨,比如雨衣,雨伞等

-- 添加防水组件
inst:AddComponent("waterproofer")
-- 设置防水效果为最大
inst.components.waterproofer:SetEffectiveness(TUNING.WATERPROOFNESS_HUGE)

在这里插入图片描述

6 防御不同的类型攻击

比如防蜂服可以防御蜜蜂的攻击

-- 添加护甲组件
inst:AddComponent("armor")
-- 初始化护甲的条件,设置为蜜蜂帽的防御值和吸收率
inst.components.armor:InitCondition(TUNING.ARMOR_BEEHAT, TUNING.ARMOR_BEEHAT_ABSORPTION)
-- 设置护甲的标签为"bee",表示可以防御蜜蜂的攻击
inst.components.armor:SetTags({
   
   "bee"})

在这里插入图片描述

可堆叠

-- 添加可堆叠组件
inst:AddComponent("stackable"
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值