// Function from file: table.dm public string build_recipe_text(TableRecipe R = null) { string _default = null; string name_text = null; string req_text = null; string tool_text = null; string catalist_text = null; dynamic A = null; dynamic O = null; dynamic RE = null; dynamic C = null; dynamic RE2 = null; dynamic O2 = null; dynamic T = null; _default = ""; name_text = ""; req_text = ""; tool_text = ""; catalist_text = ""; if (this.check_contents(R)) { name_text = new Txt("<A href='?src=").Ref(this).str(";make=").Ref(R).str("'>").item(R.name).str("</A>").ToString(); } else { name_text = "<span class='linkOff'>" + R.name + "</span>"; } if (Lang13.Bool(name_text)) { foreach (dynamic _a in Lang13.Enumerate(R.reqs)) { A = _a; if (Lang13.Bool(A.IsSubclassOf(typeof(Obj)))) { O = Lang13.Call(A); req_text += " " + R.reqs[A] + " " + O.name; GlobalFuncs.qdel(O); } if (Lang13.Bool(A.IsSubclassOf(typeof(Reagent)))) { RE = Lang13.Call(A); req_text += " " + R.reqs[A] + " " + RE.name; GlobalFuncs.qdel(RE); } } if (R.chem_catalysts.len != 0) { catalist_text += ", Catalysts:"; foreach (dynamic _b in Lang13.Enumerate(R.chem_catalysts)) { C = _b; if (Lang13.Bool(C.IsSubclassOf(typeof(Reagent)))) { RE2 = Lang13.Call(C); catalist_text += " " + R.chem_catalysts[C] + " " + RE2.name; GlobalFuncs.qdel(RE2); } } } if (R.tools.len != 0) { tool_text += ", Tools:"; foreach (dynamic _c in Lang13.Enumerate(R.tools)) { O2 = _c; if (Lang13.Bool(O2.IsSubclassOf(typeof(Obj)))) { T = Lang13.Call(O2); tool_text += " " + R.tools[O2] + " " + T.name; GlobalFuncs.qdel(T); } } } _default = "" + name_text + req_text + tool_text + catalist_text + "<BR>"; } return(_default); }
// Function from file: table.dm public override dynamic interact(dynamic user = null, bool?flag1 = null) { string dat = null; ByTable can_craft = null; ByTable cant_craft = null; TableRecipe R = null; TableRecipe R2 = null; TableRecipe R3 = null; Browser popup = null; if (((Mob)user).incapacitated() || Lang13.Bool(user.lying) || !this.Adjacent(user)) { return(null); } this.check_table(); ((Mob)user).face_atom(this); dat = "<h3>Crafting menu</h3>"; if (this.busy) { dat += "<div class='statusDisplay'>"; dat += "Crafting in progress...</div>"; } else { dat += new Txt("<A href='?src=").Ref(this).str(";backwardCat=1'><--</A>").ToString(); dat += " " + this.categories[this.prev_cat()] + " |"; dat += " <B>" + this.categories[this.viewing_category] + "</B> "; dat += "| " + this.categories[this.next_cat()] + " "; dat += new Txt("<A href='?src=").Ref(this).str(";forwardCat=1'>--></A><BR><BR>").ToString(); dat += "<div class='statusDisplay'>"; can_craft = new ByTable(); cant_craft = new ByTable(); foreach (dynamic _a in Lang13.Enumerate(GlobalVars.table_recipes, typeof(TableRecipe))) { R = _a; if (R.category != this.categories[this.viewing_category]) { continue; } if (this.check_contents(R)) { can_craft.Add(R); } else { cant_craft.Add(R); } } foreach (dynamic _b in Lang13.Enumerate(can_craft, typeof(TableRecipe))) { R2 = _b; dat += this.build_recipe_text(R2); } foreach (dynamic _c in Lang13.Enumerate(cant_craft, typeof(TableRecipe))) { R3 = _c; dat += this.build_recipe_text(R3); } dat += "</div>"; } popup = new Browser(user, "table", "Table", 500, 500); popup.set_content(dat); popup.open(); return(null); }