aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Light calculation: New bulk node lighting codeDániel Juhász2017-03-11
| | | | | | | | | | | This commit introduces a new bulk node lighting algorithm to minimize lighting bugs during l-system tree generation, schematic placement and non-mapgen-object lua voxelmanip light calculation. If the block above the changed area is not loaded, it gets loaded to avoid lighting bugs. Light is updated as soon as write_to_map is called on a voxel manipulator, therefore update_map does nothing.
* GUI: Convert loading screen's progress bar to image (#5362)kilbith2017-03-10
|
* Dungeons: Use 'block' instead of 'brick' for nodebox stairsparamat2017-03-05
| | | | | Affects only sandstone dungeons. Nodebox stairs made from 'sandstone_block' look better because every step is undivided.
* Font: attempt fallback font, abort if no fonts found.Auke Kok2017-03-05
| | | | | | | | | | | | If you happen to have a font_path setting that is incorrect, minetest will just attempt to start the gui without a valid font which leads to a segfault later on. We can attempt to load the fallback font path fairly easy, but if that fails we should give up with a proper error message and not a weird segfault later. This forces an abort() if the fallback fails as well, and prints a useful error message to the console.
* FormSpec: Add position and anchor elements (#5284)adelcoding12017-03-04
|
* Dungeongen: Add and improve parametersparamat2017-02-26
| | | | | | | | | | | | | | | | | | Add: Bool for 'only_in_ground'. Min and max corridor length. Min and max room size with X, Y, Z components. Min and max large room size with X, Y, Z components. 'only_in_ground = false' allows core mapgens to create structures in air and water using dungeongen. Corridor length parameters replace a fixed random range. Room size parameters replace the former system where one parameter 'roomsize' was added to fixed random ranges. All parameters are set for no change to current dungeon behaviour. Remove some now-redundant and long-unused code.
* Fix wrong meta key in item meta on ItemStack constructionrubenwardy2017-02-22
|
* Fixes for colorwallmounted and colorfacedir nodesDániel Juhász2017-02-18
| | | | | | Correct node placement prediction for attached colorwallmounted nodes. Correct placement direction for colorfacedir and colorwallmounted nodes. Correct detatch mechanism for attached colorwallmounted nodes.
* Voxelmanip: Do not emerge or blit to blocks over map gen limitparamat2017-02-18
| | | | | | | | | | | | | | | Placing a structure that extends into mapblocks that extend past map_gen_limit causes a crash. For example a sapling growing at the world edge which adds leaves beyond the edge, or placing a structure using the lua voxelmanip, or placing a schematic or l-system tree. Do not run the 'load_if_inexistent' block of code if the mapblock is over limit, this also marks the mapblock with the flag VMANIP_BLOCK_DATA_INEXIST which later prevents blitting back those mapblocks. This fix therefore uses existing functionality by having the same effect as the 'load_if_inexistent' bool being false.
* Use the `ARRLEN` macro in more places and remove an unused macro. (#5260)red-0012017-02-18
|
* Revert part of eb49009d023e6e3b5d59a97b8fb5fed5eee83296 (#5230)Auke Kok2017-02-16
| | | | | | | | | | | | | | | | This reverts the removal of Droid Sans as fallback font. The license for this font used to be GPL2. I've updated the font files to Liberation 2.00, which are SIL, and do not require us to ship source code. I've attempted to fix all the attribution and license strings, and used the strings as provided by redhat for attribution to make sure they're correct. Last, I've removed a bunch of executable bits on files that do not need them. Fixes #5231
* Cavegen: Place correct biome surface in tunnel entrancesparamat2017-02-16
| | | | | | | | | | Previously in tunnel entrance floors only a single biome 'top' node was placed and 'filler' nodes were missing. Place 'top' and 'filler' nodes in tunnel entrance floors with depths defined by the biome. In tunnel entrances under rivers 'riverbed' nodes are placed to the biome-defined depth.
* Objectpos over limit: Avoid crash caused by sector over limitparamat2017-02-16
| | | | | | | | | | Reduce the object limit by mapblock size, to avoid objects being added just inside the map generation limit but in a block and sector that extend beyond the map generation limit. Change notification of 'objectpos over limit' from red in-chat ERROR to in-terminal only WARNING, since this will happen often using mob mods near the world's edge.
* Fix a small regression caused by e2ad76f.red-0012017-02-16
|
* Fix >5 year old PlayerSAO deletion bugsfan52017-02-15
| | | | | | | | | force_delete=true is usually set at shutdown in order to also remove PlayerSAOs, however when too many objects per block are detected force_delete is also set to true. This was intended only for the current loop iteration but obviously persisted to the next iterations thereby deleting all other remaining SAOs.
* FreeType: address font license issues (#5230)Auke Kok2017-02-14
| | | | | | | | | | | It appears we were shipping font files without license text, and I had my doubts about the bitmap fonts being usable directly. This replaces existing TTF fonts with Apache-2.0 licensed fonts from chome core (Cousine, Arimo, Tinos). Include the full license file for all three fonts. The Lucida Sans font bitmap is removed entirely for non-freetype builds. There is therefore only mono fonts for non-freetype builds.
* Lighting: Update lighting at block loadingDániel Juhász2017-02-13
| | | | | This commit updates mapblocks' light if necessary when they are loaded. This removes ghost lighting.
* Footsteps: Fix offset footstep and shallow water sound bugsparamat2017-02-12
| | | | | | | | | | | | | | | Fix footstep sounds coming from nodes to either side when walking on a 1 node wide row of nodebox slabs such as default:snow. Fix sand footsteps when swimming in 1 node deep water. Use a new function 'getFootstepNodePos()' instead of 'getStandingNodePos()' to avoid using a horizontally-offset 'sneak node' for sounds. Sound is selected from the node BS * 0.05 below the player's feet, so that 1/16th slabs will play the slab sound but 1/32nd slabs will not. If the player is not 'touching ground' the node detection position is changed to BS * 0.5 below to preserve footstep sounds when landing after a jump or fall.
* Plantlike: Fix visual_scale being applied squaredparamat2017-02-10
| | | | | | | | | | | | | | | | | | This re-applies 2 commits that were reverted. Visual_scale was applied twice to plantlike by accident sometime between 2011 and 2013, squaring the requested scale value. Visual_scale is correctly applied once in it's other uses in signlike and torchlike. Two lines of code are removed, they also had no effect for the vast majority of nodes with the default visual_scale of 1.0. The texture continues to have it's base at ground level. Send sqrt(visual_scale) to old clients. Keep compatibility with protocol < 30 clients now that visual_scale is no longer applied twice to plantlike drawtype and mods are being updated to a new value.
* Revert "Plantlike: Fix visual_scale being applied squared (#5115)"Craig Robbins2017-02-10
| | | | This reverts commit 953cbb3b15997a0e7c7c32af2365cb5046a9e476.
* Revert "Plantlike visual scale: Send sqrt(visual_scale) to old clients"Craig Robbins2017-02-10
| | | | This reverts commit cdc538e0a242167cd7031d40670d2d4464b87f2c.
* Change default nodetimer_interval to 0.2s. (#5193)Auke Kok2017-02-09
| | | | | | | | | | We want to reduce the chance that we get lots and lots of node timers all happening once a second, because we're better off doing small bits of work as they are available. Reducing this to 0.2 seconds will greatly reduce the total amount of nodetimers that elapse at the same instance, while not effecting total work load. This results in a far better chance of the server keeping up with work loads.
* Perform mesh animation only once per frame.Lars Hofhansl2017-02-09
|
* OpenAL sound: Use a simpler distance modelparamat2017-02-09
| | | | | | | | | | | | | | In createPlayingSoundAt(), AL_ROLLOFF_FACTOR is not set, so it has the default value of 1.0, this makes the equation of the currently used AL_EXPONENT_DISTANCE distance model identical to the equation of the simpler AL_INVERSE_DISTANCE distance model. Using AL_INVERSE_DISTANCE means an exponent is not processed, exponents are quite intensive to process. There is no change in sound attenuation behaviour. The commented-out AL_ROLLOFF_FACTOR value is removed as it would now have a different effect if used.
* No longer auto-generate a 'guest####' player name when name is emptyred-0012017-02-09
| | | | | You can't join most servers with a 'guest####' player name anyway so it's only logical to remove them.
* Add ModMetadata API (#5131)Loïc Blot2017-02-08
| | | | | | | * mod can create a ModMetadata object where store its values and retrieve it. * Modmetadata object can only be fetched at mod loading * Save when modified using same time as map interval or at server stop * add helper function to get mod storage path * ModMetadata has exactly same calls than all every other Metadata
* Fix incompatibility of ItemStack.to_table() introduced by stack metarubenwardy2017-02-07
|
* Face shading: Add shade factor commentsparamat2017-02-07
|
* Add support for unix socket connection to redis (#5179)Travis Burtrum2017-02-06
|
* Prevent SIGFPE on entity tile loading issue. (#5178)Auke Kok2017-02-05
| | | | | | | | | | | | | | | | | | | | | | | | | | While experimenting with entities I ran into this unresolvable error where the server is sending some texture that the client crashes on. The crash prevents the client from ever reconnecting, resulting in a server that has to use clearobjects. We shouldn't crash but just ignore the object and move on. ``` 0x00000000004dc0de in TextureSource::generateImagePart (this=this@entry=0x7118eb0, part_of_name="[applyfiltersformesh", baseimg=@0x7fffffffbe98: 0x9f1b010) at /home/sofar/git/minetest/src/client/tile.cpp:1744 1744 u32 xscale = scaleto / dim.Width; (gdb) bt #0 0x00000000004dc0de in TextureSource::generateImagePart (this=this@entry=0x7118eb0, part_of_name="[applyfiltersformesh", baseimg=@0x7fffffffbe98: 0x9f1b010) at /home/sofar/git/minetest/src/client/tile.cpp:1744 ``` After reconnecting, the client now can connect without issues and displays an error message: ``` ERROR[Main]: generateImagePart(): Illegal 0 dimension for part_of_name="[applyfiltersformesh", cancelling. ERROR[Main]: generateImage(): Failed to generate "[applyfiltersformesh" ERROR[Main]: Irrlicht: Invalid size of image for OpenGL Texture. ```
* Improve mesh shading (#5172)numberZero2017-02-05
|
* Add per-stack descriptions using ItemStack Metadatarubenwardy2017-02-04
|
* Add ItemStack key-value meta storagerubenwardy2017-02-04
|
* Derive NodeMetaRef from MetaDataRefrubenwardy2017-02-04
|
* Make NodeMetaRef::getmeta a non-static memberrubenwardy2017-02-04
|
* Derive NodeMetadata from Metadatarubenwardy2017-02-04
|
* Fix PlayerSAO deletion warning (0eede97af2927dcda3545192403b0a44f30bcd1f)sfan52017-02-04
|
* Mgv6: Add fallback node for gravelparamat2017-02-04
| | | | | | | | Gravel now falls back to stone. Gravel is not a particularly fundamental node, allowing it to fall back to stone frees up subgames from having to include a gravel node. Non-blob-ore gravel is only present in mgv6 as extremely rare 'gravel biomes'.
* Mgv6: Add stairs to desert stone dungeonsparamat2017-02-04
| | | | | | As with the other mapgens, now that wide stairs in dungeons are possible we can now finally add stairs to desert stone dungeons. Re-order some lines.
* MapgenBasic node resolver: Various fixesparamat2017-02-04
| | | | | | | | | | | | Add a fallback node for stair_desert_stone to avoid ignore placed in Minimal subgame desert dungeons. Don't allow river_water_source to fallback to water_source as river water needs to be non-renewable and have a short flow range. Make stair_sandstonebrick fall back to sandstonebrick instead of sandstone. Re-order some lines. Add a comment.
* Serverlist: Add ping indicators (#5164)kilbith2017-02-03
|
* Tell on_punch to expect a return valueDuane Robertson2017-02-01
| | | | | The return value should be interpreted as a boolean saying whether the lua on_punch function handled damage or the system needs to.
* Mgvalleys: Fix missing decorations and incorrect function orderparamat2017-02-01
| | | | | | | | | | | | Fix missing decorations at horizontal chunk borders by adding 'updateHeightmap()' after terrain generation. Swap order of 'calculateNoise' and 'calcBiomeNoise' because 'calculateNoise' modifies the heat and humidity maps created in 'calcBiomeNoise'. Remove confusing comment, code block is not just for mods and seems essential for correct mapgen behaviour.
* Fix anticheat resetting client position after the client is teleportedEkdohibs2017-02-01
| | | | | | | | | | | | | | | Previously, m_move_pool could accomodate the client moving from the new position to the old one, and the server accepted the client to go back to its old position. However, it couldn't then accomodate the client moving from its old to its new position, and therefore would reset position to the old position. Thus, by emptying m_move_pool after a teleport, the server no longer accepts the client to go back to its old position. A drawback is however that a laggy client *will* trigger a few "moved_too_fast" anticheats before being told about its new position. Don't report player cheated if caused by lag. Fixes #5118
* Plantlike visual scale: Send sqrt(visual_scale) to old clientsparamat2017-01-30
| | | | | | Keep compatibility with protocol < 30 clients now that visual_scale is no longer applied twice to plantlike drawtype and mods are being updated to a new value.
* Add multiply texture modifiersapier2017-01-30
| | | | Allows colorizing of textures using a color multiplication method.
* Use fabs() instead of abs() (#5141)Dániel Juhász2017-01-30
|
* Re-add halo highlight (#5130)Dániel Juhász2017-01-30
| | | | Due to a rebase mistake halo highlighting was disabled. This commit re-adds that feature.
* Add console height setting (#5136)Ezhh2017-01-30
|
* Rename height to scale for openConsole() (#5139)Zeno-2017-01-29
| | | | | For Game::openConsole() and GUIChatConsole::openConsole() the parameter name 'height' is misleading because it's actually a percentage of the screen/window height.