示例#1
0
        void StartSpawnTimer()
        {
            var random = new Random();
            var timer  = new Timer(3000);

            timer.Elapsed += (_, __) =>
            {
                if (players.Count == 0)
                {
                    return;
                }

                var randomX  = random.Next(-5, 5);
                var randomZ  = random.Next(-5, 5);
                var position = new Position(randomX, 0.5f, randomZ);
                var item     = new Item(uidCounter++, position);
                lock (items)
                {
                    items.Add(item.Id, item);
                }

                var rpcItem   = new RPC.Item(item.Id, item.Position);
                var spawnRpc  = new Spawn(new SpawnPayload(rpcItem));
                var spawnJson = JsonConvert.SerializeObject(spawnRpc);
                broadcast(spawnJson);

                Console.WriteLine("<< Spawn");
            };
            timer.Start();
        }
示例#2
0
        void Environment(string toId)
        {
            var itemsRpc = new List <RPC.Item>();

            foreach (var item in items.Values)
            {
                var itemRpc = new RPC.Item(item.Id, item.Position);
                itemsRpc.Add(itemRpc);
            }

            var environmentRpc  = new RPC.Environment(new EnvironmentPayload(itemsRpc));
            var environmentJson = JsonConvert.SerializeObject(environmentRpc);

            sendTo(environmentJson, toId);
        }