]> git.r.bdr.sh - rbdr/super-polarity/blob - Super Polarity/ActorFactory.cs
4ebbb4c44afdb96894f89b3f58c498d97621b8c5
[rbdr/super-polarity] / Super Polarity / ActorFactory.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using Microsoft.Xna.Framework;
6 using Microsoft.Xna.Framework.Graphics;
7 using Microsoft.Xna.Framework.Content;
8
9 namespace SuperPolarity
10 {
11 static class ActorFactory
12 {
13 static internal Game Game;
14
15 static public MainShip CreateMainShip(Vector2 position)
16 {
17 MainShip mainShip = new MainShip(Game);
18 mainShip.Initialize(Game.Content.Load<Texture2D>("Graphics\\main-ship"), position);
19
20 ActorManager.CheckIn(mainShip);
21
22 return mainShip;
23 }
24
25 static public StandardShip CreateShip(Ship.Polarity polarity, Vector2 position)
26 {
27 StandardShip ship = new StandardShip(Game);
28 Texture2D texture;
29
30 if (polarity == Ship.Polarity.Positive)
31 {
32 texture = Game.Content.Load<Texture2D>("Graphics\\positive-ship");
33 }
34 else if (polarity == Ship.Polarity.Negative)
35 {
36 texture = Game.Content.Load<Texture2D>("Graphics\\negative-ship");
37 }
38 else
39 {
40 texture = Game.Content.Load<Texture2D>("Graphics\\neutral-ship");
41 }
42
43 ship.Initialize(texture, position);
44 ship.SetPolarity(polarity);
45
46 ActorManager.CheckIn(ship);
47
48 return ship;
49 }
50
51 internal static void SetGame(Game game)
52 {
53 ActorFactory.Game = game;
54 }
55
56 internal static Bullet CreateBullet(Vector2 position, float angle)
57 {
58 Bullet bullet = new Bullet(Game);
59
60 bullet.Initialize(Game.Content.Load<Texture2D>("Graphics\\square"), position);
61
62 bullet.Angle = angle;
63
64 ActorManager.CheckIn(bullet);
65
66 return bullet;
67 }
68 }
69 }