Commit Graph

145 Commits

Author SHA1 Message Date
ShadowNinja 83c6494166 Use connected nodeboxes for cables 2016-03-20 00:02:33 -04:00
ThatGraemeGuy a529baba47 Machines should become inactive when output slots are full 2015-07-12 20:43:01 +02:00
est31 d732c8dfbd Add listring functionality
Add shift-click functionality
2015-06-18 04:09:27 +02:00
ShadowNinja e393617fa1 Fix undefined global warning 2015-04-26 18:17:04 -04:00
est31 1615681e89 Fix autoloading for solar arrays
This autoloads the node above a solar array, so that its light value can be determined.
Previously, solar arrays in unloaded blocks would report an input of 0 to the switching station.
2015-03-23 03:41:03 +01:00
est31 6b800758fb Rename technic.cables and make it private
Give it a more descriptive name.
Previous use outside cables.lua isn't neccessary and gets removed.
2015-03-22 19:35:50 +01:00
Novatux 8b16fc1176 Add lead block, and lead & sulfur dusts 2015-03-08 13:32:59 +01:00
Jay Arndt 0113975160 Fix detection of if the machine should call pipeworks.after_place
The tube variable in these contexts always evaluates to a true value.
data.tube is the variable that indicates if pipeworks needs to be notified.
2015-03-07 21:44:42 -05:00
Jay Arndt c8cbd261ee Drop upgrade items in the after_dig_node handler instead of can_dig
This fixes an item duplication bug triggered by using a screwdriver on an upgraded machine
2015-03-07 21:44:42 -05:00
est31 4b179821d3 Get rid of technic.format 2015-02-13 21:13:17 +01:00
Vanessa Ezekowitz 5ac93cccc9 simplify pipeworks tube detect
deMorgan's axiom, which I suck at using :P
2015-02-07 12:42:18 -05:00
Vanessa Ezekowitz bccefd6997 fix other machines, battery boxes, etc to work with tube routing. 2015-02-07 03:47:53 -05:00
Tim 48e02b8452 drop upgrade list items if dug (but protect other inventories) 2015-02-06 08:35:42 +01:00
Tim a13e7b7ed1 add the option for publicly shared machines via an upgrade item "default:chest
the upgrade slots remain protected

this replaces the need for a few forks and also resolves #131 in the process, which is obsolete now
2015-02-06 07:54:29 +01:00
Tim 96788677bb clean up upgrade handling a bit and only allow setting known upgrades 2015-02-05 17:27:28 +01:00
Tim 6ef3438832 limit the upgrade slot to one item per slot, as more are ignored anyway 2015-02-05 16:09:16 +01:00
est31 d9bf9830b0 Better number formating
Is it 120000 or 1200000?
2015-01-31 01:29:16 -05:00
Vanessa Ezekowitz 0c3f55e0c9 fix cobble and gravel grinder recipes 2015-01-30 14:29:50 -05:00
Tim 6dd7ffc455 move from recipe defusion to recipe deactivation to avoid confusion 2015-01-30 20:15:15 +01:00
Tim b9173be3b8 remove unnecessary definition fields 2015-01-30 17:47:04 +01:00
Tim 91fceece18 tune latex->rubber alloy recipe based on wikipedia data pointed out by @est31 2015-01-30 17:41:05 +01:00
Tim f330d58354 redfine latex->rubber path via alloy furnace
latex is being refined to rubber by drying and adding carbon pigments to strengthen the material
(which also turns it black)
it should not yield more rubber than its latex input, but it may be processed faster than ores
2015-01-30 05:16:49 +01:00
Tim 56e96b2593 add sawdust and tree/wood grindings with arcacia tree for dye and provide a better alternative rubbertree->latex path that yields the same as the tree tap, but requires more machine work
yet without textures
2015-01-30 05:16:41 +01:00
Tim a8c097bcd9 tweak sandstone/sand recipes to a more efficent compressing 2 sand -> sandstone and grinding sandstone -> 2 sand ratio; make sure the default recipes are defused 2015-01-30 05:09:21 +01:00
Tim 3cc568ddbd defuse by fake_fire added recipes, make people use the grinder for those 2015-01-30 05:09:21 +01:00
Tim 9d3f7304fb add a sandstone compression recipe back in place of the default recipe, without leading to an infinite sand/sandstone generation which lead to its removal in c0a1739 in the first place 2015-01-30 05:09:21 +01:00
Tim 9087abcde0 add centrifuge recipe for wheat 2015-01-30 05:09:21 +01:00
Tim 00f61dfb81 rewrite extractor dye recipes, adding a few dyes and making it work better with the dye mod
also preventing any issues if it is being run in a game without it
2015-01-30 05:09:20 +01:00
Tim a8b711a7f4 allow grinding wheatseeds to flour, closes #173 2015-01-30 05:09:20 +01:00
Tim 3252da05d1 use the timers, that are allready running instead of allocating a new one every tick 2015-01-27 19:02:33 +01: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
ShadowNinja 5382a88aef Fix some global errors 2014-12-15 17:47:07 -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
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 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 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 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
Novatux baf7f61665 Compatibility with latest pipeworks 2014-08-14 21:29:56 +02:00
Zefram 38e85e9775 Manual section on uranium enrichment 2014-08-13 02:45:44 +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 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 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
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
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 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
Novatux d55ecc39f9 Change the recipe code to be able to handle recipes with more than one input, and use it for the alloy furnace.
Reorganize the init.lua files.
2014-07-03 15:57:39 +02:00
Novatux 5f2d09b8a9 Fix machine description 2014-07-03 08:17:20 +02:00
Novatux c0a17396bf Add MV version of compressor too, remove infinite sand-producing compressor recipe. 2014-07-02 22:45:46 +02:00
Novatux aa8af0c871 Refactor a lot of code: make only one registration function for grinder, extractor and electric furnace (compressor will follow soon) 2014-07-02 22:24:38 +02:00
Novatux 2a23587445 Add registration code for extractor 2014-07-02 19:43:13 +02:00
Zefram 7c4b7046cc Rationalise machine terminology
All electrically-powered machines now consistently indicate their
tier (supply voltage) in their names.  As this implies that they are
electrically powered, the furnaces no longer have "Electric" in their
names.  The fuel-fired equivalents of electric machines, which exist
for alloy furnace and furnace, now say "Fuel-Fired" to distinguish them.
(The fuel-fired alloy furnace used to say "Coal", which was inaccurate
because it uses any fuel.  The fuel-fired furnace, from the default mod,
used to just be called "Furnace", which is ambiguous.)

Electric power generators now consistently indicate their tier and have
the word "Generator" in their names.  This makes their purpose much
clearer, and makes obvious craft guide searches produce useful results.
The fuel-fired generators, previously just (ambiguously) called
"Generator", are now explicitly "Fuel-Fired".
2014-06-21 01:21:52 +02:00
Zefram 23603e7f41 Full glooptest support
To support the glooptest mod (successor of gloopores), define the
gloopores lump->dust grinding recipes if either of the mods is available.
(Formerly only "gloopores" was supported.)  Define kalite dust item,
which was previously missing.  Make gloop ingots grindable to dust as the
non-gloop ingots already are; incidentally refactor this to automatically
make ingots grindable whenever the ingot can be made by cooking dust.
Add textures for all the gloop dusts.  Do the "Steel"->"Iron" renaming
for glooptest-defined tools and items.
2014-06-21 01:19:26 +02:00
Zefram 29429f636e Only make gloop dusts if gloopores is present 2014-05-24 00:23:48 +02:00
Zefram a5fc7ac41e Make stainless steel ingot grindable to dust
Consistent with all the other ingot/dust pairs.
2014-05-24 00:22:11 +02:00
Novatux 6a08071d86 Upgrades to battery boxes too, prevent frames from moving too often (one move every second max) 2014-05-23 19:58:41 +02:00
Zefram 68b7bcc28e split default iron/steel into three metals
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.
2014-05-22 20:57:50 +02:00
Novatux b204090acc Fix errors when trying to charge buckets of water. 2014-05-18 14:47:05 +02:00
RealBadAngel c7a4c05860 Fix invalid check for UI. 2014-05-06 22:11:04 +02:00
Zefram 00d7c9bdea Refill behaviour for power tools and cans
Supply the on_refill hook for power tools and cans, to perform appropriate
charging.  This is to be used by unified_inventory's creative-mode
refill slot.
2014-04-30 10:49:54 +01:00
Zefram 9b64ffea8c Register craft types with unified_inventory 2014-04-30 00:22:48 +01:00
Zefram 99fd5dfee5 Genericise handling of multiple meanings of wear
The tool workshop is meant to repair mechanical damage to tools, so
is at risk of `repairing' tools that use the wear bar to represent
something other than mechanical wear.  It had special-case recognition
of the water and lava cans, which use the wear bar to represent how much
content they're carrying, and wouldn't repair them.  But it didn't avoid
`repairing' RE chargeable items, which use the wear bar to represent
how much energy they have stored.  It would modify the wear bar without
actually affecting the charge, so the wear bar would jump back to the
correct place when the next charging or discharging event occurred.

To genericise, introduce a new item property, "wear_represents", which
indicates how the wear bar is used for this item.  Currently defined
values are "mechanical_wear" (straightforward damage to tools that
start out perfect), "technic_RE_charge" (electrical energy, canonically
represented in the meta rather than the wear bar), and "content_level"
(how full a container is).  For backcompat, nil is interpreted as
"mechanical_wear".  The tool workshop will only repair "mechanical_wear"
tools.  As a bonus, set_RE_wear() will only set the wear bar for
"technic_RE_charge" items: this means developers will notice if they
forget to declare wear_represents, but also means that with no further
changes it's possible to have an RE chargeable item that uses its wear
bar to represent something else.
2014-04-30 00:21:55 +01:00
Zefram f504178421 Fix drops for active machines
Active machine nodes need to drop their inactive counterpart.  Some were
missing that declaration.
2014-04-27 14:43:00 -04:00
RealBadAngel 18cae761af The code to connect an electrical machine to cables would only consider
the first-seen tier for which the machine was registered.  So the
switching station, which is uniquely registered for all tiers, would
only visually connect to LV cable when placed, not to MV or HV cable.
(It would function nevertheless, and cable would connect to the switching
station if placed later.)  Change to consider all tiers.  Incidentally
avoid a gratuitous iteration through all registered machines.
2014-04-27 15:57:11 +02:00
Xanthin 39c41a06f4 Add german translations for all mods 2014-04-22 16:30:27 -04:00
Bryant Mairs 1b7fa38082 Reduce the charge stored by each type of crystal. 2014-03-30 17:40:54 -04:00
ShadowNinja 2df417feb7 Localize generator fuel 2013-12-23 16:38:05 -05:00
ShadowNinja c5d287f5f5 Make tube sending faster 2013-12-17 14:37:02 -05:00
ShadowNinja 5cf765b2f1 Localize most variables 2013-12-17 13:56:37 -05:00
Vanessa Ezekowitz 8ef3f20c3c adapt to changes in Pipeworks API 2013-12-15 15:03:41 -05:00
ShadowNinja f3d8b47b20 Add support for minetest.swap_node 2013-12-10 20:14:39 -05:00
ShadowNinja 47b0b59884 Generators don't send items 2013-12-03 15:30:09 -05:00
SmallJoker 7a3cd49597 Add pipeworks support to generators 2013-12-03 11:22:48 -05:00
ShadowNinja a35db449b3 Fix generators 2013-11-27 16:56:09 -05:00
ShadowNinja 354ee6f313 Add missing translations 2013-11-27 16:18:52 -05:00
ShadowNinja 0809dd747e Externalize common functions and protect inventories 2013-11-27 12:28:56 -05:00
ShadowNinja 76a8acbe5b Use upvalues in registrations 2013-11-26 16:53:52 -05:00
ShadowNinja 08db41ee4d Don't allow tubing items into LV machines 2013-11-26 16:33:27 -05:00
Novatux 6d31965b36 Fix bug with translations. 2013-11-11 15:37:30 +01:00
ShadowNinja be2f30a1a2 Add support for translations via intllib 2013-10-30 13:48:39 -04:00
ShadowNinja 9aee83f921 Fix generator nodemane 2013-10-28 14:37:40 -04:00
pagliaccio 704925aa7b Add MV and HV generators and make coal dust a fuel 2013-10-27 14:39:44 -04:00
Novatux 76879424ae Add crafts for frames and templates. 2013-10-26 09:13:55 +02:00
ShadowNinja eac4844175 Fix negative tool discharging and a few other tweaks...
Disable the flashlight by default.
Use itemstack:{get,set}_{metadata,name,wear,...} rather than {to,from}_table.
Improve the style of part of the code of mischelaneous tools
2013-10-18 22:28:32 -04:00
Novatux 12d29c2139 Forgot to update on cable add/destroy+use minetest.hash_node_position because else it did not work. 2013-10-04 10:49:06 -04:00
Novatux f4ac2b8c1e Make power distribution more efficient.
Conflicts:
	technic/machines/register/cables.lua
2013-10-04 10:48:39 -04:00
ShadowNinja bd3cc74d05 Don't consume items or drain power when there isn't room for the results 2013-09-24 17:09:20 -04:00
ShadowNinja ee0765804c Partial rewrite 2013-09-17 16:37:56 -04:00