Exemple #1
0
        /// <summary>
        /// Creates an new playable instance of a realm.
        /// </summary>
        /// <param name="site">The Guncho server.</param>
        /// <param name="realm">The realm to instantiate.</param>
        /// <param name="zfile">The compiled realm file.</param>
        /// <param name="name">The unique name of the instance.</param>
        /// <param name="logger">The logger.</param>
        public FyreVMInstance(IInstanceSite site, Realm realm, Stream zfile, string name, ILogger logger)
        {
            this.site   = site;
            this.realm  = realm;
            this.zfile  = zfile;
            this.name   = name;
            this.logger = logger;

            this.io         = new RealmIO(this);
            this.vm         = new Engine(zfile);
            vm.MaxHeapSize  = Properties.Settings.Default.MaxHeapSize;
            vm.OutputReady += io.FyreOutputReady;
            vm.KeyWanted   += io.FyreKeyWanted;
            vm.LineWanted  += io.FyreLineWanted;
        }
        public override IInstance LoadInstance(IInstanceSite site, Realm realm, string name, ILogger logger)
        {
            FileStream stream = new FileStream(realm.StoryFile, FileMode.Open, FileAccess.Read);

            return(new FyreVMInstance(site, realm, stream, name, logger));
        }
Exemple #3
0
 public abstract IInstance LoadInstance(IInstanceSite site, Realm realm, string name, ILogger logger);