Ignoring .cs extension for GhostDoc spell check
Make room static so that it can be easily accessed

Room should be static because other methods (like Outgoing) use it. This
way, the classes don't have to be extended to include the @In class.
Optimization: don't write blocks that already exist

If a block already exists on the map, don't bother sending it to the
server because it won't change anything.

However, this could mess up some clients that are poorly-written
(sending the same block event twice might be needed to update their maps
because of multi-threading issues).