Commit Graph

258 Commits

Author SHA1 Message Date
Carter Kolwey c4acb7225a Don't require a full network recalculation to add or remove a dead end
A dead end (node with only one connection) can be simply added or removed from the network without needing to traverse the whole thing.
2017-03-11 00:57:52 -06:00
Vanessa Ezekowitz 343c7946d9 power monitor changes
New textures, uses facedir, connects from the back as well.
2017-03-10 14:15:38 -05:00
Carter Kolwey 088eea1e3b Fixes for network calculation issues
This fixes several issues:
* More than one switching station could become active on large networks
 - Switching stations now semi-permanently become disabled if another is present
 - Power monitors have been added to replace the function of "slave" switching stations, to discourage overuse of switching stations
* Networks did not reliably "split" when cutting a cable
 - I "may" have caused this issue, but I believe it is solved by this
* Machines did not run without a player near the switching station
 - Active switching stations now forceload themselves, and free the forceloaded block if disabled, dug, or disconnected
 - Machines are only loaded to run them (as before), so only one mapblock (or two if the bottom edge of the switching station is a mapblock boundary) is loaded
 - Cables are still only loaded during a full network recalculation
2017-03-10 01:35:58 -06:00
Diego Martínez 186f9b70ac Temporary fix for crash in constructor. 2017-03-06 23:02:39 -03:00
Vanessa Ezekowitz 32b6ca9816 Merge pull request #298 from t4im/fix/quarry_loops
Mitigate server freezes due to item-transportation loops with quarries.
2017-03-06 14:11:40 -05:00
Vanessa Ezekowitz 314d8c6c23 Merge pull request #288 from numberZero/control-supply_converter
Supply converter control
2017-03-06 14:07:12 -05:00
Vanessa Ezekowitz ff6675ef28 Merge pull request #315 from cheapie/master
Only update the associated network(s) when placing/digging nodes
2017-03-06 00:35:44 -05:00
Carter Kolwey d3f40e0fd0 Only update the associated network(s) when placing/digging nodes 2017-03-05 04:09:23 -06:00
Vanessa Ezekowitz fd609d0f7b lower the cap on water mill to 1575 EU
2250 is just too much
2017-03-02 19:06:40 -05:00
Carter Kolwey dab5fa7105 Grind gravel into sand 2017-02-27 18:03:39 -06:00
Carter Kolwey 5e19514c60 Add dirt recipe to centrifuge
4 dirt -> 2 clay lumps, 1 sand, 1 gravel
2017-02-27 17:58:43 -06:00
Carter Kolwey 0139eab9a2 Rework dirt crafting
Dirt is now crafted from stone dust, leaves, water, and sand, instead of by grinding gravel. Stone dust can be obtained by grinding stone or sand.
2017-02-27 17:51:33 -06:00
Vanessa Ezekowitz 1f49ef973d cap water mill output at `max_output` and 100% :P 2017-02-26 15:16:41 -05:00
Vanessa Ezekowitz 4888581bee Make hydro generators sense the water flow volume around them
Water flow around a gen is shown more or less directly by the water's
param2, range 0 to 15, so four sides could total 60.  Cap the result to 45
so that three sides' worth of full flow (or four sides at reduced flow) still
registers as "100%", and raise the maximum outpu to 2250 EU.
2017-02-21 13:36:58 -05:00
Vanessa Ezekowitz 8cab1a0aec don't allow standing water to power a gen,
and add support for default flowing river water
2017-02-21 13:21:23 -05:00
ShadowNinja 06dec20326 Add longer-term radiation damage
Radiation now slowly damages you for a while after exposure,
with the effect's time and intensity proportional to the
amount of radiation received.  The radioactivity of some
items is reduced to account for the increased damage.
2017-01-28 17:51:14 -05:00
ShadowNinja 1da213a5e4 Split radiation from nuclear reactor code 2017-01-28 17:51:14 -05:00
ShadowNinja 26de2f7c88 Tweak radioactivity
This simplifies radioactivity by removing the 1000 and 0.25 multipliers.
It also increases the effectiveness of protection (I think it was too low
before -- most of the advantage of adding protective layers was just from
the increased distance).
2017-01-28 17:51:14 -05:00
ShadowNinja 8ccb6d97ec Switch nuclear reactor to a lead shield
The reactor originaly used a stainless steel shield only
because lead wasn't yet available.  Stainless steel shields
are automatically converted to lead shields for legacy reasons.
2017-01-28 17:51:14 -05:00
Tim d39797aad8 Handle CONTENT_IGNORE when checking windmill conditions.
Windmills always span more than one mapblock, so even with a switching station next to the generators, they will stop working if unloaded due to the windmill check failing to handle CONTENT_IGNORE of the frames at the foot of the windmill, unless a second switching station would be placed there.

The commit assumes, that a user has to load a block to modify it, and thus unloaded blocks to have the same windmill frame state as before.
This also makes technic_run for windmills a little faster by being able to skip some unnecessary node lookups and generally avoiding creation of 20 tables per windmill per step.
2016-11-17 11:59:48 -05:00
raymoo 63efc395cd fix node dupe exploit in frames
You can dupe nodes by placing them on a frame, because the on_rightclick wouldn't return the new itemstack.
2016-10-14 05:41:31 -03:00
Tim 428b1b8709 Mitigate several forms of quarry-placement leading to item-transportation loops, that eventually cause server freezes.
As a nice side effect, items are not gonna be unnecessarily received by the quarry anymore, if another tube is available for transport.
2016-10-09 17:46:06 +02:00
number Zero 03df68461a Power control added 2016-07-24 00:38:29 +03:00
number Zero e8ac23e111 Supply converter now has control panel 2016-07-24 00:34:20 +03:00
tenplus1 322615542e Fix item drop when digging mv furnace
Fixed crash when digging mv furnace
2016-05-12 23:59:16 +02:00
ShadowNinja 097d033585 Fix radiation damage 2016-03-20 22:38:30 -04:00
ShadowNinja 85a984982c Cleanup
Changes:
  * Make rayIter a global utility, and use it for radiation too.
  * prettynum -> pretty_num and cleanup.
  * Remove resolve_name/function_exists (unused).
  * Cleanup nuclear reactor code.
2016-03-20 00:02:33 -04:00
ShadowNinja 83c6494166 Use connected nodeboxes for cables 2016-03-20 00:02:33 -04:00
RealBadAngel c5127f4b1b Fix code style (useless or) 2015-11-28 08:31:27 +01:00
RealBadAngel 8ef83e8f7e Fix corium greifing disabling not working. 2015-11-14 11:29:16 +01:00
est31 54b6d9976c CNC: re-add player inventory to formspec
Fix regression of commit

d732c8dfbd - "Add listring functionality"

by @est31 (me xD).
2015-09-12 08:04:07 +02:00
Vanessa Ezekowitz e7d06b33d1 fix missing radiation resistance for lead block 2015-09-12 01:34:57 -04:00
Vanessa Ezekowitz 1b1780946e add facedir to tool workshop 2015-09-12 01:18:16 -04:00
ThatGraemeGuy a529baba47 Machines should become inactive when output slots are full 2015-07-12 20:43:01 +02:00
est31 a793747d92 Move coal furnaces to other/
They don't use power, move them to where they belong.
2015-06-18 04:16:47 +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
ShadowNinja 35b0f068af Fix grinder name in recipe 2015-04-26 18:00:20 -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
Tim 137695ea67 allow activation/deactivation of frames/templates by config
have them deactivated by default due to a larger collection of associated issues
including but not limited to
* #170
* #216
* item duplication involving templates
* runaway machines
* traversal loop issues with huge machines leading to lag-outs
2015-03-16 18:58:41 -04:00
Vanessa Ezekowitz b00e942824 don't run the damage ABM if damage is disabled on the server. 2015-03-15 18:21:28 -04:00
Vanessa Ezekowitz cf75916ea7 Add spheres to the CNC machine
Note: this required renaming the base node name for the oblate spheroid
object, which previously had been named simply "sphere".  The result is
that all such nodes in an old world will change to actual spheres.

Since this includes a formspec change, machines will have to be dug and
re-placed to get the new program button to show up, and/or if the image
on the Oblate Spheroid button shows wrongly.
2015-03-12 00:02:23 -04: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
Tim c6464d3ebe label the switching station abm for profiling purposes
this allows the mtt profiler to profile this abm individually from other abms since t4im/mtt@48eff13
2015-02-28 00:47:15 +01:00
est31 4b179821d3 Get rid of technic.format 2015-02-13 21:13:17 +01:00
Tim 7ed1aa9398 correct injector inventory handling by tubes 2015-02-11 03:15:34 +01:00
Tim ce40d1cfb8 add group tubedevice_receiver to injector to fix the issue of it acting more like a tube than an inventory
it sent the items into all directions, when being injected into, instead of entering the injector as it used to
2015-02-08 12:27:10 +01:00