Up to Main Index Up to Journal for June, 2012
JOURNAL FOR WEDNESDAY 20TH JUNE, 2012
______________________________________________________________________________
SUBJECT: Moving locations
DATE: Wed Jun 20 21:53:46 BST 2012
Once again I'm finding myself changing the structure of packages in WolfMUD.
I know! I know! - It's just a prototype, get it out there already!
It's also supposed to be a solid platform to move forward with. The issue was
I had something like this:
wolfmud.org
`-- entities
`-- location
`-- location.go
Typically I've been using the following conventions:
location.Interface - Location Interface
location.Location - Default Location type implementation
location.New - Creates a new *Location
This produced 'stutter' only on the type. Then I added the starting location
under the location package:
startingLocation.Interface
startingLocation.startingLocation
startingLocation.New
Bleugh! :( So what to do? Well what I finally (currently) descided on was:
wolfmud.org
`-- entities
`-- location
|-- location.go
|-- basic.go
`-- start.go
Now I have:
location.Interface - a location interface
location.Basic - Basic location type
location.NewBasic - Creates a new *Basic
location.Start - Starting location type
location.NewStart - Creates a new *Start
I think these read better than before? Then it's a case of cleanup and fixup
the documentation - again.
Still it's easier to make sweeping structural changes like this now than six
months down the road.
--
Diddymus
______________________________________________________________________________
SUBJECT: Tim Toady visits
DATE: Wed Jun 20 22:13:31 BST 2012
Ouch! Argh! Bugger it...
I've just had a TMTOWTDI moment *sigh* - pronounced 'Tim Toady'[1]
I currently have a Broadcast interface that allows messages to be sent to a
group of Responders:
type Broadcaster interface {
Broadcast(omit []Responder, format string, any ...interface{})
}
Currently it's implemented by:
Location - send messages to all players at a location
PlayerList - send messages to all players
Command - shortcut for current Location
However I'm now wondering if this should actually be implemented as:
func (list []messaging.Responder) Broadcast(format string, any ...interface{})
In other words should Broadcast be to a slice of Responders? Means we could
drop the omit slice and only put Responders we are interested in into the list
slice - hrm...
Now I'm going to have to work out the pros and cons to see which would give
the simplest and most elegant/natural solution.
--
Diddymus
[1] It's a Perl thing - There's more than one way to do it
https://en.wikipedia.org/wiki/TIMTOWTDI
Up to Main Index Up to Journal for June, 2012