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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Where possible (which it currently is for the gold chest), don't break
the centering of the player inventory in the chest formspec because
of the color buttons. Where the color buttons don't fit next to a
perfectly centered player inventory (which doesn't currently occur for
any technic chest), move the player inventory only as much as necessary
to accommodate the color buttons.
Re-register most aspects of default:chest and default:chest_locked,
using the technic chests code, so that the wooden chests fit properly
into the sequence of chest types. This mainly affects the formspec,
which now uses the style of the other chests, rather than the bare style
used by the default mod.
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.
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.
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.
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.
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.
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.
Commit ee0765804c0a21deeb2f33c22ac1a36cb0db5f43 broke the fuel-fired alloy
furnace, by removing the definition of its formspec that it requires to
set up the form upon construction.
A typo in commit d55ecc39f954b33c17ae9a1da4aeff6382fcb790 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.