using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using _1869_Remake; using Otter; namespace _1869_Remake.Entities { public class SeeStraße : Entity { public string BEZEICHNUNG; bool toggleTransform = false; // Berechnungsvariablen für Vectorrechnung Vector2 VON_Punkt = new Vector2(); Vector2 NACH_Punkt = new Vector2(); Vector2 STRAßENVEKTOR = new Vector2(); public int SPEEDMULTIPLIKATOR; public SeeStraße() { // To Do: Vervollständigen + Vektorquadrat zeichnen lassen von punkt A nach B in einer Farbe } public SeeStraße(string Name, int xPos_VON, int yPos_VON, int xPos_NACH, int yPos_Nach, int speedMultiplikator) { this.BEZEICHNUNG = Name; this.X = xPos_VON; this.Y = yPos_VON; this.VON_Punkt.X = xPos_VON; this.VON_Punkt.Y = yPos_VON; this.NACH_Punkt.X = xPos_NACH; this.NACH_Punkt.Y = yPos_Nach; this.STRAßENVEKTOR = NACH_Punkt - VON_Punkt; this.SPEEDMULTIPLIKATOR = speedMultiplikator; Globals.registriereEntität(this); } public override void Render() { base.Render(); // Renderfunktion muss überschrieben werden, da das Zeichnen von Linien auf der Oberfläche extra gerendert werden muss neben den üblichen Grafiken // sonst würde die Linie nur für einen Frame sichtbar sein (1/30 Sekunden) if (toggleTransform) { // Linie wird vorbereitet und mit den Koordinaten des Von und Nach Punktes erstellt Vertices StraßenLinie = new Vertices(); StraßenLinie.Add(VON_Punkt.X, VON_Punkt.Y); StraßenLinie.Add(NACH_Punkt.X, NACH_Punkt.Y); StraßenLinie.Color = Globals.MeeresRoutenRot; StraßenLinie.Relative = false; StraßenLinie.PrimitiveType = VertexPrimitiveType.Lines; AddGraphic(StraßenLinie); toggleTransform = false; } } public override void Update() { base.Update(); if (Globals.PlayerSession.Controller.Button("R").Released) { if (!toggleTransform) { toggleTransform = true; } } } public void baueStraßeZuNächstemPunkt() { Console.WriteLine("Transformed"); } } }