diff --git a/axios/Engine/AxiosGameScreen.cs b/axios/Engine/AxiosGameScreen.cs
index e5c5634..1b9aa2f 100644
--- a/axios/Engine/AxiosGameScreen.cs
+++ b/axios/Engine/AxiosGameScreen.cs
@@ -400,6 +400,16 @@ namespace Axios.Engine
///
///
///
+ public virtual bool LoadCircleItem(CircleItem circleitem)
+ {
+ return true;
+ }
+
+ public virtual bool LoadPathItem(PathItem pathitem)
+ {
+ return true;
+ }
+
#if WINDOWS
// System.Drawing is NOT avaiable on WP7 or Xbox
/*
diff --git a/axios/Engine/Gleed2D/CircleItem.cs b/axios/Engine/Gleed2D/CircleItem.cs
index f48453f..d2b111a 100644
--- a/axios/Engine/Gleed2D/CircleItem.cs
+++ b/axios/Engine/Gleed2D/CircleItem.cs
@@ -23,13 +23,15 @@ namespace Axios.Engine.Gleed2D
{
}
- public override void load(ContentManager cm, World world, ref Dictionary cache)
+ public override void load(AxiosGameScreen gameScreen, ref Dictionary cache)
{
- base.load(cm, world, ref cache);
-
- _body = BodyFactory.CreateCircle(world, Radius, 1f);
- _body.Position = ConvertUnits.ToSimUnits(Position);
- _body.UserData = this;
+ base.load(gameScreen, ref cache);
+ if (gameScreen.LoadCircleItem(this))
+ {
+ _body = BodyFactory.CreateCircle(gameScreen.World, Radius, 1f);
+ _body.Position = ConvertUnits.ToSimUnits(Position);
+ _body.UserData = this;
+ }
}
}
diff --git a/axios/Engine/Gleed2D/Item.cs b/axios/Engine/Gleed2D/Item.cs
index ac4f32b..e934a39 100644
--- a/axios/Engine/Gleed2D/Item.cs
+++ b/axios/Engine/Gleed2D/Item.cs
@@ -49,8 +49,9 @@ namespace Axios.Engine.Gleed2D
/// Called by Level.FromFile(filename) on each Item after the deserialization process.
/// Should be overriden and can be used to load anything needed by the Item (e.g. a texture).
///
- public virtual void load(ContentManager cm, World world, ref Dictionary cache)
+ public virtual void load(AxiosGameScreen gameScreen, ref Dictionary cache)
{
+
}
public virtual void draw(SpriteBatch sb)
diff --git a/axios/Engine/Gleed2D/Level.cs b/axios/Engine/Gleed2D/Level.cs
index b6f27a3..fcf9cb1 100644
--- a/axios/Engine/Gleed2D/Level.cs
+++ b/axios/Engine/Gleed2D/Level.cs
@@ -54,7 +54,7 @@ namespace Axios.Engine.Gleed2D
_world = world;
}
- public static Level FromFile(string filename, ContentManager cm, World world)
+ public static Level FromFile(string filename, AxiosGameScreen gameScreen)
{
Dictionary cache = new Dictionary();
FileStream stream = System.IO.File.Open(filename, FileMode.Open);
@@ -67,14 +67,14 @@ namespace Axios.Engine.Gleed2D
foreach (Item item in layer.Items)
{
item.CustomProperties.RestoreItemAssociations(level);
- item.load(cm, world, ref cache);
+ item.load(gameScreen, ref cache);
}
}
return level;
}
- public static Level FromStream(FileStream stream, ContentManager cm, World world)
+ public static Level FromStream(FileStream stream, AxiosGameScreen gameScreen)
{
Dictionary cache = new Dictionary();
XmlSerializer serializer = new XmlSerializer(typeof(Level));
@@ -86,7 +86,7 @@ namespace Axios.Engine.Gleed2D
foreach (Item item in layer.Items)
{
item.CustomProperties.RestoreItemAssociations(level);
- item.load(cm, world, ref cache);
+ item.load(gameScreen, ref cache);
}
}
diff --git a/axios/Engine/Gleed2D/PathItem.cs b/axios/Engine/Gleed2D/PathItem.cs
index c4dc9b9..aab0820 100644
--- a/axios/Engine/Gleed2D/PathItem.cs
+++ b/axios/Engine/Gleed2D/PathItem.cs
@@ -26,17 +26,19 @@ namespace Axios.Engine.Gleed2D
{
}
- public override void load(ContentManager cm, World world, ref Dictionary cache)
+ public override void load(AxiosGameScreen gameScreen, ref Dictionary cache)
{
- base.load(cm, world, ref cache);
+ base.load(gameScreen, ref cache);
+ if (gameScreen.LoadPathItem(this))
+ {
+ Vertices v = new Vertices(LocalPoints.Length);
+ foreach (Vector2 vec in LocalPoints)
+ v.Add(new Vector2(ConvertUnits.ToSimUnits(vec.X), ConvertUnits.ToSimUnits(vec.Y)));
- Vertices v = new Vertices(LocalPoints.Length);
- foreach (Vector2 vec in LocalPoints)
- v.Add(new Vector2(ConvertUnits.ToSimUnits(vec.X), ConvertUnits.ToSimUnits(vec.Y)));
-
- _body = BodyFactory.CreateLoopShape(world, v);
- _body.Position = ConvertUnits.ToSimUnits(this.Position);
- _body.UserData = this;
+ _body = BodyFactory.CreateLoopShape(gameScreen.World, v);
+ _body.Position = ConvertUnits.ToSimUnits(this.Position);
+ _body.UserData = this;
+ }
}
}
diff --git a/axios/Engine/Gleed2D/RectangleItem.cs b/axios/Engine/Gleed2D/RectangleItem.cs
index d9ac2cf..fa79fbb 100644
--- a/axios/Engine/Gleed2D/RectangleItem.cs
+++ b/axios/Engine/Gleed2D/RectangleItem.cs
@@ -24,11 +24,11 @@ namespace Axios.Engine.Gleed2D
{
}
- public override void load(ContentManager cm, World world, ref Dictionary cache)
+ public override void load(AxiosGameScreen gameScreen, ref Dictionary cache)
{
- base.load(cm, world, ref cache);
+ base.load(gameScreen, ref cache);
- _body = BodyFactory.CreateRectangle(world, ConvertUnits.ToSimUnits(Width), ConvertUnits.ToSimUnits(Height), 1f);
+ _body = BodyFactory.CreateRectangle(gameScreen.World, ConvertUnits.ToSimUnits(Width), ConvertUnits.ToSimUnits(Height), 1f);
_body.Position = ConvertUnits.ToSimUnits(Position) + new Vector2(ConvertUnits.ToSimUnits(Width)/2, ConvertUnits.ToSimUnits(Height)/2);
_body.UserData = this;
}
diff --git a/axios/Engine/Gleed2D/TextureItem.cs b/axios/Engine/Gleed2D/TextureItem.cs
index f1c8467..ca64ec6 100644
--- a/axios/Engine/Gleed2D/TextureItem.cs
+++ b/axios/Engine/Gleed2D/TextureItem.cs
@@ -77,7 +77,7 @@ namespace Axios.Engine.Gleed2D
/// You must provide your own implementation. However, you can rely on all public fields being
/// filled by the level deserialization process.
///
- public override void load(ContentManager cm, World world, ref Dictionary cache)
+ public override void load(AxiosGameScreen gameScreen, ref Dictionary cache)
{
//throw new NotImplementedException();
@@ -87,7 +87,7 @@ namespace Axios.Engine.Gleed2D
//or by using the Content Pipeline:
if (!cache.ContainsKey(asset_name))
{
- cache[asset_name] = cm.Load(asset_name);
+ cache[asset_name] = gameScreen.ScreenManager.Game.Content.Load(asset_name);
}
this.texture = cache[asset_name];
//this.texture = cm.Load(asset_name);