1722 Commits

Author SHA1 Message Date
Aaron Suen
736d3982f2 Merge branch 'writing2' into dev 2020-06-28 16:09:48 -04:00
Aaron Suen
ed9002e519 Fix crash on unknown item 2020-06-28 16:09:33 -04:00
Aaron Suen
34259f12fa Back out stylus for now
The stylus is not ready for use, BUT the
changes already in are worth merging.
2020-06-28 16:08:44 -04:00
Aaron Suen
f16acdc638 Initial glyph facing relative to player
When drawing a glyph, it will always be
oriented relative to the player's looking dir
(except in gymbal lock).
2020-06-28 16:04:44 -04:00
Aaron Suen
f8cfd5a316 Fix missing writing sounds 2020-06-28 15:32:27 -04:00
Aaron Suen
b65593dadc Fix writing glyph order 2020-06-28 15:21:49 -04:00
Aaron Suen
94a887266c Work around apparently-obscure inventory crash 2020-06-28 14:37:51 -04:00
Aaron Suen
4ba018b31f Assign a glyph to stylus on creation 2020-06-28 14:32:14 -04:00
Aaron Suen
76a4af96af Fix stack placement sounds again 2020-06-28 14:28:16 -04:00
Aaron Suen
4ff829d600 Revert "Predict item stack placement client-side"
This reverts commit 8d2a8c089096238fd47ed8f8a7c5d5b82ab79d48.
2020-06-28 14:18:20 -04:00
Aaron Suen
61b7fffd15 Create charcoal stylus item 2020-06-28 14:11:09 -04:00
Aaron Suen
32ab8b775a Refactor writing code 2020-06-28 13:55:43 -04:00
Aaron Suen
c910ef30c4 Make sure patterns are translatable 2020-06-28 12:56:38 -04:00
Aaron Suen
2d1f61ee97 Touchtips support "touch thru" API
Allow the "above" node to override the "under"
node's description.  Use this mechanism to
append charcoal glyph descriptions to the
touchtips, but only when punching a face that
has a glyph on it.
2020-06-28 12:38:14 -04:00
Aaron Suen
787d548e3b Make filenames consistent with new names 2020-06-28 12:13:41 -04:00
Aaron Suen
e2b2e0acc7 New names for charcoal glyphs 2020-06-28 12:10:58 -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
0eee06c8ea Officially retire the ABM laundering hack
Never saw any empirical evidence that this
helped one bit.
2020-06-27 21:01:23 -04:00
Aaron Suen
068937c482 Remove ABM laundering
See if this helps smooth out performance
issues in 5.3+.  It was never confirmed to
increase the number of ABMs we were able
to successfully process anyway.
2020-06-27 19:22:00 -04:00
Aaron Suen
72839b1a74 Fix press and other late-registered recipes 2020-06-27 19:03:49 -04:00
Aaron Suen
8b96b96a29 Tidy up startup reports 2020-06-27 18:49:17 -04:00
Aaron Suen
085f700982 Fix ABM muxing, maybe?
Results so far are quite good: reduced ABM
total count from 82 to 36 (~60%) and got it
under the magic cache limit of 64.
2020-06-27 17:36:42 -04:00
Aaron Suen
88899be57b Experimental ABM Multiplexing
Detect ABMs that share the same "signature"
except for the central nodenames, and use a
single ABM to run them, looking up the core
bodies to run based on nodename on the Lua
side.  This could reduce the total number of
ABMs we're using by almost half, and
mitigate some of the performance issues
that MT continues to have with ABMs.
2020-06-27 16:37:47 -04:00
Aaron Suen
e7911dd7fd Fix crash on empty craft set 2020-06-27 13:32:03 -04:00
Aaron Suen
7ae24bf7fa Further craft set reductions
- Merge the "legacy, could be anyting" sets
  into every other set so we can do only 2
  set lookups instead of 3.
- Make sure we don't do any duplicate
  recipe checks.

N.B. the craft priority order MAY be different
now, since primary node recipes are
checked before visinv stacks.
2020-06-27 13:00:34 -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
4b8d1b12e5 Fix a set_sky crash
We can't use push incremental changes to set_sky, we need to
push the whole sky definition each time.
2020-06-26 18:23:44 -04:00
Aaron Suen
775718256d Fix item entity bugs
- Crash due to pos being non-nil but velocity being nil?!
- Excessive item merging, i.e. on splitting planks, cancelling
  out outward item ejection.  Items now only merge at low
  absolute speed (detecting groups with low relative speed is
  too difficult to do efficiently for now).
2020-06-26 06:11:19 -04:00
Aaron Suen
7c5c8f68cf Tote placement fixes
Fix noisy prediction and quiet unpack
2020-06-25 23:35:55 -04:00
Aaron Suen
e9639c856f Entity merges conserve momentum 2020-06-25 23:03:56 -04:00
Aaron Suen
dcdf3a6fc8 Efficiency tweak
Don't repeat string conversions
unnecessarily
2020-06-25 22:46:03 -04:00
Aaron Suen
70c5dcf191 Efficient rebuild of item entity merge
- O(n) efficiency walk of item entities
- Honor stack family merging, e.g. differing lux levels combine

Since the new walk should be much more efficient, the need to
handle "extremal" cases specially, e.g. creation of a multi-stack
ent, is probably unnecessary.  Remove it from the task list,
barring any future evidence that it's still relevant.
2020-06-25 07:50:34 -04:00
Aaron Suen
1d05d0bd41 Remove redundant lux reaction check 2020-06-25 07:41:25 -04:00
Aaron Suen
de4748591c Reorg docs, close a couple minor issues. 2020-06-25 07:07:51 -04:00
Aaron Suen
f31901a93a Redo screenshots again, change up alpha filter again. 2020-06-24 19:30:40 -04:00
Aaron Suen
11d9f63564 Include full screenshot as secondary on alpha page. 2020-06-24 19:07:32 -04:00
Aaron Suen
a4942d994c Update official screenshots. 2020-06-24 19:04:41 -04:00
Aaron Suen
e14c85c64b Note that we need to update CDB screenshot again by now 2020-06-24 08:34:42 -04:00
Aaron Suen
e06fff7620 Pumice quenching can now affect water too
Face-touching water can be converted to pumice instead of the
flowing lava (e.g. lava intrudes into that space and quenches
instead) creating even more of a mess.
2020-06-24 08:21:43 -04:00
Aaron Suen
e7bd68a24b Reduce optic tick speed to 12Hz
This is the GCF between 60Hz and 144Hz
displays, so ideally a beefy enough
machine should be able to run optics
smoothly either way.
2020-06-24 08:16:51 -04:00
Aaron Suen
ec86f0f130 Reawaken optic circuits more reliably on load 2020-06-24 08:11:44 -04:00
Aaron Suen
2ea41b27ea Allow optic ticks to "slip" under load
If the server can't handle optics, it would lead to a
runaway effect and bring the system down.  Instead
only process up to half a second worth of optics on
each tick, so that this effect is capped and the server
will at least be able to chug along.
2020-06-24 08:03:42 -04:00
Aaron Suen
7b44fb2b29 Make optic systems tick at a consistent Hz 2020-06-24 07:45:20 -04:00
Aaron Suen
27ee0f9f7b Another attempt to quantize skybox textures
Using pngquant this time, instead of GIMP.  It seems pngquant at
least is smart enough to preserve the exact RGB value of the
single most common color used in all the images.
2020-06-24 07:25:44 -04:00
Aaron Suen
a7faf730f6 Skybox wishlist item fulfilled 2020-06-24 01:23:12 -04:00
Aaron Suen
baed978f6e Cap nodefall disturbance distance
Teleportation should cause some disturbance, maybe
plausibly even extra disturbance, but it shouldn't be
unlimited.
2020-06-24 00:53:38 -04:00
Aaron Suen
9d912311cf Another attempt at correcting color
This time, avoid touching the stars and just re-fill the
pure blue part of the sky.
2020-06-24 00:23:01 -04:00