X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Flight.cpp;h=765c6303a97218ff27f31f2bf470bdb1c5f91710;hb=56195dc2e45b85b7177cfa97aade77e92cff8805;hp=1e4dfcdf12051f813d6e3354e6db7debd2b98287;hpb=102c5e31fe75bc5c02ddb27afe69968ca8dedeed;p=oweals%2Fminetest.git diff --git a/src/light.cpp b/src/light.cpp index 1e4dfcdf1..765c6303a 100644 --- a/src/light.cpp +++ b/src/light.cpp @@ -1,25 +1,102 @@ /* -Minetest-c55 -Copyright (C) 2010 celeron55, Perttu Ahola +Minetest +Copyright (C) 2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GNU Lesser General Public License for more details. -You should have received a copy of the GNU General Public License along +You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "light.h" +#if 1 +// Middle-raised variation of a_n+1 = a_n * 0.786 +// Length of LIGHT_MAX+1 means LIGHT_MAX is the last value. +// LIGHT_SUN is read as LIGHT_MAX from here. +u8 light_decode_table[LIGHT_MAX+1] = +{ +8, +11+2, +14+7, +18+10, +22+15, +29+20, +37+20, +47+15, +60+10, +76+7, +97+5, +123+2, +157, +200, +255, +}; +#endif + +#if 0 +/* +Made using this and: +- adding 220 as the second last one +- replacing the third last one (212) with 195 +#!/usr/bin/python + +from math import * +from sys import stdout + +# We want 0 at light=0 and 255 at light=LIGHT_MAX +LIGHT_MAX = 14 +#FACTOR = 0.69 +#FACTOR = 0.75 +FACTOR = 0.83 +START_FROM_ZERO = False + +L = [] +if START_FROM_ZERO: + for i in range(1,LIGHT_MAX+1): + L.append(int(round(255.0 * FACTOR ** (i-1)))) + L.append(0) +else: + for i in range(1,LIGHT_MAX+1): + L.append(int(round(255.0 * FACTOR ** (i-1)))) + L.append(255) + +L.reverse() +for i in L: + stdout.write(str(i)+",\n") +*/ +u8 light_decode_table[LIGHT_MAX+1] = +{ +23, +27, +33, +40, +48, +57, +69, +83, +100, +121, +146, +176, +195, +220, +255, +}; +#endif + +#if 0 +// This is good // a_n+1 = a_n * 0.786 // Length of LIGHT_MAX+1 means LIGHT_MAX is the last value. // LIGHT_SUN is read as LIGHT_MAX from here. @@ -41,6 +118,50 @@ u8 light_decode_table[LIGHT_MAX+1] = 200, 255, }; +#endif + +#if 0 +// Use for debugging in dark +u8 light_decode_table[LIGHT_MAX+1] = +{ +58, +64, +72, +80, +88, +98, +109, +121, +135, +150, +167, +185, +206, +229, +255, +}; +#endif + +// This is reasonable with classic lighting with a light source +/*u8 light_decode_table[LIGHT_MAX+1] = +{ +2, +3, +4, +6, +9, +13, +18, +25, +32, +35, +45, +57, +69, +79, +255 +};*/ + // As in minecraft, a_n+1 = a_n * 0.8 // NOTE: This doesn't really work that well because this defines