110 Commits

Author SHA1 Message Date
Aaron Suen
6db8d9fc26 Adjust things to work in twilight.
- Lenses no longer produce light from sun at all;
  artificial light is always needed.
- Grass and trees survive, don't do dual-time check.
- Breeze sounds work in twilight.
- Sponge drying only requires twilight, now also can
  happen under artificial light.
- Peat to grass happens under twilight.
2020-02-22 16:55:42 -05:00
Aaron Suen
e0d15dcd4b Simplify lens sensitivity.
Lenses work from sunlight up to roughly y = -10.

You can now have unlimited optic power from the sun,
but conducting it all the way down from the surface is
more of a pain than having a loop at depth.
2020-02-22 10:44:40 -05:00
Aaron Suen
c7a322941e Experimental new natural light system.
- No day/night cycle, no sun/moon.
- Get rid of clouds too.
- Skybox is now 100% texture-packable.
- Natural light diminishes with depth.

Night-time no longer disrupts gameplay topside, but
skylights are no longer useful to an infinite depth and
artificial light is necessary for all deep mining.
2020-02-22 10:38:03 -05:00
Aaron Suen
bc7987f9c4 Set drowning damage the correct way. 2020-02-19 21:30:45 -05:00
Aaron Suen
bcbe77644e Buff drowning damage, nerf some node damage. 2020-02-19 19:55:22 -05:00
Aaron Suen
484c1a337f More subdued look for molten glass, image opt. 2020-02-18 20:10:08 -05:00
Aaron Suen
2ac5403149 The last few texture tweaks. 2020-02-18 19:57:30 -05:00
Aaron Suen
6a89bb5415 Compromise grass, and some more lode textures. 2020-02-18 19:02:52 -05:00
Aaron Suen
b141da2cb0 Tidy up hints, small issues. 2020-02-05 07:34:28 -05:00
Aaron Suen
2d73df30e7 New API to check if air passes thru node.
Can be used for things like sponge air exposure
or environmental exposure checks.
2020-01-18 09:57:39 -05:00
Aaron Suen
053f3b718f Fix glass tank hammering properly.
First class recipe, explcitly test for contents.
2020-01-17 23:45:00 -05:00
Aaron Suen
750bb87b31 Disallow hammering glass tanks.
Hammering them to sand destroys their contents.
Instead, require burning away the binding.
2020-01-17 22:14:10 -05:00
Aaron Suen
4d47ab2e75 NC API dependency simplification.
Treat all API mods as a "layer", and use the new
nc_api_all registration to indicate that a mod depends
on the NC API (which ALL NC mods assume they do).
This means that each non-API mod does not need to
worry about which API mods it really needs and which
it does not, nor will they need to be updated for any
internal API restructures.

This is a game, not a modpack, so all mods will be
loaded anyway, and we only care about order.  That
means that we don't really need to worry about
having excess dependencies because any mod we
don't actually need will be needed by something that's
loaded anyway.  If somebody wants to reuse a
component elsewhere, they're likely to need to do
some work to untangle it anyway, because of the
amount that NodeCore mechanics interact and
interdepend.
2020-01-05 12:59:12 -05:00
Aaron Suen
dcfc80b367 Remove explicit names in mod.confs. 2020-01-05 12:38:45 -05:00
Aaron Suen
89020e8340 Major rebuild of item_entity.
This created a ton of dependency inversions, which
necessitated moving a number of API functions up into
higher layers, and restructuring dependency lists for
a number of mods.

BOLO: non-deterministic load errors due to missed
dependencies.
2020-01-05 11:42:22 -05:00
Aaron Suen
c1d3ca04c8 Fix glass failing to quench from above. 2019-12-18 19:36:35 -05:00
Aaron Suen
70fcb225ed Fix sand duplication bug.
This was probably a regression caused by making lenses silica
group, and then forgetting why the silica_lens group existed.
2019-12-18 07:41:01 -05:00
Aaron Suen
60e79c4c35 Glass tanks burn down to crude glass, not clear. 2019-12-09 21:10:39 -05:00
Aaron Suen
fc4c4bc9c4 Fix glass shelf burning bug. 2019-12-08 22:31:12 -05:00
Aaron Suen
2a6fdab972 Glass tank bindings are slightly flammable. 2019-12-08 16:55:38 -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
a54d868cc3 Start work on glass tank. 2019-12-07 22:45:34 -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
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
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
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
b9e2f822f8 New flexible find_nodes_around api. 2019-11-30 10:28:35 -05:00
Aaron Suen
9beebc3498 Conservation of mass for burning stacks. 2019-11-28 11:18:03 -05:00
Aaron Suen
45c31cd203 Lenses can still burn transparent things.
The sunlight_propagates flag indicates that a node
can MOSTLY transmit light, like wooden frames, items,
or torches, but there are no purely transparent things
that are flammable, and all existing flammable things
are at least opaque at their centers, where lens light
would focus.
2019-11-28 11:03:45 -05:00
Aaron Suen
fd31c8dad7 Opaque nodes can block lens beams in item form. 2019-11-23 08:57:03 -05:00
Aaron Suen
a208893e07 Fix biactive lens instability.
When lenses face one another and are each fed light to
become active, they now prefer the active state over the
shining state.

Interestingly, inline vs. angled configurations have different
numbers of stable configurations...
2019-11-23 08:52:12 -05:00
Aaron Suen
08437adb04 Tweak lens collisionbox to prevent tunneling. 2019-11-02 23:32:26 -04:00
Aaron Suen
984947830a Fixed water texture error. 2019-10-11 19:49:35 -04:00
Aaron Suen
ed2a9e9573 New experimental animated liquid textures.
These are based on the nodecore "honeycomb", so they should at
least thematically match the other textures somewhat, even if
they're not super-attractive.
2019-10-11 19:40:34 -04:00
Aaron Suen
c147da4dde Convert from depends.txt to mod.conf 2019-10-05 11:24:16 -04:00
Aaron Suen
5c37e4351d Merge branch 'dev' into writing 2019-10-01 20:05:31 -04:00