(e.g. if there's room for 50 of some item, and you send a stack of 99,
50 are added to the chest and a stack of 49 is rejected and sent
on to the next destination)
Copy the textures made by RealBadAngel (under WTFPL) from unified inventory to technic to avoid minetest not finding them when unified inventory is not installed.
technic_chests was depending on the technic mod, for the top-level
"technic" table and the technic.swap_node function. Resolve that by
sharing the top-level table and inlining the one use of the function.
It was also depending on technic_worldgen, for the definitions of
cast iron and wrought iron. Make the use of cast iron conditional on
technic_worldgen, falling back to default "steel". Change the use of
wrought iron to directly use default "steel", to which it is aliased
anyway.
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.
Due to concerns about form appearance, reduce mithril chest size to avoid
its form exceeding screen height. This reduces it to the same size as
the gold chest. Having two chest types of the same size looks silly now,
but will be reasonable as soon as mithril chests get their long-planned
special features.
Make the inventory sizes of all the technic chests larger, to provide
a more appreciable benefit from upgrading chests, more in keeping with
the resources spent on the upgrades.
Currently the game engine doesn't handle large forms well. The size
of an inventory slot is fixed relative to the screen height, and a
form that exceeds either screen dimension will extend off the screen,
making parts of it inaccessible. The tallest a form can get and remain
usable is 13 slots, and even that slightly overspills the screen height.
The maximum usable width depends on the screen aspect ratio. For the
narrowest common ratio, 5:4, the widest a form can usably get is 15 slots,
again slightly overspilling. Combined with the layout of the chest forms,
this implies a maximum practical chest inventory size of 15x7 (= 105),
slightly smaller than the largest Minecraft chests.
To provide roughly equal size steps in the five upgrades from wooden
chest (staying at 8x4 = 32) to mithril chest, the steps need to be of
about 15 slots instead of the former 4. The new sizes are:
wooden 8x4 32
iron 9x5 45
copper 12x5 60
silver 12x6 72
gold 15x6 90
mithril 15x7 105
To make upgrading from the old chest sizes to the new sizes more
convenient, the inventory size is now set not only upon chest construction
but also when accepting form input, at the same time as rewriting
the formspec. So after upgrading the technic mod, viewing an existing
chest upgrades it to the new size. The first time a pre-existing chest
is viewed its form will have the old dimensions, looking broken due
to the inventory background image now having the new number of slots.
The second time it is viewed the form will have the new dimensions,
and the full new number of slots will be usable.
All the chests added by technic specify their material in their
description, so the description "Chest" for the default chest looks
ambiguous. Rename it to seamlessly fit into the range of chest types.
Override the default mod's iron/steel substance, replacing it with three
metals: wrought iron (pure iron), carbon steel (iron alloyed with a little
carbon), and cast iron (iron alloyed with lots of carbon). Wrought iron
is easiest to refine, then cast iron, and carbon steel the most difficult,
matching the historical progression. Recipes that used default steel are
changed to use one of the three, the choice of alloy for each application
being both somewhat realistic and also matching up with game progression.
The default:steel{_ingot,block} items are identified specifically with
wrought iron. This makes the default refining recipes work appropriately.
Iron-using recipes defined outside technic are thus necessarily
reinterpreted to use wrought iron, which is mostly appropriate.
Some objects are renamed accordingly.
Rather than use the default steel textures for wrought iron, with technic
providing textures for the other two, technic now provides textures for
all three metals. This avoids problems that would occur with texture
packs that provide default_steel_{ingot,block} textures that are not
intended to support this wrought-iron/carbon-steel/cast-iron distinction.
A texture pack can provide a distinct set of three textures specifically
for the situation where this distinction is required.
Incidentally make grinding and alloy cooking recipes work correctly when
ingredients are specified by alias.
All log messages about moving stuff in/into/from chests described them
as "locked", whether the chests are locked or not. Remove that word,
so the messages make no claim about lockedness.