Advertisement
Guest User

Untitled

a guest
Jan 30th, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. local assets=
  2. {
  3. Asset("ANIM", "anim/super_fertalizer.zip"),
  4. Asset("ATLAS", "images/inventoryimages/super_fertalizer.xml"),
  5. Asset("IMAGE", "images/inventoryimages/super_fertalizer.tex"),
  6. }
  7.  
  8. -- Do this on the target.
  9.  
  10.  
  11. local function growtree(target)
  12. local tree = SpawnPrefab("evergreen_short")
  13. if tree then
  14. tree.components.growable:SetStage(4)
  15. tree.Transform:SetPosition(target.Transform:GetWorldPosition() )
  16. tree:growfromseed()--PushEvent("growfromseed")
  17. target:Remove()
  18. end
  19. end
  20.  
  21. local function onfinished(inst)
  22. inst:Remove()
  23. end
  24.  
  25. local function onequip(inst, owner)
  26. owner.AnimState:OverrideSymbol("swap_object", "gold_spear", "swap_spear")
  27. owner.SoundEmitter:PlaySound("dontstarve/wilson/equip_item_gold")
  28. owner.AnimState:Show("ARM_carry")
  29. owner.AnimState:Hide("ARM_normal")
  30. end
  31.  
  32. local function onunequip(inst, owner)
  33. owner.AnimState:Hide("ARM_carry")
  34. owner.AnimState:Show("ARM_normal")
  35. end
  36.  
  37. local function on_use(inst, target_pre, pos)
  38.  
  39. -- So we don't have to type 'target.components' before each component.
  40. local target = target_pre and target_pre.components
  41.  
  42. -- For growables.
  43. if target and target.growable then
  44. -- Technically this is infinite, but it'll cap out at the max growth state.
  45. target.growable:SetStage(4)
  46. end
  47.  
  48. -- For crops.
  49. if target and target.crop then
  50. target.crop:LongUpdate(12000)
  51.  
  52. end
  53.  
  54. -- For other pickables.
  55. if target and target.pickable then
  56. target.pickable:Regen()
  57. end
  58.  
  59.  
  60.  
  61. --ForTrees
  62. if target_pre and target_pre.prefab == "pinecone" then
  63. growtree(target_pre)
  64. end
  65.  
  66.  
  67.  
  68. --ForDurability
  69. inst.components.finiteuses:Use(1)
  70. end
  71. -- Constructor
  72. local function fn(Sim)
  73. local inst = CreateEntity()
  74. local trans = inst.entity:AddTransform()
  75. local anim = inst.entity:AddAnimState()
  76. inst.entity:AddSoundEmitter()
  77. MakeInventoryPhysics(inst)
  78.  
  79. inst.AnimState:SetBank("poop")
  80. inst.AnimState:SetBuild("super_fertilizer")
  81. inst.AnimState:PlayAnimation("dump")
  82. inst.AnimState:PushAnimation("idle")
  83.  
  84. inst:AddComponent("inspectable")
  85.  
  86. inst:AddComponent("equippable")
  87. inst.components.equippable:SetOnEquip( onequip )
  88. inst.components.equippable:SetOnUnequip( onunequip )
  89.  
  90.  
  91. inst:AddComponent("inventoryitem")
  92. inst.components.inventoryitem.imagename = "super_fertalizer"
  93. inst.components.inventoryitem.atlasname = "images/inventoryimages/super_fertalizer.xml"
  94.  
  95. inst:AddComponent("spellcaster")
  96. inst.components.spellcaster.canuseonpoint = true
  97. inst.components.spellcaster.canuseontargets = true
  98. inst.components.spellcaster:SetSpellFn(on_use)
  99.  
  100. inst:AddComponent("finiteuses")
  101. inst.components.finiteuses:SetMaxUses(10)
  102. inst.components.finiteuses:SetUses(10)
  103.  
  104. inst:AddComponent("fueled")
  105. inst.components.fueled.fueltype = "MAGIC_POOP"
  106.  
  107.  
  108. return inst
  109. end
  110.  
  111.  
  112. return Prefab( "custom/inventory/super_fertalizer", fn, assets)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement