Sha256: c72c9ce8dad062d65e0cfd422a7a0b6308b21f6503b3c0f5750c695e3ce3a5b6
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true class ProconBypassMan::Procon::MacroRegistry2 attr_accessor :plugins PRESETS = { null: [], } def initialize self.plugins = ProconBypassMan::Procon::MacroPluginMap.new end def install_plugin(klass, steps: nil, macro_type: :normal) if plugins.fetch([klass.to_s.to_sym, macro_type], nil) Kernel.warn "#{klass} macro is already registered" return end plugins.store( [klass.to_s.to_sym, macro_type], ->{ ProconBypassMan::Procon::MacroBuilder.new(steps || klass.steps).build } ) end # @return [ProconBypassMan::Procon::Macro] def load(name, macro_type: :normal, force_neutral_buttons: [], &after_callback_block) if(steps = PRESETS[name] || plugins.fetch([name.to_s.to_sym, macro_type], nil)&.call) return ProconBypassMan::Procon::Macro.new(name: name, steps: steps.dup, force_neutral_buttons: force_neutral_buttons, &after_callback_block) else warn "installされていないマクロ(#{name})を使うことはできません" return self.load(:null) end end def cleanup_remote_macros! remote_keys = plugins.original_keys.select { |_, y| y == :remote } remote_keys.each do |remote_key| plugins.delete(remote_key) end plugins end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
procon_bypass_man-0.3.12 | lib/procon_bypass_man/procon/macro_registry2.rb |