private void on_entity_added(IMyEntity entity)
        {
            var grid = entity as IMyCubeGrid;

            if (grid != null)
            {
                var new_grid_logic = new grid_logic(grid);
                _grids_handle_60Hz      += new_grid_logic.handle_60Hz;
                _grids_handle_4Hz       += new_grid_logic.handle_4Hz;
                _grids_handle_2s_period += new_grid_logic.handle_2s_period;
                _grids.Add(grid, new_grid_logic);
            }
        }
        private void on_entity_removed(IMyEntity entity)
        {
            var grid = entity as IMyCubeGrid;

            if (grid != null && _grids.ContainsKey(grid))
            {
                grid_logic grid_logic_to_remove = _grids[grid];
                _grids_handle_60Hz      -= grid_logic_to_remove.handle_60Hz;
                _grids_handle_4Hz       -= grid_logic_to_remove.handle_4Hz;
                _grids_handle_2s_period -= grid_logic_to_remove.handle_2s_period;
                grid_logic_to_remove.Dispose();
                _grids.Remove(grid);
            }
        }
 public static void register_logic_object(grid_logic obj, long entity_id)
 {
     entities.Add(entity_id, obj);
 }