374 Commits

Author SHA1 Message Date
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
Aaron Suen
27e9a218b0 Don't retranslate any mod's translated strings, not just ours. 2019-10-02 07:40:14 -04:00
Aaron Suen
05c60e031a Attach wielded item sounds to moving player. 2019-09-12 20:20:59 -04:00
Aaron Suen
07239de73c Scaling overhaul as a "navigate caves by feel" system.
- Make handhold nodes glow, to visually simulate the player
  character's now "familarity" with them by feel.  We have to
  represent it synesthetically because the game only gives us
  sight and sound to work with.
- Make floors "scalable" so that they glow, even though they
  don't affect maneuverability.

The effect of this is to allow a player who has fallen into a dark
cavern to navigate, slowly, by feel, allowing more extensive
self-rescue possibilities.
2019-09-09 08:14:07 -04:00
Aaron Suen
a99ba82831 Remember to clear queue. 2019-09-09 07:05:31 -04:00
Aaron Suen
52de19a28c Unified falling check, check after craft. 2019-09-09 07:05:01 -04:00
Aaron Suen
0c9544d6b5 Some scaling/particle cleanup, make scaling particles distinct. 2019-09-07 09:32:36 -04:00
Aaron Suen
310ce1bc6c Treat NodeCore as a unified thing.
- Collapse all nodecore "core" mods in the /mods listing, so it's
  easier to find the actual add-on mods.
- Parameterize in-game branding to make renaming derivatives just
  a little easier.
2019-09-07 09:08:57 -04:00
Aaron Suen
a74829cf5c Make this a public API. 2019-09-06 19:26:39 -04:00
Aaron Suen
0bf2e6923e Remove debugging code. 2019-09-05 22:49:07 -04:00
Aaron Suen
cbf035e0d5 Finished Soaking API, converted trees and infusion to it. 2019-09-05 22:48:30 -04:00
Aaron Suen
71469e3990 Fix a couple bugs/warnings. 2019-09-05 07:36:28 -04:00
Aaron Suen
d616c5ad66 Change how silktouch is defined.
- Leave it nil to use the default (5 levels over).
- Set it to false to disable (always drop_in_place).
- Set it to a custom set of groups to skip drop-in-place if the
  tool would be able to dig a node with those groups.
2019-09-04 20:33:37 -04:00
Aaron Suen
f74b7b3767 "Silk Touch" effect for tools 5+ levels over material.
Tools up to and including Tempered Lode should still behave the
same.  Lux tools should now be able to skip the "loose" stage of
some materials.
2019-09-04 19:04:19 -04:00
Aaron Suen
d9ff4f0406 Add Lux Flux fluid and Lode tool infusion. 2019-09-04 18:44:08 -04:00
Aaron Suen
3a4bfdb258 One last refactor to ambient sounds.
Make tree sounds managed by the mod that defines the nodes in
question using register_ambient, consistent with other things like
fluids.

nc_envsounds is now responsible for just the air moving and
cave dripping sounds made by air itself.

Common windiness logic moved into api layer.
2019-09-02 11:34:14 -04:00
Aaron Suen
25b2831826 Add cave dripping, rename environment sound mod one more time. 2019-09-02 11:24:03 -04:00
Aaron Suen
ae4003b6de Remove debugging code. 2019-09-01 10:18:22 -04:00