public override QuaxInfo SearchQuax(QuaxInfo curStatus) { QuadratNode quaxStartNode = null; for (var i = 0; i < StartQuadrate.Count; i++) { if (StartQuadrate[i].BeruehrtPoint(curStatus.QuaxPos)) { quaxStartNode = StartQuadrate[i]; } } if (quaxStartNode != null) { Debug.Write("START QUADRAT: "); var info = quaxStartNode.SearchQuax(curStatus); if (info.QuaxNode == null) { info.QuaxNode = quaxStartNode; } return(info); } throw new Exception("Quax ist in keinem der Start Quadrate"); }
public override QuaxInfo SearchQuax(QuaxInfo curStatus) { if (MapQuadrat.MapTyp == MapQuadrat.MapTypen.Unbekannt) { if (NodeID == 0) { NodeID = MapQuadrat.GetMapTyp(); } else { MapQuadrat.GetMapTyp(); } } Console.Write( $"[{NodeID}] Node: ({MapQuadrat.LO_Eckpunkt.X}|{MapQuadrat.LO_Eckpunkt.Y}) -> ({MapQuadrat.RU_Eckpunkt.X}|{MapQuadrat.RU_Eckpunkt.Y}) - "); switch (MapQuadrat.MapTyp) { case MapQuadrat.MapTypen.Wasser: Console.WriteLine("Wasser"); throw new Exception("Quax ist in Wasser Node"); case MapQuadrat.MapTypen.Passierbar: Console.WriteLine("Passierbar"); Console.WriteLine( $"Quax gefunden: ({MapQuadrat.LO_Eckpunkt.X} | {MapQuadrat.LO_Eckpunkt.Y}) {MapQuadrat.Breite}"); curStatus.QuaxNode = this; return(curStatus); case MapQuadrat.MapTypen.Gemischt: Console.WriteLine("Gemischt"); QuadratNode nodeMitQuax = null; for (var i = 0; i < ChildNodes.Nodes.Length; i++) { if (ChildNodes.Nodes[i].BeruehrtPoint(curStatus.QuaxPos)) { nodeMitQuax = ChildNodes.Nodes[i]; } } if (nodeMitQuax == null) { throw new Exception("Quax ist in keinem inneren Quadrat"); } return(nodeMitQuax.SearchQuax(curStatus)); case MapQuadrat.MapTypen.Unbekannt: throw new Exception("Unbekannter Map Typ"); default: throw new ArgumentOutOfRangeException(); } }