diff --git a/app/helpers/break_escape/application_helper.rb b/app/helpers/break_escape/application_helper.rb index 3a9dd4c9..81baa8a4 100644 --- a/app/helpers/break_escape/application_helper.rb +++ b/app/helpers/break_escape/application_helper.rb @@ -1,8 +1,25 @@ +require 'json' + module BreakEscape module ApplicationHelper - # Generate a random ID for DOM elements def generate_random_id SecureRandom.hex(8) end + + def be_asset_path(path) + "#{path}?v=#{BreakEscape::ASSETS_VERSION}" + end + + def break_escape_import_map + version = BreakEscape::ASSETS_VERSION + js_root = BreakEscape::Engine.root.join('public') + js_dir = js_root.join('break_escape', 'js') + imports = Dir.glob("#{js_dir}/**/*.js").sort.each_with_object({}) do |file, h| + path = "/#{Pathname.new(file).relative_path_from(js_root)}" + h[path] = "#{path}?v=#{version}" + end + content_tag(:script, JSON.generate({ imports: imports }).html_safe, + type: 'importmap', nonce: content_security_policy_nonce) + end end end diff --git a/app/helpers/break_escape/player_preferences_helper.rb b/app/helpers/break_escape/player_preferences_helper.rb index 97029b09..8efe0a8e 100644 --- a/app/helpers/break_escape/player_preferences_helper.rb +++ b/app/helpers/break_escape/player_preferences_helper.rb @@ -10,11 +10,8 @@ def sprite_valid_for_scenario?(sprite, scenario_data) end end - # Headshot filename for sprite (prefer _down_headshot for hacker_hood, else _headshot) - HEADSHOT_VERSION = 2 - def sprite_headshot_path(sprite) - "/break_escape/assets/characters/#{sprite}_headshot.png?v=#{HEADSHOT_VERSION}" + "/break_escape/assets/characters/#{sprite}_headshot.png?v=#{BreakEscape::ASSETS_VERSION}" end private diff --git a/app/views/break_escape/games/new.html.erb b/app/views/break_escape/games/new.html.erb index e27cbb8b..3a343ed7 100644 --- a/app/views/break_escape/games/new.html.erb +++ b/app/views/break_escape/games/new.html.erb @@ -1,5 +1,5 @@ <% content_for :head do %> - + <% end %> <%# Game Setup / VM Set Selection or Standalone Flags Page %>