private async Task <List <ScriptPack> > LoadManagedScriptsAsync() { Logger.Information($"Loading managed scripts..."); var scriptPacks = new List <ScriptPack>(); ManagedScriptEngine.Init(); foreach (var script in Zone.UchuServer.Config.ManagedScriptSources?.Scripts ?? new List <string>()) { Logger.Information($"Loading {script} managed script pack"); string source = default; var location = Path.Combine(Zone.UchuServer.MasterPath, script); if (File.Exists(location)) { source = await File.ReadAllTextAsync(location); } var managedScript = new PythonScriptPack(Zone, location, source); scriptPacks.Add(managedScript); } return(scriptPacks); }
public Zone(ZoneInfo zoneInfo, Server server, ushort instanceId = default, uint cloneId = default) { Zone = this; ZoneInfo = zoneInfo; Server = server; InstanceId = instanceId; CloneId = cloneId; ScriptManager = new ScriptManager(this); ManagedScriptEngine = new ManagedScriptEngine(); Listen(OnStart, async() => await InitializeAsync()); Listen(OnDestroyed, () => { _running = false; }); }
public Zone(ZoneInfo zoneInfo, UchuServer uchuServer, ushort instanceId = default, uint cloneId = default) { Zone = this; ZoneInfo = zoneInfo; UchuServer = uchuServer; InstanceId = instanceId; CloneId = cloneId; EarlyPhysics = new Event(); LatePhysics = new Event(); OnPlayerLoad = new Event <Player>(); OnObject = new Event <Object>(); OnTick = new Event(); OnChatMessage = new Event <Player, string>(); ScriptManager = new ScriptManager(this); ManagedScriptEngine = new ManagedScriptEngine(); UpdatedObjects = new List <UpdatedObject>(); ManagedObjects = new List <Object>(); SpawnedObjects = new List <GameObject>(); Simulation = new PhysicsSimulation(); Listen(OnDestroyed, () => { _running = false; }); }
public ScriptManager(Zone zone) { Zone = zone; ManagedScriptEngine = new ManagedScriptEngine(); }