summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-02-01 03:06:02 +0200
committerPerttu Ahola <celeron55@gmail.com>2011-02-01 03:06:02 +0200
commit6e196c2ce4285c0aea2a5c714e842d90c1b84b43 (patch)
treee1c25414910ed344ced69125ba4f8170dc27bc9f /src/main.cpp
parentbe851871cd43316d12fd9a5f2cc6dec98a1c9ce0 (diff)
downloadminetest-6e196c2ce4285c0aea2a5c714e842d90c1b84b43.tar.gz
minetest-6e196c2ce4285c0aea2a5c714e842d90c1b84b43.tar.bz2
minetest-6e196c2ce4285c0aea2a5c714e842d90c1b84b43.zip
partly working chunk-based map generator (doesn't save properly, spawn is pretty random)
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/main.cpp b/src/main.cpp
index dc4716fab..87deefee4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -288,7 +288,7 @@ FEATURE: Map generator version 2
where some minerals are found
- Create a system that allows a huge amount of different "map
generator modules/filters"
-
+
FEATURE: The map could be generated procedually:
- This would need the map to be generated in larger pieces
- How large? How do they connect to each other?
@@ -296,7 +296,10 @@ FEATURE: The map could be generated procedually:
- Lighting would not have to be necessarily calculated until
the blocks are actually needed - it would be quite fast
- Something like 64*64*16 MapBlocks?
- - TODO: Separate lighting and block generation
+ - No, MapSectors. And as much as it is efficient to do,
+ 64x64 might be too much.
+ - FIXME: This is currently halfway done and the generator is
+ fairly broken
* Make the stone level with a heightmap
* Carve out stuff in the stone
* Dump dirt all around, and simulate it falling off steep
@@ -311,16 +314,25 @@ FEATURE: The map could be generated procedually:
parameter field is free for this.
- Simulate rock falling from cliffs when water has removed
enough solid rock from the bottom
-TODO: Lazy lighting updates:
- - Set updateLighting to ignore MapBlocks with expired lighting,
- except the blocks specified to it
- - When a MapBlock is generated, lighting expires in all blocks
- touching it (26 blocks + self)
- - When a lighting-wise valid MapBlock is needed and lighting of it
- has expired, what to do?
Doing now:
----------
+# maybe done
+* not done
+
+* Remove all kinds of systems that are made redundant by the new map
+ generator
+ - Sector heightmaps? At least they should be made redundant.
+ - Sector objects
+* Do something about AttributeDatabase/List being too slow
+* Save chunk metadata on disk
+* Change water side textures so that buggy water doesn't look bad
+* Make server find the spawning place from the real map data, not from
+ the heightmap
+* only_from_disk doesn't work that well anymore
+* Make the generator to run in background and not blocking block
+ placement and transfer
+* Fix the strange mineral occurences
======================================================================
@@ -1886,6 +1898,9 @@ int main(int argc, char *argv[])
*/
{
+ // This is set to true at the end of the scope
+ g_irrlicht->Shutdown(false);
+
/*
Draw "Loading" screen
*/
@@ -3017,6 +3032,14 @@ int main(int argc, char *argv[])
delete quick_inventory;
+ /*
+ Disable texture fetches and other stuff that is queued
+ to be processed by the main loop.
+
+ This has to be done before client goes out of scope.
+ */
+ g_irrlicht->Shutdown(true);
+
} // client and server are deleted at this point
} //try