Commit Graph

435 Commits

Author SHA1 Message Date
Vanessa Ezekowitz
1a7a17f3d7 new high-resolution imagery for CNC formspec
to go with the new models.
2015-01-16 19:12:02 -05:00
Vanessa Ezekowitz
3726bd9bd2 add the models too 2015-01-16 17:19:11 -05:00
Vanessa Ezekowitz
80cb6a495a Use mesh nodes for all of the more complex CNC machined items 2015-01-16 16:57:34 -05:00
Tim
0114feaf04 Add more nodes to the chainsaw 2015-01-12 17:51:55 -05:00
ThatGraemeGuy
2e04374de8 Add gloopores' Kalite dust as a more effecient fuel than lumps 2015-01-12 17:51:55 -05:00
Vanessa Ezekowitz
bc0ac581aa prevent crash if get_recipe_index() is passed a nil or apparent garbage instead
of a table
2015-01-12 17:43:56 -05:00
Novatux
4ac36e9d27 Fix infinite energy with supply converter 2014-12-30 12:10:36 +01:00
ShadowNinja
5382a88aef Fix some global errors 2014-12-15 17:47:07 -05:00
Vanessa Ezekowitz
a413904ecd minetest.env:* --> minetest.* 2014-11-30 12:45:42 -05:00
Novatux
dd30838245 Add more nodes to chainsaw 2014-11-30 08:28:57 +01:00
Vanessa Ezekowitz
8da4d057b0 update to latest mesecons API
requires mesecons commit 5be179bf110b44bdc06df6dbfde4e61487cf0635 or later.
2014-11-22 13:58:38 -05:00
ShadowNinja
30a37a490f Make the forcefield replace buildable_to nodes and make it faster (about x20) 2014-11-13 12:28:04 -05:00
Zefram
f205e5f404 Fix anonymous digging of non-empty machine
The quarry was causing crashes when it reached a machine that was
undiggable due to containing items.
2014-11-06 08:33:14 -05:00
Rick McFarley
7c6c3b9679 Remove extra registration of LV transformer 2014-09-24 20:35:25 -04:00
ShadowNinja
42d0081367 Replace mining laser ray tracer with a simpler iterable one 2014-09-24 20:32:36 -04:00
HybridDog
4d1f9753e3 update mining lasers 2014-09-16 15:23:46 -04:00
ThatGraemeGuy
6d90ebb94e Make generators stop supplying EUs when there is a non-fuel item in the fuel slot 2014-09-16 15:21:14 -04:00
Zefram
0de4fec07c Fix second description of radioactive group value 2014-08-28 15:30:15 +02:00
Zefram
45919b871a Make forcefield properly undiggable 2014-08-28 15:14:05 +02:00
ShadowNinja
ec069aa43e Change chainsaw cutting algorithm back to old one
The new algorithm caused horizontal sections of trees to be left, with the
sections above and below them removed.
2014-08-22 20:57:30 -04:00
ShadowNinja
16302cffce Fix chainsaw placing drops and playing sounds at tops of trees 2014-08-22 20:01:15 -04:00
Zefram
78646b2d89 Make tree tap respect item_drop 2014-08-22 14:20:13 +01:00
Zefram
2912e2da78 Rebalance radiation shielding
Squeeze the range of material shielding values.  The strongest shielding
materials get weaker, and weaker shielding materials, especially low-end
ones such as dirt, get stronger.  The radioactivity of the active
reactor core is increased so that the standard shielding is (still)
only narrowly sufficient.
2014-08-20 20:09:41 +01:00
Zefram
7a9d2ffe5f Finer gradations of radioactivity
Make the "radioactive" group value be the safe distance in millimeters
rather than meters, to allow for intermediate values.  Use such
intermediate values for the uranium blocks, using the existing formula
with this finer quantisation.  All other radioactive nodes retain their
existing radioactivity exactly.
2014-08-20 19:14:03 +01:00
Zefram
7d610b7c80 Tube capability for tool workshop
Tool workshop can now accept tools to repair via tube.  It has upgrade
slots.  Battery upgrade reduces its power consumption.  Tube upgrade
makes it eject fully-repaired (or unrepairable) items via tube.
2014-08-18 17:09:37 +01:00
Zefram
814646b542 Smoother link of processing cycles to ABM cycles
Make the generic processing machine code willing to complete more than
one processing cycle in one ABM cycle, and more generally to carry
over leftover processing effort after completing a processing cycle.
The src_time meta item now represents accumulated processing effort
(time multiplied by speed) in a scaled form (to retain fractions),
rather than just time in integral seconds.  This affects the MV furnace,
with speed 4 and most recipe times being 3 s, and will be essential for
faster furnaces.
2014-08-18 15:14:15 +01:00
Zefram
d0efa15b98 In quarry, skip past undiggable nodes
The quarry used to get stuck when it encountered an undiggable node.
Change it to skip past that node, digging whatever later stuff it can.
Necessarily, the current digging position becomes semantically-significant
state: it is no longer sufficient to search the quarry cuboid from the top
on each iteration.  The current digging height is reported in the quarry's
interaction form, and can be reset to the top using a button on the form.

Where there is a non-air node within the quarry directly above the
next node to dig, it blocks the quarry's access to that node, even if
everything involved is diggable.  Thus an undiggable node casts a shadow
of undug nodes below it.  Resolving undiggability of a node is a major
reason to use the restart button.
2014-08-18 15:14:15 +01:00
Zefram
d0001a20c9 Fix visible cable connection for irregular items
The switching station and supply converter only semantically connect to
cables in particular directions.  Make them visually connect only in
the matching directions.  This is done by special-casing in the cable
update logic.  If more irregular items arise in the future, or the
existing items start to need facedir logic, this should be generalised
into something like the connect_sides system for pneumatic tubes.
2014-08-17 13:43:39 +01:00
Novatux
35b10adb40 Fix items sending 2014-08-16 13:42:17 +02:00
Zefram
849526cd76 Fix forcefield power demand when disabled 2014-08-15 12:25:47 +01:00
Zefram
830de45936 Option for forcefield to be cubical 2014-08-15 12:25:46 +01:00
Zefram
6cc471e986 Simplify music player interface
Having a track selected now implies playing it, rather than
playing/stopped being a hidden state separate from track selection.
2014-08-15 12:25:46 +01:00
Zefram
1d0687556a Fix music player's sound management
If an operating music player was disconnected from the electrical network
or destroyed, it used to leave the music playing forever.  There was
also a glitch upon starting playing, as the music was started by the
form handler but then stopped when the run function realised it wasn't
receiving any power, because it hadn't demanded any yet.
2014-08-15 12:25:46 +01:00
Zefram
049129d9b8 Handle both pipeworks APIs
The new API function is now renamed to pipeworks.tube_inject_item(),
so use it under that name.  If it is not available, synthesise the new
API in terms of the old one.
2014-08-15 13:23:41 +02:00
Vanessa Ezekowitz
772c21cb04 don't put anchor in creative inv 2014-08-14 21:56:05 -04:00
Novatux
baf7f61665 Compatibility with latest pipeworks 2014-08-14 21:29:56 +02:00
Zefram
3b16a2858f Revise rules for regenerating latex
To ensure that only rubber tree trunk nodes that are part of trees
regenerate, rather than those that are used as building blocks, check
that they are sufficiently close to rubber tree leaves.  This replaces the
older rule that naturally-grown trunks regenerate (regardless of leaves)
and manually-placed trunks don't (even though manually building a tree
otherwise works).  The detection of manually-placed trunks was in any
case broken for users of moretrees, because that mod fails to set the
flag signalling manual placement.

Incidentally also fix a bug that caused rubber tree branches (horizontal
trunk nodes) to turn vertical when regenerating latex.  Rather than set
the complete node structure, only switch the type name, as does the tree
tap when emptying the node.
2014-08-13 23:13:52 +01:00
Zefram
b001a67979 Administrative world anchor 2014-08-13 19:07:53 +01:00
Zefram
38e85e9775 Manual section on uranium enrichment 2014-08-13 02:45:44 +01:00
Kevin Zheng
7cfb3874a3 Evenly distribute charge across multiple batteries 2014-08-06 12:08:48 -05:00
ShadowNinja
ab567e21ca Remove non-functional tetris machine 2014-08-04 13:43:57 -04:00
Zefram
4996d1824c Make nuclear reactor core harder to break
With breaking an active reactor core now causing instant meltdown, having
it breakable by hand is too hazardous.  Change it to match steel block,
which constitutes the main part of the rest of the reactor structure.
2014-08-04 12:54:47 -04:00
Zefram
a2d1fefe14 Realistic range of radioactivity of uranium blocks
Fully-depleted uranium doesn't lack noticeable radioactivity.  The
radioactivity of enriched uranium is dominated by the U-234 fraction,
not U-235.
2014-08-04 17:03:56 +01:00
Zefram
fc87eca4cd Fix technic_run declaration for hydro generator 2014-08-04 14:58:38 +01:00
Zefram
8275091347 Improve injector interface
Make the injector's mode button lag-resistant.  Display the mode on
the button, as is done with other machines' toggle buttons.  Describe
the modes using the same words that are now used to distinguish the
corresponding pipeworks objects.  Expand name to "self-contained
injector", now that the pipeworks objects are also called "injector".
Show injector item image along with the item name at the head of the form.
2014-08-01 18:25:20 +01:00
Zefram
daa6135211 Update alloying craft guide to match machine
The alloy furnaces have been changed to lay out the input slots
horizontally.  The craft guide should match that, for mnemonic value.
2014-08-01 17:56:32 +01:00
Zefram
beb480bec2 Redescribe alloying in craft guide
Change "Alloy cooking" to "Alloying", for consistency with the
descriptions of other recipe types.
2014-08-01 17:50:40 +01:00
Zefram
0003ec6a79 Make carbon steel alloying quicker
Taking the same time per alloying cycle as other alloys meant that carbon
steel was being produced painfully slowly, becuase it processes much less
material per cycle than other alloys.  This change halves the cycle time,
which leaves it still processing less material per second than other
alloying processes, but by a less drastic margin.
2014-08-01 17:40:35 +01:00
Zefram
2a7ee141eb Fix behaviour on decabling a forcefield emitter 2014-08-01 17:30:21 +01:00
Vanessa Ezekowitz
88bdac62e3 Merge remote-tracking branch 'zefram/zefram/centrifuge' 2014-07-30 15:36:27 -04:00
Zefram
12d0c6522b Correct breakability of sandstone CNC nodes
default:sandstone has cracky=3, but the CNC nodes had cracky=2.
2014-07-30 20:28:30 +01:00
Zefram
0dfac3f484 Make granite harder than regular stone
In real life granite is renowned for its hardness.
2014-07-30 20:25:35 +01:00
Zefram
60bc80692b Remove a noisy debugging print 2014-07-28 13:29:39 +01:00
Zefram
b0faa70873 Uranium enrichment via centrifuge
Replacing the extractor-based system, uranium to be used as reactor fuel
must now be enriched in stages using the centrifuge.  Uranium metal can
exist at 36 levels of fissile content, from 0.0% to 3.5% in steps of 0.1%.
One round of centrifuging splits two dust of a particular grade in to one
dust each of the two neighbouring grades.  Uranium of each grade can exist
as dust, ingot, and block, with all the regular metal processes to convert
between them.  Uranium from ore exists in lump form, and is 0.7% fissle.
The blocks are radioactive to a degree dependent on fissile content.
Thus the chemical refinement and processing of uranium now follows the
standard pattern for metals, and is orthogonal to isotopic enrichment.
Each form of uranium (dust, ingot, block) intentionally looks identical
regardless of fissile grade.

If technic_worldgen is used alone, it defines only one grade of uranium
(as before), but defines it in the regular metal pattern, with lump, ingot
produced by cooking lump, and block crafted from ingots.  It identifies
the metal only as "uranium".  The multiple grades of uranium are defined
by the technic mod, which identifies each grade as "N.N%-fissile
uranium".  The single grade that was registered by technic_worldgen
is redefined to be described specifically as "0.7%-fissile uranium".
For the redefinition to work, technic_worldgen must load before technic,
so technic now declares a dependency on technic_worldgen.

Each fuel rod is made from five 3.5%-fissile ingots, each of which in
turn requires one to start with five 0.7%-fissile dust, so each fuel rod
is now derived from 12.5 uranium lumps (or 25 if the lumps were first
cooked rather than being ground).  This replaces the 20 lumps required
by the former recipes.  After setting up and priming the centrifuge
cascade, enriching a full set of fuel for the reactor (six fuel rods)
takes 14700 centrifuge operations.  It's intended to be a practical
necessity to automate the centrifuge.  In the absence of EU upgrades
for the centrifuges, these operations consume 5.88e8 EU, about 0.97%
of the 6.048e10 EU that the fuel set will produce in the reactor.
The intent is that, in this respect as in others, operating a reactor
should carry a very high up-front cost, but ultimately be very profitable.
2014-07-28 13:18:51 +01:00
Zefram
9f0b41fe71 Make technic_worldgen loadable before technic
There was a small amount of dependency of technic_worldgen on the
technic mod, for configuration loading and the top-level "technic" table.
Resolve that by sharing the configuration and top-level table between the
two mods.  This means that technic_worldgen can be loaded before technic,
permitting other mods to depend on it without depending on technic.
2014-07-26 19:20:45 +01:00
Zefram
dd65a68ce9 Add centrifuge
The centrifuge, currently only existing in an MV variety, is a machine
that separates a mixed substance into its constituents.  Currently the
main use is to reverse alloying of metals.  The alloy separation recipes
intentionally only operate on the dust form of metals, making this less
convenient than the original alloying.  It also only recovers metal
constituents, not the carbon that went into cast iron or carbon steel.

This change incidentally generalises the technic recipe and
machine infrastructure to handle recipes with multiple outputs.
As unified_inventory's craft guide can't yet handle that, these recipes
are not registered there.
2014-07-26 18:01:05 +01:00
Zefram
84cf6504c5 Make outer layer of reactor structure optional
As the layers of reactor structure now have a practical purpose,
in attenuating the modelled radiation from the core, it is no longer
necessary to make so much of it mandatory in order to motivate players
to build it.
2014-07-25 17:27:55 +01:00
Zefram
d59055dd2b Audible siren to warn of reactor meltdown
The siren sounds a "danger" tone continuously while it is active and
damaged, such that meltdown is imminent.  It sounds a one-off "clear"
tone if it has been sounding "danger" and the danger has passed, either
because the structure is repaired or because the reactor has become idle.
2014-07-25 15:38:40 +01:00
Zefram
67b90f3ad1 Grace period before reactor meltdown
The meltdown check now doesn't trigger meltdown immediately on reactor
structure being compromised.  Instead, there's a grace period of up to
100 s, during which the reactor can be repaired.  The check doesn't just
look at whether the structure is damaged at all: it looks at how damaged
it is, counting the number of faulty nodes.  The amount of damage is
integrated over time, and the grace period is actually 100 node-seconds,
so greater damage causes meltdown more quickly.  If the active core is
dug then it melts down immediately, preventing the tactic of digging
the core to avert meltdown.

Incidentally move the meltdown check into its own ABM, from the
technic_run callback, so that it applies even when the reactor is not
connected to a switching station.
2014-07-25 14:24:25 +01:00
Zefram
ec008d7045 Material-dependent radiation shielding
Radiation is attenuated exponentially by passing through shielding
material.  Radiation resistance values are assigned to all bulk-material
nodes, and the radiation damage ABM traces the path of each radiation ray
to count up the shielding.  The relative radiation resistance values are
essentially real, but the effectiveness of all shielding is scaled down
by a factor of about 70 for game purposes.  Strength of the existing
radiation sources is increased by varying amounts to compensate for
shielding.  Uranium block and ore, both usable as shielding, are made
slightly radioactive, the latter only very slightly.
2014-07-25 03:42:21 +01:00
Zefram
17c5b66524 Inverse square law for radiation damage 2014-07-24 17:38:53 +01:00
Zefram
e64fdbf03b Fix celeron55 credit 2014-07-23 18:47:04 -04:00
Zefram
e11f0f8817 Tweak corium light settings
Flowing corium appeared too dark.
2014-07-23 18:45:50 -04:00
Zefram
c5e9480d99 Config setting to nerf corium
For use on servers that have a mainly creative purpose, the setting
enable_corium_griefing=false will prevent corium from flowing far or
unpredictably and from destroying nodes other than water.  All reactor
meltdowns will stay contained.
2014-07-23 17:24:52 -04:00
Zefram
366fc3bc65 Better reactor meltdown
Reactor `explosion' now replaces the reactor core with a corium source
node.  Corium is a new liquid, which flows a bit like lava, but has
the additional feature of destroying nodes to which it is adjacent.
It also randomly turns into a solid form, chernobylite, which makes an
attractive building block.  It thus gradually melts its way through the
reactor shielding layers; a meltdown gets worse over time if not cleaned
up promptly.

The mechanism for an active reactor core to damage nearby players is
generalised into a "radioactive" node group.  Corium and chernobylite
are radioactive, to varying degrees.  Players receive a varying amount of
damage from a radioactive node, depending on proximity.  Staying outside
a reactor cube is sufficient to be safe from the active core, but not
sufficient to be safe from a melted core.
2014-07-23 20:21:59 +01:00
Zefram
62e04b9c0d Improved can usage
Make the use of cans more like the digging and placement of ordinary
nodes, and specifically make it much closer to the use of buckets.
The main change is that left-click with a can is now only used to take
liquid; placing liquid is now done with a right-click.  This makes the use
of cans a lot less error-prone, compared to the old scheme of determining
the operation based on the type of node pointed to.  Other changes are
that liquid placement is now permitted to replace any buildable_to node,
and the cans obey node protection.
2014-07-23 20:21:59 +01:00
Zefram
6771ad9d33 Genericise can logic
Factor out the logic common to water and lava cans.  Provide it in the
form of a technic.register_can() function, which can be called by other
mods to register cans for other liquids.
2014-07-23 20:21:59 +01:00
Zefram
cca72f43f1 Tweak mesecon control of forcefield
Drop support for negative mesecon control.  This requires users of
negative mesecon control to invert their mesecon signal externally.

Comment on rationale for the way toggle buttons in formspec are managed.
2014-07-23 16:49:08 +01:00
Zefram
6a4cb16392 Fix mesecon control of forcefield
The code formerly attempted to make the forcefield emitter controlled
both manually and by (inverted) mesecon signal, but the two interfered
with each other.  In particular, a newly-placed emitted would be
informed that it was getting no mesecon signal, and would therefore
enable itself.  Fix this by adding explicit modes for how the emitter
will respond to mesecon signals: ignore them, obey them positively,
or obey them negatively.

The manual control could have been incorporated into this mode setting
by having two "ignore mesecon" modes: always-enabled and always-disabled.
But it seems more useful to have a separate manual master switch, so that
the emitter can be manually disabled without losing the mesecon mode.
So it is now implemented that way.
2014-07-23 16:49:08 +01:00
Vanessa Ezekowitz
2d9e06c479 actually make the reactor core melt down when it should
(turns into a lava source, boils away the surrounding water)
2014-07-23 11:08:11 -04:00
Vanessa Ezekowitz
29c7ff5228 don't attempt to force-load blocks if they're already loaded. 2014-07-23 10:00:13 -04:00
ShadowNinja
14b30bfd0d Clean up constructor 2014-07-21 01:52:13 -04:00
ShadowNinja
7d5edcf23e Remove swap_node compatability code 2014-07-21 00:40:53 -04:00
ShadowNinja
87fc21443c Add hack for uninitialized players in flashlight 2014-07-21 00:14:55 -04:00
ShadowNinja
37c06a9110 log_mod -> log_mods and get setting as boolean 2014-07-21 00:13:45 -04:00
ShadowNinja
22a4bcf80d Remove mods that aren't strictly required from depends.txt 2014-07-20 23:49:38 -04:00
goblin
6ec12b51cb also return buckets with generators
... and in the `smelt_item` function, even though it seems unused
2014-07-19 00:18:44 +01:00
goblin
9290e6f00d coal alloy furnace to return the buckets 2014-07-18 17:08:05 +01:00
Zefram
69487e530b Fix drill recipe
It was attempting to get the copper ingot from the wrong mod.
2014-07-14 15:19:02 +02:00
Novatux
efd5ff644c Fix supply converter again 2014-07-14 11:16:37 +02:00
Novatux
7065ba9155 Fix problem with supply converter producing energy 2014-07-13 14:15:10 +02:00
Novatux
1af6313c69 Fix crash with supply converter 2014-07-12 18:22:52 +02:00
Novatux
1c617f2c5e Make unconnected generators burn the fuel they still have. 2014-07-12 09:50:50 +02:00
Novatux
563a4c071d Make switching station run all machines it is connected to, including those in unloaded blocks. 2014-07-11 11:00:46 +02:00
Zefram
871ded6e6a Increase prospector's charge capacity
The low capacity of the prospector turned out to be annoying, while the
other limitations do not substantially detract from fun.  Also adjust
recipe to include a blue energy crystal, to explain the source of the
charge capacity.
2014-07-10 08:56:48 +02:00
Novatux
83e9cab3ad Better ingot textures 2014-07-09 19:03:22 +02:00
Zefram
78128fd49a Tweak energy crystal recipes
Use silver instead of gold in the recipe for the red energy crystal,
and mithril instead of gold in the recipe for the blue energy crystal.
This provides more appreciable steps in the expense of the upgrades,
which were too similar, and in particular makes the blue energy crystal
less ridiculously cheap.
2014-07-09 09:17:44 +02:00
Zefram
5e4a87b925 Rework some recipes to use more varied ingredients 2014-07-09 09:17:44 +02:00
Zefram
5e7c47a619 Exclude technic:nothing from creative inventory 2014-07-09 09:17:44 +02:00
Zefram
5ec2d10dbc Vary cable insulation type with tier
LV cables are now paper-insulated, rather than uninsulated (which made
no sense).  MV cables are rubber-insulated as before.  HV cables are now
plastic-insulated (which they already visually appeared to be).  MV and
HV cables are still crafted by adding insulation onto lower-tier cable,
rather than by insulating raw copper; this matches the way machines are
upgraded between tiers rather than crafted afresh.
2014-07-09 09:17:44 +02:00
Zefram
f7819b4cb8 Remove duplicate cable textures
Some of the technicx32 cable textures were just duplicates of the
standard-resolution textures.
2014-07-09 09:17:44 +02:00
Zefram
3f717cbb9e Fine gold and silver wire items
Not used in any recipes yet.
2014-07-09 09:17:44 +02:00
Zefram
4958a77e21 Tweak supply converter recipe
The casing is now in the center of the grid, as it is for all other
machines.
2014-07-09 09:17:44 +02:00
Zefram
68ea0acbd0 Consistently use cable in electric machine recipes
All electric machine recipes now include cable of the appropriate tier
as the bottom-middle ingredient, immediately below the casing ingredient.
Many LV machines were using a copper ingot in that location.
2014-07-09 09:17:43 +02:00
Zefram
e8a5a6652d Use machine casing in most machine recipes 2014-07-09 09:17:43 +02:00
Zefram
430b310eb4 Machine casing item
The casing is intended to be an ingredient in craft recipes for machines.
It isn't actually used in any recipes yet.  Although mainly a craft
item, it is defined as a node type, mainly to get an appropriately cubic
inventory image.  It is incidentally possible to place it as a node:
this makes some sense, although the empty machine casing isn't actually
useful as a node.
2014-07-09 09:17:43 +02:00
Zefram
636b0f20df Handheld prospecting tool
The new tool will say whether a target block type is present in a
specified region, to allow for more targeted digging.  It is deliberately
quite weak, with several limitations: only stores enough charge for a
small number of shots; target can only be set by pointing at an example
node; range is limited; accuracy is less than 100%.  Some of these
limitations should probably be ameliorated, but not entirely eliminated,
in the future when we have a better idea of game balance.

The inventory image is only a placeholder.
2014-07-07 15:15:05 +02:00
Zefram
611c7760eb Fix fuel-fired alloy furnace
Commit ee0765804c broke the fuel-fired alloy
furnace, by removing the definition of its formspec that it requires to
set up the form upon construction.
2014-07-07 15:15:05 +02:00
Zefram
e5cc3359e0 Fix craft guide for alloy cooking et al
A typo in commit d55ecc39f9 made recipes
for alloy cooking, compressing, and all other craft types sharing that
machine code, to be shown with three ingredient slots instead of the
correct one or two.
2014-07-07 15:15:05 +02:00
Zefram
ad157d1b8f Fix brass alloying recipe
Commit d55ecc39f9 introduced a bogus
reference to "technic:copper_ingot".
2014-07-07 15:15:05 +02:00