public override IObject2D CreateObject2D(LandWorld2D landWorld2D, IObject obj) { MountainLandObject mountainLandObject = obj as MountainLandObject; if (mountainLandObject != null) { return(new MountainObject2D(this, mountainLandObject)); } return(null); }
public MountainObject2D(IObject2DFactory factory, MountainLandObject landObject) : base() { Texture texture = factory.GetTextureByIndex((int)landObject.LandMountainType); if (landObject.LandTransition == LandTransition.NONE) { Random random = new Random(landObject.Position.X - landObject.Position.Y * landObject.Position.Y); switch (random.Next(0, 4)) { case 0: this.ObjectSprite = new Sprite(texture, new IntRect(2 * MainWindow.MODEL_TO_VIEW, 4 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW)); break; case 1: this.ObjectSprite = new Sprite(texture, new IntRect(0 * MainWindow.MODEL_TO_VIEW, 0 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW)); break; case 2: this.ObjectSprite = new Sprite(texture, new IntRect(2 * MainWindow.MODEL_TO_VIEW, 0 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW)); break; case 3: this.ObjectSprite = new Sprite(texture, new IntRect(4 * MainWindow.MODEL_TO_VIEW, 0 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW, 2 * MainWindow.MODEL_TO_VIEW)); break; } } else { this.ObjectSprite = new Sprite(texture, this.GetTransitionTextureCoord(landObject.LandTransition)); } this.ObjectSprite.Scale = new Vector2f(0.5f, 0.5f); this.Position = new Vector2f(landObject.Position.X, landObject.Position.Y); }