Beispiel #1
0
        public void PlaceCone(FirefighterEquipmentController controller)
        {
            ConesController c = controller.Memory.GetOrDefault(ConesControllerMemoryKey, null) as ConesController;

            if (c != null && c.IsActive)
            {
                c.PlaceCone();
            }
        }
Beispiel #2
0
        public Firefighter(Vector3 position, float heading)
            : base(EntityCreator.CreateFirefighterPed(position, heading))
        {
            Equipment = new FirefighterEquipmentController(Ped);

            // all AdvancedPeds should call RegisterAdvancedPed but can't put it in the base constructor
            // because the generic type will always be AdvancedPed, instead of Firefighter, Paramedic, etc.
            // each AdvancedPed subclass with its own fiber and list
            RegisterAdvancedPed(this);
        }
Beispiel #3
0
        private static void Main()
        {
            while (Game.IsLoading)
            {
                GameFiber.Sleep(500);
            }

            MathHelper.RandomizationSeed = Environment.TickCount;

            if (!Directory.Exists(ResourcesFolder))
            {
                Directory.CreateDirectory(ResourcesFolder);
            }

            if (!Directory.Exists(AddonsFolder))
            {
                Directory.CreateDirectory(AddonsFolder);
            }

            LoadControls();
            LoadSettings();

            NotificationsManager.Instance.StartFiber();
            RespawnController.Instance.StartFiber();

            AddonsManager.Instance.LoadAddons();

            FirefighterEquipmentController.RegisterEquipments();

            while (true)
            {
                GameFiber.Yield();

                PluginMenu.Instance.Update();

                PlayerManager.Instance.Update();

                FireStationsManager.Instance.Update();
                HospitalsManager.Instance.Update();

                if (PlayerManager.Instance.IsFirefighter)
                {
                    FireCalloutsManager.Instance.Update();
                    PlayerFireEquipmentController.Instance.Update();
                }
                else if (PlayerManager.Instance.IsEMS)
                {
                    EMSCalloutsManager.Instance.Update();
                }

                CPRManager.Instance.Update();
            }
        }
Beispiel #4
0
        void IFirefighterEquipment.OnLeaveEquipment(FirefighterEquipmentController controller)
        {
            SawController c = controller.Memory.GetOrDefault(SawControllerMemoryKey, null) as SawController;

            if (c == null)
            {
                c = new SawController(controller);
                controller.Memory.SetOrAdd(SawControllerMemoryKey, c);
            }

            c.IsActive = false;
        }
Beispiel #5
0
        void IFirefighterEquipment.OnGetEquipment(FirefighterEquipmentController controller)
        {
            ConesController c = controller.Memory.GetOrDefault(ConesControllerMemoryKey, null) as ConesController;

            if (c == null)
            {
                c = new ConesController(controller);
                controller.Memory.SetOrAdd(ConesControllerMemoryKey, c);
            }

            c.IsActive = true;
        }
        void IFirefighterEquipment.OnLeaveEquipment(FirefighterEquipmentController controller)
        {
            Ped ped = controller.Ped;

            foreach (Settings.PedComponentVariation var in Plugin.UserSettings.PEDS.FIREFIGHTER_FIRE_GEAR_DISABLED_COMPONENTS)
            {
                ped.SetVariation(var.ComponentIndex, var.DrawableIndex, var.DrawableTextureIndex);
            }
            foreach (Settings.PedPropVariation var in Plugin.UserSettings.PEDS.FIREFIGHTER_FIRE_GEAR_ENABLED_PROPS)
            {
                NativeFunction.Natives.ClearPedProp(ped, var.ComponentIndex);
            }

            ped.IsFireProof = false;

            controller.Memory.SetOrAdd(IsFireGearEquippedMemoryKey, false);
        }
 void IFirefighterEquipment.OnEquippedUpdate(FirefighterEquipmentController controller)
 {
 }
 bool IFirefighterEquipment.IsEquipped(FirefighterEquipmentController controller)
 {
     return((bool)controller.Memory.GetOrDefault(IsFireGearEquippedMemoryKey, false));
 }
Beispiel #9
0
 void IFirefighterEquipment.OnLeaveEquipment(FirefighterEquipmentController controller)
 {
     controller.Ped.Inventory.Weapons.Remove(WeaponHash.FireExtinguisher);
 }
Beispiel #10
0
 void IFirefighterEquipment.OnGetEquipment(FirefighterEquipmentController controller)
 {
     controller.Ped.Inventory.GiveNewWeapon(WeaponHash.FireExtinguisher, -1, true);
 }
Beispiel #11
0
 bool IFirefighterEquipment.IsEquipped(FirefighterEquipmentController controller)
 {
     return(controller.Ped.Inventory.Weapons.Contains(WeaponHash.FireExtinguisher));
 }
Beispiel #12
0
        void IFirefighterEquipment.OnEquippedUpdate(FirefighterEquipmentController controller)
        {
            SawController c = controller.Memory.GetOrDefault(SawControllerMemoryKey, null) as SawController;

            c?.OnActiveUpdate();
        }
Beispiel #13
0
        bool IFirefighterEquipment.IsEquipped(FirefighterEquipmentController controller)
        {
            SawController c = controller.Memory.GetOrDefault(SawControllerMemoryKey, null) as SawController;

            return(c != null && c.IsActive);
        }
Beispiel #14
0
 public SawController(FirefighterEquipmentController controller)
 {
     this.controller = controller;
 }