class GameEcs::EntityStore::QueryResultSet
Public Class Methods
new(records:, ids:)
click to toggle source
# File lib/game_ecs/entity_store.rb, line 291 def initialize(records:, ids:) @records = records @ids = Set.new(ids) end
Public Instance Methods
<<(rec)
click to toggle source
# File lib/game_ecs/entity_store.rb, line 295 def <<(rec) @ids << rec.id @records << rec end
add_component(id:, component:)
click to toggle source
# File lib/game_ecs/entity_store.rb, line 302 def add_component(id:, component:) index = @records.index{ |rec| id == rec&.id } @records[index].update_component(component) if index >= 0 end
delete(id:nil, ids:nil)
click to toggle source
# File lib/game_ecs/entity_store.rb, line 306 def delete(id:nil, ids:nil) if id @records.delete_at(@records.index{ |rec| id == rec&.id } || @records.size) if @ids.include? id @ids.delete id else unless (@ids & ids).empty? # ids.each do |id| # @ids.delete id # end @ids = @ids - ids @records.delete_if{|res| ids.include? res.id} end end end
each() { |rec| ... }
click to toggle source
# File lib/game_ecs/entity_store.rb, line 320 def each @records.each do |rec| yield rec end end
has_id?(id)
click to toggle source
# File lib/game_ecs/entity_store.rb, line 299 def has_id?(id) @ids.include? id end