
#   00000000  000      00000000   0000000  000000000  00000000    0000000 
#   000       000      000       000          000     000   000  000   000
#   0000000   000      0000000   000          000     0000000    000   000
#   000       000      000       000          000     000   000  000   000
#   00000000  0000000  00000000   0000000     000     000   000   0000000 
    
module.exports =
    name:       "electro"
    scheme:     "metal"
    size:       [9,7,9]
    help:       """
                to activate the exit
                feed it with electricity:
                    
                connect the generator
                with the motor.
                """
    player:
        coordinates:      [2,3,5]
        orientation:      minusXupZ
        nostatus:         0
    exits:    [
        name:         "exit"
        active:       0
        position:     [0,0,0]
    ],
    create: ->
        s = world.size
        d = 2
        {Gear, Generator, MotorCylinder, MotorGear, Wire, Face} = require '../items' 
        world.addObjectLine('WireStone', world.decenter(-d, s.y/2, 0), world.decenter(-d, 0, 0))
        world.addObjectLine('WireStone', world.decenter( d, s.y/2, 0), world.decenter( d, 0, 0))
        world.addObjectLine('WireStone', world.decenter( d, 0, 0),     world.decenter( 0, 0, 0))
        world.addObjectLine('WireStone', world.decenter(-d, 0, 0),     world.decenter( 0, 0, 0))
        
        world.addObjectAtPos(new Gear(Face.Y), s.x/2-1, 0, s.z/2-1)
        
        world.addObjectAtPos(new Generator(Face.Y), s.x/2+1, 0, s.z/2+1)
        world.addObjectAtPos(new MotorCylinder(Face.Y), s.x/2, 1, s.z/2)
        world.addObjectAtPos(new MotorGear(Face.Y), s.x/2, 0, s.z/2)
        
        # floor wire square
        world.addObjectLine('new Wire(Face.Y, 10)',   s.x/2-d+1, 0, s.z/2-d, s.x/2+d, 0, s.z/2-d)
        world.addObjectLine('new Wire(Face.Y, 10)',   s.x/2-d+1, 0, s.z/2+d, s.x/2+d, 0, s.z/2+d)
        world.addObjectLine('new Wire(Face.Y, 5)',    s.x/2-d, 0, s.z/2-d+1, s.x/2-d, 0, s.z/2+d)
        world.addObjectLine('new Wire(Face.Y, 5)',    s.x/2+d, 0, s.z/2-d+1, s.x/2+d, 0, s.z/2+d)
        # corners of wire square
        world.addObjectAtPos(new Wire(Face.Y, 6),   s.x/2-d, 0, s.z/2-d)
        world.addObjectAtPos(new Wire(Face.Y, 3),   s.x/2-d, 0, s.z/2+d)
        world.addObjectAtPos(new Wire(Face.Y, 9),   s.x/2+d, 0, s.z/2+d)
        world.addObjectAtPos(new Wire(Face.Y, 12),  s.x/2+d, 0, s.z/2-d)
        
        world.addObjectLine('new Wire(Face.X, 5)',    0, 0, s.z/2,     0, s.y, s.z/2)
        world.addObjectLine('new Wire(Face.NX, 5)',   s.x-1, 0, s.z/2, s.x-1, s.y, s.z/2)
        world.addObjectLine('new Wire(Face.NY, 10)',  0, s.y-1, s.z/2, s.x/2-d, s.y-1, s.z/2)
        world.addObjectLine('new Wire(Face.NY, 10)',  s.x-d, s.y-1, s.z/2, s.x, s.y-1, s.z/2)
        world.addObjectLine('new Wire(Face.Y, 10)',   0, 0, s.z/2, s.x/2-d, 0, s.z/2)
        world.addObjectLine('new Wire(Face.Y, 10)',   s.x-d, 0, s.z/2, s.x, 0, s.z/2)
        world.addObjectAtPos(new Wire(Face.Y, 13),  s.x/2-d, 0, s.z/2)
        world.addObjectAtPos(new Wire(Face.Y, 7),   s.x/2+d, 0, s.z/2)
        