z_mirror/MouseOverConstruction
git clone https://git.raiguard.me/z_mirror/MouseOverConstruction
5a3cd7c
insertion
1-- TODO: Execute logic if enabled while entity is selected. 2-- TODO: Cancel logic if disabled while entity is selected. 3 4--- @param e EventData.on_lua_shortcut|EventData.CustomInputEvent 5local function toggle_mouseover ( e ) 6local name =e . input_name or e . prototype_name 7if name ~= "moc-toggle" then 8return 9end 10local player =game . get_player ( e . player_index ) 11if not player then 12return 13end 14local new_value =not storage . mouseover_active [ e . player_index ] 15storage . mouseover_active [ e . player_index ] =new_value 16player . set_shortcut_toggled ( "moc-toggle" , new_value ) 17if e . input_name then 18player . create_local_flying_text ( { 19text =new_value and { "message.moc-enabled" } or { "message.moc-disabled" } , 20create_at_cursor =true , 21} ) 22end 23end 24 25--- @class shortcut_handler : event_handler 26local shortcut_handler ={} 27 28function shortcut_handler . on_init () 29--- @type Set<PlayerIndex> 30storage . mouseover_active ={} 31for _ , player in pairs ( game . players ) do 32storage . mouseover_active [ player . index ] =player . is_shortcut_toggled ( "moc-toggle" ) 33end 34end 35 36shortcut_handler . on_configuration_changed =shortcut_handler . on_init 37 38shortcut_handler . events ={ 39[ defines . events . on_lua_shortcut ] =toggle_mouseover , 40[ "moc-toggle" ] =toggle_mouseover , 41} 42 43return shortcut_handler