package Blacknote::System::TileMixins; use strict; use warnings FATAL => qw(all); use feature 'say'; use Class::MOP; use Blacknote::Logging; use Blacknote::Interface; use Blacknote::Message; *BN = *Blacknote::Message; # Alias. Same as 'import X as Y' in python definterface ITileRole => qw(interact init destroy walk_into action smash search open); defrole "RTile::Static" => methods => { interact => sub { BN::Message->push('This message should show up in the window') }, init => sub { BN::Message->push('Message upon tile initialization') }, destroy => sub { BN::Message->push('Message upon tile desctruction') } }, adheres_to => [ 'Blacknote::System::TileMixins::ITileRole' ]; 1; .