Commit Graph

3470 Commits

Author SHA1 Message Date
kwolekr
f091bbd563 Fix compilation for non-client builds, and fix signed comparison warning 2015-05-08 01:21:34 -04:00
kwolekr
2dba29ebf2 Tests: Add schematic unittests
Improve schematic file-saving interface
Add ability to create temporary test files
2015-05-08 00:55:42 -04:00
est31
33c11415bf Gracefully handle PacketErrors 2015-05-08 06:51:03 +02:00
kwolekr
0e64fc45b9 Fix missing Y component assignment in check_v3f 2015-05-08 00:03:41 -04:00
Kevin Ott
e17c6ba2cd Remove duplicate lua_getfield() in c_converter.cpp
Fixes #2678
2015-05-07 09:57:34 +02:00
kwolekr
b246812455 Schematics: Add indent-with-space option for schematic Lua table serialization 2015-05-07 02:54:35 -04:00
kwolekr
656575b59d NodeResolver: Remove NodeResolveMethod
This simplifies NodeResolver logic and makes some interfaces cleaner.
2015-05-07 02:36:01 -04:00
ShadowNinja
d720fd5644 Fix connection speed unit names 2015-05-06 15:41:37 -04:00
ShadowNinja
3a8e7341ec Fix error messages for type-checking Lua reading functions 2015-05-06 15:33:36 -04:00
ShadowNinja
3f5c2dea4d Improve Redis error messages 2015-05-06 15:28:22 -04:00
kwolekr
2b44e75442 Fix build on Debian broken by b45df9d (missing include, somehow?) 2015-05-05 20:40:18 -04:00
kwolekr
633af58a05 NodeDefManager: Improve const-correctness of interfaces
- Add ability to explicitly reset NodeResolve state (useful for unittesting)
- Remove non-essential NodeResolve methods modifying state from INodeDefManager
- Add const qualifier to NodeDefManager and ContentFeatures serialize
2015-05-05 16:52:06 -04:00
kwolekr
b785577f03 Add core.find_nodes_with_meta() script API 2015-05-05 16:21:59 -04:00
kwolekr
b45df9d6a7 Tests: Add NodeResolver unittests
Minor misc. NodeResolver cleanups
Prefix faux content type constants for testing with t_ to avoid
confusion or name collisions
2015-05-05 12:00:36 -04:00
ShadowNinja
1be2d32fd5 Make Git version detection use VERSION_STRING instead of tags
This fixes the problem where 0.4.12-dev versions were erroneously shown as
0.4.11-dev because the tag was added on a separate branch.  It also fixes a
similar issue when builders didn't fetch new tags when updating.

This also removes the number-of-commits-since-tag field, since it's
incompatible with this.  Said field doesn't seem to be useful anyway if you
have the commit hash.
2015-05-05 17:13:05 +02:00
ShadowNinja
dfd790930c Fix GCC compiler warning 2015-05-04 20:01:10 -04:00
Jay Arndt
2923eafaca Stop NetworkPacket methods from producing bloated packets 2015-05-05 01:47:41 +02:00
est31
4b0f5fcbf5 Cache enable_3d_clouds flag
Small improvement on clouds rendering performance
2015-05-04 22:50:04 +02:00
paramat
9345ba7b6a Clouds: Make cloud area radius settable in .conf 2015-05-04 22:41:13 +02:00
Kevin Ott
5fa4fed097 Add a check for animation when getting an extruded mesh
Fixes issue #2667
2015-05-04 02:11:36 -04:00
obneq
9af7f38e3f Fix pathfinder to produce more useful paths
- Fix unintended negation of condition
- Remove line_of_sight 'optimization'
2015-05-03 22:36:11 -04:00
kwolekr
8f38f8255c Tests: Add ObjDef unittests 2015-05-03 22:19:35 -04:00
kwolekr
5b237b4d94 ObjDefManager: Set replacement object's handle info after calling set()
Make gamedef optional when constructing an ObjDefManager
Add note about object ownership
2015-05-03 22:19:35 -04:00
paramat
9e1e4b6284 RotateAlongYAxis: For facedir case, return if param2 >= 4 2015-05-03 03:43:51 +01:00
SmallJoker
6626a3f72f Fix several MSVC issues numeric.h
-> Round negative numbers correctly CMakeLists.txt
-> Link Json with the static run-time library
2015-05-01 07:34:51 +02:00
kwolekr
37ca3212ee Fix MSVC compatibility
Make sure to include random unittests in android builds, too
Use SWAP() macro
Ensure that negative ranges are tested as well in random unittests
2015-04-29 13:20:01 -04:00
kwolekr
b6475f5448 Tests: Add random unittests 2015-04-29 04:08:04 -04:00
sfan5
4ea5a96fff Revert the upper-case PROJECT_NAME nonsense that was part of #2402 2015-04-27 16:24:49 +02:00
sfan5
558d715bf6 Revert "Only lowercase project name at compile time"
This reverts commit 3be9787e64362b8a5020746220c65abbe31f8097.
2015-04-27 16:24:49 +02:00
kwolekr
415167b228 Noise: Fix PcgRandom::randNormalDist() when range contains negative numbers
This fixes an issue with erroneous float-to-int rounding that resulted in
truncation toward 0, causing a biased distribution.
2015-04-27 04:05:25 -04:00
kwolekr
cd1d625ab2 Replace PRNG assertions with PrngException 2015-04-27 01:24:37 -04:00
est31
27e3a353d8 Remove craftdef serialisation
It isn't needed anymore, sending ICraftDefManager over the network has been obsoleted
by protocol version 7.
2015-04-26 21:30:52 +02:00
est31
4f851faa91 Craftdef refactor
Fix style, refactor assert, use '"' instead of "\"",
replace code duplicating craftGetItemName, rename iterators.
2015-04-26 21:28:40 +02:00
kwolekr
7220ca906d Tests: Modularize unit testing
Split unit tests into separate files under src/unittest/
Give better unittest diagnostics
Clean up some code
2015-04-26 15:08:54 -04:00
Aaron Suen
1fb3d1156c Fix fast leaves with texture_clean_transparent enabled. 2015-04-26 23:39:40 +10:00
Kevin Ott
400c6087b6 Fix player pitch and yaw not being set properly 2015-04-26 23:36:05 +10:00
nerzhul
ab04b7fe94 Remove unused variable Client::m_active_blocks 2015-04-24 15:41:45 +02:00
paramat
ac6efa2539 DecoSchematic: Fix missing trees in rough terrain
Move place_on check to before place_center_x/y/z displacement of p
Reduce displacement of p by place_center_x/y/z flags
to correctly position schematics
2015-04-23 02:44:25 +01:00
est31
ccc09abc2d Protocol 25: wstring -> string for custom access denial reasons
Also fix std::logic_error when server::DenyAccess() is used with only two arguments.
2015-04-22 14:10:39 +02:00
nerzhul
eec01bc2fa Re-apply 972d17baea81ffe6d508b291ef97207a4822e1da...
but not rename the container. Approved-By est31
2015-04-22 11:47:22 +02:00
SmallJoker
17a173f474 Fix crash on startup (Windows) 2015-04-22 13:48:10 +10:00
ShadowNinja
3be9787e64 Only lowercase project name at compile time 2015-04-21 20:51:16 -04:00
kwolekr
e0eec201a1 Revert "m_active_object_messages is used like a queue. Use std::queue instead of std::list. Also rename to m_active_object_messages_queue"
This reverts commit 972d17baea81ffe6d508b291ef97207a4822e1da.
The commit being reverted was unauthorized.  There had been no discussion,
review, or sign-off prior to submittal to upstream.
2015-04-21 18:12:01 -04:00
Loic Blot
972d17baea m_active_object_messages is used like a queue. Use std::queue instead of std::list. Also rename to m_active_object_messages_queue 2015-04-21 23:28:13 +02:00
kwolekr
943c6e523e Noise: Add noise unittests
Fix buffer size calculation for lacunarity < 1.0
Add guard against absurd noise parameters
2015-04-21 13:05:14 -04:00
ShadowNinja
c197e03922 Fix sign-compare compiler warnings in mg_ore.cpp 2015-04-20 22:57:30 -04:00
ShadowNinja
d36067fda5 Fix mod store rating 2015-04-20 22:48:14 -04:00
kwolekr
46a2c1f167 Ore: Add biomes parameter 2015-04-20 20:25:33 -04:00
kwolekr
a443a13a9d Fix build on OS X (Thanks neoascetic) 2015-04-20 01:35:41 -04:00
kwolekr
3d4244cc75 Add 'persistence' alias for Lua noiseparams and validate more vector parameters 2015-04-19 21:42:40 -04:00
kwolekr
687d969c9c Noise: Correct noise objects created with invalid dimensions 2015-04-19 21:39:10 -04:00
kwolekr
386d695330 Porting: Refactor initalizePaths()
Add support for Solaris and HP-UX
Search additional potential procfs locations for current executable
2015-04-19 16:52:58 -04:00
est31
f1a41e4f77 Disable connection timeout for singleplayer and server tabs
In worlds with many mods we can easily reach timeout, waiting for the server to start.
2015-04-19 19:58:21 +02:00
paramat
a615da6b12 Biome API: Add biome-specific river water 2015-04-19 06:09:57 +01:00
obneq
0c792db05c fix infinite spawners 2015-04-18 20:14:34 +02:00
kwolekr
e0889c6c03 Schematics: Fix core.schematic_create() 2015-04-17 18:39:37 -04:00
SmallJoker
5f0b36b8b7 10s timeout when connecting to server 2015-04-17 10:40:48 +02:00
est31
d4d561fbcd Fix build since: "Remove referenced schematics from Decorations on clear"
Fixes build, which has been broken for all platforms (except BSD?) since
grandparent 406d9ba87b9f6e57b86c6282bf157e3341aa195c.
Thanks to @SmallJoker for pointing out a solution.
2015-04-17 10:30:59 +02:00
kwolekr
3576f4fab7 Switch to check_v3s16 in l_mapgen.cpp and l_vmanip.cpp for type safety 2015-04-17 01:03:13 -04:00
kwolekr
406d9ba87b Schematics: Remove referenced schematics from Decorations on clear 2015-04-17 00:53:05 -04:00
est31
f0a1379e5a Refactor around translatePassword
Change types for passed password from wstring to string, which removes converting
back and forth in most cases. Move the narrow_to_wide conversion, where its neccessary,
closer to irrlicht. Remove trailing spaces in guiPasswordChange.cpp. Make parameters for
translatePassword passed as const reference.
2015-04-17 06:10:30 +02:00
kwolekr
821d0025da Biomes: Remove referenced biomes from Decorations on clear 2015-04-16 23:38:05 -04:00
est31
4abb96fb54 Fix path detection with --std= parameter
Fixes path detection when compilers have been told to follow a standard, e.g. with -DCMAKE_CXX_FLAGS=--std=c++98.
To see the passed defines, try this with and without the --std parameter:
gcc -E -dM --std=c99 - < /dev/null | grep linux
2015-04-17 05:12:06 +02:00
est31
b318c4712c Fix build for < C++11 since last commit
Build broke since last commit 479f38973e13680d6a39d9c2a7f29fd330b67d41 for compilers not supporting C++11.
Pre C++11, the constructor of std::ifstream only allows C like strings.
2015-04-17 02:34:02 +02:00
kwolekr
479f38973e Schematics: Refactor NodeResolver and add NodeResolveMethod
NodeResolver name lists now belong to the NodeResolver object instead of
the associated NodeDefManager.  In addition to minimizing unnecessary
abstraction and overhead, this move permits NodeResolvers to look up nodes
that they had previously set pending for resolution.  So far, this
functionality has been used in the case of schematics for
serialization/deserialization.
2015-04-16 16:27:05 -04:00
Loic Blot
0c634a9719 Use std::vector instead of std::set for Environment::getObjectsInsideRadius
We are only iterating sequentially, we don't need a set here
Also use a vector reference instead of a copy
2015-04-16 18:37:29 +02:00
paramat
d02300a749 Mgv5: Fix above/below ground spawn when water level is altered 2015-04-16 06:36:57 +01:00
paramat
ad789be45b Mgv5/v7: Add check for water for deciding biome node stability 2015-04-16 04:01:58 +01:00
paramat
a09e4427d6 Defaultsettings: Add dungeons and jungles flags. Update conf.example 2015-04-14 02:04:57 +01:00
kwolekr
b2a89c04b2 Schematics: Reorganize (de)serialization and add Lua serialization API 2015-04-13 03:10:52 -04:00
paramat
a5f942c3c0 Mgv6: Fix taiga, allow pine tree spawning on snowblocks 2015-04-12 05:52:41 +01:00
paramat
75cbd80e5b Mgv6: Add optional snow biomes 2015-04-12 04:27:26 +01:00
Ner'zhul
ce8a9ed94b Fix a rare crash case un SendPlayerHP
If the player is disconnected while Lua API is doing a l_punch call, for example, the playersao is NULL and the server crash. Fix it.
2015-04-11 10:07:23 +02:00
est31
0a413265cb Document for api functions that rely on current_modname, that it doesn't work when not loading mods 2015-04-08 23:05:26 +02:00
kwolekr
c758fd73ff Link against shlwapi.lib and unify linker input sources for Windows 2015-04-08 12:56:53 -04:00
Dmitry Marakasov
d2fc98e4a6 Fix freetype detection
Don't reinvent freetype detection, use working one from cmake.
2015-04-08 00:37:27 -04:00
kwolekr
0df736173e Schematics: Prepend mod path to relative schematic filepaths 2015-04-08 00:28:56 -04:00
Loic Blot
5132908f4b TOCLIENT_ACTIVE_OBJECT_MESSAGES: channel must be 1 for unreliable message 2015-04-07 14:28:36 +02:00
ShadowNinja
3c6e112c28 Fix missing SQLite3 statement pointer initialization
This fixes a segfault when the database is shut down
before it finishes connecting and setting up.
2015-04-07 00:31:41 -04:00
paramat
392ac41c99 Cavegen: Remove now unnecessary checks for water, lava, ice
Remove large cave checks for air
Mgv5/mgv7:Add is_ground_content checks to 3d noise tunnels
More large caves
Shorten lines
2015-04-07 04:43:24 +01:00
est31
f81759792e Make comments consistent with TOSERVER_INIT -> TOSERVER_INIT_LEGACY rename 2015-04-07 00:15:15 +02:00
Craig Robbins
43aab618e5 Change screenshot filename to one likely to work on all modern filesystems
Fixes #2603
2015-04-06 11:07:51 +10:00
Loic Blot
8804c47e59 TOCLIENT_ACTIVE_OBJECT_REMOVE_ADD can be unreliable, catch PacketError exception.
Also set the packet size at creation not when pushing rawString, no functional change
2015-04-05 11:39:38 +02:00
Loic Blot
ed3ebd633d craftdef.cpp: Return 0 after assert to make Clang happy 2015-04-05 11:16:12 +02:00
Loic Blot
4235f671c1 Fix uninitialized variabled in ConnectionEvent 2015-04-05 11:13:30 +02:00
est31
334e70455b Crafting speedup
This greatly increases crafting performance, especially in worlds with many mods.

Approved by @kwolekr.

Introduces a hash-type-layered fall-through mechanism, where every layer specifies one hash algorithm,
and the "deeper the fall", the more collisions to expect for the algorithm. One Craft definition
only resides at one layer, which improves speed for lower layers (and a complete fail), due to most
craft definitions residing at high layers.

Due to the fall-through design, the undocumented behaviour that later craft recipes
override older ones had to be weaked up a bit, but craft recipes with the same hash and layer
will still override.
2015-04-05 09:25:46 +02:00
est31
1cb404522f Remove errorstream logging on password change
This seems to be a debug message which has been forgotten to be removed.
2015-04-03 14:01:41 +02:00
Loic Blot
470de10de3 Fix players spawned at (0,0,0) in some rare cases instead of static_spawnpoint, if set
Approved by: @kwoelkr
2015-04-03 09:44:36 +02:00
Loic Blot
aa340fd857 Create PacketError exception and use it with ACTIVEOBJECT_REMOVE_ADD handler which can be unreliable 2015-04-03 08:53:31 +02:00
Aaron Suen
92f20696eb Fix crash caused by null texture in GUI formspec/HUD. 2015-04-02 23:56:46 +10:00
SmallJoker
58d62ad045 Fix MSVC error caused by ed10005 2015-04-02 22:56:36 +10:00
paramat
74eb14cc80 Treegen: Add pine tree. Force place trunks
Speed-optimise leaves blits
Use MMVManip for make_jungletree
Use correct code style
2015-04-01 22:54:49 +01:00
Craig Robbins
9527984dbc Move globals from main.cpp to more sane locations
Move debug streams to log.cpp|h

Move GUI-related globals to clientlauncher

Move g_settings and g_settings_path to settings.cpp|h

Move g_menuclouds to clouds.cpp|h

Move g_profiler to profiler.cpp|h
2015-04-01 23:04:25 +10:00
Loic Blot
113bdd3ec0 NetworkPacket: reading outside packet is now clearer.
Use a common function to check the reading offset
2015-04-01 14:47:46 +02:00
kwolekr
ddf96c7a17 Fix some minor details from 6d61375 2015-04-01 00:19:10 -04:00
Aaron Suen
6d61375cc7 Clean scaling pre-filter for formspec/HUD. 2015-04-01 00:01:05 -04:00
kwolekr
b4247dff2e Fix usage of destroyed mutex
Also fix a memory leak
Fix overloaded virtual warning in Player::move()
Remove some trailing whitespace
2015-03-31 23:50:38 -04:00
kwolekr
699e066bea Fix set_bits 2015-03-31 23:30:44 -04:00
kwolekr
337e79c656 ObjDefManager, Mapgen SAPI: Huge refactoring
- General code cleanup
 - Unified object creation and loading
 - Specifying objects in APIs is now orthogonal (i.e. anything can take an ID,
   name string, or the raw table definition (and automatically registers if present
2015-03-31 23:27:58 -04:00
Craig Robbins
d1d5618bb8 Fix use of unitialized variable in gettext.cpp
#2583
2015-03-31 21:26:34 +10:00