namespace Holo.Source.Managers { using Holo; using Ion.Storage; using System; using System.Collections; using System.Data; using System.Threading; public static class modeldataManager { private static Hashtable Modeldata_door_h; private static Hashtable Modeldata_door_x; private static Hashtable Modeldata_door_y; private static Hashtable Modeldata_door_z; private static Hashtable Modeldata_heightmap; private static Hashtable Modeldata_publicroom_items; private static Hashtable Modeldata_roomomatic_suscr; private static Hashtable Modeldata_specialcast_emitter; private static Hashtable Modeldata_specialcast_interval; private static Hashtable Modeldata_specialcast_rnd_max; private static Hashtable Modeldata_specialcast_rnd_min; private static Hashtable Modeldata_swimmingpool; private static Hashtable Modeldata_triggers; internal static void ChacheData(string _Model) { DataRow dRow; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dRow = dbClient.getRow("SELECT room_modeldata.modelID, room_modeldata.model, room_modeldata.roomomatic_subscr_only, room_modeldata.door_x, room_modeldata.door_y, room_modeldata.door_h, room_modeldata.door_z, room_modeldata.heightmap, room_modeldata.publicroom_items, room_modeldata.swimmingpool, room_modeldata.specialcast_emitter, room_modeldata.specialcast_interval, room_modeldata.specialcast_rnd_min, room_modeldata.specialcast_rnd_max FROM room_modeldata WHERE model = '" + _Model + "' LIMIT 1"); } Modeldata_heightmap.Add(_Model, Convert.ToString(dRow["heightmap"])); Modeldata_publicroom_items.Add(_Model, Convert.ToString(dRow["publicroom_items"])); Modeldata_door_x.Add(_Model, Convert.ToInt32(dRow["door_x"])); Modeldata_door_y.Add(_Model, Convert.ToInt32(dRow["door_y"])); Modeldata_door_z.Add(_Model, Convert.ToByte(dRow["door_z"])); Modeldata_door_h.Add(_Model, Convert.ToInt32(dRow["door_h"])); Modeldata_roomomatic_suscr.Add(_Model, Convert.ToInt32(dRow["roomomatic_subscr_only"])); Modeldata_swimmingpool.Add(_Model, Convert.ToInt32(dRow["swimmingpool"])); Modeldata_specialcast_emitter.Add(_Model, dRow["specialcast_emitter"]); if (Convert.ToString(dRow["specialcast_interval"]).Length > 0) { Modeldata_specialcast_interval.Add(_Model, Convert.ToInt32(dRow["specialcast_interval"])); } if (Convert.ToString(dRow["specialcast_rnd_max"]).Length > 0) { Modeldata_specialcast_rnd_max.Add(_Model, Convert.ToInt32(dRow["specialcast_rnd_max"])); } if (Convert.ToString(dRow["specialcast_rnd_min"]).Length > 0) { Modeldata_specialcast_rnd_min.Add(_Model, Convert.ToInt32(dRow["specialcast_rnd_min"])); } } internal static int door_h(string _Model) { return (int) Modeldata_door_h[_Model]; } internal static int door_x(string _Model) { return (int) Modeldata_door_x[_Model]; } internal static int door_y(string _Model) { return (int) Modeldata_door_y[_Model]; } internal static byte door_z(string _Model) { return (byte) Modeldata_door_z[_Model]; } internal static string Heightmap(string _Model) { return (string) Modeldata_heightmap[_Model]; } internal static void Init(bool Update) { DataColumn dCol; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dCol = dbClient.getColumn("SELECT model FROM room_modeldata ORDER BY modelID"); } Modeldata_triggers = new Hashtable(); Modeldata_heightmap = new Hashtable(); Modeldata_publicroom_items = new Hashtable(); Modeldata_door_x = new Hashtable(); Modeldata_door_y = new Hashtable(); Modeldata_door_h = new Hashtable(); Modeldata_door_z = new Hashtable(); Modeldata_roomomatic_suscr = new Hashtable(); Modeldata_swimmingpool = new Hashtable(); Modeldata_specialcast_emitter = new Hashtable(); Modeldata_specialcast_interval = new Hashtable(); Modeldata_specialcast_rnd_min = new Hashtable(); Modeldata_specialcast_rnd_max = new Hashtable(); Modeldata_triggers = new Hashtable(); foreach (DataRow dRow in dCol.Table.Rows) { ChacheData(dRow["model"].ToString()); } Out.WriteLine("Modeldata cached"); if (Update) { Thread.CurrentThread.Abort(); } } internal static string publicroom_items(string _Model) { return (string) Modeldata_publicroom_items[_Model]; } internal static int roomomatic_suscr(string _Model) { return (int) Modeldata_roomomatic_suscr[_Model]; } internal static string specialcast_emitter(string _Model) { return (string) Modeldata_specialcast_emitter[_Model]; } internal static int specialcast_interval(string _Model) { return (int) Modeldata_specialcast_interval[_Model]; } internal static int specialcast_rnd_max(string _Model) { return (int) Modeldata_specialcast_rnd_max[_Model]; } internal static int specialcast_rnd_min(string _Model) { return (int) Modeldata_specialcast_rnd_min[_Model]; } internal static int swimmingpool(string _Model) { return (int) Modeldata_swimmingpool[_Model]; } } }