示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
 void UpdateSpriteLayers(CPos cell, int[] indices)
 {
     if (indices != null)
     {
         spriteLayer.Update(cell, veinSequence, veinPalette, indices.Random(world.LocalRandom));
     }
     else
     {
         spriteLayer.Clear(cell);
     }
 }