Commit graph

141 commits

Author SHA1 Message Date
Justin Aquadro
32dd74415f Adding random 3D maze generator example 2011-05-13 06:12:40 +00:00
Justin Aquadro
46387e28b4 Minor adjustment 2011-05-13 03:44:05 +00:00
Justin Aquadro
d56fcc288f Changed some identifier names from BlockXX to XX, since they're no longer part of an overloaded chunk interface. 2011-05-13 03:21:53 +00:00
Justin Aquadro
b7eefbea0e Major refactoring to chunk model which separates Block and Entity collections from the chunks themselves. This is a compatibility-breaking change. Also numerous bugfixes including Level, Player, and lighting fixes. 2011-05-13 03:09:57 +00:00
Justin Aquadro
0f1c6970c9 More preparation towards refactoring 2011-05-08 08:17:20 +00:00
Justin Aquadro
c8cdf32eb2 Added explicit caching support classes ahead of potential block collection refactoring. 2011-05-07 07:36:39 +00:00
Justin Aquadro
fe0e71694e Squid entity 2011-04-30 05:59:58 +00:00
Justin Aquadro
77438fa1bf Added PurgeEntities example program 2011-04-30 05:18:30 +00:00
Justin Aquadro
e215ccd7d5 Some more lighting fixes (transparent, blocking blocks like half-steps and stairs will no longer be partially dark) 2011-04-29 06:23:18 +00:00
Justin Aquadro
02429a92fc Version bump 2011-04-21 00:36:02 +00:00
Justin Aquadro
bb12d60c0c Added heightmap rebuilding (for maps with invalid heightmaps), and added it to the relight example. Made a couple level.dat fields auto-create if missing. 2011-04-21 00:30:13 +00:00
Justin Aquadro
0b2db7934d Thanks to caching, rebuilding the skylight is now half the cost. I'm sure the algorithm can still be fundamentally improved, however. 2011-04-21 00:02:17 +00:00
Justin Aquadro
e78f28b25f Enum type inappropriate for block id constants. 2011-04-20 08:13:14 +00:00
Justin Aquadro
ecc6bd04c6 New block types 2011-04-20 08:08:09 +00:00
Justin Aquadro
45a1514b38 Lighting cutoff bug fixed, but now relighting is hideously slow. Mustfix. 2011-04-20 07:58:36 +00:00
Justin Aquadro
3e3f612e5c Squashed a new lighting bug. There is still a cutoff bug for sunlight calculation, like the old blocklight bug. Need separate spreadlight function for sunlight, but it could be expensive... 2011-04-19 08:42:55 +00:00
Justin Aquadro
bd62ccc04c Switched chunks to factory method, allowing them to be created with or without automatic validation (some ops, like copy, no longer perform unnecessary validation). Skylight recalculation optimization, cuts runtime of flatmap example by two thirds. 2011-04-19 07:50:17 +00:00
Justin Aquadro
9355a016ca ChunkRef switched to factory method to fix performance defect 2011-04-19 01:24:26 +00:00
Justin Aquadro
324d997f52 Improved performance of edge reconciliation for chunk lighting. 2011-04-17 02:03:06 +00:00
Justin Aquadro
0657cf5bd3 Bugfixes and more relighting control 2011-04-16 01:46:46 +00:00
Justin Aquadro
6fa2538130 Updates to NBToolkit, edge light reconciliation 2011-04-15 03:30:46 +00:00
Justin Aquadro
e27595271b Fixed a serious cache consistency bug. The design is not terribly satisfying and may be reviewed later, but Beta worlds should live once more. Also including relighting example. 2011-04-14 07:04:13 +00:00
Justin Aquadro
66bd79646c Replaced the blocklight resetting code, which was buggy. The new method is faster anyway and takes advantage of the fact that light is only being added, not removed or impeded in any way. 2011-04-14 02:30:40 +00:00
Justin Aquadro
9c7a96d3b9 Minor stuff 2011-04-13 09:17:50 +00:00
Justin Aquadro
6f78009c0e Chunk coordinates were being aliased during chunk generation, causing Minecraft to hang. Also fixed player object creation. 2011-04-13 08:46:06 +00:00
Justin Aquadro
8cb719f200 Added per-chunkref toggle for automatic relighting. Added manual whole-chunk relighting to chunkref, which severely improves generation speed of new chunks. Added first complete example, a "Flat Map" world generator. 2011-04-13 07:51:13 +00:00
Justin Aquadro
c6ee97a53b Bugfixes for creating new worlds/regions/chunks 2011-04-13 07:09:41 +00:00
Justin Aquadro
4141175491 Resyncing nbtoolkit 2011-04-13 05:04:56 +00:00
Justin Aquadro
44ba6eac4e World interfaces refactored; breaks existing code. 2011-04-13 05:04:32 +00:00
Justin Aquadro
245e792541 Cache consistency bug in Region fixed. Ready for 0.3. 2011-04-12 04:28:38 +00:00
Justin Aquadro
d72e7881a5 Skylight recalculations added 2011-04-12 00:30:17 +00:00
Justin Aquadro
464ea33b29 Some tweaks to the untested lighting code in Chunk. 2011-04-11 17:33:08 +00:00
Justin Aquadro
b3ee8e76d7 Region functions can now delegate operations on out-of-range coordinates to other regions. Used by relighting code. 2011-04-11 08:40:48 +00:00
Justin Aquadro
de21e4d94c Fixed region boundary issue with relighting code 2011-04-11 08:17:52 +00:00
Justin Aquadro
2adf6ced99 Initial automatic relighting support for blocklight (not skylight) via chunkref manipulations. There is also untested code for recalculating an entire chunk's light. Relighting still not present in blockmanager. 2011-04-11 06:13:33 +00:00
Justin Aquadro
f1cc8f13f1 Entity factory bugfix 2011-04-10 21:08:56 +00:00
Justin Aquadro
37d58fcf91 Fixed bug in TileEntity factory 2011-04-10 21:04:33 +00:00
Justin Aquadro
e88ea3c69a Added some chunk/region creation support 2011-04-09 04:52:43 +00:00
Justin Aquadro
3d0caa7a28 NBT type renaming. Added more casting options to NBT Value types. 2011-04-09 02:50:42 +00:00
Justin Aquadro
5234915d9a Refactoring World class to separate invocations of Alpha and Beta maps. Dead code removal. 2011-04-09 00:56:40 +00:00
Justin Aquadro
5be6731bb7 Corrected handling of loading and saving Alpha-style chunks. 2011-04-08 23:16:04 +00:00
Justin Aquadro
0cf047c51d ChunkRef enumerators moved into Manager class namespaces; Manager classes now offer enumerators directly. 2011-04-08 20:52:28 +00:00
Justin Aquadro
f1c79f6312 Adding NBToolkit project as a reference front-end consumer of the Substrate library. Although it works now, it's still rough around the edges. 2011-04-08 08:16:01 +00:00
Justin Aquadro
e8a99d62a9 Numerous fixes to get the library to actually run with software. Rebuilt Ionic.Zlib to incorporate critical patch to Addler32. 2011-04-08 06:48:27 +00:00
Justin Aquadro
1e029325bc Major Block interface factoring to ease support of alternative block containers such as Classic Meps or MCSchematic files. 2011-04-08 02:16:06 +00:00
Justin Aquadro
134e979323 Level info class added, additional work to World. Player, Level, and World implementations are still rough around the edges. 2011-04-07 08:04:53 +00:00
Justin Aquadro
382399c141 Split out generic NBTFile loader, added support for player IO and a PlayerManager. 2011-04-07 07:03:54 +00:00
Justin Aquadro
0860bae2bc Added hidden base type UntypedEntity above Entity, added Player entity as UntypedEntity. Added options field to NBT Schema. 2011-04-07 02:44:17 +00:00
Justin Aquadro
428c576925 Added entity access points into Chunks (as IEntityContainer interface). Added predicate-based find/remove capability to NBT Lists. 2011-04-06 23:54:41 +00:00
Justin Aquadro
50375d326d Added remaining entities. Fixed a few remaining namespace inconsistencies. 2011-04-06 22:01:22 +00:00