From a22a3f3f3cbf4e9874c3cd39aa628708e9ab15c9 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sat, 10 Aug 2019 09:40:31 -0500 Subject: [PATCH] Moved constants into their own file, LoadingState now loads shaders and now shows 'Loading [model|shader] name...', tweaked player running speed, Player model is no longer rendered when in first person view, removed redundant ShaderManager --- i-mic-fps.rb | 6 +----- lib/constants.rb | 8 ++++++++ lib/managers/entity_manager.rb | 5 ----- lib/managers/input_mapper.rb | 6 ++++++ lib/managers/shader_manager.rb | 12 ------------ lib/objects/entities/player.rb | 3 ++- lib/renderer/opengl_renderer.rb | 18 +++++++++++------- lib/states/game_states/loading_state.rb | 9 ++++----- lib/ui/commands/debug_command.rb | 1 + lib/ui/console.rb | 2 ++ 10 files changed, 35 insertions(+), 35 deletions(-) create mode 100644 lib/constants.rb delete mode 100644 lib/managers/shader_manager.rb diff --git a/i-mic-fps.rb b/i-mic-fps.rb index 0bd854d..7141176 100644 --- a/i-mic-fps.rb +++ b/i-mic-fps.rb @@ -62,12 +62,9 @@ if RUBY_VERSION < "2.5.0" end end -class IMICFPS - GAME_ROOT_PATH = File.expand_path(File.dirname(__FILE__)) -end - include CyberarmEngine require_relative "lib/version" +require_relative "lib/constants" require_relative "lib/common_methods" require_relative "lib/trees/aabb_tree_debug" @@ -75,7 +72,6 @@ require_relative "lib/trees/aabb_tree" require_relative "lib/trees/aabb_node" require_relative "lib/managers/input_mapper" -require_relative "lib/managers/shader_manager" require_relative "lib/managers/entity_manager" require_relative "lib/managers/light_manager" require_relative "lib/managers/network_manager" diff --git a/lib/constants.rb b/lib/constants.rb new file mode 100644 index 0000000..53410cb --- /dev/null +++ b/lib/constants.rb @@ -0,0 +1,8 @@ +class IMICFPS + GAME_ROOT_PATH = File.expand_path("..", File.dirname(__FILE__)) + + TextureCoordinate = Struct.new(:u, :v, :weight) + Point = Struct.new(:x, :y) + Color = Struct.new(:red, :green, :blue, :alpha) + Face = Struct.new(:vertices, :uvs, :normals, :material, :smoothing) +end \ No newline at end of file diff --git a/lib/managers/entity_manager.rb b/lib/managers/entity_manager.rb index 75e54bc..f9bc80a 100644 --- a/lib/managers/entity_manager.rb +++ b/lib/managers/entity_manager.rb @@ -1,9 +1,4 @@ class IMICFPS - TextureCoordinate = Struct.new(:u, :v, :weight) - Point = Struct.new(:x, :y) - Color = Struct.new(:red, :green, :blue, :alpha) - Face = Struct.new(:vertices, :uvs, :normals, :material, :smoothing) - module EntityManager # Get included into GameState context def add_entity(entity) @collision_manager.add(entity)# Add every entity to collision manager diff --git a/lib/managers/input_mapper.rb b/lib/managers/input_mapper.rb index 10420bc..cb121bd 100644 --- a/lib/managers/input_mapper.rb +++ b/lib/managers/input_mapper.rb @@ -96,6 +96,12 @@ class IMICFPS raise "InputMapper.action(#{key}) is nil!" unless answer answer end + + def self.reset_keys + @@keys.each do |key, value| + @@keys[key] = false + end + end end end diff --git a/lib/managers/shader_manager.rb b/lib/managers/shader_manager.rb deleted file mode 100644 index b63fc13..0000000 --- a/lib/managers/shader_manager.rb +++ /dev/null @@ -1,12 +0,0 @@ -class IMICFPS - class ShaderManager - SHADERS = {} - def self.add_shader(name, shader) - SHADERS[name] = shader - end - - def self.shader(name) - SHADERS[name] - end - end -end \ No newline at end of file diff --git a/lib/objects/entities/player.rb b/lib/objects/entities/player.rb index 9221c91..b8bdbe5 100644 --- a/lib/objects/entities/player.rb +++ b/lib/objects/entities/player.rb @@ -11,11 +11,12 @@ class IMICFPS @collision = :dynamic @speed = 2.5 # meter's per second - @running_speed = 6.8 # meter's per second + @running_speed = 5.0 # meter's per second @turn_speed = 50.0 @old_speed = @speed @mass = 72 # kg @first_person_view = true + @visible = false @drag = 0.6 @devisor = 500.0 diff --git a/lib/renderer/opengl_renderer.rb b/lib/renderer/opengl_renderer.rb index 03e312f..07bca53 100644 --- a/lib/renderer/opengl_renderer.rb +++ b/lib/renderer/opengl_renderer.rb @@ -28,18 +28,22 @@ class IMICFPS handleGlError - if ShaderManager.shader("lighting") - ShaderManager.shader("lighting").use do |shader| - glUniform3f(shader.variable("SunLight"), 1.0, 1.0, 1.0) + if Shader.available?("lighting") + Shader.use("lighting") do |shader| + glUniform3f(shader.attribute_location("SunLight"), 1.0, 1.0, 1.0) handleGlError - draw_mesh(object.model) - object.draw + if object.visible + draw_mesh(object.model) + object.draw + end end else handleGlError - draw_mesh(object.model) - object.draw + if object.visible + draw_mesh(object.model) + object.draw + end end handleGlError diff --git a/lib/states/game_states/loading_state.rb b/lib/states/game_states/loading_state.rb index ae538d4..3f3cf95 100644 --- a/lib/states/game_states/loading_state.rb +++ b/lib/states/game_states/loading_state.rb @@ -15,8 +15,7 @@ class IMICFPS add_asset(:model, "base", "tree") add_asset(:model, "base", "biped") - # Currently broken - Shader.new(name: "lighting", vertex: "shaders/vertex/lighting.glsl", fragment: "shaders/fragment/lighting.glsl") + add_asset(:shader, nil, "lighting") @act = false @cycled = false @@ -37,7 +36,6 @@ class IMICFPS end def update - # puts (@asset_index.to_f/@assets.count) @percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%" @act = true if @cycled @@ -49,7 +47,8 @@ class IMICFPS case hash[:type] when :model ModelLoader.new(manifest_file: IMICFPS.assets_path + "/#{hash[:package]}/#{hash[:name]}/manifest.yaml", entity: @dummy_entity) - # when :shader + when :shader + Shader.new(name: hash[:name], vertex: "shaders/vertex/#{hash[:name]}.glsl", fragment: "shaders/fragment/#{hash[:name]}.glsl") else warn "Unknown asset: #{hash}" end @@ -66,7 +65,7 @@ class IMICFPS @lock = true end else - @state.text = "Loading #{@assets[@asset_index][:name].split('/').last}..." + @state.text = "Loading #{@assets[@asset_index][:type]} #{@assets[@asset_index][:name].split('/').last}..." @state.x = (window.width/2)-(@state.width/2) @cycled = true end diff --git a/lib/ui/commands/debug_command.rb b/lib/ui/commands/debug_command.rb index f1b6861..4e7affa 100644 --- a/lib/ui/commands/debug_command.rb +++ b/lib/ui/commands/debug_command.rb @@ -11,6 +11,7 @@ class IMICFPS def setup $debug = self + set(:boundingboxes, false) set(:wireframe, false) set(:stats, false) diff --git a/lib/ui/console.rb b/lib/ui/console.rb index 25e2615..3014b20 100644 --- a/lib/ui/console.rb +++ b/lib/ui/console.rb @@ -151,6 +151,8 @@ class IMICFPS end def focus + InputMapper.reset_keys + @active_text_input = window.text_input window.text_input = @text_input