public void InitPalette( WorldRenderer wr )
 {
     var info = Rules.Info["player"].Traits.WithInterface<PlayerColorPaletteInfo>()
         .First(p => p.BaseName == Info.PlayerPalette);
     format = info.PaletteFormat;
     wr.AddPalette("colorpicker", wr.GetPalette(info.BasePalette));
 }
Пример #2
0
 public void InitPalette( WorldRenderer wr )
 {
     var paletteName = "{0}{1}".F( info.BaseName, owner.InternalName );
     var newpal = new Palette(wr.Palette(info.BasePalette).Palette,
                      new PlayerColorRemap(info.RemapIndex, owner.ColorRamp));
     wr.AddPalette(paletteName, newpal, info.AllowModifiers);
 }
Пример #3
0
        public void InitPalette(WorldRenderer wr)
        {
            var c = info.Type == ShroudPaletteType.Shroud ? Shroud :
                    info.Type == ShroudPaletteType.Fog ? Fog : Combined;

            wr.AddPalette(info.Name, new Palette(Exts.MakeArray(256, i => (uint)c[i % 8].ToArgb())), false);
        }
 public void InitPalette( WorldRenderer wr )
 {
     var paletteName = "{0}{1}".F( info.BaseName, owner.InternalName );
     var newpal = new Palette(wr.GetPalette(info.BasePalette),
                      new PlayerColorRemap(info.PaletteFormat, owner.ColorRamp));
     wr.AddPalette(paletteName, newpal);
 }
Пример #5
0
        public void LoadPalettes(WorldRenderer wr)
        {
            // Enable palette only for a specific tileset
            if (info.Tileset != null && info.Tileset.ToLowerInvariant() != world.Map.Tileset.ToLowerInvariant())
                return;

            var c = (uint)((info.A << 24) | (info.R << 16) | (info.G << 8) | info.B);
            wr.AddPalette(info.Name, new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => (i == 0) ? 0 : c)), info.AllowModifiers);
        }
Пример #6
0
        public void InitPalette(WorldRenderer wr)
        {
            // Enable palette only for a specific tileset
            if (info.Tileset != null && info.Tileset.ToLowerInvariant() != world.Map.Tileset.ToLowerInvariant())
                return;

            var c = (uint)((info.A << 24) | (info.R << 16) | (info.G << 8) | info.B);
            wr.AddPalette(info.Name, new Palette(Exts.MakeArray(256, i => (i == 0) ? 0 : c)), info.AllowModifiers);
        }
Пример #7
0
 public void InitPalette( WorldRenderer wr )
 {
     if (info.Theatre == null || info.Theatre.ToLowerInvariant() == world.Map.Theater.ToLowerInvariant())
     {
         // TODO: This shouldn't rely on a base palette
         var pal = wr.GetPalette("terrain");
         wr.AddPalette(info.Name, new Palette(pal, new SingleColorRemap(Color.FromArgb(info.A, info.R, info.G, info.B))));
     }
 }
Пример #8
0
		public void LoadPalettes(WorldRenderer wr)
		{
			Func<int, uint> makeColor = i =>
			{
				if (i < 128)
					return (uint)(int2.Lerp(255, 0, i, 127) << 24);
				return 0;
			};

			wr.AddPalette(info.Name, new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => makeColor(i))));
		}
Пример #9
0
        public void InitPalette(WorldRenderer wr)
        {
            var c = new[] {
                Color.Transparent, Color.Green,
                Color.Blue, Color.Yellow,
                Color.Black,
                Color.FromArgb(128,0,0,0),
                Color.Transparent,
                Color.Transparent
            };

            wr.AddPalette(info.Name, new Palette(Exts.MakeArray(256, i => (uint)c[i % 8].ToArgb())), false);
        }
Пример #10
0
		public void LoadPalettes(WorldRenderer wr)
		{
			// Enable palette only for a specific tileset
			if (info.Tileset != null && info.Tileset.ToLowerInvariant() != world.Map.Tileset.ToLowerInvariant())
				return;

			var a = info.A / 255f;
			var r = (int)(a * info.R + 0.5f).Clamp(0, 255);
			var g = (int)(a * info.G + 0.5f).Clamp(0, 255);
			var b = (int)(a * info.B + 0.5f).Clamp(0, 255);
			var c = (uint)Color.FromArgb(info.A, r, g, b).ToArgb();
			wr.AddPalette(info.Name, new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => (i == 0) ? 0 : c)), info.AllowModifiers);
		}
Пример #11
0
        public void LoadPalettes(WorldRenderer wr)
        {
            var colors = new uint[Palette.Size];
            using (var s = GlobalFileSystem.Open(info.Filename))
            {
                s.Seek(info.Offset, SeekOrigin.Begin);

                for (var i = 0; i < Palette.Size; i++)
                {
                    var packed = s.ReadUInt16();
                    colors[i] = (uint)((255 << 24) | ((packed & 0xF800) << 8) | ((packed & 0x7E0) << 5) | ((packed & 0x1f) << 3));

                    if (info.InvertColor)
                        colors[i] ^= 0x00FFFFFF;
                }
            }

            wr.AddPalette(info.Name, new ImmutablePalette(colors), info.AllowModifiers);
        }
Пример #12
0
        public void InitPalette(WorldRenderer wr)
        {
            var colors = new uint[256];
            using (var s = FileSystem.Open(info.Filename))
            {
                s.Seek(info.Offset, SeekOrigin.Begin);

                for (var i = 0; i < 256; i++)
                {
                    var packed = s.ReadUInt16();

                    // Fog is rendered with half opacity
                    colors[i] = (uint)((255 << 24) | ((packed & 0xF800) << 7) | ((packed & 0x7E0) << 4) | ((packed & 0x1f) << 2));

                    if (info.InvertColor)
                        colors[i] ^= 0x00FFFFFF;
                }
            }

            wr.AddPalette(info.Name, new Palette(colors), info.AllowModifiers);
        }
Пример #13
0
		public void LoadPalettes(WorldRenderer wr)
		{
			// Rotate vectors to expected orientation
			// Voxel coordinates are x=forward, y=right, z=up
			var channel = new int[] {2,1,0};
			var n = info.Type == NormalType.RedAlert2 ? RA2Normals : TSNormals;

			// Map normals into color range
			// Introduces a maximum error of ~0.5%
			var data = new uint[Palette.Size];
			for (var i = 0; i < n.Length / 3; i++)
			{
				data[i] = 0xFF000000;
				for (var j = 0; j < 3; j++)
				{
					var t = (n[3*i + j] + 1) / 2;
					data[i] |= (uint)((byte)(t*0xFF + 0.5) << (8*channel[j]));
				}
			}

			wr.AddPalette(info.Name, new ImmutablePalette(data));
		}
 public void InitPalette(WorldRenderer wr)
 {
     var filename = world.TileSet.PlayerPalette ?? world.TileSet.Palette;
     wr.AddPalette(info.Name, new Palette(FileSystem.Open(filename), info.ShadowIndex), info.AllowModifiers);
 }
Пример #15
0
 public void LoadPalettes(WorldRenderer wr)
 {
     var c = info.Fog ? Fog : Shroud;
     wr.AddPalette(info.Name, new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => (uint)c[i % 8].ToArgb())));
 }
Пример #16
0
 public void LoadPalettes(WorldRenderer wr)
 {
     if (info.Tileset == null || info.Tileset.ToLowerInvariant() == world.Map.Tileset.ToLowerInvariant())
         wr.AddPalette(info.Name, new ImmutablePalette(world.Map.Open(info.Filename), info.ShadowIndex), info.AllowModifiers);
 }
Пример #17
0
        public void LoadPlayerPalettes(WorldRenderer wr, string playerName, HSLColor color, bool replaceExisting)
        {
            var basePalette = wr.Palette(info.BasePalette).Palette;
            ImmutablePalette pal;
            int[] remap;

            if (info.PlayerIndex.TryGetValue(playerName, out remap))
                pal = new ImmutablePalette(basePalette, new IndexedColorRemap(basePalette, info.RemapIndex, remap));
            else
                pal = new ImmutablePalette(basePalette);

            wr.AddPalette(info.BaseName + playerName, pal, info.AllowModifiers, replaceExisting);
        }
Пример #18
0
 public void InitPalette(WorldRenderer wr)
 {
     if (info.Tileset == null || info.Tileset.ToLowerInvariant() == world.Map.Tileset.ToLowerInvariant())
         wr.AddPalette(info.Name, new Palette(FileSystem.Open(info.Filename), info.ShadowIndex), info.AllowModifiers);
 }
Пример #19
0
		public void LoadPalettes(WorldRenderer wr)
		{
			var remap = new ScaledPaletteRemap(info.Scale, info.Offset);
			wr.AddPalette(info.Name, new ImmutablePalette(wr.Palette(info.BasePalette).Palette, remap), info.AllowModifiers);
		}
 public void LoadPalettes(WorldRenderer wr)
 {
     var filename = world.TileSet.PlayerPalette ?? world.TileSet.Palette;
     wr.AddPalette(info.Name, new ImmutablePalette(GlobalFileSystem.Open(filename), info.ShadowIndex), info.AllowModifiers);
 }
 public void LoadPlayerPalettes(WorldRenderer wr, string playerName, HSLColor color, bool replaceExisting)
 {
     var remap = new AlphaPaletteRemap(info.Alpha, info.Premultiply);
     var pal = new ImmutablePalette(wr.Palette(info.BasePalette + playerName).Palette, remap);
     wr.AddPalette(info.BaseName + playerName, pal, info.AllowModifiers, replaceExisting);
 }
 public void LoadPalettes(WorldRenderer wr)
 {
     var remap = new AlphaPaletteRemap(info.Alpha, info.Premultiply);
     wr.AddPalette(info.Name, new ImmutablePalette(wr.Palette(info.BasePalette).Palette, remap), info.AllowModifiers);
 }
Пример #23
0
 public void LoadPalettes(WorldRenderer wr)
 {
     var remap = new PlayerColorRemap(info.RemapIndex, info.Color, info.Ramp);
     wr.AddPalette(info.Name, new ImmutablePalette(wr.Palette(info.Base).Palette, remap), info.AllowModifiers);
 }
Пример #24
0
 public void LoadPlayerPalettes(WorldRenderer wr, string playerName, HSLColor color, bool replaceExisting)
 {
     var argb = (uint)Color.FromArgb(128, color.RGB).ToArgb();
     var pal = new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => i == 0 ? 0 : argb));
     wr.AddPalette(info.BaseName + playerName, pal, false, replaceExisting);
 }
Пример #25
0
 public void InitPalette(WorldRenderer wr)
 {
     var remap = new PlayerColorRemap(info.RemapIndex, owner.Color, info.Ramp);
     wr.AddPalette(info.BaseName+owner.InternalName, new Palette(wr.Palette(info.BasePalette).Palette, remap), info.AllowModifiers);
 }
Пример #26
0
		public void LoadPalettes(WorldRenderer wr)
		{
			wr.AddPalette(info.Name, new ImmutablePalette(GlobalFileSystem.Open(world.TileSet.Palette), info.ShadowIndex), info.AllowModifiers);
		}
Пример #27
0
 public void LoadPalettes(WorldRenderer wr)
 {
     wr.AddPalette(info.Name, new ImmutablePalette(wr.World.Map.Open(world.Map.Rules.TileSet.Palette), info.ShadowIndex), info.AllowModifiers);
 }
Пример #28
0
 public void LoadPlayerPalettes(WorldRenderer wr, string playerName, HSLColor color, bool replaceExisting)
 {
     var remap = new PlayerColorRemap(info.RemapIndex, color, info.Ramp);
     var pal = new ImmutablePalette(wr.Palette(info.BasePalette).Palette, remap);
     wr.AddPalette(info.BaseName + playerName, pal, info.AllowModifiers, replaceExisting);
 }
Пример #29
0
 public void InitPalette( WorldRenderer wr )
 {
     if( info.Theater == null || info.Theater.ToLowerInvariant() == world.Map.Theater.ToLowerInvariant() )
         wr.AddPalette( info.Name, new Palette( FileSystem.Open( info.Filename ), info.Transparent ) );
 }
Пример #30
0
 public void LoadPalettes(WorldRenderer wr)
 {
     var argb = (uint)Color.FromArgb(128, owner.Color.RGB).ToArgb();
     wr.AddPalette(info.BaseName + owner.InternalName, new ImmutablePalette(Enumerable.Range(0, Palette.Size).Select(i => i == 0 ? 0 : argb)));
 }