Moved collision/physics information into manifest, made real mouse cursor always invisible and use 'virtual' cursor when needed.

This commit is contained in:
2019-09-28 13:29:21 -05:00
parent e038dcbe24
commit 40d1105fb8
13 changed files with 32 additions and 30 deletions

View File

@@ -44,7 +44,7 @@ class IMICFPS
@map.entities.each do |entity|
next unless entity.collidable?
next if entity.collision == :static # Only dynamic entities can be resolved
next if entity.manifest.collision_resolution == :static # Only dynamic entities can be resolved
search = @aabb_tree.search(entity.bounding_box)
if search.size > 0

View File

@@ -1,7 +1,7 @@
class IMICFPS
module EntityManager # Get included into GameState context
def add_entity(entity)
@collision_manager.add(entity)# Add every entity to collision manager
@collision_manager.add(entity) if entity.manifest.collision# Add every entity to collision manager
Publisher.instance.publish(:create, nil, entity)
@entities << entity
end
@@ -22,7 +22,7 @@ class IMICFPS
def remove_entity(entity)
ent = @entities.detect {|entity| entity == entity}
if ent
@collision_manager.remove(entity)
@collision_manager.remove(entity) if entity.manifest.collision
@publisher.publish(:destroy, nil, entity)
@entities.delete(ent)
end

View File

@@ -31,7 +31,7 @@ class IMICFPS
if on_ground
entity.velocity.y = 0
else
entity.velocity.y -= @collision_manager.map.gravity * entity.delta_time if entity.physics
entity.velocity.y -= @collision_manager.map.gravity * entity.delta_time if entity.manifest.physics
end
end
end