public PathDisplay3D(EQEmu.Path.Path path) { //Model.Content = new Model3DGroup(); //Model3DGroup group = new Model3DGroup(); Options = new PathDisplayOptions() { ShowTextLabels = false }; //_clipping = new ViewClipping(); _path = path; InitMapping(); MeshBuild(); foreach (EQEmu.Path.Node node in path.Nodes) { CreateNode(node); node.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(node_PropertyChanged); } path.NodeAdded += new EQEmu.Path.Path.NodeModifiedHandler(path_NodeAdded); path.NodeRemoved += new EQEmu.Path.Path.NodeModifiedHandler(path_NodeRemoved); //Model.Content = group; }
public GridsDisplay3D(EQEmu.Grids.ZoneGrids zonegrid) { _zoneGrid = zonegrid; if (_zoneGrid.Grids.Count > 0) { ShowGrid(_zoneGrid.Grids.ElementAt(0)); } foreach ( Grid grid in _zoneGrid.Grids ) { grid.Waypoints.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler( Waypoints_CollectionChanged ); } _zoneGrid.Grids.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler( Grids_CollectionChanged ); //UpdateAll(); }
private MySqlConnection GetDatabaseConnection(ref EQEmu.Database.Configuration configuration) { XmlSerializer serializer = new XmlSerializer(typeof(EQEmu.Database.Configuration)); MySql.Data.MySqlClient.MySqlConnection conn = null; var confPath = System.IO.Path.Combine( System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData), "EQEmu/connection.xml"); //check for a configuration file in the user directory first if (!File.Exists(confPath)) { confPath = "./connection.xml"; if (!File.Exists(confPath)) { return null; } } EQEmu.Database.Configuration conf; using (XmlReader reader = XmlReader.Create(confPath)) { conf = (EQEmu.Database.Configuration)serializer.Deserialize(reader); string connStr = string.Format("server={0};user={1};database={2};port={3};password={4};ConnectionTimeout={5};", conf.Host, conf.User, conf.Database, conf.Port, conf.Password, conf.ConnectionTimeout); conn = new MySql.Data.MySqlClient.MySqlConnection(connStr); try { conn.Open(); } catch (System.Exception e) { conn.Close(); System.Windows.MessageBox.Show(confPath + "\nCould not open database connection\n" + e.Message); } } if (configuration != null && conf != null) { configuration = conf; } return conn; }
public NpcTypeEditViewModel(MySqlConnection connection, EQEmu.Database.QueryConfig config, NpcPropertyTemplateManager templates) { _connection = connection; _config = config; _templates = templates; _modelMappings = Npc.LoadModelMappings("modelmapping.xml"); if (connection != null && connection.State == System.Data.ConnectionState.Open) { _npcs = new NpcAggregatorDatabase(connection, config); } else { _npcs = new NpcAggregatorLocal(config); } _npcs.Created(); _npcs.NPCs.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(NPCs_CollectionChanged); Models.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Models_CollectionChanged); }
private static MySqlConnection GetDatabaseConnection(ref EQEmu.Database.Configuration configuration) { XmlSerializer serializer = new XmlSerializer(typeof(EQEmu.Database.Configuration)); MySql.Data.MySqlClient.MySqlConnection conn = null; if (!File.Exists("./connection.xml")) return null; EQEmu.Database.Configuration conf; using (XmlReader reader = XmlReader.Create("./connection.xml")) { conf = (EQEmu.Database.Configuration)serializer.Deserialize(reader); string connStr = string.Format("server={0};user={1};database={2};port={3};password={4};", conf.Host, conf.User, conf.Database, conf.Port, conf.Password); conn = new MySql.Data.MySqlClient.MySqlConnection(connStr); } if (configuration != null && conf != null) { configuration = conf; } return conn; }
void _selectedSpawn_PositionChanged(object sender, EQEmu.GroundSpawns.PositionChangedEventArgs args) { //when the spawn's position changes the cursor position needs to be updated var spawn = sender as EQEmu.GroundSpawns.GroundSpawn; if (spawn != null) { if (spawn == _selectedSpawn) { _groundSpawns3d.ShowSpawn(_selectedSpawn, EQEmuDisplay3D.GroundSpawnDisplay3D.DisplayFlags.GreenAura); } else { _groundSpawns3d.ShowSpawn(spawn, EQEmuDisplay3D.GroundSpawnDisplay3D.DisplayFlags.DarkGrayAura); } } }
void _zonePoints_DataLoaded(object sender, EQEmu.Zone.ZonePointDataLoadedEventArgs e) { _zone = e.ZoneName; NotifyPropertyChanged("Zone"); }
private void CreateSpawn(EQEmu.Spawns.Spawn2 spawn,DisplayFlags flags) { Model3DGroup group = Model as Model3DGroup; Model3DCollection collection = new Model3DCollection(); if (_mapping.ContainsKey(spawn)) { foreach (Model3D model in _mapping[spawn]) { group.Children.Remove(model); } } MeshBuilder builder = new MeshBuilder(); Point3D p = new Point3D(spawn.X,spawn.Y,spawn.Z); if( !Clipping.DrawPoint(p) ) return; builder.AddBox(p,2,2,2); Transform3D headingRotate = new RotateTransform3D() { CenterX = p.X, CenterY = p.Y, CenterZ = p.Z, Rotation = new AxisAngleRotation3D( new Vector3D(0,0,-1),spawn.HeadingDegrees) }; GeometryModel3D box; Material mat = Materials.White; if (flags == DisplayFlags.None) { if (spawn.RoamAreaId > 0) { mat = Materials.Red; } else if (spawn.GridId > 0) { mat = Materials.Yellow; } } else if (flags == DisplayFlags.Green) { mat = Materials.Green; } else if (flags == DisplayFlags.DarkGray) { mat = Materials.DarkGray; } else if (flags == DisplayFlags.Rainbow) { mat = Materials.Rainbow; } else if (flags == DisplayFlags.Blue) { mat = Materials.Blue; } box = new GeometryModel3D(builder.ToMesh(), mat); box.Transform = headingRotate; collection.Add(box); builder = new MeshBuilder(); float radius = 3.0f; double hx = spawn.X + Math.Cos((spawn.HeadingDegrees - 90) / 180 * Math.PI) * radius; double hy = spawn.Y + Math.Sin((spawn.HeadingDegrees + 90) / 180 * Math.PI) * radius; builder.AddArrow(new Point3D(spawn.X, spawn.Y, spawn.Z), new Point3D(hx, hy, spawn.Z), 0.5, 1); collection.Add(new GeometryModel3D(builder.ToMesh(), mat)); _mapping[spawn] = collection; foreach (Model3D model in collection) { group.Children.Add(model); } }
public void RemoveSpawn(EQEmu.Spawns.Spawn2 spawn) { Model3DGroup group = Model as Model3DGroup; foreach (Model3D model in _mapping[spawn]) { group.Children.Remove(model); } _mapping[spawn] = null; }
private void RemoveNode(EQEmu.Path.Node node,List<EQEmu.Path.Node> neighbors=null) { Model3DGroup group = Model as Model3DGroup; node.PropertyChanged -= node_PropertyChanged; foreach (Model3D model in _mapping[node]) { group.Children.Remove(model); } if (neighbors != null && neighbors.Count > 0) { foreach (EQEmu.Path.Node n in neighbors) { CreateNode(n); } } _mapping[node] = null; }
void path_NodeRemoved(object sender, EQEmu.Path.PathModifiedEventArgs e) { RemoveNode(e.NodeReference, e.Neighbors); }
void path_NodeAdded(object sender, EQEmu.Path.PathModifiedEventArgs e) { _mapping[e.NodeReference] = null; CreateNode(e.NodeReference); e.NodeReference.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(node_PropertyChanged); }
private void CreateNode(EQEmu.Path.Node node) { Model3DGroup group = Model as Model3DGroup; MeshBuilder builder; Model3DCollection collection = new Model3DCollection(); if (_mapping[node] != null) { foreach (Model3D model in _mapping[node]) { group.Children.Remove(model); } } if (Clipping != null && !Clipping.DrawPoint(node.Location)) return; //builder.AddBox(node.Location, 2, 2, 2); _mapping[node] = collection; GeometryModel3D box = GetNodeModel(); box.Transform = new TranslateTransform3D(node.X,node.Y,node.Z); collection.Add(box); //collection.Add(new GeometryModel3D(builder.ToMesh(), Materials.Green)); //_mapping[node] = new GeometryModel3D(builder.ToMesh(), Materials.Green); if (Options.ShowTextLabels) { GeometryModel3D text = TextCreator.CreateTextLabelModel3D(node.Id.ToString(), BrushHelper.CreateGrayBrush(5), true, 2, new Point3D(node.X, node.Y, node.Z + 5), new Vector3D(1, 0, 0), new Vector3D(0, 0, 1)); text.Transform = new ScaleTransform3D(new Vector3D(-1, 1, 1), new Point3D(node.X, node.Y, node.Z)); collection.Add(text); } foreach (EQEmu.Path.Neighbor neighbor in node.Neighbors) { if (neighbor.Node == null) continue; builder = new MeshBuilder(); builder.AddArrow(new Point3D(node.X, node.Y, node.Z), new Point3D(neighbor.Node.X, neighbor.Node.Y, neighbor.Node.Z), 0.5); //builder.AddPipe(new Point3D(n.X, n.Y, n.Z), new Point3D(neighbor.Node.X, neighbor.Node.Y, neighbor.Node.Z), 0.5, 0.5, 50); collection.Add(new GeometryModel3D(builder.ToMesh(), Materials.Yellow)); } foreach (Model3D model in collection) { group.Children.Add(model); } //group.Children.Add(_mapping[node]); }
public MapDisplay3D(EQEmu.Map.Map map) { _map = map; UpdateAll(); }
public void RenderMesh(EQEmu.Files.WLD.Fragments.Mesh mesh) { if (mesh == null) return; _display3d.RenderMesh(new List<Mesh>() { mesh }); }
public Spawn2(EQEmu.Database.QueryConfig config) : base(config) { }
private void UpdateNode(EQEmu.Path.Node node) { Model3DGroup group = Model as Model3DGroup; if (Clipping != null && !Clipping.DrawPoint(node.Location)) { if (_mapping[node] != null) { foreach (Model3D model in _mapping[node]) { group.Children.Remove(model); } } } else { if (_mapping[node] != null) { foreach (Model3D model in _mapping[node]) { if (group.Children.Contains(model)) { continue; } group.Children.Add(model); } } } }
public void ShowSpawn(EQEmu.Spawns.Spawn2 spawn,DisplayFlags flags=DisplayFlags.None) { if (spawn == null || !_zoneSpawns.Spawns.Contains(spawn)) { //UpdateAll(); return; } else { //Model3DGroup group = Model as Model3DGroup; //group.Children.Clear(); CreateSpawn(spawn,flags); } }
void path_NodeRemoved(object sender, EQEmu.Path.PathModifiedEventArgs e) { NotifyPropertyChanged("Pathing"); }
public Spawn2Display3D( EQEmu.Spawns.ZoneSpawns zoneSpawns) { _zoneSpawns = zoneSpawns; _zoneSpawns.Spawns.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(Spawns_CollectionChanged); ShowAllSpawns(); }
public SpawnExtractorTabViewModel(MySqlConnection connection,EQEmu.Database.QueryConfig config,NpcPropertyTemplateManager templates) { _connection = connection; _config = config; _templates = templates; _startId = 0; Zone = ""; ZoneVersion = 0; if (connection != null && connection.State == System.Data.ConnectionState.Open) { _npcs = new NpcAggregatorDatabase(connection, config); } else { _npcs = new NpcAggregatorLocal(config); } _npcs.Created(); if (connection != null && connection.State == System.Data.ConnectionState.Open) { _spawngroups = new SpawnGroupAggregatorDatabase(connection, config); } else { _spawngroups = new SpawnGroupAggregatorLocal(config); } _spawngroups.Created(); }
void _zoneSpawns_DataLoaded(object sender, EQEmu.Spawns.SpawnsLoadedEventArgs e) { _zone = e.ZoneName; _version = e.Version; NotifyPropertyChanged("Zone"); NotifyPropertyChanged("Version"); }
void _zoneGrids_GridDataLoaded(object sender, EQEmu.Grids.GridDataLoadedEventArgs e) { _zone = e.ZoneName; NotifyPropertyChanged("Zone"); }