#! perl use base "cf::path"; __PACKAGE__->register ("random"); sub init { my ($self) = @_; Coro::AIO::aio_load "$cf::RANDOM_MAPS/$self->{path}.meta", my $data; $self->{random} = cf::from_json $data; $self->{random}{custom} ||= "$self->{random}{origin_map}+$self->{random}{origin_x}+$self->{random}{origin_y}"; } sub visible_name { my ($self) = @_; my $rmp = $self->{random}; "random map at $rmp->{custom} level $rmp->{dungeon_level}" } sub save_path { my ($self) = @_; sprintf "%s/%s", $RANDOM_MAPS, $self->{path} } sub uniq_path { undef } sub load_orig { my ($self) = @_; cf::map::generate_random_map "$self", $self->{random} } 1