コード例 #1
0
        private ulong CreateInteraction(long type, long id, Vector3 position, int dimension, int range)
        {
            Interaction interaction = new Interaction((ulong)type, (ulong)id, position, dimension, (uint)range);

            AltInteractions.AddInteraction(interaction);
            interactions.Add($"{type}_{id}", interaction);

            return(interaction.Id);
        }
コード例 #2
0
        public async Task OnShutdown()
        {
            foreach (var interaction in _interactions)
            {
                AltInteractions.RemoveInteraction(interaction);
            }

            _interactions.Clear();

            await Task.CompletedTask;
        }
コード例 #3
0
        private void RemoveInteraction(long type, long id)
        {
            Interaction interaction = GetInteraction(type, id);

            if (interaction == null)
            {
                return;
            }

            AltInteractions.RemoveInteraction(interaction);
            interactions.Remove($"{type}_{id}");
        }
コード例 #4
0
        public void AddTest()
        {
            var position = GetRandomVector3();
            var entity   = new Interaction(1, 1, position, 0, 1);

            AltInteractions.AddInteraction(entity);
            var task = AltInteractions.FindInteractions(position, 0);

            task.Wait();
            var interactions = task.Result;

            Assert.AreEqual(1, interactions.Length);
            Assert.AreEqual(entity, interactions[0]);
        }
コード例 #5
0
        public async Task OnStartup()
        {
            var data = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "data", "dumps", "objectslocations", "worldAtms.json"));

            var allAtms = JsonConvert.DeserializeObject <List <WorldAtmObject> >(data);

            foreach (var atm in allAtms)
            {
                var interaction = new AtmInteraction((ulong)_interactions.Count, atm.Position, 0, 2);
                _interactions.Add(interaction);

                AltInteractions.AddInteraction(interaction);
            }

            await Task.CompletedTask;
        }
コード例 #6
0
        private void RegisterInteractionEvent(string name)
        {
            if (registeredEvents.ContainsKey(name))
            {
                return;
            }

            Action <IPlayer, object> action = new Action <IPlayer, object>(new Action <IPlayer, object>(async(player, value) => {
                IInteraction[] interactions = await AltInteractions.FindInteractions(player.Position, player.Dimension);
                Alt.Emit(name, player, new Interactions(interactions), value);
            }));

            Alt.OnClient(name, new Action <IPlayer, object>(action));

            registeredEvents.Add(name, action);
        }
コード例 #7
0
        public override void OnStart()
        {
            AltInteractions.Init();

            Alt.Export("registerInteractionEvent", new Action <string>(RegisterInteractionEvent));
            Alt.Export("unregisterInteractionEvent", new Action <string>(UnregisterInteractionEvent));
            Alt.Export("createInteraction", new Func <long, long, Vector3, int, int, ulong>(CreateInteraction));
            Alt.Export("setInteractionPosition", new Action <long, long, Vector3>(SetInteractionPosition));
            Alt.Export("getInteractionPosition", new Func <long, long, Vector3>(GetInteractionPosition));
            Alt.Export("setInteractionRange", new Action <long, long, int>(SetInteractionRange));
            Alt.Export("getInteractionRange", new Func <long, long, uint>(GetInteractionRange));
            Alt.Export("setInteractionDimension", new Action <long, long, int>(SetInteractionDimension));
            Alt.Export("getInteractionDimension", new Func <long, long, int>(GetInteractionDimension));
            Alt.Export("doesInteractionExist", new Func <long, long, bool>(DoesInteractionExist));
            Alt.Export("removeInteraction", new Action <long, long>(RemoveInteraction));
        }
コード例 #8
0
        public async Task OnStartup()
        {
            AltInteractions.Init();

            await Task.CompletedTask;
        }
コード例 #9
0
        public async Task OnShutdown()
        {
            AltInteractions.Dispose();

            await Task.CompletedTask;
        }
コード例 #10
0
 private void OnInteractionsTriggered(ServerPlayer player)
 {
     AltInteractions.TriggerInteractions(player);
 }
コード例 #11
0
 public override void OnStop()
 {
     AltInteractions.Dispose();
 }
コード例 #12
0
 public void Setup()
 {
     AltInteractions.Init();
 }
コード例 #13
0
 public void Cleanup()
 {
     AltInteractions.Dispose();
 }