How to define tile.map color?

Place to get help with not working mods / modding interface.
User avatar
darkfrei
Smart Inserter
Smart Inserter
Posts: 2905
Joined: Thu Nov 20, 2014 11:11 pm
Contact:

How to define tile.map color?

Post 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})?
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5412
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: How to define tile.map color?

Post 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
User avatar
darkfrei
Smart Inserter
Smart Inserter
Posts: 2905
Joined: Thu Nov 20, 2014 11:11 pm
Contact:

Re: How to define tile.map color?

Post 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}?
User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 5412
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: How to define tile.map color?

Post 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;
  }
Post Reply

Return to “Modding help”