第299页:橡树盆栽
展开二四九.橡树盆栽(用化肥种橡树盆栽,每天掉落橡果,靠近可补脑,鼠标左键点击树叶可变色)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\fertilizer.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
local function createoak(inst)
local pt = inst:GetPosition()
local oak = SpawnPrefab("fertilizer")
oak.Transform:SetPosition(pt.x, pt.y, pt.z)
oak.AnimState:SetBank("fertilizer")
oak.AnimState:SetBuild("fertilizer")
oak.AnimState:PlayAnimation("idle")
oak.Transform:SetScale(1.2, 1.2, 1.2)
oak:RemoveComponent("inventoryitem")
oak:RemoveComponent("finiteuses")
oak:RemoveComponent("fertilizer")
oak:RemoveComponent("smotherer")
oak:RemoveComponent("deployable")
oak:AddTag("NOCLICK")
oak:ListenForEvent( "daytime", function()
local pos = Vector3(oak.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 2)
for k,v in pairs(ents) do
if v.components.inventoryitem and not v.components.inventoryitem:IsHeld() then
if v.prefab == "acorn" then
v:Remove()
end
end
end
oak:DoTaskInTime(0.3, function(oak)
oak:StartThread(function()
for k = 1,math.random(3,6) do
local pt1 = oak:GetPosition()
local acorn = SpawnPrefab("acorn")
acorn.Transform:SetPosition(pt1.x+(math.random(2)-math.random(2)), 5, pt1.z+(math.random(2)-math.random(2)))
Sleep(0.3)
end
end )
end )
end , GetWorld() )
oak:AddTag("oak")
oak.tree = SpawnPrefab("fertilizer")
oak.tree.AnimState:SetBank("tree_leaf")
oak.tree.AnimState:SetBuild("tree_leaf_trunk_build")
local names = {"tree_leaf_green_build","tree_leaf_red_build","tree_leaf_orange_build","tree_leaf_yellow_build"}
local name = names[math.random(#names)]
oak.tree.AnimState:OverrideSymbol("swap_leaves", name, "swap_leaves")
oak.tree.AnimState:PlayAnimation("idle_tall")
oak.tree.Transform:SetScale(0.8, 0.8, 0.8)
oak.tree.Physics:SetActive(false)
oak.tree:RemoveComponent("inventoryitem")
oak.tree:RemoveComponent("finiteuses")
oak.tree:RemoveComponent("fertilizer")
oak.tree:RemoveComponent("smotherer")
oak.tree:RemoveComponent("deployable")
local follower = oak.tree.entity:AddFollower()
follower:FollowSymbol( oak.GUID, "swap_object", -1, -115, 0 )
oak.tree:AddComponent("sanityaura")
oak.tree.components.sanityaura.aura = TUNING.SANITYAURA_MED
oak.tree:AddComponent("workable")
oak.tree.components.workable:SetWorkAction(ACTIONS.CHOP)
oak.tree.components.workable:SetWorkLeft(1)
oak.tree.components.workable:SetOnFinishCallback(function()
SpawnPrefab("collapse_big").Transform:SetPosition(oak.tree.Transform:GetWorldPosition())
GetPlayer().SoundEmitter:PlaySound("dontstarve/common/destroy_wood")
local pos = Vector3(oak.tree.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 1)
for k,v in pairs(ents) do
if v:HasTag("oak") then
v:Remove()
end
end
oak.tree:Remove()
end )
oak.tree.components.inspectable.getstatus = function()
local names = {"tree_leaf_green_build","tree_leaf_red_build","tree_leaf_orange_build","tree_leaf_yellow_build"}
local name = names[math.random(#names)]
oak.tree.AnimState:OverrideSymbol("swap_leaves", name, "swap_leaves")
end
oak.tree:AddTag("goodbye")
end
local function OnDeploy (inst, pt)
createoak(inst)
inst:Remove()
end
inst:AddComponent("deployable")
inst.components.deployable.ondeploy = OnDeploy
local function onsave(inst, data)
if inst:HasTag("goodbye") then
data.goodbye = true
end
if inst:HasTag("oak") then
data.oak = true
end
end
local function onload(inst, data)
if data and data.goodbye then
inst:Remove()
end
if data and data.oak then
createoak(inst)
inst:Remove()
end
end
inst.OnSave = onsave
inst.OnLoad = onload
即可用化肥种橡树盆栽,四季常青,每天清晨掉落橡果,靠近可补脑。鼠标左键点橡树,可改变树叶的颜色。不想要橡树盆栽了,用斧子砍掉即可。化肥在种植选项(画着胡萝卜)下,用3个便便、2个硬骨头、4个木头制造
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏