fusion-lab/control.lua

Wed, 02 Jul 2025 14:29:06 +0300

author
Teemu Piippo <teemu.s.piippo@gmail.com>
date
Wed, 02 Jul 2025 14:29:06 +0300
changeset 11
da16c5a08162
parent 10
101603241531
permissions
-rw-r--r--

Added tag fusion-lab_1.2.3 for changeset 101603241531

10
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
1 local function init_storage()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
2 if storage.fusion_labs == nil
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
3 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
4 storage.fusion_labs = {}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
5 local num_labs = 0
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
6 for _, surface in pairs(game.surfaces)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
7 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
8 for _, lab in pairs(surface.find_entities_filtered{name="fusion-lab"})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
9 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
10 if lab.valid
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
11 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
12 num_labs = num_labs + 1
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
13 local heat_interfaces = surface.find_entities_filtered{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
14 name='fusion-lab-heat-interface',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
15 position=lab.position,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
16 limit = 1,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
17 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
18 local heat_interface
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
19 if #heat_interfaces == 0
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
20 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
21 heat_interfaces = {lab.surface.create_entity{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
22 name='fusion-lab-heat-interface',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
23 position=lab.position,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
24 force=lab.force,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
25 }}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
26 heat_interfaces[1].temperature = 15
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
27 heat_interfaces[1].destructible = false
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
28 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
29 storage.fusion_labs[lab] = {
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
30 heat_interface = heat_interfaces[1],
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
31 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
32 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
33 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
34 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
35 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
36 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
37
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
38 local function cleanup_labs()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
39 local new_storage_fusion_labs = {}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
40 for lab, lab_info in pairs(storage.fusion_labs)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
41 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
42 if lab.valid
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
43 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
44 new_storage_fusion_labs[lab] = lab_info
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
45 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
46 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
47 storage.fusion_labs = new_storage_fusion_labs
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
48 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
49
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
50 script.on_nth_tick(31, function(event)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
51 init_storage()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
52 local need_cleanup = false
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
53 for lab, lab_info in pairs(storage.fusion_labs)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
54 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
55 if not lab.valid
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
56 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
57 need_cleanup = true
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
58 elseif lab.status == defines.entity_status.working
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
59 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
60 local heat_interface = lab_info.heat_interface
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
61 lab.minable = (heat_interface.temperature <= 900)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
62 -- A cryogenic plant cooling hot fluoroketone voids 1320kW
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
63 -- of heat energy, so the fusion lab with no modules just happens
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
64 -- to conveniently radiate exactly half of that energy rate.
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
65 --
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
66 -- The 0.341 here is 31/60*0.66 = 0.341 degrees of heat increase
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
67 -- every 31 ticks, for 0.66 ℃/sec. it's written out as 0.341 to
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
68 -- avoid potential floating point rounding errors.
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
69 heat_interface.temperature = heat_interface.temperature + (1 + lab.consumption_bonus) * 0.341
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
70 if heat_interface.temperature > 600
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
71 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
72 lab.surface.create_entity{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
73 name = 'fusion-lab-smoke-source',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
74 position={lab.position.x + 3.5 * (math.random() - 0.5), lab.position.y + 3.5 * (math.random() - 0.5)},
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
75 force=lab.force,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
76 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
77 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
78 if heat_interface.temperature > 710.0
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
79 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
80 lab.surface.create_entity{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
81 name = 'crash-site-fire-flame',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
82 position={lab.position.x + 3.5 * (math.random() - 0.5), lab.position.y + 3.5 * (math.random() - 0.5)},
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
83 force=game.forces.enemy,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
84 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
85 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
86 --[[
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
87 if heat_interface.temperature > 750.0
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
88 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
89 lab.die()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
90 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
91 ]]--
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
92 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
93 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
94 if need_cleanup
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
95 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
96 cleanup_labs()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
97 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
98 end)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
99
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
100
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
101 script.on_event(defines.events.on_entity_died, function(event)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
102 local lab = event.entity
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
103 -- we can't rely on storage here
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
104 local heat_interfaces = lab.surface.find_entities_filtered{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
105 name='fusion-lab-heat-interface',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
106 position=lab.position,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
107 limit = 1,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
108 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
109 if #heat_interfaces > 0
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
110 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
111 local heat_interface = heat_interfaces[1]
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
112 if heat_interface.temperature > 700
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
113 then
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
114 for _, ofs in pairs{{0, 0}, {5, 0}, {-5, 0}, {0, 5}, {0, -5}, {1.5, 1.5}, {-1.5, 1.5}, {-1.5, -1.5}, {1.5, -1.5}}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
115 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
116 local pos = {x = lab.position.x + ofs[1], y = lab.position.y + ofs[2]}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
117 lab.surface.create_entity{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
118 name = 'artillery-projectile',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
119 position = pos,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
120 target = pos,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
121 force = game.forces.enemy,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
122 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
123 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
124 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
125 heat_interface.destroy()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
126 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
127 end, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
128
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
129 local function on_fusion_lab_mined(event)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
130 init_storage()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
131 local entity = event.entity
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
132 for _, heat_interface in pairs(entity.surface.find_entities_filtered{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
133 name='fusion-lab-heat-interface',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
134 position = entity.position
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
135 })
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
136 do
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
137 heat_interface.destroy()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
138 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
139 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
140
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
141 local function on_fusion_lab_built(event)
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
142 init_storage()
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
143 local lab = event.entity
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
144 heat_interface = lab.surface.create_entity{
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
145 name='fusion-lab-heat-interface',
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
146 position=lab.position,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
147 force=lab.force,
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
148 }
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
149 heat_interface.temperature = 15
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
150 heat_interface.destructible = false
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
151 storage.fusion_labs[lab] = {heat_interface = heat_interface}
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
152 end
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
153
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
154 script.on_event(defines.events.on_player_mined_entity, on_fusion_lab_mined, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
155 script.on_event(defines.events.on_robot_mined_entity, on_fusion_lab_mined, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
156 script.on_event(defines.events.on_space_platform_mined_entity, on_fusion_lab_mined, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
157 script.on_event(defines.events.on_built_entity, on_fusion_lab_built, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
158 script.on_event(defines.events.on_robot_built_entity, on_fusion_lab_built, {{filter="name", name="fusion-lab"}})
101603241531 Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff changeset
159 script.on_event(defines.events.on_space_platform_built_entity, on_fusion_lab_built, {{filter="name", name="fusion-lab"}})

mercurial