1
Fork 0
mirror of https://github.com/thegeneralist01/Scene-Manager-DevRepo synced 2026-01-11 23:50:29 +01:00

Refactored to allow barriers to be respawned if they were deleted outside of the plugin

This commit is contained in:
Rich Dunne 2020-09-20 12:52:32 -06:00
parent ca6a272276
commit 91e154a866

View file

@ -182,21 +182,22 @@ namespace SceneManager
if (selectedItem == resetBarriers) if (selectedItem == resetBarriers)
{ {
var currentBarriers = barriers.Where(b => b.Object && b.Object.Model.Name != "0xa2c44e80").ToList(); var currentBarriers = barriers.Where(b => b.Model.Name != "0xa2c44e80").ToList(); // 0xa2c44e80 is the flare weapon hash
foreach (Barrier oldBarrier in currentBarriers) foreach (Barrier barrier in currentBarriers)
{ {
if (oldBarrier.Object) var newBarrier = new Rage.Object(barrier.Model, barrier.Position, barrier.Rotation);
{ newBarrier.SetPositionWithSnap(barrier.Position);
var newBarrier = new Rage.Object(oldBarrier.Object.Model, oldBarrier.Position, oldBarrier.Rotation);
newBarrier.SetPositionWithSnap(oldBarrier.Position);
Rage.Native.NativeFunction.Natives.SET_ENTITY_DYNAMIC(newBarrier, true); Rage.Native.NativeFunction.Natives.SET_ENTITY_DYNAMIC(newBarrier, true);
newBarrier.IsPositionFrozen = false; newBarrier.IsPositionFrozen = false;
Rage.Native.NativeFunction.Natives.SET_DISABLE_FRAG_DAMAGE(newBarrier, true); Rage.Native.NativeFunction.Natives.SET_DISABLE_FRAG_DAMAGE(newBarrier, true);
barriers.Add(new Barrier(newBarrier, newBarrier.Position, newBarrier.Heading)); barriers.Add(new Barrier(newBarrier, newBarrier.Position, newBarrier.Heading));
oldBarrier.Object.Delete();
barriers.Remove(oldBarrier); if (barrier.Object)
{
barrier.Object.Delete();
} }
barriers.Remove(barrier);
} }
currentBarriers.Clear(); currentBarriers.Clear();
} }