From f38e6fc216c58251c8e45db66994367e565cd711 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 10 Sep 2010 09:18:26 -0500 Subject: [PATCH] different exceptions for local vs remote transporters --- lib/Lacuna/DB/Result/Building/Transporter.pm | 9 +++++++-- lib/Lacuna/Role/Trader.pm | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/Lacuna/DB/Result/Building/Transporter.pm b/lib/Lacuna/DB/Result/Building/Transporter.pm index 8e103297..1a01b6e2 100644 --- a/lib/Lacuna/DB/Result/Building/Transporter.pm +++ b/lib/Lacuna/DB/Result/Building/Transporter.pm @@ -96,8 +96,13 @@ sub push_items { my ($self, $target, $transporter, $items) = @_; my $local_payload = $self->determine_available_cargo_space; my $remote_payload = $transporter->determine_available_cargo_space; - my $space_available = ($remote_payload < $local_payload) ? $remote_payload : $local_payload; - my $payload = $self->structure_push($items, $space_available); + my $space_available = $local_payload; + my $space_exception = 'You are trying to send %s cargo, but the local transporter can only send '.$local_payload.'.'; + if ($remote_payload < $local_payload) { + $space_available = $remote_payload; + $space_exception = 'You are trying to send %s cargo, but the remote transporter can only receive '.$remote_payload.'.'; + } + my $payload = $self->structure_push($items, $space_available, $space_exception); $self->unload($payload, $target); } diff --git a/lib/Lacuna/Role/Trader.pm b/lib/Lacuna/Role/Trader.pm index 75375262..c8f6e7b0 100644 --- a/lib/Lacuna/Role/Trader.pm +++ b/lib/Lacuna/Role/Trader.pm @@ -212,8 +212,9 @@ sub ask_resources { sub structure_push { - my ($self, $items, $available_cargo_space) = @_; + my ($self, $items, $available_cargo_space, $space_exception) = @_; my $body = $self->body; + $space_exception ||= $cargo_exception; # validate my $space_used; @@ -235,7 +236,7 @@ sub structure_push { } } } - confess [1011, sprintf($cargo_exception,$space_used)] unless ($space_used <= $available_cargo_space); + confess [1011, sprintf($space_exception,$space_used)] unless ($space_used <= $available_cargo_space); # send my $payload; -- 2.51.2