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.
Commit 73d61cbb103415c9a3970eaf2c48aeadabfff828 makes skeleton keys
craftitems rather than tools, warranting the move from tools.lua
to craftitems.lua.
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.
I recently made glass footstep and dig gains too low, raise slightly.
Change dirt dug gain from above-maximum 1.5 to maximum 1.0.
Reduce gain of footsteps: stone, dirt, gravel, wood, metal
Raise gain of leaves footstep.
Some nodes with the snappy group (wool, glass pane, seeds) were missing
sound when dug with a sword.
Adding the sound causes it to be used for glass pane, so define a 'dig'
sound in the 'node sound glass defaults' table, use the footstep sound.
Adding the sound also causes it to be used for seeds which deliberately
have no dig sound, so add an empty sound override for seed dig.
Reduce the gain of the glass footstep sound which was excessively loud.
Add some freesound members to license.txt.
Handbrake was barely noticeable and fairly useless.
Equalisng with brake rail deceleration makes it more intuitive to use
and easier to judge stopping distance.
Previous code:
Used looped sounds without attaching them to objects or playing direct
to players.
The looped sounds are not 'stopped' when players leave the area.
These may be causing the bug where sounds are heard at extreme
distances.
Entering a world with already present flames results in silent flames.
Sounds are often played at a large number of points in a 6 node lattice.
A large fire is reported to cause a high load, disabling the sound code
is reported to help this.
New code:
Optional flame sound to not interfere with ambience mods.
Permanent flame now has sound.
For multiple flames, sound is positioned at the centre of all flames, and
has volume determined by flame number.
The original freesound 'large fire' recording was used to create 3 sounds
that play at random for a non-repetitive effect. At low volume it is
suitable for small fires.
Original sound files and sound function (as an empty function) kept
temporarily to reduce disruption.
Reduce gain of flame extinguish sound.
Some GPUs cause visual bugs when mip-mapping is used with indexed textures
that use alpha. Because leaves are sometimes rendered opaque it is even
more important to keep these as RGBA to preserve the correct background
colour.
Papyrus:
Make base node dirt instead of dirt_with_grass. Formerly the exposed
dirt would change to grass but the new grass spread ABM now prevents that.
Waterlily:
Don't specify a water_source node in the schematic, as it may be used in
river water. It was not force-placed but should really be "air" prob = 0.
This changes the farming API such that any nodedef with paramtype2
and place_param2 are passed through to all the plant stages of the
farming plant.
This allows plants to use an alternative mesh for the plantlike
drawtype, and provide a bit of graphical variation in plants.
We enable this for wheat, using place_param2 = 3, which is the '#'
shaped plant mesh. If you would actually be able to give yourself
this plant in creative or through /give, you would also get the
same '#' shape.