241 Commits

Author SHA1 Message Date
Aaron Suen
e93416e67a Fix quote escaping in translations. 2019-12-19 07:08:08 -05:00
Aaron Suen
401b1acd02 One more .ru translation fix from Kimapr. 2019-12-18 23:08:44 -05:00
Aaron Suen
792a00073b Translation updates, fix parsing script.
The weblate txt files sometimes seem to weirdly
have the msgstr value as a separate string on the
next line instead of inline; handle those too.
2019-12-18 22:52:34 -05:00
Aaron Suen
b66c636aa7 Doors can't push nodes into players directly. 2019-12-18 19:52:07 -05:00
Aaron Suen
1492f1c527 Russian translation provided by Kimapr. 2019-12-18 19:33:18 -05:00
Aaron Suen
c0570db089 Fix lode yield probability distribution.
Also refactored exponential random transform function
into core API.
2019-12-16 09:20:00 -05:00
Aaron Suen
fa24151782 Fix the jumping eggcorn bug. 2019-12-15 08:43:33 -05:00
Aaron Suen
d7819762e5 Full proper support for spectator mods.
If players are invisible, NodeCore will not add any visible or
audible effects for them, allowing such players to be completely
non-interactive with gameplay.

This allows things like spectator or stealth-admin mods to
function properly.
2019-12-11 06:52:09 -05:00
Aaron Suen
ddfbd8e863 Another z-fighting regression... 2019-12-09 20:50:57 -05:00
Aaron Suen
10022fb761 Bump default stack max to an even 100. 2019-12-09 07:51:53 -05:00
Aaron Suen
b59482358b Prevent absurd stack ent sizes. 2019-12-09 07:51:08 -05:00
Aaron Suen
dc8c483e01 Standardize virtual items, prevent them dropping. 2019-12-09 04:46:33 -05:00
Aaron Suen
7050568938 Dammit dammit z-fighting hacks.
- Unbake the scaling tweak from models, apply it
  using mesh scaling in MT instead.
- Standardize ratio definition in one place.
- Default all nodeboxes to winning z-fights.
2019-12-08 23:14:56 -05:00
Aaron Suen
c29c2ed9d0 Fix one more nodebox regression. 2019-12-08 18:43:36 -05:00
Aaron Suen
3d11536b81 Fix ugly frames/ladders/staves/rods.
Automatic z-fighting prevention was causing some
nodes to fail to connect to neighbors due to the tiny
gaps.  Allow certain nodes to "win" the z-fight instead
so they also connect to neighbors properly.
2019-12-08 17:19:47 -05:00
Aaron Suen
ce58f8294c Refactor shelf API/assets into its own module. 2019-12-08 16:41:59 -05:00
Aaron Suen
a53030cdcf Use a mesh instead of nodebox for shelves.
In principle this should be equivalent to 2 cuboids
instead of 6.  In practice, FPS improvements are
hard to measure.
2019-12-08 16:13:44 -05:00
Aaron Suen
d4b512cd1e Sneak-punch shelves inspects without taking. 2019-12-07 23:12:34 -05:00
Aaron Suen
dd0cf19784 Centrally fix water z-fighting on ALL nodeboxes. 2019-12-07 22:24:09 -05:00
Aaron Suen
dd531e7894 Don't auto-repack non-repackable nodes, e.g. leaves. 2019-12-07 20:18:46 -05:00
Aaron Suen
cd95102b34 Fix item ents not being saved on unload. 2019-12-07 18:32:23 -05:00
Aaron Suen
e99c72154d Shelf standarization and tweaks.
- Refactor common code.
- Allow placement of wood shelves inside lode crates.
2019-12-07 18:25:05 -05:00
Aaron Suen
2f9a4f0cb5 Displace items on falling force settle.
We were assuming that falling_nodes would settle in an
orderly fashion and just calling the node placement code, but
not the displacement of old nodes.

Make sure that things aren't destroyed in the landing zone.
2019-12-07 12:48:18 -05:00
Aaron Suen
5b0459e4bb Speed adjustment settings for many long-running processes.
Many processes that have a significant speed/time component can
now have speeds adjusted (as a multiplier from base rate) via
settings.

Things that can be adjusted:
- Tool speeds (including digging and pummeling)
- Cooking and pummel recipe durations
- Soaking processes like tree growth, peat fermentation

The settings are hierarchical, so groups of rates can be
adjusted together, and a further multiplier can be applied to
each member of the group.

The settings are calculated dynamically, for power users only,
and documenting them is out of scope for the project.

Specifically, this should help tuning for Kimapr's SkyBlock, and
possibly other mods involving signficant gameplay rebalancing.
2019-12-06 07:01:12 -05:00
Aaron Suen
65ae771168 Fix minetest.rotate_node ignoring force-place. 2019-12-06 01:50:24 -05:00
Aaron Suen
b180912f0e Run AISMs inside totes. 2019-12-04 08:30:37 -05:00
Aaron Suen
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
b9e2f822f8 New flexible find_nodes_around api. 2019-11-30 10:28:35 -05:00
Aaron Suen
31bcefd842 Invert flammable/igniter checks.
This should improve game efficiency/smoothness when
a lot of flammable stuff is present but there are no
corresponding massive fires.

This seems to address runtime jitter issues noticed
after placing hundreds of coal nodes inside a forest.
2019-11-28 13:04:35 -05:00
Aaron Suen
6013583e4c Item dispersal tweaks/cleanup. 2019-11-28 11:40:28 -05:00
Aaron Suen
9afeebe215 Standardize item dispersal. 2019-11-28 11:29:21 -05:00
Aaron Suen
a12d44c4f8 Tighten up interact checks. 2019-11-28 08:55:09 -05:00
Aaron Suen
e769727f93 Simplify name of Adze. 2019-11-23 09:36:31 -05:00
Aaron Suen
33a6a7ce55 Weblate updates, esp thanks to Terifo. 2019-11-21 20:50:39 -05:00
Aaron Suen
b9fb3660d0 Run AISMs on item_entities too.
Even though they're ephemeral and supposedly short-lived,
throwing a torch into water should probably extinguish it
before it lands at the bottom.
2019-11-18 22:35:10 -05:00
Aaron Suen
8c45be8abb Make handheld torches more forgiving.
You can now wade in shallow water or stand closer to a
waterfall without torches going out.
2019-11-18 22:17:17 -05:00
Aaron Suen
d6fce1b385 Another weblate sync. 2019-11-17 10:14:09 -05:00
Aaron Suen
07850123d7 Standardize high-resolution gametime.
Use high-res version in a few places we were using integer-res
timer before.  This should e.g. smooth time variation of wind
strength for ambient sounds.
2019-11-10 08:10:34 -05:00
Aaron Suen
fdd881ae53 Active ItemStack Modifier overhaul.
AISM's now tick against stacks, including in piles, shelves,
and player inventories, (hopefully) efficiently compared to
the old way with separate ABMs.  Item entity support is also
possible, but not necessary yet.

This started out as a bugfix for being able to put a torch inside a
shelf, which didn't make much sense gameplay-wise.  It ended up
going quite a bit further.

- Aggregate now gets wet in stack form.  Swimming with dry
  concrete now has consequences.
- Lux reactions, radiation, and infusion should now behave more
  consistently.
- Sponges can now wet or dry in stack form, including inside
  containers.
- Torch ignition, quenching, and extinguishing is now more
  consistent regardless of context, and torches are now more
  dangerous, and can ignite things in more contexts.
2019-10-29 20:03:18 -04:00
Aaron Suen
afcce4d05d Start Active ItemStack Modifiers. 2019-10-29 07:12:01 -04:00
Aaron Suen
36f614035a Weblate updates. 2019-10-27 12:09:56 -04:00
Aaron Suen
e5f54b49f6 Add witness system for cooking/soaking recipes. 2019-10-27 10:05:57 -04:00
Aaron Suen
828f4a06d9 Try to fix faling node columns.
Before, settling was being processed out of order, so nodes could
fall into the space of nodes below and kick them out as items, so a
solid column of nodes could collapse and eject some nodes as items.
This makes hopper-feeding systems a pain to use.

Instead, explicitly signal upwards (tail-recursive) to settle all
falling nodes on the same tick, since they should already be falling
and accelerating downwards in lock-step.

This isn't perfect, as there are possible race conditions with things
being added into the node-space of the falling column while it's
falling, but it seems to work for now...
2019-10-15 20:35:26 -04:00
Aaron Suen
4dfc98eaa0 Fix a long-standing inconsistency in repose logic.
In the earliest days of the game, repose was added, and at the time it
seems that the intent was to have nodes "roll" off of their perches.
This caused problems though with tree leaves wandering an unlimited
distance down grassy hillsides, so it was changed so that repose
nodes could only roll off of loose/falling nodes that were able to "tilt"
to let the above nodes come off.  Because of this, the implied action
here seems to have changed from "rolling" to "sliding", so the extra
ceiling clearance is no longer necessary.
2019-10-15 19:13:37 -04:00
Aaron Suen
a4f53947a2 Official issue number. 2019-10-13 09:38:07 -04:00
Aaron Suen
8cffc156ba Workaround for another builtin bug. 2019-10-13 09:31:22 -04:00
Aaron Suen
c32c32ed55 Bugfix for tree growth.
Dirt was repacking around planted eggcorns, killing them.
2019-10-12 17:09:42 -04:00
Aaron Suen
fb0aecaaea Make all loose nodes self-repack over time. 2019-10-06 11:22:56 -04:00
Aaron Suen
c147da4dde Convert from depends.txt to mod.conf 2019-10-05 11:24:16 -04:00
Aaron Suen
0c494955ef Setup weblate sync tools, and pull a snapshot. 2019-10-04 19:27:56 -04:00