| Commit message (Collapse) | Author | Age |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Improved getPointedThing()
The new algorithm checks every node exactly once.
Now the point and normal vector of the collision is also returned in the
PointedThing (currently they are not used outside of the function).
Now the CNodeDefManager keeps the union of all possible nodeboxes, so
the raycast won't miss any nodes. Also if there are only small
nodeboxes, getPointedThing() is exceptionally fast.
Also adds unit test for VoxelLineIterator.
* Cleanup, code move
This commit moves getPointedThing() and
Client::getSelectedActiveObject() to ClientEnvironment.
The map nodes now can decide which neighbors they are connecting to
(MapNode::getNeighbors()).
|
| |
|
| |
|
|
|
| |
Overlooked in #4873
|
| |
|
|
|
|
|
|
|
|
| |
"[sheet:WxH:X,Y" assumes the base image is a tilesheet with W*H tiles
on it and crops to the tile at position X,Y. Basically it works
like "[verticalframe" but in 2D.
For testing, I combined the four default_chest images into one.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Breath is now handled server side. Changing this behaviour required some modifications to core:
* Ignore TOSERVER_BREATH package, marking it as obsolete
* Clients doesn't send the breath to server anymore
* Use PlayerSAO pointer instead of peer_id in Server::SendPlayerBreath to prevent a useless lookup (little perf gain)
* drop a useless static_cast in emergePlayer
|
|
|
| |
core.auth_table is not supposed to be accessed directly.
|
| |
|
|
|
|
|
| |
(instead of the last incoming sequence number...)
Fixes #4848
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remake the light_decode_table.
The table starts out without pre-filled in values since those
are always discarded by the code apparently. We calculate a
pseudo curve with gamma power function, and then apply a new
adjustment table.
The adjustment table is setup to make the default gamma of 2.2
look decent: not too dark at light level 3 or so, but too dark
at 1 and below to be playable. The curve is much smoother than
before and looks reasonable at the whole range, offering a
pleasant decay of light levels away from lights.
The `display_gamma` setting now actually does something logical:
the game is darker at values below 2.2, and brighter at values
above 2.2. At 3.0, the game is very bright, but still has a good
light scale. At 1.1 or so, the bottom 5 light levels are virtually
black, but you can still see enough detail at light levels 7-8,
so the range and spread is adequate.
I must add that my monitor is somewhat dark to begin with, since
I have a `hc` screen that doesn't dynamic range colors or try to
pull up `black` pixels for me (it is tuned for accurate color and
light levels), so this should look even better on more dynamic
display tunings.
|
|
|
| |
Fixes a compiler warning on MSVC
|
| |
|
|
|
|
|
|
|
| |
* Calculate maximum interact distance from wielded tool
* New "interacted_while_dead" cheat_type for the Lua API
* Disallow dropping items while dead
* Move player to spawn before resurrecting them
|
|
|
| |
Gradle wrapper permit to use multiple gradle versions across OS versions
|
| |
|
| |
|
|
|
|
| |
Instead of redefining them everywhere.
|
|
|
|
| |
Increase active_block_range default to a 3 mapblock radius.
|
|
|
|
|
|
| |
Pull if GENERATE_NORMALMAPS == 1 into the template to avoid evaluating
it for each fragment.
Remove if (fogDistance != 0.0).
|
|
|
|
|
|
|
| |
Currently, lua does a regular exit() after a lua panic, which can make
a problem hard to debug. Invoking FATAL_ERROR() instead will print
some useful information, and abort() minetest, so that a debugger can
be used to analyze the situation.
|
| |
|
| |
|
| |
|
|
|
|
| |
Currently translated at 59.2% (544 of 918 strings)
|
|
|
|
| |
Currently translated at 99.5% (914 of 918 strings)
|
|
|
|
| |
Currently translated at 94.8% (871 of 918 strings)
|
|
|
|
| |
Currently translated at 84.5% (776 of 918 strings)
|
|
|
|
| |
Currently translated at 85.2% (783 of 918 strings)
|
|
|
|
| |
Currently translated at 100.0% (918 of 918 strings)
|
| |
|
| |
|
|
|
|
|
| |
If the object pos is over limit, 'add entity' will not add an entity,
causing 'obj' to be nil.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to resolve a path with RemoveRelativePathComponents that can't
be resolved without leaving leading parent components (e.g. "../worlds/foo"
or "bar/../../worlds/foo") will fail. To work around this, we leave
the relative components and simply remove the trailing components one
at a time, and bail out when we find a parent component. This will
still fail for paths like "worlds/foo/noexist/../auth.txt" (the path
before the last parent component must not exist), but this is fine
since you won't be able to open a file with a path like that anyways
(the O.S. will determine that the path doesn't exist.
Try `cat /a/../etc/passwd`).
|
|
|
|
|
| |
This used to return "/foo" for "../foo" when it should return the enpty
string (i.e., error removing all relative components).
|
| |
|