Players can enter unlimited text into the field, causing lag and
potentially locking up clients. I have not found any negative effects
server side, other than the large storage needed to store the long
text.
The on_rotate function now checks the new param2 value to determine if a rotation is valid, rather than checking the rotation mode.
This is so screwdriver-like items with different rotation modes will not be able to rotate the bed into invalid orientations.
Alter 'large cactus' schematic to place another force-placed cactus node,
to replace the cactus seedling on growth.
Make schematic 5x7x5 to solve rotation, placement and protection check
issues.
Add a y-slice probability for height variation.
Growth time is tuned to not make this a faster way to obtain cactus nodes
compared to normal cactus farming.
Seedling texture by Extex101.
Use sapling/seedling description in protection intersection message in
'sapling_on_place' function.
Fixes most z-fighting caused by underwater nodeboxes.
Special tiles were for 'new style water' (lowered water level) which was
removed a few years ago.
Fix slabs combining into a cube: Facedir is only set for the cube if it has
paramtype2 = "facedir". This avoids liquid appearing in connected
framed glasslike.
All stair/slab nodes with parent nodes that are rotatable (wood and bricks)
are reverted to not having world-aligned textures, to fix the breakage of
rotated stair/slab appearence in worlds.
Update, and add missing documentation to, game_api.txt.
Before, it checked if the node name *contained* "stairs:slab_", which could detect
things like "xxxxxstairs:slab_xxxx". Changed the pattern to "^stairs:slab_".
sfinv:
Move license information to create the missing license.txt file.
Make README consistent with other Minetest Game mods.
player_api:
Add missing texture and sound credits to README.
Update and add extra license information.
default:
Remove credit for 'player_damage.ogg' sound.
Previously, maximum flora density was chosen based on the extremely rare
occurrence of all 8 flowers being at high density at one location. This
caused flora everywhere to spread to an unacceptably high density.
Revert the threshold to 3, which in testing results in a more acceptable
maximum density of 7 flora per 9x9 area.
Move chests code out of nodes.lua and into a new file.
Credit torch code, and chest and torch models in README.txt.
Remove 'torches' mod text from torch.lua.
Minor cleanups in README.txt.
Previously, boat responsiveness varied greatly depending on server
lag and singleplayer / multiplayer.
'dtime' is the time from the last execution of the boat entity
'on step' function, so must multiply acceleration and yaw change.
Retune acceleration, turn rate and drift deceleration.
Make reversed turn only happen with significant backwards speed.
Better pathfinder algorithm, allows tuning the lag spike compensation.
Smoother movement (when it's laggy).
Set the player animation to stand on attach.
Remove driver when they leave.
Only update velocity when it's necessary.
Apples only regrow where they first appear on trees, either on mapgen or when grown from saplings (meaning apples that were placed by players won't regrow).
Once the tree is cut down in full (leaves removed), regrowth will stop.
New apples only grow in daylight, and take the same time as a sapling to grow.
Iron at y = 0 was far too easy to find.
Adjust gold lower region to be twice the depth of highest level, like
all other ores.
Diamond at y = -500 was too easy to progress to.
Make diamond and mese block deeper to create a depth progression from
mese crystal to diamond, to reflect tool progression.
This all creates a satisfying 2^n depth progression, with lower regions
being at twice the depth of highest levels.
Use noises to create a varying mix in coniferous forest biomes:
Areas of large pines only, areas of small pines only, mixed areas.
While also having areas of high and low tree densities.
Saplings grow into large or small pines with equal chance.
Avoid hard-coded player inventory lists.
Expose `bones.player_inventory_lists` for mods to look up or change,
which player inventory lists are being dropped or placed into bones.
Acacia bush: Create a unique form different to normal bush, with more
leaf nodes at top than at base.
Acacia tree: Maximum height increased by 1 node. 2 extra nodes of
height variation.
Jungle tree: Add an extra node of height variation. Y-slices moved
downwards to be more balanced between trunk and branches, makes
branches more common.
Pine tree: Increase maximum height by 1 node. Add an extra node of
height variation.
Update sapling 'on place' protection checks for acacia and pine trees.
Match maximum spread density to maximum mapgen density for flowers.
Place 3 flora nodes at once instead of 1.
Change ABM chance value to 300 to match previous spread rate.
ABM becomes 3 times less intensive.
Use 128px textures with a slight blur to reduce distortion caused
by formspec texture scaling.
Cross is shifted slightly up and left to compensate for formspec
button image shift.
In survival mode, zoom is disabled, the binoculars item is needed to
allow a zoom with a 10 degree FOV, realistic for compact binoculars.
Creative mode or per-player creative privilege allows a zoom with a
15 degree field of view (the default MT engine zoom FOV).
Adds a direct resource of green dye, and a flower resource of black dye.
Completes the colour sequence: red, orange, yellow, green, blue, violet.
Makes all base dyes cultivatable and sustainable, without the presence
of coal.
Add the new flowers to the world with the same density variation as the
others, but obviously with different noise seeds. Results in more flowers
in a world and more variety of flower combinations.
Previously, body and limbs were stretched vertically by 1.125, creating
rectangular pixels on side faces. Head was unstretched.
Remove stretch of body and limbs, leaving the head unchanged.
No other change would excessively shorten the model, so also scale up
the model slightly, by * 1.05, such that the reduction factor for height is
equal to the increasing factor for width. This minimises the changes to
height and width.
Remove cape support.
Update the collisionbox to match.
Add missing license.txt.
Original recording by Ryding.
http://freesound.org/people/Ryding/
Found by Anth0rx, edited by paramat.
Add and use 'default.node_sound_snow_defaults()' function.
Some files or editors may use \r instand of \n like notepad++. If you copy
text written in notepad++ and pasted into the book. The book will only have
one page.
Uses the new player object property 'can zoom'.
In survival mode, use of zoom requires the binoculars item in
inventory.
Zoom is automatically allowed in creative mode and for players with
the 'creative' privilege.
The binoculars.update_player_property() function is global so can be
redefined by a mod for alternative behaviour.
In survival mode, use of the minimap requires the mapping kit item.
Minimap radar mode is always disabled in survival mode.
Minimap and minimap radar mode will be automatically enabled in creative mode
and for any player with the 'creative' privilege.
The 'map.update_hud_flags()' function is global so can be redefined by a mod for
alternative behaviour.
Make deeper, to compensate for ease of travel using 3D noise tunnels.
Make depth more progressive with value:
Ore, upper limit
Coal 64 no change
Iron 0 no change
Tin -32 > -64
Copper -16 > -128
Gold -64 > -256
Diamond -128 > -512
Mese crystal -64 > -512
Mese block -1024 no change
Make y of 1st density increase deeper but following a similar logic to before:
Ore, upper limit
Coal 0 no change
Iron -64 no change
Tin -128 no change
Copper -64 > -256
Gold -256 > -1024
Diamond -256 > -1024
Mese crystal -256 > -1024
Mese block -2048 new
Add second, denser layer of mese blocks with a decrease of separation and
increase in density equal to mese ore layers.
The tnt:boom node doesn't actually need the on_construct and on_timer functions to remove the node after 0.4 seconds as the tnt_explode function already does this beforehand.
Liquids that are 'igniters', such as lava, will drop the torch without
a flame-extinguish sound, as the torch item will burn up after a few
seconds with a sound and smoke particles.
All other liquids cause a flame-extinguish sound.
Only register floatland biomes if mgv7 'biomerepeat' flag is false.
Simplify floatland biomes to coniferous forest and ocean.
Make 'mgv7_floatland_level' and 'mgv7_shadow_limit' parameters global
values for mods to use to register their own floatland biomes.
Previous times were chosen using statistical maths, but reports suggested
this was too long.
I tested by timing an ABM acting on 100 nodes, with interval and chance equal
to the old sapling ABM.
50 at 4m59s.
99 at 24m58s.
100 at 26m58s.
So choose a grow time between 5 and 25 min for tree and bush saplings.
If 'can grow' is false at grow time the timer is reset to 5 min.
This allows us to preserve mgv6 ore distribution while giving us the freedom
to alter ore distribution for other mapgens.
Other mapgens are larger scale and have 3D noise tunnels which make vertical
travel easier, so ores can be deeper.
Other mapgens have registered biomes which allows us to limit ores to certain
biomes.
It is useful for protection mods to know who owns an exploding
TNT block. This allows the blocks destroyed by the TNT to be
limited to the same ones the owner could destroy without using
TNT.
TNT placed within a protected area by the area owner, and later
ignited by another player will destroy within the protected area
nodes the igniter may not otherwise be able to interact with. Any
player could significantly increase the size of an explosion by
placing more TNT in an adjacent unprotected area if the original
TNT block was placed withing 1 node of such a boundary. This
feature sounds dangerous, but we are talking about TNT. Players
should use it carefully.
If backface culling is not specified for a tile in 'images' it is set to true.
Slabs already have backface culling due to being defined as nodeboxes (which
are then converted to meshnodes).
Really large books just waste hard drive space and the engine is not designed to
handle that much data in item metadata, this can cause strange things to happen.
No longer have 2 recipes for stairs, choose the one that matches the appearence
in inventory (stair rising toward the right).
Helps to reduce recipe count now that an increasing number of stairs are
being registered.
Alter the wooden trapdoor side texture, replacing the white area with a
repetition of the wood pixels.
It is now consistent with the steel trapdoor side texture.
This keeps the filenames the same, but adds a new "inside" double texture
for the open chest.
Use regular drawtype for closed chest and delete the "cube.obj" model.
X-flip the right-side texture for the closed chest.
Revert the new 'default:game' inventory back to the old 'main' and use the
lbm to restore the contents of the chest.
Change the name of the conversion LBM to ensure it is run again on already
converted chests.
Adds a mesh model that appears when a chest is opened. The chest
stays visibly open as long as the player keeps it open. When the
player closes the formspec, the chest returns back to the closed
shape. While opening and closing, a sound plays.
A second person inspecting the chest will trigger a second sound
open. However, only after the last player closes the chest, does the
chest actually visually close and is the sound close played. This
keeps mesh updates to a minimum.
While it's possible that a server shutting down may cause chests
to remain open, this does not affect the chests' working matter,
and opening or closing them should fix them.
Old chests are converted to the new style by LBM. I previously
had them converted on open but this was unreliable, and LBMs
don't have that problem.
Open chests cannot be dug up. This prevents people from keeping
a chest open and digging it out as well, since closing a chest
would place a chest back (swap) at the spot. We could protect
against this, but it still messes up the client and causes a lot
of "missing node inventory" error messages otherwise. It's
unlikely but possible that a player lagging out causes a chest
to stay "open" and thus unremovable by digging, but there are
other ways of dealing with that - a server restart fixes that
issue.
If the lid of the chest is obstructed, the sounds continue to play,
but the lid isn't opened. Obstructed means that a node is present
above the chest lid, however, we ignore several node types like signs,
torches (not 3d) and wallmounted nodeboxes (typically signs) since
they don't pose any major obstruction in almost any case, and are
typically found above chests. Additionally, the selection box of the
opened chest does not include the lid, and so one can still interact
with e.g. a sign behind an open lid.
Due to the fact that chests now have 7+ textures, we can no longer
use materials (limit: 6) to texture the chest, and so there is now
a single UV mapped image that applies both to open and closed chests.
While this does mean texture pack makers need to create it, this
is extremely simple and consists of a simple cut'n'paste over the
template and should be really easy to do. Only one texture file is
now then used for both open and closed chests.
Previously i had matched ore density to moreores, but this density was
too high and out of balance with MTGame, reduce density to be similar
to copper ore.
The 2 levels of underground ore were overlapping, fix.
Textures are actually by kilbith, update credits.
Also credit kilbith for bronze, copper, gold and steel blocks, credits
had not been updated at the time.
Use Calinou's textures from moreores mod.
Craft bronze from tin and copper instead of steel and copper.
Match ore density to the moreores mod but start ore at a depth of
y = -32 to be part of the depth progression of other ores.
Allow skeleton keys to be stacked by converting them to craftitems and
adding a few lines of code to add a new itemstack to the inventory with
the new key or drop it at the player position if the inventory is full.
Bush saplings grow in half the time of tree saplings.
Bushes do not need 'from sapling' schematic variants because only the
stem node is force-placed in the mapgen schematic, so only the sapling
is force-replaced.
Bush leaves drop saplings with a rarity that ensures at least 1 sapling
per bush on average.
Slabs are placed horizontal instead of vertical, even if they are
placed on a wall.
Slabs are rotated automatically if they are placed to another slab,
no matter which material.
Slabs are placed at the lower position if the placer points into
the lower half of the pointed node and to the upper position if
pointed to the upper half.
Stairs are placed normal if the placer points to the lower half of
the pointed node and rotated upside down if pointed to the upper half.
As part of making vertical travel easier to reduce reliance on
sneak ladders.
Calculate using cubic pixels of steel.
A steelblock is 16^3 = 4096 cubic pixels steel.
6 ingots is 6/9 steelblocks.
A rail is a 2*2*16 pixel length of steel, 64 cubic pixels steel.
6 ingots produces 2*21 rails = 21 rail nodes.
Choose 18 for an even number that is a multiple of ingot number.
Replace the stick with 2 wood in the recipe to be closer to the amount
of wood that would be needed for 20*4 sleepers.
Replace 2 mese crystal fragments with 1 mese crystal to
compensate for the larger number of nodes returned. The result
is the recipe is much more generous with steel usage but slightly
less generous with mese usage, keeping power rail cost reasonably high.
Replace 2 coal lumps with 1 for a similar recipe to power rails.
Flora is converted to dry shrub in desert sand and silver sand.
No conversion in sand to preserve sand dune grasses.
Dry shrubs do not spread so this conversion, used by players, is the
only way to generate them.
Replace possibly trademarked artwork with royalty free and
OK for commercial use artwork.
The Pup appears by default but does not alias the Nyan Cat nodes
away. For that you will have to enable the setting. A settingtypes.txt
is provided to make that really easy. This allows people to get
an out-of-tree mod and not have their Nyan nodes disappear.
The mod can also be disabled entirely this way for those who don't
want it.
There's some eatser eggs in here as well. Instead of making the
nodes burnable, they are edible, and make you bark and howl. And
perhaps something else too.
If there is no group:soil node found below, do not replace flora with
dry shrub, this was breaking flower pots and other mods.
Originally, flora would only turn to dry shrub if in desert sand.
Use the soil group more instead of checking for multiple node names.
Remove 'neighbors' from ABM.
Turn any flora to dry shrub if on a non-soil, except when on default:sand
to avoid dune grasses being replaced.
Search for "group:soil" when searching for a position for the new flora
node, instead of searching for multiple node names, however do not spread
flora onto desert sand, which is in the soil group.
Remove default:dirt_with_snow from the soil group as it would be frozen
soil. It can be dug and placed to turn it into dirt (consider this some
extra work needed to make it cultivatable).
Commit c68b8274fe prevented books from
being copied in the crafting grid, and made it so that old books, though
seemingly successfully transferred to the new format, could not be written
to as the old data still persisted.
- Allow rotation of wallmounted nodeboxes (signs) since they are
now rotating properly.
- Instead of testing `ndef` several times, do it once, correctly.
- Simplify exception logic for nodes that have `on_rotate` set.
- For simplicity, return itemstack, always.
- Remove a useless nil check.
Previously you could place junglegrass on dirt to convert that dirt to
dirt_with_grass, but this is unsuitable now that rainforest has a
surface of dirt_with_rainforest_litter.
Remove junglegrass from the 'grass' group.
Since meta secret field is blank on any keys (default:key) obtained using
/give, the game will crash if you attempt to use one of these. This follows
along the principle that the game should never have any reason to crash.
A simple set of biomes for now: Ocean, coniferous forest, grassland,
sandstone desert.
Update biome lists for blob ores and decorations.
Make sandstone desert filler 1 node deeper to match other deserts.
Instead of right click, the skeleton key is now a true `tool`
in the sense that it's default left-click action is to create
a key for the locked object.
This is far better than the outcome of the patches we've done
where the only way to create a key for a locked item was to
use sneak+rightclick. Now keys are perhaps a bit more sensible,
left for making keys, right for opening stuff with keys.
Fixes#1625
Allows rotating things like signs and torches. Axis rotation
rotates over all 6 faces, face rotation flips upside down to
flat on floor only, and of course in the 4 horizontal directions.
Made the code a bit more modular to account for different rotation
schemes. Should be easier to extend from here on to other needs,
and the functions can be reused by other mods for convenience.
Usage and tool break sounds were played at 'pointed_thing.above' which
can be nil if not pointing at anything or at an entity. This caused
sounds to be played to all players on a server non-positionally.
Fallback to player pos for sounds if 'pointed_thing.above' is nil.
Replace 'pt' variable with 'pointed_thing' in 'register_tool'.
Currently jungletrees and junglegrass use sidelen 80 for simplicity,
but this results in a more uneven distribution of decorations. A more
even distribution helps keep rainforest darker with a more unbroken
canopy.
This is also more consistent. 80 is based on the default mapchunk
size, all other decorations use sidelen 16 or smaller to divide into
any mapchunk size.
Denser jungletree for darker rainforest:
Highest 'jungletree' nodes now prob 255.
Add a 5th lower branch layer.
Increase lower branch layer y-slice prob to 191.
Aspen:
Extend trunk upwards by 1 node to reduce leafdecay radius to 2.
Pine:
Make lower trunk 1 node longer so that lowest branches are more often
higher off the ground, also to make pines taller.
Appletree:
Make 2 opposite branches prob 255, the other 2 prob 127, to avoid
trees with 1 or 0 branches. Therefore also add random rotation.
Increase to 5 ladders from 7 sticks.
More generous to help with vertical travel.
Divide the log core volume of 14 * 14 * 16 cubic pixels by the volume of
a ladder node with two 2 * 2 * 16 side pieces and four 2 * 1 * 16 rungs
(cut down to length 14), to get 12.25 ladders per log.
The recipe of 7 stick items is 7 / 16 = 0.4375 logs.
Ladders per 7 stick items = 0.4375 * 12.25 = 5.36.
Utilizes the new key-meta (as with nodes) and the ability to set the description of an itemstack with the `description` meta key. Includes code to convert old metadata to new key-meta.
- beds
- boats
- carts
- key/skeleton key
- seeds
All these had on_place handlers that did not allow nodes with
an on_rightclick() handler to be used first (if not using
sneak). This code is taken from the torches mod and applied
everywhere.
This allows all these items to e.g. be inserted into the `frame`
mod's item frames.
Utilizes several new features allowing the description of an item to be changed using the `description` meta key. This also moves keys from using the old single-value itemstack metadata system to the new node-like metadata system.
Return to previous parameters interval = 1, chance = 2.
Compensates for the increase in default active block radius.
Large amounts of lava cooling at once is known to overload sound
creation, producing error messages.
As part of the original plan for a new lightcurve.
With the old lightcurve lights were so dim all light sources had light
source level 13 or 14 to compensate, resulting in almost no difference
between torchlight and a maximum brightness light.
The new lightcurve makes all light sources effectively much brighter by
spreading visually-bright light further, torches are now slightly too
bright. So now we can reduce the light source level of torches while
actually making them effectively brighter than with the old lightcurve.
This also creates a desirable difference between torchlight and a
maximum-brightness light source.
This implements a node-timer based leafdecay mechanism, and exposes
an API to use it in mods.
The API is documented in game_api.txt.
`default.register_leafdecay(leafdecaydef)`
`leafdecaydef` is a table, with following members:
{
trunks = { "default:tree"}, -- nodes considered trunks
leaves = { "default:leaves", "default:apple"}, -- nodes considered leaves
radius = 3, -- activates leafdecay this far from the trunk
}
The algorithm will drop `leaves` items in the area if no `trunks` are found
in the `trunk_radius` sized area around the position of the leaf. If a node
listed in `leaves` has a group `leafdecay_drop > 0`, then the item is dropped,
otherwise the item is removed but not dropped.
The algorithm also implements a value `default.leafdecay_speed` (default
15) which can be modified to increase or decrease of the leaf decay. The
algorithm will vary the actual speed a bit to introduce randomness.
Leaf decay is randomized by 0.1 seconds to reduce the chance that
decay happens many times on the same second interval. This requires
nodetimer_interval to be set to values lower than 1.0 to have an
effect.
The leaves will decay between 2 and 10 seconds after digging the trunk,
and happen at non-integer second intervals.
-- The API was added by sofar.
Plantlike drawtype no longer applies 'visual scale' twice, so now we
use the actual scale factor desired.
Remove unnecessary 'visual_scale = 1.0' lines.
Light level 14 to be able to grow plants.
3 returned from crafting with 1 glass node, 3 mese crystals and 1
wood plank.
Seamlessly placable on appletree wood fence posts.
Now that biomes are being specified for blob ores we need a separate
set of blob ore registrations for mgv6 which has no Biome API biomes
defined.
Various minor improvements to mapgen.lua.
Now that the missing 'default_dig_snappy' sound has been added we can
remove the dirt dig sound from the table. All nodes that use the
leaves defaults table have group 'snappy' so 'default_dig_snappy' now
becomes their default dig sound.
This reverts commit 5e4a6e8ac6, and
commit 60cf3f85b6.
The original door API rewrite I posted had all rotation disabled using
the correct on_rotate() handler returning `false`. Two subsequent
changes attempting first to enable simple rotation and second disabling
that again changed the callback handler to a boolean `false`, which
is incorrect use in the screwdriver API, and actually allows rotation.
The proper way to disable rotation for facedir nodes it to use a full
callback handler that does `return false`.
TNT removes flammable nodes from the destruction radius and should
remove flames within it too because they lose their fuel and would
be removed by ABM later anyway.
Create a simple triplet table (src1, src2, dst) for all the dye
recipes and group them logically, with a bit of explanation where
they actually come from.
This prunes a lot of recipes from the list, but the old list had a
ton of combinations that did not make any sense, as well as recipes
that were just gross approximations and duplicates, mixing the same
color with itself just to get the same color back, which just wastes
packets at logon.
The list has been checked to allow all colors created from the basic
dyes (flowers+coal) so that all colors can be crafted.
Craft 4 default:sand to default:sandstone.
Previously, 4 group:sand was craftable to sandstone and sandstone was
craftable back into default:sand, allowing silver and desert sands to
be converted into incorrect colour sandstone and yellow sand.