代码来源于“易宁”大佬的分享,仅供学习,不要直接复制粘贴。

原帖链接:http://bbs.3dmgame.com/thread-3859071-1-1.html


  1
  2二九七.临时工市场(用噩梦花瓣种临时工市场,雇临时工帮你采摘、收获、砍树、开矿)
  3
  4	MT管理器打开游戏目录/assets/DLC0002/scripts/prefabs/petals_evil.lua文件,在inst:AddComponent("inspectable")的下一行插入以下内容:
  5
  6local function createworker(inst)
  7	local pt = inst:GetPosition()
  8	local shopsign = SpawnPrefab("petals_evil")
  9	shopsign.Transform:SetPosition(pt.x, pt.y, pt.z)
 10	shopsign.AnimState:SetBank("sign_home")
 11	shopsign.AnimState:SetBuild("sign_home")
 12	shopsign.AnimState:PlayAnimation("idle")
 13	shopsign.Transform:SetScale(2, 2, 2)
 14	shopsign:AddTag("shopsign")
 15	shopsign:RemoveComponent("stackable")
 16	shopsign:RemoveComponent("tradable")
 17	shopsign:RemoveComponent("fuel")
 18	shopsign:RemoveComponent("inventoryitem")
 19	shopsign:RemoveComponent("edible")
 20	shopsign:RemoveComponent("perishable")
 21	shopsign:RemoveComponent("burnable")
 22	shopsign:RemoveComponent("propagator")
 23	shopsign:RemoveComponent("deployable")
 24	MakeLargeBurnable(shopsign)
 25	MakeLargePropagator(shopsign)
 26	local light = shopsign.entity:AddLight()
 27	light:SetFalloff(1)
 28	light:SetIntensity(.8)
 29	light:SetRadius(5)
 30	light:SetColour(180/255, 195/255, 50/255)
 31	light:Enable(true)
 32	shopsign:DoPeriodicTask(6, function(shopsign)
 33		shopsign.AnimState:SetBloomEffectHandle("shaders/anim.ksh")
 34		shopsign:DoTaskInTime(3, function() shopsign.AnimState:SetBloomEffectHandle("") end )
 35	end )
 36	shopsign.components.inspectable.getstatus = function(shopsign)
 37	   local pos = Vector3(shopsign.Transform:GetWorldPosition())
 38	   local ents = TheSim:FindEntities(pos.x,pos.y,pos.z, 3000)
 39	   for k,v in pairs(ents) do
 40		   if v:HasTag("workerman") then
 41			  v:Remove()
 42		   end
 43	   end
 44	   local names = {"wilson","wendy","wes","wickerbottom","willow","wolfgang","wx78"}
 45	   local worker1 = SpawnPrefab("petals_evil")
 46	   worker1.Transform:SetPosition(pt.x+1+3, 0, pt.z+1-3)
 47	   worker1.AnimState:SetBank("wilson")
 48	   worker1.buildname = names[math.random(#names)]
 49	   worker1.AnimState:SetBuild(worker1.buildname)
 50	   worker1.Transform:SetFourFaced()
 51	   worker1.AnimState:OverrideSymbol("swap_hat", "hat_bee", "swap_hat")
 52	   worker1.AnimState:Show("HAT")
 53	   worker1.AnimState:Show("HAT_HAIR")
 54	   worker1.AnimState:Hide("HAIR_NOHAT")
 55	   worker1.AnimState:Hide("HAIR")
 56	   worker1.AnimState:Show("ARM_normal") 
 57	   worker1.AnimState:Hide("ARM_carry") 
 58	   worker1.AnimState:PlayAnimation("idle")
 59	   local minimap = worker1.entity:AddMiniMapEntity()
 60	   minimap:SetIcon( "mushroom_tree_med.png" )
 61	   local sound = worker1.entity:AddSoundEmitter()
 62	   local shadow = worker1.entity:AddDynamicShadow()
 63	   MakeCharacterPhysics(worker1, 75, .5)
 64	   shadow:SetSize( 1.3, .6 )
 65	   worker1:AddComponent("health")
 66	   worker1.components.health:SetMaxHealth(1000)
 67	   worker1.components.health:SetInvincible(true)
 68	   worker1.components.health.nofadeout = true
 69	   worker1:AddComponent("combat")
 70	   worker1:AddComponent("follower")
 71	   worker1:AddComponent("knownlocations")
 72	   worker1:AddComponent("locomotor")
 73	   worker1.components.locomotor.walkspeed = 5
 74	   worker1.components.locomotor.runspeed = 12
 75	   worker1:SetStateGraph("SGshadowwaxwell")
 76	   worker1:RemoveComponent("stackable")
 77	   worker1:RemoveComponent("tradable")
 78	   worker1:RemoveComponent("fuel")
 79	   worker1:RemoveComponent("inventoryitem")
 80	   worker1:RemoveComponent("edible")
 81	   worker1:RemoveComponent("perishable")
 82	   worker1:RemoveComponent("burnable")
 83	   worker1:RemoveComponent("propagator")
 84	   worker1:RemoveComponent("deployable")
 85	   MakeLargeBurnable(worker1)
 86	   MakeLargePropagator(worker1)
 87	   worker1:AddTag("workerman")
 88	   worker1:AddComponent("trader")
 89	   worker1.components.trader:SetAcceptTest(function(worker1, item) 
 90		   if GetPlayer().components.inventory:Has("goldnugget", 20) then
 91			  if item.prefab == "goldnugget" then
 92				 return true
 93			  end
 94		   end
 95		   return false
 96	   end )
 97	   worker1.components.trader.onaccept = function(worker1, giver, item)
 98		   worker1:AddTag("myworker")
 99		   worker1:RemoveTag("workerman")
100		   worker1:RemoveComponent("burnable")
101		   worker1:RemoveComponent("propagator")
102		   GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
103		   worker1.task1 = worker1:DoPeriodicTask(0.5, function(worker1)
104			   local target = FindEntity(worker1, 10, function(guy) 
105				   return guy.components.pickable and guy.components.pickable:CanBePicked() and guy.prefab ~= "flower" and guy.prefab ~= "red_mushroom" and guy.prefab ~= "green_mushroom" and guy.prefab ~= "blue_mushroom" and guy.prefab ~= "flint"
106			   end )
107			   if target then
108				  worker1.components.locomotor:Stop()
109				  worker1:SetBrain(nil)
110				  worker1.components.follower:SetLeader(nil)
111				  local pt1 = target:GetPosition()
112				  worker1.components.locomotor:GoToPoint(pt1)
113				  worker1.task2 = worker1:DoPeriodicTask(.25, function(worker1)
114					  local target2 = FindEntity(worker1, 0.8, function(guy) 
115						  return guy.components.pickable and guy.components.pickable:CanBePicked() and guy.prefab ~= "flower" and guy.prefab ~= "red_mushroom" and guy.prefab ~= "green_mushroom" and guy.prefab ~= "blue_mushroom" and guy.prefab ~= "flint"
116					  end )
117					  if target2 then
118						 worker1.AnimState:PlayAnimation("pickup")
119						 target2.components.pickable:Pick(GetPlayer())
120					  end
121				  end )
122			   else
123				  worker1.components.follower:SetLeader(GetPlayer())
124				  local brain = require "brains/chesterbrain"
125				  worker1:SetBrain(brain)
126				  worker1:RestartBrain()
127				  if worker1.task2 then worker1.task2:Cancel() worker1.task2 = nil end
128			   end
129		   end )
130	   end
131	   worker1:ListenForEvent( "nighttime", function() worker1:Remove() end, GetWorld())
132	   local worker2 = SpawnPrefab("petals_evil")
133	   worker2.Transform:SetPosition(pt.x+1+1, 0, pt.z+1-1)
134	   worker2.AnimState:SetBank("wilson")
135	   worker2.buildname = names[math.random(#names)]
136	   worker2.AnimState:SetBuild(worker2.buildname)
137	   worker2.Transform:SetFourFaced()
138	   worker2.AnimState:OverrideSymbol("swap_hat", "hat_straw", "swap_hat")
139	   worker2.AnimState:Show("HAT")
140	   worker2.AnimState:Show("HAT_HAIR")
141	   worker2.AnimState:Hide("HAIR_NOHAT")
142	   worker2.AnimState:Hide("HAIR")
143	   worker2.AnimState:Show("ARM_normal") 
144	   worker2.AnimState:Hide("ARM_carry") 
145	   worker2.AnimState:PlayAnimation("idle")
146	   local minimap = worker2.entity:AddMiniMapEntity()
147	   minimap:SetIcon( "mushroom_tree_med.png" )
148	   local sound = worker2.entity:AddSoundEmitter()
149	   local shadow = worker2.entity:AddDynamicShadow()
150	   MakeCharacterPhysics(worker2, 75, .5)
151	   shadow:SetSize( 1.3, .6 )
152	   worker2:AddComponent("health")
153	   worker2.components.health:SetMaxHealth(1000)
154	   worker2.components.health:SetInvincible(true)
155	   worker2.components.health.nofadeout = true
156	   worker2:AddComponent("combat")
157	   worker2:AddComponent("follower")
158	   worker2:AddComponent("knownlocations")
159	   worker2:AddComponent("locomotor")
160	   worker2.components.locomotor.walkspeed = 5
161	   worker2.components.locomotor.runspeed = 12
162	   worker2:SetStateGraph("SGshadowwaxwell")
163	   worker2:RemoveComponent("stackable")
164	   worker2:RemoveComponent("tradable")
165	   worker2:RemoveComponent("fuel")
166	   worker2:RemoveComponent("inventoryitem")
167	   worker2:RemoveComponent("edible")
168	   worker2:RemoveComponent("perishable")
169	   worker2:RemoveComponent("burnable")
170	   worker2:RemoveComponent("propagator")
171	   worker2:RemoveComponent("deployable")
172	   MakeLargeBurnable(worker2)
173	   MakeLargePropagator(worker2)
174	   worker2:AddTag("workerman")
175	   worker2:AddComponent("trader")
176	   worker2.components.trader:SetAcceptTest(function(worker2, item) 
177		   if GetPlayer().components.inventory:Has("goldnugget", 20) then
178			  if item.prefab == "goldnugget" then
179				 return true
180			  end
181		   end
182		   return false
183	   end )
184	   worker2.components.trader.onaccept = function(worker2, giver, item)
185		   worker2:AddTag("myworker")
186		   worker2:RemoveTag("workerman")
187		   worker2:RemoveComponent("burnable")
188		   worker2:RemoveComponent("propagator")
189		   GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
190		   worker2.task1 = worker2:DoPeriodicTask(0.5, function(worker2)
191			   local target = FindEntity(worker2, 10, function(guy) 
192				   return guy.components.crop and guy.components.crop.matured
193			   end )
194			   if target then
195				  worker2.components.locomotor:Stop()
196				  worker2:SetBrain(nil)
197				  worker2.components.follower:SetLeader(nil)
198				  local pt1 = target:GetPosition()
199				  worker2.components.locomotor:GoToPoint(pt1)
200				  worker2.task2 = worker2:DoPeriodicTask(.25, function(worker2)
201					  local target2 = FindEntity(worker2, 0.8, function(guy) 
202						  return guy.components.crop and guy.components.crop.matured
203					  end )
204					  if target2 then
205						 worker2.AnimState:PlayAnimation("pickup")
206						 target2.components.crop:Harvest(GetPlayer())
207					  end
208					  local target3 = FindEntity(worker2, 0.8, function(guy) 
209						  return guy.components.grower and guy.components.grower:IsEmpty()
210					  end )
211					  if target3 then
212						 target3.components.grower.cycles_left = target3.components.grower.max_cycles_left
213					  end
214				  end )
215			   else
216				  worker2.components.follower:SetLeader(GetPlayer())
217				  local brain = require "brains/chesterbrain"
218				  worker2:SetBrain(brain)
219				  worker2:RestartBrain()
220				  if worker2.task2 then worker2.task2:Cancel() worker2.task2 = nil end
221				  if worker2.task3 then worker2.task3:Cancel() worker2.task3 = nil end
222			   end
223		   end )
224	   end
225	   worker2:ListenForEvent( "nighttime", function() worker2:Remove() end, GetWorld())
226	   local worker3 = SpawnPrefab("petals_evil")
227	   worker3.Transform:SetPosition(pt.x+1-1, 0, pt.z+1+1)
228	   worker3.AnimState:SetBank("wilson")
229	   worker3.buildname = names[math.random(#names)]
230	   worker3.AnimState:SetBuild(worker3.buildname)
231	   worker3.Transform:SetFourFaced()
232	   worker3.AnimState:OverrideSymbol("swap_object", "swap_axe", "swap_axe")
233	   worker3.AnimState:Show("ARM_carry") 
234	   worker3.AnimState:Hide("ARM_normal") 
235	   worker3.AnimState:PlayAnimation("idle")
236	   local minimap = worker3.entity:AddMiniMapEntity()
237	   minimap:SetIcon( "mushroom_tree_med.png" )
238	   local sound = worker3.entity:AddSoundEmitter()
239	   local shadow = worker3.entity:AddDynamicShadow()
240	   MakeCharacterPhysics(worker3, 75, .5)
241	   shadow:SetSize( 1.3, .6 )
242	   worker3:AddComponent("health")
243	   worker3.components.health:SetMaxHealth(1000)
244	   worker3.components.health:SetInvincible(true)
245	   worker3.components.health.nofadeout = true
246	   worker3:AddComponent("combat")
247	   worker3:AddComponent("follower")
248	   worker3:AddComponent("knownlocations")
249	   worker3:AddComponent("locomotor")
250	   worker3.components.locomotor.walkspeed = 5
251	   worker3.components.locomotor.runspeed = 12
252	   worker3:SetStateGraph("SGshadowwaxwell")
253	   worker3:RemoveComponent("stackable")
254	   worker3:RemoveComponent("tradable")
255	   worker3:RemoveComponent("fuel")
256	   worker3:RemoveComponent("inventoryitem")
257	   worker3:RemoveComponent("edible")
258	   worker3:RemoveComponent("perishable")
259	   worker3:RemoveComponent("burnable")
260	   worker3:RemoveComponent("propagator")
261	   worker3:RemoveComponent("deployable")
262	   MakeLargeBurnable(worker3)
263	   MakeLargePropagator(worker3)
264	   worker3:AddTag("workerman")
265	   worker3:AddComponent("trader")
266	   worker3.components.trader:SetAcceptTest(function(worker3, item) 
267		   if GetPlayer().components.inventory:Has("goldnugget", 20) then
268			  if item.prefab == "goldnugget" then
269				 return true
270			  end
271		   end
272		   return false
273	   end )
274	   worker3.components.trader.onaccept = function(worker3, giver, item)
275		   worker3:AddTag("myworker")
276		   worker3:RemoveTag("workerman")
277		   worker3:RemoveComponent("burnable")
278		   worker3:RemoveComponent("propagator")
279		   GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
280		   worker3.task1 = worker3:DoPeriodicTask(0.5, function(worker3)
281			   local target = FindEntity(worker3, 15, function(guy) 
282				   return guy:HasTag("tree") and guy.components.workable and guy.components.workable.workleft > 0
283			   end )
284			   if target then
285				  worker3.components.locomotor:Stop()
286				  worker3:SetBrain(nil)
287				  worker3.components.follower:SetLeader(nil)
288				  local pt1 = target:GetPosition()
289				  worker3.components.locomotor:GoToPoint(pt1)
290				  worker3.task2 = worker3:DoPeriodicTask(.25, function(worker3)
291					  local target2 = FindEntity(worker3, 2, function(guy) 
292						  return guy:HasTag("tree") and guy.components.workable and guy.components.workable.workleft > 0
293					  end )
294					  if target2 then
295						 worker3.AnimState:PlayAnimation("pickup")
296						 target2.components.workable:Destroy(worker3)
297					  end
298				  end )
299			   else
300				  worker3.components.follower:SetLeader(GetPlayer())
301				  local brain = require "brains/chesterbrain"
302				  worker3:SetBrain(brain)
303				  worker3:RestartBrain()
304				  if worker3.task2 then worker3.task2:Cancel() worker3.task2 = nil end
305			   end
306		   end )
307	   end
308	   worker3:ListenForEvent( "nighttime", function() worker3:Remove() end, GetWorld())
309	   local worker4 = SpawnPrefab("petals_evil")
310	   worker4.Transform:SetPosition(pt.x+1-3, 0, pt.z+1+3)
311	   worker4.AnimState:SetBank("wilson")
312	   worker4.buildname = names[math.random(#names)]
313	   worker4.AnimState:SetBuild(worker4.buildname)
314	   worker4.Transform:SetFourFaced()
315	   worker4.AnimState:OverrideSymbol("swap_hat", "hat_miner", "swap_hat")
316	   worker4.AnimState:Show("HAT")
317	   worker4.AnimState:Show("HAT_HAIR")
318	   worker4.AnimState:Hide("HAIR_NOHAT")
319	   worker4.AnimState:Hide("HAIR")
320	   worker4.AnimState:OverrideSymbol("swap_object", "swap_pickaxe", "swap_pickaxe")
321	   worker4.AnimState:Show("ARM_carry") 
322	   worker4.AnimState:Hide("ARM_normal") 
323	   worker4.AnimState:PlayAnimation("idle")
324	   local minimap = worker4.entity:AddMiniMapEntity()
325	   minimap:SetIcon( "mushroom_tree_med.png" )
326	   local sound = worker4.entity:AddSoundEmitter()
327	   local shadow = worker4.entity:AddDynamicShadow()
328	   MakeCharacterPhysics(worker4, 75, .5)
329	   shadow:SetSize( 1.3, .6 )
330	   worker4:AddComponent("health")
331	   worker4.components.health:SetMaxHealth(1000)
332	   worker4.components.health:SetInvincible(true)
333	   worker4.components.health.nofadeout = true
334	   worker4:AddComponent("combat")
335	   worker4:AddComponent("follower")
336	   worker4:AddComponent("knownlocations")
337	   worker4:AddComponent("locomotor")
338	   worker4.components.locomotor.walkspeed = 5
339	   worker4.components.locomotor.runspeed = 12
340	   worker4:SetStateGraph("SGshadowwaxwell")
341	   worker4:RemoveComponent("stackable")
342	   worker4:RemoveComponent("tradable")
343	   worker4:RemoveComponent("fuel")
344	   worker4:RemoveComponent("inventoryitem")
345	   worker4:RemoveComponent("edible")
346	   worker4:RemoveComponent("perishable")
347	   worker4:RemoveComponent("burnable")
348	   worker4:RemoveComponent("propagator")
349	   worker4:RemoveComponent("deployable")
350	   MakeLargeBurnable(worker4)
351	   MakeLargePropagator(worker4)
352	   worker4:AddTag("workerman")
353	   worker4:AddComponent("trader")
354	   worker4.components.trader:SetAcceptTest(function(worker4, item) 
355		   if GetPlayer().components.inventory:Has("goldnugget", 20) then
356			  if item.prefab == "goldnugget" then
357				 return true
358			  end
359		   end
360		   return false
361	   end )
362	   worker4.components.trader.onaccept = function(worker4, giver, item)
363		   worker4:AddTag("myworker")
364		   worker4:RemoveTag("workerman")
365		   worker4:RemoveComponent("burnable")
366		   worker4:RemoveComponent("propagator")
367		   GetPlayer().components.inventory:ConsumeByName("goldnugget", 19)
368		   worker4.task1 = worker4:DoPeriodicTask(0.5, function(worker4)
369			   local target = FindEntity(worker4, 15, function(guy) 
370				   return guy.prefab == "rock1" or guy.prefab == "rock2" or guy.prefab == "rock_flintless" or guy.prefab == "rock_flintless_med" or guy.prefab == "rock_flintless_low" or guy.prefab == "rock_ice"
371			   end )
372			   if target then
373				  worker4.components.locomotor:Stop()
374				  worker4:SetBrain(nil)
375				  worker4.components.follower:SetLeader(nil)
376				  local pt1 = target:GetPosition()
377				  worker4.components.locomotor:GoToPoint(pt1)
378				  worker4.task2 = worker4:DoPeriodicTask(.25, function(worker4)
379					  local target2 = FindEntity(worker4, 2, function(guy) 
380						  return guy.prefab == "rock1" or guy.prefab == "rock2" or guy.prefab == "rock_flintless" or guy.prefab == "rock_flintless_med" or guy.prefab == "rock_flintless_low" or guy.prefab == "rock_ice"
381					  end )
382					  if target2 then
383						 worker4.AnimState:PlayAnimation("pickup")
384						 target2.components.workable:Destroy(worker4)
385					  end
386				  end )
387			   else
388				  worker4.components.follower:SetLeader(GetPlayer())
389				  local brain = require "brains/chesterbrain"
390				  worker4:SetBrain(brain)
391				  worker4:RestartBrain()
392				  if worker4.task2 then worker4.task2:Cancel() worker4.task2 = nil end
393			   end
394		   end )
395	   end
396	   worker4:ListenForEvent( "nighttime", function() worker4:Remove() end, GetWorld())
397	end
398	local shopsign1 = SpawnPrefab("petals_evil")
399	shopsign1.Transform:SetPosition(pt.x+2+3, 0, pt.z+2-3)
400	shopsign1.AnimState:SetBank("sign_home")
401	shopsign1.AnimState:SetBuild("sign_home")
402	shopsign1.AnimState:PlayAnimation("idle")
403	shopsign1.Transform:SetScale(0.5, 0.5, 0.5)
404	shopsign1:RemoveComponent("stackable")
405	shopsign1:RemoveComponent("tradable")
406	shopsign1:RemoveComponent("fuel")
407	shopsign1:RemoveComponent("inventoryitem")
408	shopsign1:RemoveComponent("edible")
409	shopsign1:RemoveComponent("perishable")
410	shopsign1:RemoveComponent("burnable")
411	shopsign1:RemoveComponent("propagator")
412	shopsign1:RemoveComponent("deployable")
413	MakeLargeBurnable(shopsign1)
414	MakeLargePropagator(shopsign1)
415	shopsign1:AddTag("goodbye")
416	local shopsign2 = SpawnPrefab("petals_evil")
417	shopsign2.Transform:SetPosition(pt.x+2+1, 0, pt.z+2-1)
418	shopsign2.AnimState:SetBank("sign_home")
419	shopsign2.AnimState:SetBuild("sign_home")
420	shopsign2.AnimState:PlayAnimation("idle")
421	shopsign2.Transform:SetScale(0.5, 0.5, 0.5)
422	shopsign2:RemoveComponent("stackable")
423	shopsign2:RemoveComponent("tradable")
424	shopsign2:RemoveComponent("fuel")
425	shopsign2:RemoveComponent("inventoryitem")
426	shopsign2:RemoveComponent("edible")
427	shopsign2:RemoveComponent("perishable")
428	shopsign2:RemoveComponent("burnable")
429	shopsign2:RemoveComponent("propagator")
430	shopsign2:RemoveComponent("deployable")
431	MakeLargeBurnable(shopsign2)
432	MakeLargePropagator(shopsign2)
433	shopsign2:AddTag("goodbye")
434	local shopsign3 = SpawnPrefab("petals_evil")
435	shopsign3.Transform:SetPosition(pt.x+2-1, 0, pt.z+2+1)
436	shopsign3.AnimState:SetBank("sign_home")
437	shopsign3.AnimState:SetBuild("sign_home")
438	shopsign3.AnimState:PlayAnimation("idle")
439	shopsign3.Transform:SetScale(0.5, 0.5, 0.5)
440	shopsign3:RemoveComponent("stackable")
441	shopsign3:RemoveComponent("tradable")
442	shopsign3:RemoveComponent("fuel")
443	shopsign3:RemoveComponent("inventoryitem")
444	shopsign3:RemoveComponent("edible")
445	shopsign3:RemoveComponent("perishable")
446	shopsign3:RemoveComponent("burnable")
447	shopsign3:RemoveComponent("propagator")
448	shopsign3:RemoveComponent("deployable")
449	MakeLargeBurnable(shopsign3)
450	MakeLargePropagator(shopsign3)
451	shopsign3:AddTag("goodbye")
452	local shopsign4 = SpawnPrefab("petals_evil")
453	shopsign4.Transform:SetPosition(pt.x+2-3, 0, pt.z+2+3)
454	shopsign4.AnimState:SetBank("sign_home")
455	shopsign4.AnimState:SetBuild("sign_home")
456	shopsign4.AnimState:PlayAnimation("idle")
457	shopsign4.Transform:SetScale(0.5, 0.5, 0.5)
458	shopsign4:RemoveComponent("stackable")
459	shopsign4:RemoveComponent("tradable")
460	shopsign4:RemoveComponent("fuel")
461	shopsign4:RemoveComponent("inventoryitem")
462	shopsign4:RemoveComponent("edible")
463	shopsign4:RemoveComponent("perishable")
464	shopsign4:RemoveComponent("burnable")
465	shopsign4:RemoveComponent("propagator")
466	shopsign4:RemoveComponent("deployable")
467	MakeLargeBurnable(shopsign4)
468	MakeLargePropagator(shopsign4)
469	shopsign4:AddTag("goodbye")
470end
471local function OnDeploy (inst, pt)
472	createworker(inst)
473	inst.components.stackable:Get():Remove()
474end
475	inst:AddComponent("deployable")
476	inst.components.deployable.ondeploy = OnDeploy
477local function onsave(inst, data)
478	if inst:HasTag("shopsign") then
479		data.shopsign = true
480	end
481	if inst:HasTag("workerman") then
482		data.workerman = true
483	end
484	if inst:HasTag("myworker") then
485		data.myworker = true
486	end
487	if inst:HasTag("goodbye") then
488		data.goodbye = true
489	end
490end
491local function onload(inst, data)
492	if data and data.shopsign then
493	   createworker(inst)
494	   inst:Remove()
495	end
496	if data and data.workerman then
497	   inst:Remove()
498	end
499	if data and data.myworker then
500	   inst:Remove()
501	end
502	if data and data.goodbye then
503	   inst:Remove()
504	end
505end
506	inst.OnSave = onsave
507	inst.OnLoad = onload
508
509	即可用噩梦花瓣种临时工市场(拿着1个噩梦花瓣对地面点鼠标右键,如果拿着多个噩梦花瓣,则不会种出来),鼠标左键点击大招牌,会有4种临时工来应聘,从左到右分别是采摘工(采摘植物)、农民(收获农田并施肥)、伐木工(砍树)、矿工(开矿),想雇佣什么工种,就拿着黄金对他点鼠标左键,每人每天20个黄金。再次点大招牌,可以换不同的应聘人员供你选择。雇佣临时工后,他会跟随你,把他带到工作场所,会自动开始干活,干完后继续跟随。可打开小地图查询临时工的位置,显示为红色蘑菇树的图标。临时工会在每天黑夜来临时下班,想让你花费的工资更值得,就尽可能早点雇佣他们。如果想提早解雇临时工,就存档退出再读档,他们就被遣散了。不想要临时工市场时,烧掉即可