tied into renderer
This commit is contained in:
@@ -3,12 +3,14 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using OpenRa.Game.GameRules;
|
using OpenRa.Game.GameRules;
|
||||||
|
using IjwFramework.Types;
|
||||||
|
using OpenRa.Game.Graphics;
|
||||||
|
|
||||||
namespace OpenRa.Game
|
namespace OpenRa.Game
|
||||||
{
|
{
|
||||||
class Bullet
|
class Bullet
|
||||||
{
|
{
|
||||||
readonly Player Owner;
|
public readonly Player Owner;
|
||||||
readonly Actor FiredBy;
|
readonly Actor FiredBy;
|
||||||
readonly WeaponInfo Weapon;
|
readonly WeaponInfo Weapon;
|
||||||
readonly ProjectileInfo Projectile;
|
readonly ProjectileInfo Projectile;
|
||||||
@@ -30,5 +32,6 @@ namespace OpenRa.Game
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void Tick(Game game, int dt) { /* todo */ }
|
public void Tick(Game game, int dt) { /* todo */ }
|
||||||
|
public IEnumerable<Pair<Sprite, float2>> Render() { yield break; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using IjwFramework.Types;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace OpenRa.Game.Graphics
|
namespace OpenRa.Game.Graphics
|
||||||
{
|
{
|
||||||
@@ -25,6 +27,25 @@ namespace OpenRa.Game.Graphics
|
|||||||
spriteRenderer = new SpriteRenderer(renderer, true);
|
spriteRenderer = new SpriteRenderer(renderer, true);
|
||||||
lineRenderer = new LineRenderer(renderer);
|
lineRenderer = new LineRenderer(renderer);
|
||||||
uiOverlay = new UiOverlay(spriteRenderer, game);
|
uiOverlay = new UiOverlay(spriteRenderer, game);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DrawSpriteList(Player owner, RectangleF rect,
|
||||||
|
IEnumerable<Pair<Sprite, float2>> images)
|
||||||
|
{
|
||||||
|
foreach (var image in images)
|
||||||
|
{
|
||||||
|
var loc = image.Second;
|
||||||
|
|
||||||
|
if (loc.X > rect.Right || loc.X < rect.Left
|
||||||
|
- image.First.bounds.Width)
|
||||||
|
continue;
|
||||||
|
if (loc.Y > rect.Bottom || loc.Y < rect.Top
|
||||||
|
- image.First.bounds.Height)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
spriteRenderer.DrawSprite(image.First, loc,
|
||||||
|
(owner != null) ? owner.Palette : 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
@@ -33,21 +54,10 @@ namespace OpenRa.Game.Graphics
|
|||||||
region.Size.ToSizeF());
|
region.Size.ToSizeF());
|
||||||
|
|
||||||
foreach (Actor a in game.world.Actors)
|
foreach (Actor a in game.world.Actors)
|
||||||
{
|
DrawSpriteList(a.Owner, rect, a.Render());
|
||||||
var images = a.Render();
|
|
||||||
|
foreach (Bullet b in game.world.Bullets)
|
||||||
foreach( var image in images )
|
DrawSpriteList(b.Owner, rect, b.Render());
|
||||||
{
|
|
||||||
var loc = image.Second;
|
|
||||||
|
|
||||||
if( loc.X > rect.Right || loc.X < rect.Left - image.First.bounds.Width )
|
|
||||||
continue;
|
|
||||||
if( loc.Y > rect.Bottom || loc.Y < rect.Top - image.First.bounds.Height )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
spriteRenderer.DrawSprite( image.First, loc, ( a.Owner != null ) ? a.Owner.Palette : 0 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uiOverlay.Draw();
|
uiOverlay.Draw();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user