RiotDroneAssets.cs
using Sandbox;
namespace PaintballBaddies;
public static class RiotDroneAssets
{
private static Model downloaded;
private static System.Threading.Tasks.Task<Model> loading;
public static System.Threading.Tasks.Task<Model> LoadAsync()=>loading ??= Download();
private static async System.Threading.Tasks.Task<Model> Download()
{
try
{
var model=Drone;
downloaded=model.IsValid() && !model.IsError ? model : await Cloud.Load<Model>("rust.drone");
return downloaded;
}
catch(System.Exception e){Log.Warning($"Drone asset download failed: {e.Message}");return null;}
}
public static Model Drone
{
get
{
if(downloaded.IsValid() && !downloaded.IsError)return downloaded;
var model=Model.Load("entities/drone/drone.vmdl");
return model.IsValid() && !model.IsError ? model : Cloud.Model("https://sbox.game/rust/drone");
}
}
}