package gameroom; use strict; use warnings; use Exporter; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); $VERSION = 1.00; @ISA = qw(Exporter); @EXPORT = (); @EXPORT_OK = qw (updateRoomName getRoomName updateRoomInventoryItems getRoomInventoryItems updateRoomUseItems getRoomUseItems); %EXPORT_TAGS = ( ALL => [qw(&updateRoomName &getRoomName &updateRoomInventoryItems &getRoomInventoryItems &updateRoomUseItems &getRoomUseItems)]); sub new { my $class = shift; my $self = { _NAME => shift, _INVENTORY_ITEMS => shift, _ROOM_USE_ITEMS => shift, _CONNECTIONS => shift }; bless $self,$class; return $self; } sub updateRoomName { my ($self,$room_name) = @_; $self->{_NAME} = $room_name if defined($room_name); return $self->{_NAME}; } sub getRoomName { my( $self ) = @_; return $self->{_NAME}; } sub updateRoomInventoryItems { my ($self,$item,$quantity) = @_; if ($quantity == 0) { delete($self->{_INVENTORY_ITEMS}{$item}); } else { $self->{_INVENTORY_ITEMS}{$item} = $quantity if defined($quantity); } return $self->{_INVENTORY_ITEMS}; } sub getRoomInventoryItems { my( $self ) = @_; return ($self->{_INVENTORY_ITEMS}); } sub updateRoomUseItems { my ($self,$item,$quantity) = @_; if ($quantity == 0) { delete($self->{_ROOM_USE_ITEMS}{$item}); } else { $self->{_ROOM_USE_ITEMS}{$item} = $quantity if defined($quantity); } return $self->{_ROOM_USE_ITEMS}; } sub getRoomUseItems { my( $self ) = @_; return ($self->{_ROOM_USE_ITEMS}); } sub updateRoomConnections { my ($self,$room,$locked_state,$key_item) = @_; $self->{_CONNECTIONS}{$room}[0] = $locked_state if defined($locked_state); $self->{_CONNECTIONS}{$room}[1] = $key_item if defined($key_item); return $self->{_CONNECTIONS}; } sub getRoomConnections { my( $self ) = @_; return ($self->{_CONNECTIONS}); } 1;