Commit Graph

65 Commits (3f30d5dfd29484c0201118ff525863d8ce266aa8)

Author SHA1 Message Date
madmaxoft@gmail.com 4f17362aeb Rewritten most of the code for multithreading; still not 100%, but getting there. If this commit proves to be too problematic, we can always undo it.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@251 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-13 21:47:03 +00:00
madmaxoft@gmail.com 10752d2f35 Removed unused code
git-svn-id: http://mc-server.googlecode.com/svn/trunk@249 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-08 19:49:57 +00:00
madmaxoft@gmail.com 32880153ab MTRand class is not created in each tick, therefore much improving tick-thread time (now uses ~5 % CPU instead of one full core)
git-svn-id: http://mc-server.googlecode.com/svn/trunk@245 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-02-08 12:36:54 +00:00
madmaxoft@gmail.com 87a7c39dfc Old code begone! ChunkMap cleanup
git-svn-id: http://mc-server.googlecode.com/svn/trunk@189 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-29 21:40:21 +00:00
faketruth 50a7722242 Terrain generation is synchronous again, async generation has bugs.
Made some funky smart pointer things for chunks.
Fixed a bug where the client would override the player position on the server and back again, resulting in sending too many chunks to the client which it doesn't even need.
Fixed some compiler warnings in cPickup.cpp


git-svn-id: http://mc-server.googlecode.com/svn/trunk@164 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-19 18:12:39 +00:00
faketruth 01398f8424 Fixed the numchunks console command.
Added some form of reference counting to cChunk to make sure it's not referenced when deleting it.
Right now it's only needed due to the generation of chunks in a separate thread and adding it to the spread light list in cWorld

git-svn-id: http://mc-server.googlecode.com/svn/trunk@161 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-01-01 16:20:52 +00:00
faketruth 9af5ed43fd Made a couple of functions in cChunk inline, this should speed up several block operations on chunks
Players should not spawn in the ground anymore.
When an entity was added to cWorld twice (which shouldn't happen actually), the server would crash when the entity is destroyed, this should be fixed now.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@158 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-31 21:08:23 +00:00
mtilden@gmail.com c7fa610be3 - Linux compatible fixes including updated makefile
- Mersenne Twister still says uint32 but it's now signed for compatibility with random uses needing negative values
 - Server seed is sent to clients, but needs to be able to be signed long long later on for authentic reasons
 - Protocol Version is required to match to ensure client compatibility, this should probably have a settings.ini check as well as store the value there

git-svn-id: http://mc-server.googlecode.com/svn/trunk@121 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 09:09:47 +00:00
faketruth 537e1afcb1 Moved the actual world generation from cChunk.cpp to a more isolated file cWorldGenerator.cpp
New generators should inherit cWorldGenerator and implement their own generation algorithms

git-svn-id: http://mc-server.googlecode.com/svn/trunk@117 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 02:39:43 +00:00
faketruth c35db25269 Made some functions in cChunk and cNoise inline, this should significantly increase chunk generation speed
git-svn-id: http://mc-server.googlecode.com/svn/trunk@115 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-26 02:13:40 +00:00
faketruth 2892a844d4 Chunks are generated in a separate thread allowing players to keep on playing and chatting while chunks are generated. This means, however, that cWorld::GetChunk() does not always return a chunk and is something you need to be aware of. I am not entirely sure if all this is completely stable, but I think so :O
Chunks are now generated before the player is able to see them. This is done because after a chunks is done generating, some blocks might still need to be set (parts of trees from neighboring chunk), causing more bandwidth to be used (each changed block needs to be sent to clients again) and (fps) lagging the clients when changing a lot of blocks. Calculating ahead fixes these issues.

Separated the placing of foliage (trees and stuff) when generated chunks into a new function GenerateFoliage()
Cleaned up the VS2010 project, now using some VS2010 specific functions like dependencies on projects (no need for setting library dependencies manually). VS2010 project now compiles way faster in Release by using multi threading.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@103 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-24 23:34:30 +00:00
lapayo94@gmail.com 24efa6f864 Digging leaves with shears now drops leaves
Falling Sand now notifies water around
Implemented Function to get the relative chunk position in the total position (cChunk::PositionToWorldPosition)
Pistons don´t drop water and lava items anymore when stopping water/lava
implemented Getter for lava and water simulator
IsBlockWater and IsBlockLava function in Defines.h




git-svn-id: http://mc-server.googlecode.com/svn/trunk@97 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-12-22 21:36:24 +00:00
faketruth e2f1cf51c7 Prepared some parts of the code for multi world support, I created lots of TODO's
git-svn-id: http://mc-server.googlecode.com/svn/trunk@29 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-31 00:52:20 +00:00
faketruth c7b4b9f819 Compiles for linux
git-svn-id: http://mc-server.googlecode.com/svn/trunk@6 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-21 21:25:29 +00:00
faketruth 386d58b586 MCServer c++ source files
git-svn-id: http://mc-server.googlecode.com/svn/trunk@3 0a769ca7-a7f5-676a-18bf-c427514a06d6
2011-10-03 18:41:19 +00:00