mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
Refactored GameObject to Entity, replaced @x,@y,@z with @position, added @velocity vector to Entity, bricked Player terrain interaction while authoring Axis Aligned Bounding Box Tree for CollisionManager to handle all collision interaction. Added PhysicsManager stub.
This commit is contained in:
28
lib/managers/entity_manager.rb
Normal file
28
lib/managers/entity_manager.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
class IMICFPS
|
||||
TextureCoordinate = Struct.new(:u, :v, :weight)
|
||||
Point = Struct.new(:x, :y)
|
||||
Color = Struct.new(:red, :green, :blue, :alpha)
|
||||
|
||||
module EntityManager # Get included into GameState context
|
||||
def add_entity(entity)
|
||||
@collision_manager.add(entity) if entity.collidable?
|
||||
@entities << entity
|
||||
end
|
||||
|
||||
def find_entity(entity)
|
||||
@entities.detect {|entity| entity == entity}
|
||||
end
|
||||
|
||||
def remove_entity(entity)
|
||||
ent = @entities.detect {|entity| entity == entity}
|
||||
if ent
|
||||
@collision_manager.remove(entity)
|
||||
@entities.delete(ent)
|
||||
end
|
||||
end
|
||||
|
||||
def entities
|
||||
@entities
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user