class McBlocky::DSL::Selector

Public Class Methods

new(name, **kwargs) click to toggle source
# File lib/mcblocky/dsl/selector.rb, line 3
def initialize(name, **kwargs)
  @name = name
  if kwargs[:loc]
    loc = kwargs[:loc]
    raise ArgumentError, "Relative locations are not allowed in selectors" if loc.is_relative?
    kwargs[:x] = loc.x
    kwargs[:y] = loc.y
    kwargs[:z] = loc.z
    kwargs.delete :loc
  end
  @args = kwargs
end

Public Instance Methods

[](**args) click to toggle source
# File lib/mcblocky/dsl/selector.rb, line 16
def [](**args)
  Selector.new(@name, @args.merge(args))
end
to_s() click to toggle source
# File lib/mcblocky/dsl/selector.rb, line 20
def to_s
  if @args.empty?
    @name
  else
    pairs = @args.map{|k,v| "#{k}=#{v}"}
    "#{@name}[#{pairs.join(',')}]"
  end
end