饥荒代码actions.lua(3)

2020-06-17 09:58

end end end

ACTIONS.DIG.fn = function(act)

if act.target.components.workable and act.target.components.workable.action == ACTIONS.DIG then

local numworks = 1

if act.invobject and act.invobject.components.tool then

numworks = act.invobject.components.tool:GetEffectiveness(ACTIONS.DIG) elseif act.doer and act.doer.components.worker then

numworks = act.doer.components.worker:GetEffectiveness(ACTIONS.DIG) end

act.target.components.workable:WorkedBy(act.doer, numworks) end

return true end

ACTIONS.PICK.fn = function(act)

if act.target.components.pickable then

act.target.components.pickable:Pick(act.doer) return true end end

ACTIONS.FORCEATTACK.fn = function(act)

act.doer.components.combat:SetTarget(act.target) act.doer.components.combat:ForceAttack() return true end

ACTIONS.ATTACK.fn = function(act) if act.target.components.combat then

act.doer.components.combat:SetTarget(act.target) --act.doer.components.combat:TryAttack() return true end end

ACTIONS.ATTACK.strfn = function(act) local targ = act.target or act.invobject

if targ and targ:HasTag(\

return \ end end

ACTIONS.COOK.fn = function(act) if act.target.components.cooker then local ingredient = act.doer.components.inventory:RemoveItem(act.invobject)

if ingredient.components.health and ingredient.components.combat then act.doer:PushEvent(\ end local product = act.target.components.cooker:CookItem(ingredient, act.doer) if product then act.doer.components.inventory:GiveItem(product,nil,

Vector3(TheSim:GetScreenPos(act.target.Transform:GetWorldPosition()) )) return true end

elseif act.target.components.stewer then act.target.components.stewer:StartCooking() return true end end

ACTIONS.DRY.fn = function(act) if act.target.components.dryer then local ingredient = act.doer.components.inventory:RemoveItem(act.invobject) if not act.target.components.dryer:StartDrying(ingredient) then act.doer.components.inventory:GiveItem(product,nil,

Vector3(TheSim:GetScreenPos(act.target.Transform:GetWorldPosition()) )) return false end

return true end end

ACTIONS.ADDFUEL.fn = function(act) if act.doer.components.inventory then local fuel = act.doer.components.inventory:RemoveItem(act.invobject) if fuel then if act.target.components.fueled:TakeFuelItem(fuel) then return true else

print(\ act.doer.components.inventory:GiveItem(fuel) end end end end

ACTIONS.GIVE.fn = function(act) if act.target.components.trader then act.target.components.trader:AcceptGift(act.doer, act.invobject) return true end end

ACTIONS.GIVE.strfn = function(act) local targ = act.target or act.invobject

if targ and targ:HasTag(\ if targ.enabled then return \ else

return \ end end end

ACTIONS.STORE.fn = function(act)

if act.target.components.container and act.invobject.components.inventoryitem and act.doer.components.inventory then

if not act.target.components.container:CanTakeItemInSlot(act.invobject) then return false, \ end local item = act.invobject.components.inventoryitem:RemoveFromOwner(act.target.components.container.acceptsstacks)

if item then if not act.target.components.inventoryitem then act.target.components.container:Open(act.doer) end

if not act.target.components.container:GiveItem(item,nil,nil,false) then if TheInput:ControllerAttached() then

act.doer.components.inventory:GiveItem(item) else

act.doer.components.inventory:GiveActiveItem(item) end return false end return true end elseif act.target.components.occupiable and act.invobject act.invobject.components.occupier

act.target.components.occupiable:CanOccupy(act.invobject) then local item = act.invobject.components.inventoryitem:RemoveFromOwner() return act.target.components.occupiable:Occupy(item) end end

ACTIONS.STORE.strfn = function(act)

if act.target and act.target.components.stewer then return \

elseif act.target and act.target.components.occupiable then return \ end end

ACTIONS.BUILD.fn = function(act) if act.doer.components.builder then if act.doer.components.builder:DoBuild(act.recipe, act.pos) then return true end end end

ACTIONS.PLANT.fn = function(act)

if act.doer.components.inventory then local seed = act.doer.components.inventory:RemoveItem(act.invobject) if seed then if act.target.components.grower:PlantItem(seed) then return true else act.doer.components.inventory:GiveItem(seed) end end

and

and

end end

ACTIONS.HARVEST.fn = function(act) if act.target.components.crop then return act.target.components.crop:Harvest(act.doer) elseif act.target.components.harvestable then

return act.target.components.harvestable:Harvest(act.doer) elseif act.target.components.stewer then return act.target.components.stewer:Harvest(act.doer) elseif act.target.components.dryer then return act.target.components.dryer:Harvest(act.doer)

elseif act.target.components.occupiable and act.target.components.occupiable:IsOccupied() then local item =act.target.components.occupiable:Harvest(act.doer) if item then act.doer.components.inventory:GiveItem(item) return true end end end

ACTIONS.HARVEST.strfn = function(act)

if act.target and act.target.components.occuipable then return \ end end

ACTIONS.LIGHT.fn = function(act)

if act.invobject and act.invobject.components.lighter then act.invobject.components.lighter:Light(act.target) return true end end

ACTIONS.SLEEPIN.fn = function(act) local bag = nil if act.target and act.target.components.sleepingbag then bag = act.target end if act.invobject and act.invobject.components.sleepingbag then bag = act.invobject end if bag and act.doer then bag.components.sleepingbag:DoSleep(act.doer)


饥荒代码actions.lua(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毕业论文--新闻发布系统设计与实现毕业论文 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: