示例#1
0
        void LoadScene(string id)
        {
            if (lua != null)
            {
                lua.Dispose();
            }
            Elements = new List <XmlUIElement>();
            lua      = new Lua();
            env      = lua.CreateEnvironment();
            env.DoChunk("events = {}", "$internal");
            env.Add(apiname, api);
            env.Add("dom", new LuaDom(this));
            env.Add("sound", new LuaSound(this));
            LuaStyleEnvironment.RegisterFuncs(env);
            _g = (dynamic)env;
            var scn = xml.Scenes.Where((x) => x.ID == id).First();

            if (scn.Scripts != null)
            {
                foreach (var script in scn.Scripts)
                {
                    env.DoChunk(script, "$xml");
                }
            }
            foreach (var item in scn.Items)
            {
                if (item is XInt.Button)
                {
                    var btn = (XInt.Button)item;
                    Elements.Add(new XmlUIButton(this, btn, styles.Where((x) => x.ID == btn.Style).First()));
                }
                else if (item is XInt.Image)
                {
                    Elements.Add(new XmlUIImage((XInt.Image)item, this));
                }
                else if (item is XInt.ServerList)
                {
                    var sl = (XInt.ServerList)item;
                    Elements.Add(new XmlUIServerList(sl, styles.Where((x) => x.ID == sl.Style).First(), this));
                }
                else if (item is XInt.Panel)
                {
                    var pnl = (XInt.Panel)item;
                    Elements.Add(new XmlUIPanel(pnl, styles.Where((x) => x.ID == pnl.Style).First(), this));
                }
                else if (item is XInt.ChatBox)
                {
                    var cb = (XInt.ChatBox)item;
                    Elements.Add(new XmlChatBox(cb, styles.Where((x) => x.ID == cb.Style).First(), this));
                }
            }
        }
示例#2
0
 public static void RegisterFuncs(LuaGlobalPortable gp)
 {
     gp.Add("mixcolor", (Func <float, string, string, Color4>)MixColor);
     gp.Add("color", (Func <string, Color4>)Color);
 }