class DiamondLang::Helpers::Entity

Attributes

data[RW]
id[R]

Public Class Methods

new(id, data={}) click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 16
def initialize(id, data={})
  @id = id
  data[:Passengers] ||= []
  @data = data
end

Public Instance Methods

passengers() click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 21
def passengers
  data[:Passengers]
end
passengers=(v) click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 24
def passengers=(v)
  data[:Passengers]=(v)
end
selector(args={}) click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 39
def selector(args={})
  args[:type] = @id
  TargetSelector.new(:e, args)
end
summon(coords) click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 34
def summon(coords)
  data = @data.dup
  data[:Passengers] = data[:Passengers].map{ |passenger| passenger.to_h }
  Command.new 'summon'.freeze, @id, coords.to_s, data.to_json
end
to_h() click to toggle source
# File lib/diamond-lang/helpers/entity.rb, line 27
def to_h
  data = @data.dup
  data[:id] = @id
  data[:Passengers] = data[:Passengers].map{ |passenger| passenger.to_h }
  data.delete :Passengers if data[:Passengers].empty?
  data
end