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

Preparing for barrier import/export

This commit is contained in:
Rich Dunne 2021-01-10 08:36:13 -07:00
parent 61141e9fb8
commit ad36c50546

View file

@ -1,22 +1,19 @@
using System; using Rage;
using System.Collections.Generic; using System.Xml.Serialization;
using System.Linq;
using Rage;
using SceneManager.Utils;
namespace SceneManager.Objects namespace SceneManager.Objects
{ {
class Barrier [XmlRoot(ElementName = "Barrier", Namespace = "")]
public class Barrier // Change this and properties to Public for import/export
{ {
internal Rage.Object Object { get; } public Object Object { get; }
internal Model @Model{ get; } public Model @Model{ get; }
internal Vector3 Position { get; } public Vector3 Position { get; }
internal float Rotation { get; } public float Rotation { get; }
internal bool Invincible { get; } public bool Invincible { get; }
public bool Immobile { get; }
internal bool Immobile { get; } internal Barrier(Object barrier, Vector3 barrierPosition, float barrierRotation, bool invincible, bool immobile)
internal Barrier(Rage.Object barrier, Vector3 barrierPosition, float barrierRotation, bool invincible, bool immobile)
{ {
Object = barrier; Object = barrier;
@Model = barrier.Model; @Model = barrier.Model;
@ -24,49 +21,6 @@ namespace SceneManager.Objects
Rotation = barrierRotation; Rotation = barrierRotation;
Invincible = invincible; Invincible = invincible;
Immobile = immobile; Immobile = immobile;
//AddBlocker();
}
private void AddBlocker()
{
var blocker = new Rage.Object("prop_barier_conc_01a", Position, Rotation);
blocker.AttachTo(Object, 0, new Vector3(0, 0, 0), new Rotator());
GameFiber.StartNew(() =>
{
while (Object)
{
GameFiber.Yield();
}
blocker.Delete();
});
}
internal void GoAround()
{
GameFiber.StartNew(() =>
{
var collected = new List<Vehicle>();
while (Object)
{
foreach (Vehicle v in World.GetAllVehicles())
{
if(v && v.IsEngineOn)
{
if(v.HasDriver && v.Driver && v.Driver.IsAlive)
{
if (!collected.Contains(v))
{
v.Driver.Tasks.Clear();
v.Driver.Tasks.CruiseWithVehicle(5f, (VehicleDrivingFlags)17039872);
v.Driver.KeepTasks = true;
collected.Add(v);
}
}
}
}
GameFiber.Sleep(1000);
}
});
} }
} }
} }