Restructured 'objects' folder into a meaningful 'assets' folder, added 'war_factory' model, refactored GameObject#bind_model and ModelLoader to understand the restructuring.

This commit is contained in:
2019-02-17 10:50:08 -06:00
parent 3f7c5e992d
commit 9f6f330202
45 changed files with 3899 additions and 2442 deletions

View File

@@ -43,7 +43,9 @@ class IMICFPS
return self
end
def bind_model(model)
def bind_model(package, name)
model = ModelLoader.new(manifest_file: IMICFPS.assets_path + "/#{package}/#{name}/#{name}.yaml", game_object: @dummy_game_object)
raise "model isn't a model!" unless model.is_a?(ModelLoader)
@bound_model = model
@bound_model.model.game_object = self

View File

@@ -7,7 +7,7 @@ class IMICFPS
attr_reader :name, :bound_model, :first_person_view
def setup
bind_model(ModelLoader.new(type: :obj, file_path: "objects/biped.obj", game_object: self))
bind_model("base", "biped")
@speed = 2.5 # meter's per second
@running_speed = 6.8 # meter's per second
@old_speed = @speed

View File

@@ -1,7 +1,7 @@
class IMICFPS
class Skydome < GameObject
def setup
bind_model(ModelLoader.new(type: :obj, file_path: "objects/skydome.obj", game_object: self))
bind_model("base", "skydome")
end
def draw

View File

@@ -1,7 +1,7 @@
class IMICFPS
class Terrain < GameObject
def setup
bind_model(ModelLoader.new(type: :obj, file_path: "objects/randomish_terrain.obj", game_object: self))
bind_model("base", "randomish_terrain")
# bind_model(ModelLoader.new(type: :obj, file_path: "/home/cyberarm/Documents/blends/untitled.obj", game_object: self))
self.scale = 1
@nearest_vertex_lookup = {}

View File

@@ -1,7 +1,7 @@
class IMICFPS
class TestObject < GameObject
def setup
bind_model(ModelLoader.new(type: :obj, file_path: "objects/sponza.obj", game_object: self))
bind_model("base", "war_factory")
end
end
end

View File

@@ -1,13 +1,15 @@
class IMICFPS
class Tree < GameObject
def setup
bind_model(ModelLoader.new(type: :obj, file_path: "objects/tree.obj", game_object: self))
bind_model("base", "tree")
vert = @terrain.find_nearest_vertex(self, 4.5)
if vert
self.x = vert.x
self.y = vert.y
self.z = vert.z
end
# @y_rotation += rand(1..100)
end
# def update

View File

@@ -8,10 +8,13 @@ class IMICFPS
attr_reader :model, :name, :debug_color
def initialize(type:, file_path:, game_object: nil)
@type = type
@file_path = file_path
@name = file_path.split("/").last.split(".").first
def initialize(manifest_file:, game_object: nil)
@manifest = YAML.load(File.read(manifest_file))
pp @manifest
@file_path = File.expand_path("./../model/", manifest_file) + "/#{@manifest["model"]}"
@name = @manifest["name"]
@type = File.basename(@file_path).split(".").last.to_sym
@debug_color = Color.new(0.0, 1.0, 0.0)
@model = nil