863 Commits

Author SHA1 Message Date
Aaron Suen
2a6fdab972 Glass tank bindings are slightly flammable. 2019-12-08 16:55:38 -05:00
Aaron Suen
eeff1d530c Use standard framed mesh for lode crates too. 2019-12-08 16:47:51 -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
00f8a47dda Added glass tank recipe. 2019-12-08 14:59:57 -05:00
Aaron Suen
ac773ace20 Merge branch 'dev' into glasstank 2019-12-08 09:22:49 -05:00
Aaron Suen
80340d9058 Sneak-dig tote handle to leave shelves behind. 2019-12-08 08:26:58 -05:00
Aaron Suen
d4b512cd1e Sneak-punch shelves inspects without taking. 2019-12-07 23:12:34 -05:00
Aaron Suen
a54d868cc3 Start work on glass tank. 2019-12-07 22:45: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
d514f8f56d More dynamic item settling random management.
Instead of shuffling all the shells once for each tick used,
shuffle only those shells actually used once per tick.  This
should save us more time in common cases where we need
to only check a few shells to find a place to settle.
2019-12-07 11:26:10 -05:00
Aaron Suen
e0f2cb5b6d Item settling overhaul.
- Always prefer closest place first, then lowest height.
- Simplify search order; use a pre-built order instead of scan.
- Randomize search order only once per tick, if used.
2019-12-07 11:12:55 -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
ae3b150814 One more TouchTip fix... 2019-12-05 22:57:52 -05:00
Aaron Suen
40f724a86d Nil guard touchtips. 2019-12-05 22:50:38 -05:00
Aaron Suen
20b5b25e0c Debounce touchtips.
- Defer update until tick, coalesce updates from same tick.
- Behaves more stably when pulling items from shelves.
- Prevents flicker.
- Wield changes supersede node touch (esp shelves).
2019-12-05 22:41:47 -05:00
Aaron Suen
658100cd7e TouchTip overhaul.
- Support centered multiline descriptions.
- Automatically include visinv stack descriptions.
- Translations per-line.
- API for custom TouchTips.
2019-12-05 22:26:44 -05:00
Aaron Suen
3fd83b8bf7 Gated prisms are just a tiny bit brighter. 2019-12-04 19:51:39 -05:00
Aaron Suen
05aeb6dfaa Stop lenses z-fighting with water. 2019-12-04 19:35:35 -05:00
Aaron Suen
17cb5d0d41 Make note of remaining tote issues. 2019-12-04 08:36:43 -05:00
Aaron Suen
b180912f0e Run AISMs inside totes. 2019-12-04 08:30:37 -05:00
Aaron Suen
74b8a5cee0 Reverse lens active/shining bias.
Prefer shining state when fed from below even if given
sunlight above.  This should make open-air circuits
easier to build and less likely to act up under sunlight.
2019-12-04 00:17:07 -05:00
Aaron Suen
0a2dd7842f Give the gated prism its own special state. 2019-12-04 00:16:07 -05:00
Aaron Suen
a03d13f9fc Larger, more consistent lens selection box. 2019-12-03 23:56:59 -05:00
Aaron Suen
161b580dea Cubify prisms, consistent selection box. 2019-12-03 23:49:08 -05:00
Aaron Suen
d4dd7a00a4 Slow down optic door operation.
This prevents catapults from missing their empty signal.
2019-12-03 20:21:09 -05:00
Aaron Suen
f54117718b Spread passive optic checks across multiple ticks. 2019-12-03 08:01:33 -05:00
Aaron Suen
4ee34d4b2d Fix major optics performance bug.
Optic checks were being propagated unconditionally in loops,
causing nearly every node in an optic network to be checked every
time.

This restores behavior to the original intended behavior of
propagating forward changes on next tick, but stopping at points
where state quiesces.

Unfortunately beam obstruction sensing has been working
instantaneously because of this bug, and that will revert to the
original intended behavior of having those picked up only on
random checks, which may cause regressions in some builds.
2019-12-03 07:57:22 -05:00
Aaron Suen
6b4f1064a2 Make firestarting sparks a bit denser. 2019-12-01 19:23:24 -05:00
Aaron Suen
0281b2b890 Totes provide only limited fire protection.
When a tote is "burned" it will eject any flammable
container nodes, and their contents, to be exposed to
the fire
2019-12-01 17:00:09 -05:00
Aaron Suen
a695ac4071 Fix runaway shelf-item fires. 2019-12-01 16:54:15 -05:00
Aaron Suen
d0afb15f1c Add sparks to stick firestarting.
This should provide a visual clue as to WHERE players
should put tinder to get it to catch properly, since this
seems to be a common problem players run into.
2019-12-01 13:10:49 -05:00
Aaron Suen
db5a005296 Nerf conservation of fuel to prevent crashes. 2019-12-01 12:58:38 -05:00
Aaron Suen
58d2be5410 Make some hot-potato items place on landing. 2019-12-01 12:57:35 -05:00
Aaron Suen
6e1f3fee94 Standardize intra-line spacing in code. 2019-12-01 11:08:12 -05:00
Aaron Suen
09dd5de920 Tone down "active" glow a bit. 2019-11-30 19:50:19 -05:00
Aaron Suen
62f26784e4 More lens state distinctive textures.
Make all optics distinguishable at nearly any angle.
2019-11-30 19:37:43 -05:00
Aaron Suen
525a6f7c0f Make optics look distinct by state.
New brighter/bolder port textures make it easier to
distinguish active vs. inactive optics from a distance.
2019-11-30 18:44:51 -05:00
Aaron Suen
d8976d3423 New low-poly model for prisms too. 2019-11-30 18:04:28 -05:00
Aaron Suen
a5d5f381e5 Fix UV mapping for lens model. 2019-11-30 17:44:28 -05:00
Aaron Suen
7af74ee5d6 Redo lens as a mesh node.
This should cut triangle count by almost 75% and
improve framerates in complex optic scenes.
2019-11-30 16:40:07 -05:00
Aaron Suen
1f504fbb1c Leech to loose sand, make sure it falls. 2019-11-30 10:38:27 -05:00
Aaron Suen
b9e2f822f8 New flexible find_nodes_around api. 2019-11-30 10:28:35 -05:00
Aaron Suen
967653bf65 Dirt leeches to sand under water + time. 2019-11-30 10:15:02 -05:00
Aaron Suen
0fd31152ca Relax scaling requirements (e.g. trees).
Nodes cannot be scaled only if they are BOTH falling
nodes AND diggable by hand.  Mostly this just means
sand cannot be scaled and needs to be dug out
instead.
2019-11-30 09:13:07 -05:00