Class: DiamondLang::Helpers::Entity
- Inherits:
-
Object
- Object
- DiamondLang::Helpers::Entity
show all
- Defined in:
- lib/diamond-lang/helpers/entity.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(id, data = {}) ⇒ Entity
Returns a new instance of Entity.
16
17
18
19
20
|
# File 'lib/diamond-lang/helpers/entity.rb', line 16
def initialize(id, data={})
@id = id
data[:Passengers] ||= []
@data = data
end
|
Instance Attribute Details
Returns the value of attribute data.
15
16
17
|
# File 'lib/diamond-lang/helpers/entity.rb', line 15
def data
@data
end
|
Returns the value of attribute id.
14
15
16
|
# File 'lib/diamond-lang/helpers/entity.rb', line 14
def id
@id
end
|
Instance Method Details
#passengers ⇒ Object
21
22
23
|
# File 'lib/diamond-lang/helpers/entity.rb', line 21
def passengers
data[:Passengers]
end
|
#passengers=(v) ⇒ Object
24
25
26
|
# File 'lib/diamond-lang/helpers/entity.rb', line 24
def passengers=(v)
data[:Passengers]=(v)
end
|
#selector(args = {}) ⇒ Object
39
40
41
42
|
# File 'lib/diamond-lang/helpers/entity.rb', line 39
def selector(args={})
args[:type] = @id
TargetSelector.new(:e, args)
end
|
#summon(coords) ⇒ Object
34
35
36
37
38
|
# 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
|
27
28
29
30
31
32
33
|
# 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
|