git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1342 993157c7-ee19-0410-b2c4-bb4e9862e678

This commit is contained in:
(no author)
2007-07-24 09:42:01 +00:00
parent 18860c11c1
commit fce2dcda8a
6 changed files with 58 additions and 5 deletions

View File

@@ -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 );
}

View File

@@ -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" />

View File

@@ -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
View 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();
}
}
}

View File

@@ -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();
}
}

View File

@@ -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>