86 Commits

Author SHA1 Message Date
Aaron Suen
aa64359cc3 Fix stylus etching using doors 2022-01-15 11:20:33 -05:00
Aaron Suen
301ac45f02 Add groups for artificial concrete types 2022-01-09 13:12:46 -05:00
Aaron Suen
d72d7fc692 Make stuff above wet concrete fall 2022-01-02 13:23:39 -05:00
Aaron Suen
a1b2df3941 Begin standardization of unload bounds check
- New near_unloaded API that supports custom
  distance parameter, map bounds check, and
  some optimizations.
- Add area automatic unload check support to ABM
  API and add to applicable ABMs, replacing many
  old manual checks.

Note that the explicit unload check is only strictly
necessary when something will happen due to
a node NOT being present in the area, e.g. something
igniting due to absent coolant, or soaking quantity
being reset due to missing sources.  In simple cases
where the absence of a thing causes the ABM to do
nothing, then the standard check can work because
the default action is to do nothing anyway.
2021-12-18 11:28:14 -05:00
Aaron Suen
65dc1fe58f Start working on some hint reform
Got through a bunch of mods, up next is optics.

- Try to use crafting recipes rather than resources as
  the criteria for completing a hint.
- It's okay to use simple item observation for specific
  cases of transient things like pliant concrete.
- It's also okay to still use simple observations for the
  eligibility checks.
- Simple observation is also okay for naturally occuring
  e.g. decay processes, like wilting flowers, as opposed
  to crafts that need to be completed.
2021-12-16 22:31:50 -05:00
Aaron Suen
f5e966480b Fix delayed witness mis-ordering
Witness checks include data about the node in
place at the time that the witness even occurred,
so players are not awarded credit if the node they
see there was changed again afterwards.  A lot of
old witness code inserted the witness right
before the node was changed, since the node
change was done as a tail call, but this does not
work with delayed witnessing because the
delayed witness data would be tied to the old
node, not the replacement one.

Moving witness to after node setting should fix
a number of broken hints that should have been
delayed-witnessable, e.g. brick bonding.
2021-12-12 00:04:37 -05:00
Aaron Suen
a15dab698a Fix tarstone hint using thrown item 2021-12-08 23:31:03 -05:00
Aaron Suen
08593e7132 Allow tarring aggregate via thrown items
This makes agg tarring automatable by catapulting
coal lumps into we aggregate pools.
2021-12-07 23:21:46 -05:00
Aaron Suen
9d6abc30d5 Fix a missing : prefix for external concrete types 2021-11-25 21:29:36 -05:00
Aaron Suen
9fe9935ed9 Ensure concrete wandering starts immediately 2021-10-01 07:37:08 -04:00
Aaron Suen
1a26ec1f9e Always be more careful with future params in interception 2021-09-27 08:08:08 -04:00
Aaron Suen
2e9d342110 Complex concrete dungeon materials
Use all base concrete materials in dungeon gen.

- From y=+32 to y=+64, transition from stone to a 50/50 mix
  of adobe and sandstone.
- From y=-640 to y=-768, transition from stone to tarstone.

Adds some more variety and reason to explore dungeons.
2021-09-27 07:55:35 -04:00
Aaron Suen
b73d1d1290 Pre-clean-transparent filter on all textures
Some users may use filtering but not have the "clean transparent"
filter enabled in the Minetest engine config.  Bake this filter
into all images to (1) avoid the consequences of this (i.e. black
halos), and (2) possibly speed up startup time (the filter will
converge immediately).
2021-09-23 07:36:21 -04:00
Aaron Suen
52f36ce528 Fix pliant conrete being brickable 2021-09-15 22:24:56 -04:00
Aaron Suen
00b3dc477a Unified fluid wandering system
- New fluid wandering API, mostly unified logic, only needs
  some parameters, plus the "generation check".
- More sophisticated behavior seeking down-slopes beyond simple
  immediate flowing node reach ("subtle slope" detection).
- More reliable timing using DNTs.
- Set firm movement rate of concrete, molten glass.
- Reduce molten glass generations, since it can now be more
  reliably directed.
2021-08-02 07:17:51 -04:00
Aaron Suen
9fb4cf55b2 Deprecate register_limited_abm
This has just been an alias to minetest.register_abm
for a while now, and all ABM enhancement features
have been added directly to the core API.
2021-07-10 11:09:44 -04:00
Aaron Suen
3dd945085e Remove the txp_* overlay image feature
- For inventory and wield images, this is already
  possible via override.txt since 5.3.
- For special tiles, this will be possible in 5.4.
- This complicates things, and introduces warning
  messages into mods built without awareness of
  this feaure.
- As far as I know, no texture packs have actually
  ever used this feature.
2021-04-11 10:42:27 -04:00
Aaron Suen
1e64c191a0 drop_in_place rework
- Apply logic as first-class support so we can still
  have custom after_dig_node hooks.
- Shared flag nodecore.silktouch_digging that can
  be used in after_dig_node callbacks to determine
  if we're in the middle of a silk-touch dig.
- Add coal particles to tarstone digging if the coal
  is destroyed/dispersed during the dig operation.
2021-04-06 22:24:05 -04:00
Aaron Suen
0bb76ee30b Tarstone no longer drops coal at all
Once coal is mixed into the stone, it's "locked"
away.  Breaking the hardened stone releases the
coal as a fine powder that's not recoverable.

I'd rather violate the 1st law of thermodynamics and
not preserve the coal here than violate the 2nd law
and have it neatly "unmix" itself back into a lump.
2021-04-06 21:21:25 -04:00
Aaron Suen
da88f32416 Fix coal lump duplication bug in tarstone
Thanks to expert975 on IRC for suggesting this fix.
2021-04-06 20:30:19 -04:00
Aaron Suen
319a3f7480 Fix dynamic lighting staying after torch goes out 2021-03-09 18:29:32 -05:00
Aaron Suen
95f0fb0ee9 Heaviest image compression option 2021-03-09 08:33:58 -05:00
Aaron Suen
410ebd5d8d Recompression using ECT
https://github.com/fhanau/Efficient-Compression-Tool
2021-03-09 08:16:23 -05:00
Aaron Suen
fc404891ff Fix a missing dependency 2021-03-01 21:41:35 -05:00
Aaron Suen
c10e80ef87 Set name in mod.conf as demanded by 5.5+ 2021-03-01 20:10:27 -05:00
Aaron Suen
dde05141d0 Make wet concrete transmit light
While I'd like these to be opaque, The MT
engine unfortunately does not allow this
without introducing dark shadows inside the
node the fluid occupies, which is evident if
flowing opaque liquid is up against the side
of a container.
2020-11-28 20:02:42 -05:00
Aaron Suen
723d30897d Fix a couple more hints 2020-09-26 14:55:15 -04:00
Aaron Suen
ce4a77ab79 Concrete hints 2020-09-11 00:29:58 -04:00
Aaron Suen
18b01c1ae7 Redistribute hints into each mod
Hints themselves have not been tided up
much, but this makes the project of fixing the
hints for each mod a little more manageable
and breaks up the hard-to-navigate single
monolithic hints file in the old guide mod.

The old guide mod has now been completely
retired.  Hints are now a full-fledged API-layer
standard feature.
2020-09-04 19:07:45 -04:00
Aaron Suen
9a05788a06 Fine-tune brick appearance 2020-09-03 21:32:17 -04:00
Aaron Suen
7eb6557870 Genericized brickmaking API
You can now chisel and bond bricks of other
smooth stone types, i.e. the kind made in
concrete processes.
2020-09-03 21:24:59 -04:00
Aaron Suen
6cd356c191 Remove explicit node non-diggability
This opens up the possibility of mods adding
tools that CAN dig some of these more exotic
things.
2020-09-02 08:21:46 -04:00
Aaron Suen
78d321c24f Support explicit TP overrides for special_tiles
Hughes Ross has started to work on a PR for this
(https://github.com/minetest/minetest/pull/10140)
but it doesn't look like it will be ready until 5.4 at
least, and we will support pre-5.4 versions for
some time yet.  The ability for TP artists to
override special_tiles is necessary to allow things
like flowing liquid textures to be customized in
texture packs.

Add a hack for these, similar to how we did the
inventory/wield image hacks.

Note that we are also forcing overrides for special
tiles, since there may be cases where we reuse a
base image without modifiers but TP artists may
still want an independent override.
2020-07-04 19:25:37 -04:00
Aaron Suen
c910ef30c4 Make sure patterns are translatable 2020-06-28 12:56:38 -04:00
Aaron Suen
a707e3bf51 Fix crash on legacy styluses 2020-06-27 21:31:29 -04:00
Aaron Suen
6cd52698c2 Styluses now have "memory"
This makes mass-production of etched concrete
nodes a lot less tedious and more interesting.
There's now an incentive to manage multiple
separate styluses for larger projects.
2020-06-27 21:26:17 -04:00
Aaron Suen
72839b1a74 Fix press and other late-registered recipes 2020-06-27 19:03:49 -04:00
Aaron Suen
b2f78c0daa Indexing for craft checks
By restricting the recipes we check based
on the name of the central object being
checked, we can do many fewer craft
checks per item and avoid expensive
checks.
2020-06-27 12:20:35 -04:00
Aaron Suen
42f125c716 Make most recipes indexable
Register a "rootmatch" property for all
recipes that represents a broader, quicker
test for recipe eligibility.  False positives are
allowed but false negatives are not.

Since most recipes are eligible, we can
use this to build an index for fast lookups
of subsets of recipes to run and skip most
of the other ones.
2020-06-27 11:06:43 -04:00
Aaron Suen
11515cb39f Make sinking concrete destroy water
Previous behavior--displacing--was causing
water sometimes to get shoved up above the
surface and remain there.
2020-06-26 14:41:49 -04:00
Aaron Suen
984e87e155 Consistent ABM labeling
- Make sure every ABM has a label
- Use consistent case
- More concise names / consistent voice
2020-06-17 07:09:20 -04:00
Aaron Suen
4426bd6a6c Get rid of old debug code. 2020-05-27 01:13:02 -04:00
Aaron Suen
1d0f9aa81f Fix doors/concrete API registration
When 3rd-party mods try to register extensions, don't
crash on trying to register in wrong namespace.

Keep registrations to original mod namespace for now,
as I'm not certain whether I actually made assumptions
about mod name in some logic.
2020-05-18 18:09:44 -04:00
Aaron Suen
9c85cfd5d3 Lengthen concrete curing 2020-04-12 21:41:44 -04:00
Aaron Suen
46646f7b83 Fix concrete curing
Make sure to use separate metadata fields for wet-to-pliable
vs. pliable-to-hardened concretes.
2020-04-10 21:52:18 -04:00
Aaron Suen
40d7848c46 Fix crash right-clicking wet aggregate 2020-04-10 19:02:31 -04:00
Aaron Suen
fde6378910 Stylus recipe, more image optimize 2020-04-05 19:39:41 -04:00
Aaron Suen
ad61005c4f Fix heisenbug cause by strata 2020-04-05 19:27:15 -04:00
Aaron Suen
683d1b82ca Stylus etching, full cycle curing 2020-04-05 16:07:18 -04:00
Aaron Suen
babf5094b9 Rework wet concrete recipes 2020-04-05 15:31:16 -04:00