Commit Graph

30 Commits

Author SHA1 Message Date
evrooije 7045f4ad4a Added default as dependency 2018-07-24 22:24:09 +02:00
evrooije 1f2bcc5f81 Fixed some bugs, added HUD status to dump of mod state to log,
changed the default set of generators, using levels only for now
2018-07-24 21:20:38 +02:00
evrooije 66508f1615 Split code into different source files for better maintainability.
Added layer names and HUD system to display offset coordinates and
the layer number and/ or layer name
2018-07-24 19:26:28 +02:00
evrooije e41af0dc81 Added some documentation to the core 2018-07-23 22:04:13 +02:00
evrooije 939d3b3456 Added mod name to logging and logging mod settings/ stats on first
run of on_generated. Added caching of the perlin maps, i.e. when
the on_generated is called, the noise map array is stored when
it is retrieved by a generator plugin and kept until the on_generated
is finished. This allows chained generators to retrieve the same
global map without having to reinitialize it.
2018-07-23 20:47:33 +02:00
evrooije aa9c3c4921 Added global noise/ map functionality, allowing generators to
register their 2D noises with multi_map globally and retrieve
them during map generation. multi_map takes care of reusing last
cached map in case the same layer is used for performance/ memory
reasons. In addition, it prepares an array of parameters so that
the noises can be used in any layer (truly availble globally) with
seeds different for each layer (but based on the seed passed
during registration via random seeding). Placeholder for global
3D maps added, but not implemented yet.
2018-07-23 01:04:07 +02:00
evrooije 44b8ee2807 Enabled layer generation starting chunk, so layers can now start
generating at a different y position above -30912
2018-07-22 23:48:46 +02:00
evrooije 23fd0b8eb3 Formatting 2018-07-22 18:49:49 +02:00
evrooije b6338b55eb Forgot one reference to multi_map.c_air 2018-07-22 18:37:38 +02:00
evrooije 9c5dc8eec4 Updated mmgen_simple to use the new callback parameters and the
content id cache
2018-07-22 18:34:44 +02:00
evrooije 3464b6ec5d Removed lost debug print statement in core. Introduced content id
sort of cached table as per duane's underworlds mod. Introduced
shorthand alias mm for multi_map in case not other mods named mm
exist, so that it can be more easily used to reference the API, e.g.
to do vm_data[vi] = mm.node["default:cobble"] instead of having to
fully spell out multi_map
2018-07-22 18:28:23 +02:00
evrooije c62c518946 Adding multi_map logo 2018-07-22 17:55:56 +02:00
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 33b611feec License fixes 2018-07-19 12:01:13 +02:00
evrooije 1be55e012a Moved licensing around a bit. Committing levels code. 2018-07-19 11:48:34 +02:00
evrooije 9303f35d5e Fixed license, attributed paramat and included paramat's copyright
notice and MIT license
2018-07-19 03:15:37 +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
evrooije f643ce0700 Further tweaking of the skyrock and bedrock layers, fixes in lighting
and another refactoring with a first cut of a multi_map class and API
2018-07-15 23:42:46 +02:00
evrooije a626ec05a1 Made proper mod as the mapgen.lua was a file in default. So separated into
correct mod named folder with init.lua, renamed bedrock and skyrock nodes
to the correct namespace. Added textures folder.
2018-07-14 12:38:27 +02:00
Emiel van Rooijen 8e6629cf67
Fixed some bugs
Fixed typo for the mountain peak seed (said map instead of peak) and the fact the random numbers were generated in the table and then not referenced in the noise parameters (forgot to update when refactoring the code)
2018-07-14 02:16:19 +02:00
Emiel van Rooijen f8ac6237ad
Testing bedrock/ skyrock, added unique layers
Temporarily added a bedrock and skyrock node (in default namespace for now on my local machine as it is in the default mod ... sorry ...). Introduced a layer table containing and a loop to populate the layer settings based on a single random seed and with some noise settings hard coded for now.
2018-07-14 01:58:43 +02:00
Emiel van Rooijen 4e76adb03d
Initial commit
Still PoC phase at this stage, but first commit to publicize the idea and allow others to copy or modify the initial code
2018-07-12 23:12:55 +02:00
Emiel van Rooijen 278a76f41a
Initial commit 2018-07-12 23:10:28 +02:00