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