require "prefabutil"  local assets = {     Asset("ANIM", "anim/pickingshrine.zip"), }  local prefabs = {     "collapse_small",     "pickingperd", }  local function onhammered(inst, worker)     if inst.components.burnable ~= nil and inst.components.burnable:IsBurning() then         inst.components.burnable:Extinguish()     end     inst.components.lootdropper:DropLoot()     local fx = SpawnPrefab("collapse_small")     fx.Transform:SetPosition(inst.Transform:GetWorldPosition())     inst:Remove() end  local function onhit(inst, worker)     if not inst:HasTag("burnt") then         inst.AnimState:PlayAnimation("hit")         inst.AnimState:PushAnimation("idle", false)     end end  local function onsave(inst, data)     if inst:HasTag("burnt") or (inst.components.burnable ~= nil and inst.components.burnable:IsBurning()) then         data.burnt = true     end end  local function onload(inst, data)     if data ~= nil and data.burnt then         inst.components.burnable.onburnt(inst)     end end  local function onbuilt(inst)     inst.AnimState:PlayAnimation("place")     inst.AnimState:PushAnimation("idle", false)     inst.SoundEmitter:PlaySound("dontstarve/common/together/perd_shrine_place")     SpawnPrefab("pickingperd").Transform:SetPosition(inst.Transform:GetWorldPosition()) end  local PLACER_SCALE = 1.55  local function OnEnableHelper(inst, enabled)     if enabled then         if inst.helper == nil then             inst.helper = CreateEntity()              inst.helper.entity:SetCanSleep(false)             inst.helper.persists = false              inst.helper.entity:AddTransform()             inst.helper.entity:AddAnimState()              inst.helper:AddTag("CLASSIFIED")             inst.helper:AddTag("NOCLICK")             inst.helper:AddTag("placer")              inst.helper.Transform:SetScale(PLACER_SCALE, PLACER_SCALE, PLACER_SCALE)              inst.helper.AnimState:SetBank("firefighter_placement")             inst.helper.AnimState:SetBuild("firefighter_placement")             inst.helper.AnimState:PlayAnimation("idle")             inst.helper.AnimState:SetLightOverride(1)             inst.helper.AnimState:SetOrientation(ANIM_ORIENTATION.OnGround)             inst.helper.AnimState:SetLayer(LAYER_BACKGROUND)             inst.helper.AnimState:SetSortOrder(1)             inst.helper.AnimState:SetAddColour(0, .2, .5, 0)              inst.helper.entity:SetParent(inst.entity)         end     elseif inst.helper ~= nil then         inst.helper:Remove()         inst.helper = nil     end end  local function fn()     local inst = CreateEntity()      inst.entity:AddTransform()     inst.entity:AddAnimState()     inst.entity:AddSoundEmitter()     inst.entity:AddMiniMapEntity()      MakeObstaclePhysics(inst, .2)      inst.MiniMapEntity:SetPriority(5)     inst.MiniMapEntity:SetIcon("perdshrine.png")      inst.AnimState:SetBank("pickingshrine")     inst.AnimState:SetBuild("pickingshrine")     inst.AnimState:PlayAnimation("idle")     inst.AnimState:OverrideSymbol("swap_meter", "firefighter_meter", "10")      inst:AddTag("structure")     inst:AddTag("pickingshrine")      inst:AddComponent("inspectable")     inst:AddComponent("lootdropper")      inst:AddComponent("workable")     inst.components.workable:SetWorkAction(ACTIONS.HAMMER)     inst.components.workable:SetWorkLeft(4)     inst.components.workable:SetOnFinishCallback(onhammered)     inst.components.workable:SetOnWorkCallback(onhit)     MakeSnowCovered(inst)      MakeSmallBurnable(inst, nil, nil, true)      inst.OnSave = onsave     inst.OnLoad = onload      inst:ListenForEvent("onbuilt", onbuilt)      return inst end  return Prefab("pickingshrine", fn, assets, prefabs),     MakePlacer( "pickingshrine_placer", "firefighter_placement", "firefighter_placement", "idle", true, nil, nil, 1.55)