Beispiel #1
0
        public void OnPlayerConnect(IntPtr playerPointer, ushort playerId, string reason)
        {
            if (!PlayerPool.GetOrCreate(playerPointer, playerId, out var player))
            {
                return;
            }

            OnPlayerConnectEvent(player, reason);
        }
Beispiel #2
0
        public IEnumerable <IVehicle> GetVehicles()
        {
            var vehicleCount = AltNative.Server.Server_GetVehicleCount(NativePointer);
            var pointers     = new IntPtr[vehicleCount];

            AltNative.Server.Server_GetVehicles(NativePointer, pointers, vehicleCount);
            foreach (var vehiclePointer in pointers)
            {
                if (vehiclePool.GetOrCreate(vehiclePointer, out var vehicle))
                {
                    yield return(vehicle);
                }
            }
        }
Beispiel #3
0
        public IEnumerable <IPlayer> GetPlayers()
        {
            var playerCount = AltNative.Server.Server_GetPlayerCount(NativePointer);
            var pointers    = new IntPtr[playerCount];

            AltNative.Server.Server_GetPlayers(NativePointer, pointers, playerCount);
            foreach (var playerPointer in pointers)
            {
                if (playerPool.GetOrCreate(playerPointer, out var vehicle))
                {
                    yield return(vehicle);
                }
            }
        }
Beispiel #4
0
        public void OnPlayerChangeVehicleSeat(IntPtr vehiclePointer, IntPtr playerPointer, byte oldSeat,
                                              byte newSeat)
        {
            if (!VehiclePool.GetOrCreate(vehiclePointer, out var vehicle))
            {
                return;
            }

            if (!PlayerPool.GetOrCreate(playerPointer, out var player))
            {
                return;
            }

            OnPlayerChangeVehicleSeatEvent(vehicle, player, oldSeat, newSeat);
        }
        public bool GetOrCreate(IntPtr entityPointer, BaseObjectType baseObjectType, out IBaseObject entity)
        {
            bool result;

            switch (baseObjectType)
            {
            case BaseObjectType.Player:
                result = playerPool.GetOrCreate(entityPointer, out var player);
                entity = player;
                return(result);

            case BaseObjectType.Vehicle:
                result = vehiclePool.GetOrCreate(entityPointer, out var vehicle);
                entity = vehicle;
                return(result);

            case BaseObjectType.Blip:
                result = blipPool.GetOrCreate(entityPointer, out var blip);
                entity = blip;
                return(result);

            case BaseObjectType.Checkpoint:
                result = checkpointPool.GetOrCreate(entityPointer, out var checkpoint);
                entity = checkpoint;
                return(result);

            case BaseObjectType.VoiceChannel:
                result = voiceChannelPool.GetOrCreate(entityPointer, out var voiceChannel);
                entity = voiceChannel;
                return(result);

            case BaseObjectType.ColShape:
                result = colShapePool.GetOrCreate(entityPointer, out var colShape);
                entity = colShape;
                return(result);

            default:
                entity = default;
                return(false);
            }
        }
Beispiel #6
0
        public bool GetOrCreate(ICore core, IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity entity)
        {
            bool result;

            switch (baseObjectType)
            {
            case BaseObjectType.Player:
                var player = playerPool.GetOrCreate(core, entityPointer);
                entity = player;
                return(player != null);

            case BaseObjectType.Vehicle:
                var vehicle = vehiclePool.GetOrCreate(core, entityPointer);
                entity = vehicle;
                return(vehicle != null);

            default:
                entity = default;
                return(false);
            }
        }
Beispiel #7
0
        public bool GetOrCreate(IntPtr entityPointer, BaseObjectType baseObjectType, out IEntity entity)
        {
            bool result;

            switch (baseObjectType)
            {
            case BaseObjectType.Player:
                result = playerPool.GetOrCreate(entityPointer, out var player);
                entity = player;
                return(result);

            case BaseObjectType.Vehicle:
                result = vehiclePool.GetOrCreate(entityPointer, out var vehicle);
                entity = vehicle;
                return(result);

            default:
                entity = default;
                return(false);
            }
        }
Beispiel #8
0
        public IEnumerable <IVehicle> GetVehicles()
        {
            var vehiclePointerArray = VehiclePointerArray.Nil;

            AltNative.Server.Server_GetVehicles(NativePointer, ref vehiclePointerArray);
            var vehiclePointers = vehiclePointerArray.ToArrayAndFree();

            foreach (var vehiclePointer in vehiclePointers)
            {
                if (vehiclePool.GetOrCreate(vehiclePointer, out var vehicle))
                {
                    yield return(vehicle);
                }
            }
        }
Beispiel #9
0
        public IEnumerable <IPlayer> GetPlayers()
        {
            var playerPointerArray = PlayerPointerArray.Nil;

            AltNative.Server.Server_GetPlayers(NativePointer, ref playerPointerArray);
            var playerPointers = playerPointerArray.ToArrayAndFree();

            foreach (var playerPointer in playerPointers)
            {
                if (playerPool.GetOrCreate(playerPointer, out var vehicle))
                {
                    yield return(vehicle);
                }
            }
        }