# # This file is part of Games::RailRoad. # Copyright (c) 2008 Jerome Quelin, all rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the same terms as Perl itself. # package Games::RailRoad::Node::Switch::N_NE_SW; use strict; use warnings; use base qw{ Games::RailRoad::Node::Switch }; # -- PRIVATE METHODS sub _next_map { return { 'n' => 'sw', 'ne' => 'sw', 'sw' => $_[0]->_sw_exits->[ $_[0]->_switch ], }; } sub _sw_exits { return [ qw{ n ne } ]; } sub _transform_map { my $prefix = 'Games::RailRoad::Node::'; return { 's' => $prefix . 'Cross::N_NE_S_SW', '-n' => $prefix . 'Straight::NE_SW', '-ne' => $prefix . 'Straight::N_SW', }; } 1; __END__ =head1 NAME Games::RailRoad::Node::Switch::N_NE_SW - a node object =head1 DESCRIPTION This package provides a node object. Refer to C for a description of the various node types. =head1 METHODS This class implements the following methods as defined in C: =over 4 =item * new =back Refer to the documentation in C to learn more about them. =head1 SEE ALSO L. =head1 AUTHOR Jerome Quelin, C<< >> =head1 COPYRIGHT & LICENSE Copyright (c) 2008 Jerome Quelin, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut