This is used to determine the bounding box for interaction in the client
(the ray that's cast from your camera interacts with it to determine the
highlighted block).
TODO: Make it work better with metadata.
This commit also fixes one of the issues with snow: ref #194
This allows us to cancel events when the subject is no longer around.
For example, if a chunk is unloaded due to inactivity, the events within
it are cancelled (growth of wheat, propegation of fluids, etc). When a
client disconnects, events associated with it are cancelled.
To use this for your own scheduled events, pick a subject. If your
subject does not implement IEventSubject, implement it. Then, you can
pass the subject into ScheduleEvent and that's it. When the subject
dies, your events will die with it. So long as the subject remains
alive, your events still fire.
`null` is a valid subject for events that should happen regardless of
any subject expiring.
Closes#1
Added two new properties.
- Opaque: Whether or not the block is opaque
- LightModifier: The amount removed from the light level as it passes
through the block(for transparent blocks).
Merged all rail block classes into RailBlock.cs and made them extend
RailBlock