第277页:人工降水
展开二二七.人工降水(开关雨量计夏天下雨、冬天下雪,可以灭火)
用记事本打开游戏目录\data\DLC0001\scripts\prefabs\rainometer.lua文件,将inst:AddComponent("inspectable")替换为以下内容:
function firefn(inst)
local range = 3000
local pos = Vector3(inst.Transform:GetWorldPosition())
local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, range)
for k,v in pairs(ents) do
local pt = v:GetPosition()
if v.components.burnable and v.components.burnable:IsBurning() then
if v.prefab == "grass" then
v:Remove()
SpawnPrefab("grass").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "sapling" then
v:Remove()
SpawnPrefab("sapling").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "reeds" then
v:Remove()
SpawnPrefab("reeds").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "berrybush" then
v:Remove()
SpawnPrefab("berrybush").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "marsh_bush" then
v:Remove()
SpawnPrefab("marsh_bush").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "flower_cave_triple" then
v:Remove()
SpawnPrefab("flower_cave_triple").Transform:SetPosition(pt.x, pt.y, pt.z)
end
if v.prefab == "lichen" then
v:Remove()
SpawnPrefab("lichen").Transform:SetPosition(pt.x, pt.y, pt.z)
end
end
end
end
local function GetStatus(inst, viewer)
if GetWorld().components.seasonmanager.precip then
GetWorld().components.seasonmanager:StopPrecip()
if inst.fire then inst.fire:Cancel() inst.fire = nil end
else
GetWorld().components.seasonmanager:ForcePrecip()
inst.fire = inst:DoPeriodicTask(8, function() firefn(inst) end)
end
end
inst:AddComponent("inspectable")
inst.components.inspectable.getstatus = GetStatus
即可在雨量计上按鼠标左键开始降水,再按一次鼠标左键停止降水,夏天下雨、冬天下雪。可以浇灭大部分植物着的火,包括草、树枝、芦苇、果树丛、尖刺灌木、三朵洞穴花、苔藓
更多相关内容请关注:饥荒专区
责任编辑:Shy夏夏