git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1342 993157c7-ee19-0410-b2c4-bb4e9862e678
This commit is contained in:
@@ -15,7 +15,7 @@ namespace OpenRa.Game
|
||||
this.owner = owner;
|
||||
|
||||
animation = new Animation( name );
|
||||
animation.PlayThen( "make", delegate { animation.Play( "idle" ); } );
|
||||
animation.PlayThen( "make", delegate { animation.PlayRepeating( "idle" ); } );
|
||||
owner.TechTree.Build( name, true );
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
<Compile Include="TerrainRenderer.cs" />
|
||||
<Compile Include="Tree.cs" />
|
||||
<Compile Include="TreeCache.cs" />
|
||||
<Compile Include="UiOverlay.cs" />
|
||||
<Compile Include="Unit.cs" />
|
||||
<Compile Include="UnitSheetBuilder.cs" />
|
||||
<Compile Include="Util.cs" />
|
||||
|
||||
@@ -73,9 +73,12 @@ namespace OpenRa.Game
|
||||
DrawSprite(blank, ref p);
|
||||
}
|
||||
|
||||
int buildPos = 0;
|
||||
int unitPos = 0;
|
||||
|
||||
void PopulateItemList()
|
||||
{
|
||||
int buildPos = 0, unitPos = 0;
|
||||
buildPos = 0; unitPos = 0;
|
||||
|
||||
items.Clear();
|
||||
|
||||
@@ -100,7 +103,10 @@ namespace OpenRa.Game
|
||||
foreach (SidebarItem i in items)
|
||||
i.Paint(spriteRenderer, region.Location);
|
||||
|
||||
spriteRenderer.Flush(); //todo: fix filling
|
||||
Fill(region.Size.Y, new float2(region.Location.X, buildPos + region.Location.Y));
|
||||
Fill(region.Size.Y, new float2(region.Location.X + spriteWidth, unitPos + region.Location.Y));
|
||||
|
||||
spriteRenderer.Flush();
|
||||
|
||||
clockRenderer.DrawSprite( clockAnimation.Images[0], region.Location, 0 );
|
||||
clockAnimation.Tick(1);
|
||||
|
||||
42
OpenRa.Game/UiOverlay.cs
Normal file
42
OpenRa.Game/UiOverlay.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
|
||||
namespace OpenRa.Game
|
||||
{
|
||||
class UiOverlay
|
||||
{
|
||||
SpriteRenderer spriteRenderer;
|
||||
Sprite buildOk;
|
||||
Sprite buildBlocked;
|
||||
Game game;
|
||||
|
||||
public UiOverlay(SpriteRenderer spriteRenderer, Game game)
|
||||
{
|
||||
this.spriteRenderer = spriteRenderer;
|
||||
this.game = game;
|
||||
|
||||
buildOk = SynthesizeTile(0x80);
|
||||
buildBlocked = SynthesizeTile(0xe6);
|
||||
}
|
||||
|
||||
Sprite SynthesizeTile(byte paletteIndex)
|
||||
{
|
||||
byte[] data = new byte[24 * 24];
|
||||
|
||||
for (int i = 0; i < 24; i++)
|
||||
for (int j = 0; j < 24; j++)
|
||||
data[i * 24 + j] = ((i + j) % 4 < 2) ? (byte)0 : paletteIndex;
|
||||
|
||||
return SheetBuilder.Add( data, new Size(24,24) );
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
spriteRenderer.DrawSprite(buildOk, new float2(48, 48), 0);
|
||||
spriteRenderer.DrawSprite(buildBlocked, new float2(96, 48), 0);
|
||||
spriteRenderer.Flush();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ namespace OpenRa.Game
|
||||
Game game;
|
||||
Region region;
|
||||
public IOrderGenerator orderGenerator;
|
||||
UiOverlay uiOverlay;
|
||||
|
||||
public World(Renderer renderer, Game game)
|
||||
{
|
||||
@@ -24,6 +25,8 @@ namespace OpenRa.Game
|
||||
game.viewport.AddRegion(region);
|
||||
|
||||
spriteRenderer = new SpriteRenderer(renderer, true);
|
||||
|
||||
uiOverlay = new UiOverlay(spriteRenderer, game);
|
||||
}
|
||||
|
||||
public void Add(Actor a) { actors.Add(a); }
|
||||
@@ -73,6 +76,7 @@ namespace OpenRa.Game
|
||||
}
|
||||
frameEndActions.Clear();
|
||||
|
||||
uiOverlay.Draw();
|
||||
spriteRenderer.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,8 +67,8 @@
|
||||
<!-- soviet barracks -->
|
||||
|
||||
<unit name="barr">
|
||||
<sequence name="idle" start="0"/>
|
||||
<sequence name="damaged-idle" start="1"/>
|
||||
<sequence name="idle" start="0" length="10"/>
|
||||
<sequence name="damaged-idle" start="10" length="10"/>
|
||||
<sequence name="make" start="0" length="*" src="barrmake" />
|
||||
</unit>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user