Commit Graph

9 Commits

Author SHA1 Message Date
evrooije ce83c0ae17 Fixed offset y for the case where the center point is above 0 but
the y is below
2018-07-22 17:03:13 +02:00
evrooije b0093461a5 Completely different approach to the underground lighting problem
as per paramat's recommendation a temporary "shadow caster" layer
is written above the chunk when underground relative to the current
layer. This works perfectly and lighting works properly while at
the same time it is calculated by the engine. A major change in the
API was however necessary to limit memory usage. The VM, are and
VM data are now initialized in the multi_map core, and passed on
to the generators as otherwise multiple data arrays were created
(one for the shadow caster, one of the generator, one to remove
the shadow caster again) and multiple calls to set_data and
write_to_map... This is also much better in case generators
are chained (i.e. multiple generators being called within a
single mapgen on_generated call)
2018-07-22 14:24:43 +02:00
evrooije 39bccf6bef Added pure Lua lighting code, first cut (with lots of issues) 2018-07-22 03:33:51 +02:00
evrooije e26e2a3994 Fixed the relative/ offset y calculation. Copied engine's lighting
calculation in a block comment and started translating the code to
Lua
2018-07-21 12:20:46 +02:00
evrooije 2c2cba19ee Introduced the ability to register a fallback or layer generator with
arguments, updated simple generator to allow switching between different
content ids for the terrain generation, i.e. it can now switch between
stone and sandstone (the one registered is sandstone, the fallback does
not specify arguments during registration so it uses a default, stone).
2018-07-19 00:11:59 +02:00
evrooije 35d768d79f Created framework for supporting multiple map generators per layer, with
a fallback (or default if need be) generator in case no layer specified
generator is found. Added sample/ basis mod to demonstrate registration
of map generators. Rewrote Proxima Testauri map generator to conform to
multi_map, simple map generator is fallback in demo. Testauri now uses
a single noise which increases generation time but reduces memory usage.
To try and reduce generation time, it keeps track of the last layer used
and based on that will not reinitialize unless the layer changes.
2018-07-18 23:22:18 +02:00
evrooije d6d827849d Fixed issue in simple mapgen depends.txt 2018-07-17 23:35:05 +02:00
evrooije 18f6b8f3cc Lighting seems to work properly, alignment is proper. Separated the simple
mapgen code into multi_mapgen_simple mod and registered with multi_map_core
which now properly calls the registered mapgen
2018-07-17 22:59:58 +02:00
evrooije d5d4520b2e Turned into a modpack, supplying simple mapgen. Changed to work on chunk
boundaries. Current version does not call the registered mapgen yet, and
simple mapgen is part of core (to be moved)
2018-07-17 21:16:37 +02:00