void ITickRender.TickRender(WorldRenderer wr, Actor self) { var remove = new List <CPos>(); foreach (var kv in dirty) { if (!self.World.FogObscures(kv.Key)) { var tile = kv.Value; if (tile.HasValue) { // Terrain tiles define their origin at the topleft var s = terrainRenderer.TileSprite(tile.Value); var ss = new Sprite(s.Sheet, s.Bounds, s.ZRamp, float2.Zero, s.Channel, s.BlendMode); render.Update(kv.Key, ss, paletteReference); } else { render.Clear(kv.Key); } remove.Add(kv.Key); } } foreach (var r in remove) { dirty.Remove(r); } }
void ITickRender.TickRender(WorldRenderer wr, Actor self) { var remove = new List <CPos>(); foreach (var kv in dirty) { if (!self.World.FogObscures(kv.Key)) { // A null Sequence if (kv.Value.Sequence == null) { tiles.Remove(kv.Key); render.Clear(kv.Key); } else { var smudge = kv.Value; tiles[kv.Key] = smudge; render.Update(kv.Key, smudge.Sequence, smudge.Depth); } remove.Add(kv.Key); } } foreach (var r in remove) { dirty.Remove(r); } }
void UpdateSpriteLayers(CPos cell, int[] indices) { if (indices != null) { spriteLayer.Update(cell, veinSequence, veinPalette, indices.Random(world.LocalRandom)); } else { spriteLayer.Clear(cell); } }