ShadowNinja
e4bff8be94
Clean up threading
...
* Rename everything.
* Strip J prefix.
* Change UpperCamelCase functions to lowerCamelCase.
* Remove global (!) semaphore count mutex on OSX.
* Remove semaphore count getter (unused, unsafe, depended on internal
API functions on Windows, and used a hack on OSX).
* Add `Atomic<type>`.
* Make `Thread` handle thread names.
* Add support for C++11 multi-threading.
* Combine pthread and win32 sources.
* Remove `ThreadStarted` (unused, unneeded).
* Move some includes from the headers to the sources.
* Move all of `Event` into its header (allows inlining with no new includes).
* Make `Event` use `Semaphore` (except on Windows).
* Move some porting functions into `Thread`.
* Integrate logging with `Thread`.
* Add threading test.
2015-08-23 22:04:06 -04:00
nerzhul
ca63f7f10d
Precalculate mapblock relative size. This permit to remove many s16 calculs on runtime
2015-07-29 11:45:44 +02:00
kwolekr
8eb272cea3
Misc. minor fixes
2015-07-10 15:58:57 -04:00
est31
dd91b3d6fb
Generic CAO cleanups and renames for clarification
...
* Use enum for GENERIC_CMD_*
* Rename m_attachements to attachement_parent_ids (public member and clearer name)
* Rename GENERIC_CMD_SET_ATTACHMENT to GENERIC_CMD_ATTACH_TO
* USHRT_MAX + 1 buffer sizes to prevent overflows as @kahrl suggested
* Remove unneccessary m_id from GenericCAO (shadowing protected superclass member for no reason) as @kahrl suggested
2015-06-20 03:37:30 +02:00
est31
06a2eee692
Mapblock: nodecount refactor
...
Spare direct multoplication, use constant MapBlock::nodecount instead of
local nodecount variables.
Also use strides at one place instead of multiplications.
2015-05-31 06:24:41 +02:00
kwolekr
46684beec1
Record MapBlock modification reasons as flags instead of strings
...
This improves performance of MapBlock::raiseModified by a factor of 6.
Also, clean up mapblock.h a bit and inline small functions.
2015-05-17 22:14:26 -04:00
Craig Robbins
ced6d20295
For usages of assert() that are meant to persist in Release builds (when NDEBUG is defined), replace those usages with persistent alternatives
2015-03-07 22:41:47 +10:00
Craig Robbins
caf8d2a9d1
Increase MapBlock::actuallyUpdateDayNightDiff() performance by 2-8x. ok @celeron55
...
Before patch, function consumes up to ~8% of the main server loop. After, ~0% (below level of 2 places of significance)
2015-02-10 16:23:37 +01:00
Loic Blot
80a7408e4d
Fix a crash (assert) when client set serial version < 24 in INIT
...
When SER_FMT_VER_LOWEST is set to zero, then the test is stupid in INIT because all client works. In mapblock we check if client's serialization version is < 24, but if client sent serialization version < 24 (15 for example) the server set it and tried to send nodes, then BOOM
To resolve the problem:
* Create a different CLIENT_MIN_VERSION to handle this problem
* Remove the exception
* Use an assert in case of bad developer code
2015-01-27 16:55:25 +01:00
Craig Robbins
ca217d0416
Revert "Fix a crash (assert) when client set serial version < 24 in INIT command SER_FMT_VER_LOWEST is set to zero, then the test is stupid in INIT because all client works. In mapblock we check if client's serialization version is < 24, but if client sent serialization version < 24 (15 for example) the server set it and tried to send nodes, then BOOM"
...
nerzhul is (may?) be working on a new solution. For the moment this is reverted because old worlds cannot be loaded (see discussion on github for the commit).
This reverts commit 800d19270250bb13cc6b2d330199815bf8e96446.
2015-01-27 00:39:33 +10:00
(@U-Exp)
800d192702
Fix a crash (assert) when client set serial version < 24 in INIT command SER_FMT_VER_LOWEST is set to zero, then the test is stupid in INIT because all client works. In mapblock we check if client's serialization version is < 24, but if client sent serialization version < 24 (15 for example) the server set it and tried to send nodes, then BOOM
2015-01-24 22:41:02 +10:00
kwolekr
38bd9e93a2
Fix all warnings and remove -Wno-unused-but-set cflag
2015-01-18 23:29:19 -05:00
Craig Robbins
5b8855e83c
Remove most exceptions from getNode() (and variants)
2014-11-14 18:05:34 +10:00
sapier
5d06bdf8ac
Speedup getBlockNodeIdMapping by up to factor 4 by using a fixed size mapping array
2014-06-23 00:13:41 +02:00
proller
0279f32db7
Remove liquid_finite and weather
2014-04-18 21:56:48 +04:00
sapier
04e9a9d541
Cleanup jthread and fix win32 build
2013-12-01 16:25:46 +01:00
kwolekr
e396fb2984
Actually fix weather
...
The real problem was that MapBlocks were not activated before getting sent to the client
2013-11-17 01:59:04 -05:00
kwolekr
9bccd75e34
Weather: Clean up getHeat/getHumidity somewhat
2013-09-16 23:33:53 -04:00
Kahrl
4e1f50035e
Omnicleanup: header cleanup, add ModApiUtil shared between game and mainmenu
2013-08-14 21:03:33 +02:00
proller
06cdce1e12
Weather backward compatibility
2013-08-02 00:51:36 +04:00
PilzAdam
ff7c380d0e
Fix warnings in mapblock.cpp
2013-07-28 23:34:58 +02:00
proller
3aedfac968
Weather support
2013-07-27 23:21:48 +04:00
Ilya Zhuravlev
6a1670dbc3
Migrate to STL containers/algorithms.
2013-03-11 19:08:39 -04:00
Sfan5
6d0ea26c2d
Update Copyright Years
2013-02-24 20:15:24 +01:00
PilzAdam
497ff1ecd6
Change Minetest-c55 to Minetest
2013-02-24 18:49:03 +01:00
Perttu Ahola
eca1c96412
Move util/serialize.h out from staticobject.h for smaller header dependencies
2012-11-26 11:18:34 +02:00
Perttu Ahola
ee2d9d973a
Reorganize ClientMap rendering code for a bit more performance
...
- Don't select blocks for drawing in every frame
- Sort meshbuffers by material before drawing
2012-09-04 22:41:03 +03:00
Perttu Ahola
5c31445117
Improve node timer format (map format version 25) and update mapformat.txt
2012-07-24 15:03:46 +03:00
Perttu Ahola
fd845f27f5
Fix map deserialization and remove old serialization code
2012-07-23 08:18:39 +03:00
darkrose
ea62ee4b61
Increase node id/param0 to 16 bits, leaving param2 always with 8 bits
2012-07-23 08:18:39 +03:00
darkrose
cd6becd442
Implement node timers
2012-07-23 08:18:37 +03:00
Perttu Ahola
d0ea6f9920
Properly and efficiently use split utility headers
2012-06-17 02:40:36 +03:00
Perttu Ahola
e74668ef7f
Update and fix doc/mapformat.txt; make current format more solid in mapblock.cpp
2012-06-08 14:57:02 +03:00
Perttu Ahola
037b259197
Switch the license to be LGPLv2/later, with small parts still remaining as GPLv2/later, by agreement of major contributors
2012-06-05 18:54:07 +03:00
Perttu Ahola
f48882213e
Add ignore_world_load_errors configuration option and provide better error messages
2012-06-04 22:34:40 +03:00
Kahrl
704782c95b
WIP node metadata, node timers
2012-06-03 22:31:00 +03:00
Perttu Ahola
02c035c548
Reduce EnvRef:set_node() time tenfold by postponing the dayNightDiff update until it is actually needed
2012-03-29 00:28:48 +03:00
Kahrl
807a0d313b
MapBlockMesh, mesh animation system, urgent mesh updates, athmospheric light, removed footprints
2012-03-15 21:45:44 +02:00
Kahrl
c241902b40
Cleanup (some stuff went wrong when reverting 4-byte mapnodes); fix legacy_wallmounted
2012-01-22 17:31:20 +02:00
Kahrl
157a4cf18c
Node placement / mineral / serialization / iron freq / node_dig callback
...
- Node placement code moved to Lua
- Mineral system removed (added default:stone_with_coal and default:stone_with_iron).
- MapBlock and MapNode serialization updated.
- Mapgen: Frequency of iron increased.
- node_dig callback and related changes.
2012-01-22 17:24:50 +02:00
Kahrl
6a76c226e1
The huge item definition and item namespace unification patch (itemdef), see http://c55.me/minetest/wiki/doku.php?id=changes:itemdef
2012-01-12 06:10:39 +01:00
Perttu Ahola
842eb5da28
Replace old active block random node modifying things with actual ActiveBlockModifiers
2011-11-29 19:13:56 +02:00
Perttu Ahola
1b765b9740
Add reason parameter to setModified and print it out to verbosestream when saving block
2011-11-29 19:13:49 +02:00
Perttu Ahola
df8346ef4d
Do not expose CONTENT_* stuff in content_mapnode.h and use a name converter wrapper in old code
2011-11-29 19:13:47 +02:00
Perttu Ahola
c0f6395cf0
Node definition names
2011-11-29 19:13:46 +02:00
Perttu Ahola
3318d0b4b8
Remove content dependencies from mapblock.cpp
2011-11-29 19:13:46 +02:00
Perttu Ahola
c6fd2986d4
GameDef compiles
2011-11-29 19:13:42 +02:00
Perttu Ahola
abceeee92f
Create framework for getting rid of global definitions of node/tool/item/whatever types
2011-11-29 19:13:41 +02:00
Perttu Ahola
3b77a63d5d
Allocate MapBlock::m_node_metadata on heap to allow less header bloat
2011-11-29 19:13:41 +02:00
Perttu Ahola
64996422c0
Move ContentFeatures to mapnode_contentfeatures.{h,cpp} and clean stuff
2011-11-29 19:13:40 +02:00
Perttu Ahola
43a28f04fa
mobv2
2011-10-15 02:28:57 +03:00
Perttu Ahola
b60b58b627
Saner block modification flag operation for not saving everything always
2011-10-12 10:53:37 +03:00
Perttu Ahola
416499f978
fix server build
2011-07-25 23:31:02 +03:00
Perttu Ahola
29d905f98a
Added a mapblock analyzing function for debugging use and fixed remaining mapgen bugs
2011-07-24 12:09:33 +03:00
Perttu Ahola
112b85d0fb
merged fix to decapitated trees; other bugs now exists
2011-07-24 11:39:13 +03:00
Perttu Ahola
90d793f8f3
extended content-type range
2011-07-23 16:55:26 +03:00
Perttu Ahola
52ad5944c0
Attempt to fix the big bug. Now server either stops sending map or mapgen starts generating CONTENT_IGNORE.
2011-07-21 17:00:08 +03:00
Perttu Ahola
8f742855a1
initial steps in doing content type extension
2011-07-02 01:07:54 +03:00
Perttu Ahola
3fccc67eb7
fixed block unloading from memory (a better fix coming next)
2011-06-26 21:53:11 +03:00
Perttu Ahola
2915bd5518
more reorganizing of map code
2011-06-26 01:31:43 +03:00
Perttu Ahola
7538b4c620
New map generator added (and SQLite, messed up the commits at that time...) (import from temporary git repo)
2011-06-25 04:25:14 +03:00
Perttu Ahola
5ac900ddd9
Changed MapBlockObjects to be never written anymore. Incremented version number.
2011-06-18 15:16:35 +03:00
Perttu Ahola
682c9d8e7d
Moved stuff from mapblock{h,cpp} to mapblock_mesh.{h,cpp} and content_mapblock.{h,cpp}
2011-06-17 23:20:31 +03:00
Perttu Ahola
dc5319b6c9
Moved some mapnode content stuff from mapnode.{h,cpp} and digging property stuff from material.cpp to content_mapnode.{h,cpp}
2011-06-17 22:20:15 +03:00
Perttu Ahola
a649d43fe7
Messed around with genmap.py. Now supports format version 17.
2011-06-05 00:10:06 +03:00
Perttu Ahola
75f3e68451
Merged CiaranG's fence graphic updates (ugh, well, it worked, i guess, kind of.) This commit should also get rid of multiple heads on the server.
2011-06-02 02:37:49 +03:00
Ciaran Gultnieks
06427e355a
Slightly better texture coordinates for fences
2011-05-31 10:12:51 +01:00
Perttu Ahola
223b379348
Reduced the CPU usage of the sent block selector algorithm
2011-05-31 00:15:43 +03:00
Ciaran Gultnieks
10cf6c3f6d
Ability to set texture coordinates on a generated cuboid (for fences)
...
Note: can't test this properly yet - may be fixes to follow
--HG--
extra : rebase_source : e2d41621018f886d340c7847b29240042d4412ac
2011-05-30 18:38:46 +01:00
Ciaran Gultnieks
c5e583e059
Added fences (but still needs an icon or something to display in inventory)
2011-05-24 17:52:04 +01:00
Perttu Ahola
0af5311538
Preliminary "active block" stuff + set up test code to grow grass.
2011-05-22 17:00:09 +03:00
Ciaran Gultnieks
2e1a69c3b1
Added glass, with rendering and furnace support.
2011-05-09 19:22:07 +01:00
Perttu Ahola
59c4a342a9
Fixed a temporary solution of server shutting down to an assert(0) when a too large block metadata is sent to an old client
2011-05-03 17:33:51 +03:00
Perttu Ahola
6edb8c567c
Tuned polygon generation to sort the triangles for nicer gradients
2011-04-24 21:54:04 +03:00
Perttu Ahola
f2349ec5df
...Now the tesselation should actually work
2011-04-24 21:18:25 +03:00
Perttu Ahola
2704bdc68e
Optimized smooth lighting calculation code
2011-04-24 21:15:50 +03:00
Perttu Ahola
ba88685fab
cleaned the smooth lighting code a bit
2011-04-24 14:19:35 +03:00
Perttu Ahola
79799840a2
disable tiling of textures only if smooth lighting is used
2011-04-24 12:39:33 +03:00
Perttu Ahola
b21c7de3ed
Added a setting for disabling smooth lighting. Updated changelog.
2011-04-24 12:31:19 +03:00
Perttu Ahola
8c1f7a0dd2
Added a simple software "ambient occlusion" effect, like minecraft's "smooth lighting"
2011-04-24 11:41:33 +03:00
Perttu Ahola
bda4681242
fixed flowing water lighting when it is below a solid block
2011-04-23 16:01:32 +03:00
Perttu Ahola
b36e5c0508
Removed IrrlichtWrapper
2011-04-22 09:54:05 +03:00
Perttu Ahola
c638442e78
Some work-in-progress in hp and mobs and a frightening amount of random fixes.
2011-04-21 19:35:17 +03:00
Perttu Ahola
50a8087684
support for format 0 and 1 maps
2011-04-11 16:58:49 +03:00
Perttu Ahola
5a4d8ffad3
implemented rats in new system to verify that it works
2011-04-10 15:16:27 +03:00
Perttu Ahola
389fe31ace
changed node metadata format to better accomodate future needs and problems
2011-04-05 00:24:47 +03:00
Perttu Ahola
a9f89fb3fb
now the server builds
2011-04-04 05:25:55 +03:00
Perttu Ahola
fa736e138c
fully implemented the sign with the new framework
2011-04-04 05:12:33 +03:00
Perttu Ahola
2f466726e6
Made a proper queued thread to client for handling some block mesh updates. Also made client mutex-free to allow easier adding of new stuff.
2011-04-04 02:05:12 +03:00
Perttu Ahola
e0f7bd4d57
Modified block mesh generation to have clearer input and output. Instead of being a messy object oriented cludge, it now is a messy cludge with separate parameters.
2011-04-03 19:50:54 +03:00
Perttu Ahola
01c2b003e1
commit before some more radical changes
2011-04-03 16:21:06 +03:00
Perttu Ahola
ee89e29ae1
Revert mapgen to best working version (2)
2011-04-03 12:14:23 +03:00
Perttu Ahola
bc66bb2d40
Mapgen is better now. Not a lot, but a bit!
2011-04-02 20:55:22 +03:00
Perttu Ahola
c8be58a65c
A third try on terrain generation. No trees yet.
2011-02-28 02:01:40 +02:00
Perttu Ahola
c57637b4c3
Temporary commit; lots of test code and stuff
2011-02-21 00:45:14 +02:00
Perttu Ahola
4c2b9ed516
random code cleaning, shouldn't affect anything
2011-02-18 22:25:25 +02:00
Perttu Ahola
d065bae323
Ctrl+C handling on POSIX, some commands for server and other tweaking
2011-02-15 16:11:24 +02:00
Perttu Ahola
7701753131
removed useless SMaterial parameter from mapblock
2011-02-14 16:12:38 +02:00
Perttu Ahola
0386279b6f
changed sky color and made new style leaves a bit more bright
2011-02-13 14:21:31 +02:00
Perttu Ahola
21372749f5
now it works nicely
2011-02-11 20:37:54 +02:00