// *************************************************************************** // Konstruktor 3 public GameObject(GameObjectInner goi) { // Sollte kein GO angegeben sein if (goi == null) { LocationBehavior = new MapLocation(new Vector2(0, 0)); LocationBehavior.Rotation = 0; Renderer = LoadedRenderer.Get("NoRenderer"); } else { // UI oder MapLocation if (!goi.isUILocation) { LocationBehavior = new MapLocation(new Vector2(goi.xPos, goi.yPos), new Vector2(goi.width, goi.height)); LocationBehavior.Rotation = goi.rotation; } else { LocationBehavior = new UILocation(new Vector2(goi.xPos, goi.yPos), new Vector2(goi.width, goi.height)); LocationBehavior.Rotation = goi.rotation; } // Kein Renderer = NoRenderer if (goi.renderer != null) Renderer = LoadedRenderer.Get(goi.renderer); else Renderer = LoadedRenderer.Get("NoRenderer"); } GetRect = RectDefault; }
// *************************************************************************** // Erzeugt Objekt zum Serialisieren public GameObjectInner GetInner() { GameObjectInner goi = new GameObjectInner(); goi.xPos = LocationBehavior.Position.X; goi.yPos = LocationBehavior.Position.Y; goi.width = LocationBehavior.Size.X; goi.height = LocationBehavior.Size.Y; goi.rotation = LocationBehavior.Rotation; if (LocationBehavior.GetType() == typeof(MapLocation)) goi.isUILocation = true; else goi.isUILocation = false; if (goi.renderer == null) goi.renderer = new NoRenderer().Name; else goi.renderer = Renderer.Name; return goi; }