Page 1 of 1

How to define tile.map color?

Posted: Sat Sep 07, 2019 1:50 pm
by darkfrei
Here is the code for data.lua and result from it:

Code: Select all

-- code:

local str = 'local tile_colors = {' .. string.char(10) -- new line
for tile_name, tile in pairs (data.raw.tile) do
  local map_color = tile.map_color
  str = str .. '  ["' .. tile_name .. '"]='.. serpent.line (map_color, {sortkeys = false}) .. ',' .. string.char(10)
end
str = str .. '}'
log (str)

-- result:

local tile_colors = {
  ["out-of-map"]={r = 0, g = 0, b = 0},
  ["deepwater"]={r = 38, g = 64, b = 73},
  ["landfill"]={r = 53, g = 52, b = 27},
  ["deepwater-green"]={r = 0.0941, g = 0.149, b = 0.066},
  ["water"]={r = 51, g = 83, b = 95},
  ["water-green"]={r = 31, g = 48, b = 18},
  ["water-shallow"]={r = 31, g = 48, b = 18},
  ["water-mud"]={r = 31, g = 48, b = 18},
  ["grass-1"]={r = 53, g = 52, b = 27},
  ["grass-2"]={r = 57, g = 54, b = 35},
  ["grass-3"]={r = 59, g = 56, b = 41},
  ["grass-4"]={r = 54, g = 47, b = 35},
  ["dry-dirt"]={r = 108, g = 92, b = 71},
  ["dirt-1"]={r = 119, g = 104, b = 85},
  ["dirt-2"]={r = 109, g = 94, b = 75},
  ["dirt-3"]={r = 99, g = 85, b = 65},
  ["dirt-4"]={r = 89, g = 74, b = 57},
  ["dirt-5"]={r = 97, g = 83, b = 67},
  ["dirt-6"]={r = 77, g = 65, b = 53},
  ["dirt-7"]={r = 60, g = 51, b = 41},
  ["sand-1"]={r = 145, g = 129, b = 104},
  ["sand-2"]={r = 130, g = 114, b = 90},
  ["sand-3"]={r = 124, g = 108, b = 86},
  ["red-desert-0"]={r = 91, g = 74, b = 56},
  ["red-desert-1"]={r = 107, g = 87, b = 71},
  ["red-desert-2"]={r = 120, g = 94, b = 78},
  ["red-desert-3"]={r = 114, g = 86, b = 75},
  ["stone-path"]={r = 50, g = 50, b = 50},
  ["lab-dark-1"]={r = 0, g = 0, b = 0},
  ["lab-dark-2"]={r = 0.2, g = 0.2, b = 0.2},
  ["lab-white"]={r = 1, g = 1, b = 1},
  ["tutorial-grid"]={r = 0, g = 0, b = 0},
  ["concrete"]={r = 100, g = 100, b = 100},
  ["hazard-concrete-left"]={r = 0.5, g = 0.5, b = 0},
  ["hazard-concrete-right"]={r = 0.5, g = 0.5, b = 0},
  ["refined-concrete"]={r = 100, g = 100, b = 100},
  ["refined-hazard-concrete-left"]={r = 0.5, g = 0.5, b = 0},
  ["refined-hazard-concrete-right"]={r = 0.5, g = 0.5, b = 0},
}
Why sometimes the color is defined as range [0, 255] (see ["concrete"]={r = 100, g = 100, b = 100}) and sometimes as range [0, 1] (see ["hazard-concrete-left"]={r = 0.5, g = 0.5, b = 0})?

Re: How to define tile.map color?

Posted: Sat Sep 07, 2019 2:16 pm
by Klonan
darkfrei wrote: Sat Sep 07, 2019 1:50 pm Why sometimes the color is defined as range [0, 255] (see ["concrete"]={r = 100, g = 100, b = 100}) and sometimes as range [0, 1] (see ["hazard-concrete-left"]={r = 0.5, g = 0.5, b = 0})?
Either one is fine, if all values are between 0-1 then it gets multiplied by 255

Re: How to define tile.map color?

Posted: Sat Sep 07, 2019 2:17 pm
by darkfrei
Klonan wrote: Sat Sep 07, 2019 2:16 pm Either one is fine, if all values are between 0-1 then it gets multiplied by 255
What about {r=1, g=1, b=1}?

Re: How to define tile.map color?

Posted: Sat Sep 07, 2019 2:22 pm
by Klonan
darkfrei wrote: Sat Sep 07, 2019 2:17 pm
Klonan wrote: Sat Sep 07, 2019 2:16 pm Either one is fine, if all values are between 0-1 then it gets multiplied by 255
What about {r=1, g=1, b=1}?
Ok its actually the other way around:

Code: Select all

  if (r > 1 || g > 1 || b > 1 || a > 1)
  {
    r /= 255;
    g /= 255;
    b /= 255;
    if (aSpecified)
      a /= 255;
  }