@@ -22,14 +22,18 @@ function set_player_data(player_index, data)
2222end
2323
2424-- Handle MicroController OPEN event.
25- script .on_event (" microcontroller-open" , function (event )
26- local player = game .players [event .player_index ]
25+ script .on_event (" open-gui" , function (event )
26+ local player_index = event .player_index
27+ local player = game .get_player (player_index )
28+ if not (player and player .valid ) then return end
2729 local entity = player .selected
28- if entity and entity .name == " microcontroller" then
30+ if not (entity and entity .valid ) then return end
31+
32+ if entity .name == " microcontroller" then
2933 entity .operable = false
30- local player_data = get_player_data (event . player_index )
34+ local player_data = get_player_data (player_index )
3135 player_data .open_microcontroller = entity
32- set_player_data (event . player_index , player_data )
36+ set_player_data (player_index , player_data )
3337 microcontrollerGui (player , entity )
3438 end
3539end )
@@ -111,17 +115,21 @@ end)
111115
112116-- Handle MicroController GUI Close event.
113117script .on_event (" microcontroller-close" , function (event )
114- local player = game .players [event .player_index ]
115- local player_data = get_player_data (event .player_index )
118+ local player_index = event .player_index
119+ local player = game .get_player (player_index )
120+ if not (player and player .valid ) then return end
121+
122+ local player_data = get_player_data (player_index )
116123 if player_data .open_microcontroller_gui then
117124 microcontroller .update_program_text (player_data .open_microcontroller , player_data .open_microcontroller_gui .outer .scroll_pane .inner [' program-input' ].text )
118125 player_data .open_microcontroller_gui .destroy ()
119126 player_data .open_microcontroller_gui = nil
120127 end
121- if player .gui .center [' mc-docs' ] then
122- player .gui .center [' mc-docs' ].destroy ()
128+ local docs = player .gui .center [' mc-docs' ]
129+ if docs then
130+ docs .destroy ()
123131 end
124- set_player_data (event . player_index , player_data )
132+ set_player_data (player_index , player_data )
125133end )
126134
127135-- Handle GUI text changed event.
@@ -160,12 +168,13 @@ local function update_topics_gui(gui)
160168 gui .add {type = " label" , caption = {" " , {" microcontroller.example" }, {" colon" }}}
161169 local textbox = gui .add {type = " text-box" , text = topic .example }
162170 textbox .read_only = true
163- textbox .style .maximal_width = 0
164- textbox .style .minimal_height = 60
165- textbox .style .maximal_height = 140
166- textbox .style .horizontally_stretchable = true
167- textbox .style .vertically_stretchable = true
168- textbox .style .height = 130
171+ local style = textbox .style
172+ style .maximal_width = 0
173+ style .minimal_height = 60
174+ style .maximal_height = 140
175+ style .horizontally_stretchable = true
176+ style .vertically_stretchable = true
177+ style .height = 130
169178 end
170179 end
171180end
174183
175184-- Handle selection in GUI.
176185script .on_event (defines .events .on_gui_selection_state_changed , function (event )
177- local player = game .players [ event .player_index ]
186+ local player = game .get_player ( event .player_index )
178187 if not (player and player .valid ) then return end
179188 local element = event .element
180189 if not (element and element .valid and element .name ) then return end
@@ -186,10 +195,10 @@ end)
186195
187196-- Handle GUI button presses.
188197script .on_event (defines .events .on_gui_click , function (event )
189- local player = game .players [ event .player_index ]
198+ local player = game .get_player ( event .player_index )
190199 if not (player and player .valid ) then return end
191- local player_data = get_player_data (event .player_index )
192200 local element = event .element
201+ local player_data = get_player_data (event .player_index )
193202 if element and element .valid and element .name then
194203 -- RUN button pressed:
195204 if element .name == " run-program" then
@@ -282,7 +291,7 @@ script.on_event(microcontroller.event_halt, function(event)
282291 end
283292end )
284293
285- function signalToSpritePath (signal )
294+ local function signalToSpritePath (signal )
286295 if signal .type == " virtual" then
287296 return " virtual-signal/" .. signal .name
288297 else
0 commit comments