Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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; });
        }
Esempio n. 3
0
        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; });
        }
Esempio n. 4
0
        public ScriptManager(Zone zone)
        {
            Zone = zone;

            ManagedScriptEngine = new ManagedScriptEngine();
        }