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

This commit is contained in:
2019-08-10 09:40:31 -05:00
parent bc89fb6911
commit a22a3f3f3c
10 changed files with 35 additions and 35 deletions

View File

@@ -62,12 +62,9 @@ if RUBY_VERSION < "2.5.0"
end end
end end
class IMICFPS
GAME_ROOT_PATH = File.expand_path(File.dirname(__FILE__))
end
include CyberarmEngine include CyberarmEngine
require_relative "lib/version" require_relative "lib/version"
require_relative "lib/constants"
require_relative "lib/common_methods" require_relative "lib/common_methods"
require_relative "lib/trees/aabb_tree_debug" 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/trees/aabb_node"
require_relative "lib/managers/input_mapper" require_relative "lib/managers/input_mapper"
require_relative "lib/managers/shader_manager"
require_relative "lib/managers/entity_manager" require_relative "lib/managers/entity_manager"
require_relative "lib/managers/light_manager" require_relative "lib/managers/light_manager"
require_relative "lib/managers/network_manager" require_relative "lib/managers/network_manager"

8
lib/constants.rb Normal file
View File

@@ -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

View File

@@ -1,9 +1,4 @@
class IMICFPS 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 module EntityManager # Get included into GameState context
def add_entity(entity) def add_entity(entity)
@collision_manager.add(entity)# Add every entity to collision manager @collision_manager.add(entity)# Add every entity to collision manager

View File

@@ -96,6 +96,12 @@ class IMICFPS
raise "InputMapper.action(#{key}) is nil!" unless answer raise "InputMapper.action(#{key}) is nil!" unless answer
answer answer
end end
def self.reset_keys
@@keys.each do |key, value|
@@keys[key] = false
end
end
end end
end end

View File

@@ -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

View File

@@ -11,11 +11,12 @@ class IMICFPS
@collision = :dynamic @collision = :dynamic
@speed = 2.5 # meter's per second @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 @turn_speed = 50.0
@old_speed = @speed @old_speed = @speed
@mass = 72 # kg @mass = 72 # kg
@first_person_view = true @first_person_view = true
@visible = false
@drag = 0.6 @drag = 0.6
@devisor = 500.0 @devisor = 500.0

View File

@@ -28,19 +28,23 @@ class IMICFPS
handleGlError handleGlError
if ShaderManager.shader("lighting") if Shader.available?("lighting")
ShaderManager.shader("lighting").use do |shader| Shader.use("lighting") do |shader|
glUniform3f(shader.variable("SunLight"), 1.0, 1.0, 1.0) glUniform3f(shader.attribute_location("SunLight"), 1.0, 1.0, 1.0)
handleGlError handleGlError
if object.visible
draw_mesh(object.model) draw_mesh(object.model)
object.draw object.draw
end end
end
else else
handleGlError handleGlError
if object.visible
draw_mesh(object.model) draw_mesh(object.model)
object.draw object.draw
end end
end
handleGlError handleGlError
glPopMatrix glPopMatrix

View File

@@ -15,8 +15,7 @@ class IMICFPS
add_asset(:model, "base", "tree") add_asset(:model, "base", "tree")
add_asset(:model, "base", "biped") add_asset(:model, "base", "biped")
# Currently broken add_asset(:shader, nil, "lighting")
Shader.new(name: "lighting", vertex: "shaders/vertex/lighting.glsl", fragment: "shaders/fragment/lighting.glsl")
@act = false @act = false
@cycled = false @cycled = false
@@ -37,7 +36,6 @@ class IMICFPS
end end
def update def update
# puts (@asset_index.to_f/@assets.count)
@percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%" @percentage.text = "#{((@asset_index.to_f/@assets.count)*100.0).round}%"
@act = true if @cycled @act = true if @cycled
@@ -49,7 +47,8 @@ class IMICFPS
case hash[:type] case hash[:type]
when :model when :model
ModelLoader.new(manifest_file: IMICFPS.assets_path + "/#{hash[:package]}/#{hash[:name]}/manifest.yaml", entity: @dummy_entity) 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 else
warn "Unknown asset: #{hash}" warn "Unknown asset: #{hash}"
end end
@@ -66,7 +65,7 @@ class IMICFPS
@lock = true @lock = true
end end
else 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) @state.x = (window.width/2)-(@state.width/2)
@cycled = true @cycled = true
end end

View File

@@ -11,6 +11,7 @@ class IMICFPS
def setup def setup
$debug = self $debug = self
set(:boundingboxes, false) set(:boundingboxes, false)
set(:wireframe, false) set(:wireframe, false)
set(:stats, false) set(:stats, false)

View File

@@ -151,6 +151,8 @@ class IMICFPS
end end
def focus def focus
InputMapper.reset_keys
@active_text_input = window.text_input @active_text_input = window.text_input
window.text_input = @text_input window.text_input = @text_input