Wed, 27 Aug 2025 10:26:12 +0300
Lots of stuff
19 | 1 | ---@class FusionLabStorageData |
2 | ---@field heat_interface LuaEntity heat buffer shadowing this entity | |
3 | ||
4 | ---@class FusionLabStorage | |
5 | ---@field fusion_labs table<LuaEntity, FusionLabStorageData>? | |
6 | storage = {} | |
7 | ||
8 | ---@param heat_interface LuaEntity | |
9 | local function init_heat_interface(heat_interface) | |
10 | heat_interface.custom_status = {diode=defines.entity_status_diode.green, label={"entity-status.normal"}} | |
11 | end | |
12 | ||
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
13 | local function init_storage() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
14 | if storage.fusion_labs == nil |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
15 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
16 | storage.fusion_labs = {} |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
17 | local num_labs = 0 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
18 | for _, surface in pairs(game.surfaces) |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
19 | do |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
20 | 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
|
21 | do |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
22 | if lab.valid |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
23 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
24 | num_labs = num_labs + 1 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
25 | 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
|
26 | name='fusion-lab-heat-interface', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
27 | position=lab.position, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
28 | limit = 1, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
29 | } |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
30 | local heat_interface |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
31 | if #heat_interfaces == 0 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
32 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
33 | heat_interfaces = {lab.surface.create_entity{ |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
34 | name='fusion-lab-heat-interface', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
35 | position=lab.position, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
36 | force=lab.force, |
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 | heat_interfaces[1].temperature = 15 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
39 | heat_interfaces[1].destructible = false |
19 | 40 | heat_interfaces[1].active = false |
41 | init_heat_interface(heat_interfaces[1]) | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
42 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
43 | storage.fusion_labs[lab] = { |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
44 | heat_interface = heat_interfaces[1], |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
45 | } |
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 | end |
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 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
50 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
51 | |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
52 | local function cleanup_labs() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
53 | local new_storage_fusion_labs = {} |
19 | 54 | for lab, lab_info in pairs(storage.fusion_labs or {}) |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
55 | do |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
56 | if lab.valid |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
57 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
58 | 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
|
59 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
60 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
61 | 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
|
62 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
63 | |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
64 | 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
|
65 | init_storage() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
66 | local need_cleanup = false |
19 | 67 | for lab, lab_info in pairs(storage.fusion_labs or {}) |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
68 | do |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
69 | if not lab.valid |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
70 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
71 | need_cleanup = true |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
72 | 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
|
73 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
74 | local heat_interface = lab_info.heat_interface |
19 | 75 | |
76 | if not heat_interface.valid | |
77 | then | |
78 | -- (╯°□°)╯︵ ┻━┻ | |
79 | game.print("[Fusion lab] Heat interface data corrupt, rebuilding") | |
80 | storage.fusion_labs = nil | |
81 | init_storage() | |
82 | return | |
83 | end | |
84 | ||
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
85 | lab.minable = (heat_interface.temperature <= 900) |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
86 | -- 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
|
87 | -- 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
|
88 | -- 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
|
89 | -- |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
90 | -- 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
|
91 | -- 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
|
92 | -- avoid potential floating point rounding errors. |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
93 | 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
|
94 | if heat_interface.temperature > 600 |
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 | lab.surface.create_entity{ |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
97 | name = 'fusion-lab-smoke-source', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
98 | 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
|
99 | force=lab.force, |
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 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
102 | if heat_interface.temperature > 710.0 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
103 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
104 | lab.surface.create_entity{ |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
105 | name = 'crash-site-fire-flame', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
106 | position={lab.position.x + 3.5 * (math.random() - 0.5), lab.position.y + 3.5 * (math.random() - 0.5)}, |
19 | 107 | force=game.forces.neutral, |
10
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 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
110 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
111 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
112 | if need_cleanup |
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 | cleanup_labs() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
115 | end |
19 | 116 | for _, player in pairs(game.players) |
117 | do | |
118 | if player.gui.relative.fusion_lab_gui and player.opened and player.opened.name == "fusion-lab" | |
119 | then | |
120 | for lab, lab_info in pairs(storage.fusion_labs) | |
121 | do | |
122 | if lab == player.opened | |
123 | then | |
124 | local heat_interface = lab_info.heat_interface | |
125 | local gui = player.gui.relative.fusion_lab_gui | |
126 | gui.heat.value = heat_interface.temperature / 700 | |
127 | gui.heat.caption = {"format-degrees", string.format("%.2f", heat_interface.temperature)} | |
128 | end | |
129 | end | |
130 | end | |
131 | end | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
132 | end) |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
133 | |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
134 | 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
|
135 | local lab = event.entity |
19 | 136 | event.entity.force = game.forces.neutral |
137 | -- we can't rely on storage here; search for the heat interface on the map | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
138 | local heat_interfaces = lab.surface.find_entities_filtered{ |
19 | 139 | name = 'fusion-lab-heat-interface', |
140 | position = lab.position, | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
141 | limit = 1, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
142 | } |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
143 | if #heat_interfaces > 0 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
144 | then |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
145 | local heat_interface = heat_interfaces[1] |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
146 | if heat_interface.temperature > 700 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
147 | then |
19 | 148 | for _, ofs in pairs{ |
149 | {0, 0}, | |
150 | {5, 0}, | |
151 | {-5, 0}, | |
152 | {0, 5}, | |
153 | {0, -5}, | |
154 | {1.5, 1.5}, | |
155 | {-1.5, 1.5}, | |
156 | {-1.5, -1.5}, | |
157 | {1.5, -1.5}} | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
158 | do |
19 | 159 | local pos = { |
160 | x = lab.position.x + ofs[1], | |
161 | y = lab.position.y + ofs[2]} | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
162 | lab.surface.create_entity{ |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
163 | name = 'artillery-projectile', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
164 | position = pos, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
165 | target = pos, |
19 | 166 | force = game.forces.neutral, |
167 | cause = event.entity, | |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
168 | } |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
169 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
170 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
171 | heat_interface.destroy() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
172 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
173 | end, {{filter="name", name="fusion-lab"}}) |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
174 | |
19 | 175 | ---@param event EventData |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
176 | 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
|
177 | init_storage() |
19 | 178 | local entity = event.entity ---@type LuaEntity |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
179 | 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
|
180 | name='fusion-lab-heat-interface', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
181 | position = entity.position |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
182 | }) |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
183 | do |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
184 | heat_interface.destroy() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
185 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
186 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
187 | |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
188 | 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
|
189 | init_storage() |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
190 | local lab = event.entity |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
191 | heat_interface = lab.surface.create_entity{ |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
192 | name='fusion-lab-heat-interface', |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
193 | position=lab.position, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
194 | force=lab.force, |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
195 | } |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
196 | heat_interface.temperature = 15 |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
197 | heat_interface.destructible = false |
19 | 198 | heat_interface.active = false |
10
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
199 | 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
|
200 | end |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
201 | |
101603241531
Add fusion lab (currently v1.2.3)
Teemu Piippo <teemu.s.piippo@gmail.com>
parents:
diff
changeset
|
202 | 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
|
203 | 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
|
204 | 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
|
205 | 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
|
206 | script.on_event(defines.events.on_robot_built_entity, on_fusion_lab_built, {{filter="name", name="fusion-lab"}}) |
19 | 207 | script.on_event(defines.events.on_space_platform_built_entity, on_fusion_lab_built, {{filter="name", name="fusion-lab"}}) |