mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 23:52:35 +00:00
Added extras menu, stubbed map editor, made asset viewer and map editor accessible from extras menu
This commit is contained in:
21
i-mic-fps.rb
21
i-mic-fps.rb
@@ -54,6 +54,7 @@ end
|
|||||||
require_relative "lib/ui/console"
|
require_relative "lib/ui/console"
|
||||||
require_relative "lib/ui/menus/main_menu"
|
require_relative "lib/ui/menus/main_menu"
|
||||||
require_relative "lib/ui/menus/settings_menu"
|
require_relative "lib/ui/menus/settings_menu"
|
||||||
|
require_relative "lib/ui/menus/extras_menu"
|
||||||
require_relative "lib/ui/menus/level_select_menu"
|
require_relative "lib/ui/menus/level_select_menu"
|
||||||
require_relative "lib/ui/menus/game_pause_menu"
|
require_relative "lib/ui/menus/game_pause_menu"
|
||||||
|
|
||||||
@@ -101,24 +102,8 @@ require_relative "lib/demo"
|
|||||||
|
|
||||||
require_relative "lib/window"
|
require_relative "lib/window"
|
||||||
|
|
||||||
if ARGV[0] == "tool"
|
require_relative "lib/tools/asset_viewer"
|
||||||
case ARGV[1]
|
require_relative "lib/tools/map_editor"
|
||||||
when "viewer" # Turn Table
|
|
||||||
require_relative "lib/tools/asset_viewer/asset_viewer"
|
|
||||||
when "editor" # Level Editor
|
|
||||||
raise NotImplementedError
|
|
||||||
else
|
|
||||||
if ARGV[1].nil?
|
|
||||||
puts "### I-MIC FPS Tools ###"
|
|
||||||
puts "viewer - 3D Turn Table"
|
|
||||||
puts "editor - Level Editor"
|
|
||||||
else
|
|
||||||
raise "No such tool: #{ARGV[1]}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return # Don't launch game, but load all required files
|
|
||||||
end
|
|
||||||
|
|
||||||
if ARGV.join.include?("--profile")
|
if ARGV.join.include?("--profile")
|
||||||
begin
|
begin
|
||||||
|
|||||||
2
lib/tools/asset_viewer.rb
Normal file
2
lib/tools/asset_viewer.rb
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
require_relative "asset_viewer/lib/main_menu"
|
||||||
|
require_relative "asset_viewer/lib/turn_table"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
require_relative "lib/main_menu"
|
|
||||||
require_relative "lib/turn_table"
|
|
||||||
|
|
||||||
class AssetViewerWindow < IMICFPS::Window
|
|
||||||
def initialize(*args)
|
|
||||||
super(*args)
|
|
||||||
|
|
||||||
push_state(IMICFPS::AssetViewerTool::MainMenu)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
AssetViewerWindow.new.show
|
|
||||||
@@ -18,6 +18,10 @@ class IMICFPS
|
|||||||
|
|
||||||
@manifests.sort_by! { |m| m.name.downcase }
|
@manifests.sort_by! { |m| m.name.downcase }
|
||||||
|
|
||||||
|
button "Back", margin_bottom: 25 do
|
||||||
|
pop_state
|
||||||
|
end
|
||||||
|
|
||||||
flow(margin: 10) do
|
flow(margin: 10) do
|
||||||
@manifests.each do |manifest|
|
@manifests.each do |manifest|
|
||||||
button manifest.name do
|
button manifest.name do
|
||||||
@@ -25,10 +29,6 @@ class IMICFPS
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
button "Exit", margin_top: 25 do
|
|
||||||
window.close
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
|||||||
1
lib/tools/map_editor.rb
Normal file
1
lib/tools/map_editor.rb
Normal file
@@ -0,0 +1 @@
|
|||||||
|
require_relative "map_editor/lib/main_menu"
|
||||||
45
lib/tools/map_editor/lib/main_menu.rb
Normal file
45
lib/tools/map_editor/lib/main_menu.rb
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
class IMICFPS
|
||||||
|
class MapEditorTool
|
||||||
|
class MainMenu < CyberarmEngine::GuiState
|
||||||
|
def setup
|
||||||
|
window.needs_cursor = true
|
||||||
|
|
||||||
|
label "#{IMICFPS::NAME}", text_size: 50
|
||||||
|
label "Map Editor", text_size: 28
|
||||||
|
|
||||||
|
@maps = []
|
||||||
|
Dir.glob(GAME_ROOT_PATH + "/maps/*.json").each do |map|
|
||||||
|
begin
|
||||||
|
@maps << MapParser.new(map_file: map)
|
||||||
|
rescue
|
||||||
|
warn "Broken map file: #{map}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
@maps.sort_by! { |m| m.metadata.name.downcase }
|
||||||
|
|
||||||
|
button "Back", margin_bottom: 25 do
|
||||||
|
pop_state
|
||||||
|
end
|
||||||
|
|
||||||
|
button "New Map"
|
||||||
|
|
||||||
|
label ""
|
||||||
|
label "Edit Map"
|
||||||
|
flow(margin: 10) do
|
||||||
|
@maps.each do |map|
|
||||||
|
button map.metadata.name do
|
||||||
|
# push_state(TurnTable, manifest: manifest)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
super
|
||||||
|
|
||||||
|
window.needs_cursor = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
20
lib/ui/menus/extras_menu.rb
Normal file
20
lib/ui/menus/extras_menu.rb
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
class IMICFPS
|
||||||
|
class ExtrasMenu < Menu
|
||||||
|
def setup
|
||||||
|
title "I-MIC FPS"
|
||||||
|
subtitle "Extras"
|
||||||
|
|
||||||
|
link "Asset Viewer" do
|
||||||
|
push_state(IMICFPS::AssetViewerTool::MainMenu)
|
||||||
|
end
|
||||||
|
|
||||||
|
link "Map Editor" do
|
||||||
|
push_state(IMICFPS::MapEditorTool::MainMenu)
|
||||||
|
end
|
||||||
|
|
||||||
|
link "Back" do
|
||||||
|
pop_state
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -12,6 +12,10 @@ class IMICFPS
|
|||||||
push_state(SettingsMenu)
|
push_state(SettingsMenu)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
link "Extras" do
|
||||||
|
push_state(ExtrasMenu)
|
||||||
|
end
|
||||||
|
|
||||||
link "Exit" do
|
link "Exit" do
|
||||||
window.close
|
window.close
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user