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

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

View File

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

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

View File

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

View File

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

View File

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

View File

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