using System; using System.Collections.Generic; using System.Linq; using System.Text; using GenericNetplayImplementation; using WOMGeneral; namespace WOMServer { class DataSender { Program program = null; public DataSender(Program program) { this.program = program; } //-- public void SendID(uint destination) { GNIData toSend = new GNIData(true); toSend.SetData(1006, (int)destination); program.SendSignal(destination, toSend); } public void SendStartingPosition(uint destination) { SendSignal(destination, 1001, UtilBase.MergeArrays(new byte[][] { UtilBase.WriteTwoBytes(Program.START_CELL_X), UtilBase.WriteTwoBytes(Program.START_CELL_Y) })); } public void SendCell(uint destination, Address address) { SendSignal(destination, 1002, UtilBase.MergeArrays(new byte[][] { address.Serialize(false), program.GetCell(address.cellX, address.cellY).Serialize() })); } public void SendTileToAll(Address address, byte[] serializedTile) { BroadcastSignal(1003, UtilBase.MergeArrays(new byte[][] { address.Serialize(true), serializedTile })); } //-- public void SendSignal(uint destination, int key, byte[] value) { program.SendSignal(destination, CreateSignal(key, value)); } public void BroadcastSignal(int key, byte[] value) { program.BroadcastSignal(CreateSignal(key, value)); } public GNIData CreateSignal(int key, byte[] value) { GNIData toSend = new GNIData(true); toSend.keyType = GNIDataType.Short; toSend.valueType = GNIDataType.ByteArray; toSend.keyInt = key; toSend.valueBytes = value; return toSend; } } }