summaryrefslogtreecommitdiffstats
path: root/lib/evendoors/spot.rb
blob: 72f518040ebffcabb5fcd8652c795450147d0066 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /usr/bin/env ruby
# -*- coding: UTF-8 -*-

#
module EvenDoors
    #
    class Spot
        #
        def initialize n, p
            @name   = n     # unique in it's room
            @parent = p     # single direct parent
            @viewer = nil   # particle going through that position will be sent there readonly
            raise EvenDoors::Exception.new "Spot name #{name} is not valid" if @name.include? EvenDoors::PATH_SEP
        end
        #
        attr_reader :name
        attr_accessor :viewer, :parent
        #
        def path
            return @path if @path
            @path = ( @parent ? @parent.path+EvenDoors::PATH_SEP : '') + name
        end
        #
    end
    #
end
#
# EOF