Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local assets=
- {
- Asset("ANIM", "anim/super_fertalizer.zip"),
- Asset("ATLAS", "images/inventoryimages/super_fertalizer.xml"),
- Asset("IMAGE", "images/inventoryimages/super_fertalizer.tex"),
- }
- -- Do this on the target.
- local function growtree(target)
- local tree = SpawnPrefab("evergreen_short")
- if tree then
- tree.components.growable:SetStage(4)
- tree.Transform:SetPosition(target.Transform:GetWorldPosition() )
- tree:growfromseed()--PushEvent("growfromseed")
- target:Remove()
- end
- end
- local function onfinished(inst)
- inst:Remove()
- end
- local function onequip(inst, owner)
- owner.AnimState:OverrideSymbol("swap_object", "gold_spear", "swap_spear")
- owner.SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")
- owner.AnimState:Show("ARM_carry")
- owner.AnimState:Hide("ARM_normal")
- end
- local function onunequip(inst, owner)
- owner.AnimState:Hide("ARM_carry")
- owner.AnimState:Show("ARM_normal")
- end
- local function on_use(inst, target_pre, pos)
- -- So we don't have to type 'target.components' before each component.
- local target = target_pre and target_pre.components
- -- For growables.
- if target and target.growable then
- -- Technically this is infinite, but it'll cap out at the max growth state.
- target.growable:SetStage(4)
- end
- -- For crops.
- if target and target.crop then
- target.crop:LongUpdate(12000)
- end
- -- For other pickables.
- if target and target.pickable then
- target.pickable:Regen()
- end
- --ForTrees
- if target_pre and target_pre.prefab == "pinecone" then
- growtree(target_pre)
- end
- --ForDurability
- inst.components.finiteuses:Use(1)
- end
- -- Constructor
- local function fn(Sim)
- local inst = CreateEntity()
- local trans = inst.entity:AddTransform()
- local anim = inst.entity:AddAnimState()
- inst.entity:AddSoundEmitter()
- MakeInventoryPhysics(inst)
- inst.AnimState:SetBank("poop")
- inst.AnimState:SetBuild("super_fertilizer")
- inst.AnimState:PlayAnimation("dump")
- inst.AnimState:PushAnimation("idle")
- inst:AddComponent("inspectable")
- inst:AddComponent("equippable")
- inst.components.equippable:SetOnEquip( onequip )
- inst.components.equippable:SetOnUnequip( onunequip )
- inst:AddComponent("inventoryitem")
- inst.components.inventoryitem.imagename = "super_fertalizer"
- inst.components.inventoryitem.atlasname = "images/inventoryimages/super_fertalizer.xml"
- inst:AddComponent("spellcaster")
- inst.components.spellcaster.canuseonpoint = true
- inst.components.spellcaster.canuseontargets = true
- inst.components.spellcaster:SetSpellFn(on_use)
- inst:AddComponent("finiteuses")
- inst.components.finiteuses:SetMaxUses(10)
- inst.components.finiteuses:SetUses(10)
- inst:AddComponent("fueled")
- inst.components.fueled.fueltype = "MAGIC_POOP"
- return inst
- end
- return Prefab( "custom/inventory/super_fertalizer", fn, assets)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement