public EventManager.EventResult handleTerrainRequest(Event e) { TerrainRequestEvent tr = e as TerrainRequestEvent; if (tr != null) { UInt64 id = tr.chunkId; if (myCache.containsChunk(id) == false) { myGenerator.generateChunk(id); } else { distributeChunk(id); } return(EventManager.EventResult.HANDLED); } return(EventManager.EventResult.IGNORED); }
bool filterReceiveMessages(Event e, TcpClient client) { if (e is TerrainRequestEvent) { TerrainRequestEvent tr = e as TerrainRequestEvent; myClientInterest[client].Add(tr.chunkId); requests++; return(false); } if (e is TerrainRebuildEvent) { TerrainRebuildEvent tr = e as TerrainRebuildEvent; myClientInterest[client].Add(tr.chunkId); requests++; return(false); } if (e is TerrainResetEvent) { return(true); } return(true); }