Changed power distribution method and streamlined the various existing machines.

An electrical network now requires a switching station to work. This statin is the one
resolving the network collecting power and distributing it again.
Added up/down converter. It is kind of finished. It can be updated with a slot for an upgrade
but so far it works without by resolving the types of wires above and below the box.
Tool and machine registering changed to use a table with key+value instead of the iterative method it used to have.
The power radiator changed to be able to send up to 3000MV EUs in a radius of 6.

This update will most likely require existing networks to be dug up and placed again. Also the
switching station must be added.
This commit is contained in:
kpoppel
2013-07-02 00:03:36 +02:00
parent 37d9d94c44
commit ee5c6c23fa
33 changed files with 3589 additions and 3172 deletions

View File

@ -4,7 +4,13 @@
technic = {}
modpath=minetest.get_modpath("technic")
technic.dprint = function(string)
if technic.DBG == 1 then
print(string)
end
end
local modpath=minetest.get_modpath("technic")
--Read technic config file
dofile(modpath.."/config.lua")
@ -14,19 +20,26 @@ dofile(modpath.."/helpers.lua")
--items
dofile(modpath.."/items.lua")
-- Register functions
dofile(modpath.."/register_machine_and_tool.lua")
dofile(modpath.."/alloy_furnaces_commons.lua") -- Idea: Let the LV, MV, HV version of the furnace support different alloys
-- Switching station LV,MV,HV
dofile(modpath.."/switching_station.lua")
dofile(modpath.."/supply_converter.lua")
--LV machines
dofile(modpath.."/wires.lua")
dofile(modpath.."/battery_box.lua")
dofile(modpath.."/alloy_furnaces_commons.lua")
dofile(modpath.."/alloy_furnace.lua")
dofile(modpath.."/solar_panel.lua")
dofile(modpath.."/solar_array_lv.lua")
dofile(modpath.."/geothermal.lua")
dofile(modpath.."/water_mill.lua")
dofile(modpath.."/generator.lua")
dofile(modpath.."/electric_furnace.lua")
dofile(modpath.."/tool_workshop.lua")
dofile(modpath.."/music_player.lua")
dofile(modpath.."/generator.lua")
dofile(modpath.."/grinder.lua")
dofile(modpath.."/cnc.lua")
dofile(modpath.."/cnc_api.lua")
@ -36,20 +49,18 @@ dofile(modpath.."/cnc_nodes.lua")
dofile(modpath.."/wires_mv.lua")
dofile(modpath.."/battery_box_mv.lua")
dofile(modpath.."/solar_array_mv.lua")
dofile(modpath.."/down_converter_mv.lua")
dofile(modpath.."/electric_furnace_mv.lua")
dofile(modpath.."/alloy_furnace_mv.lua")
dofile(modpath.."/forcefield.lua")
-- These two are a concept study: Supplying appliances with inductive coupled power:
-- lighting and associated textures is taken directly from VanessaE's homedecor and made electric.
--dofile(modpath.."/forcefield.lua")
---- The power radiator supplies appliances with inductive coupled power:
---- lighting and associated textures is taken directly from VanessaE's homedecor and made electric.
dofile(modpath.."/power_radiator.lua")
dofile(modpath.."/lighting.lua")
--HV machines
--
----HV machines
dofile(modpath.."/wires_hv.lua")
dofile(modpath.."/battery_box_hv.lua")
dofile(modpath.."/solar_array_hv.lua")
dofile(modpath.."/down_converter_hv.lua")
--Tools
if technic.config:getBool("enable_mining_drill") then dofile(modpath.."/mining_drill.lua") end
@ -59,8 +70,8 @@ dofile(modpath.."/cans.lua")
dofile(modpath.."/chainsaw.lua")
dofile(modpath.."/tree_tap.lua")
dofile(modpath.."/sonic_screwdriver.lua")
-- mesecons and tubes related
--
---- mesecons and tubes related
dofile(modpath.."/injector.lua")
dofile(modpath.."/node_breaker.lua")
dofile(modpath.."/deployer.lua")
@ -68,24 +79,23 @@ dofile(modpath.."/constructor.lua")
dofile(modpath.."/frames.lua")
function has_locked_chest_privilege(meta, player)
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
if player:get_player_name() ~= meta:get_string("owner") then
return false
end
return true
end
-- Swap nodes out. Return the node name.
function hacky_swap_node(pos,name)
local node = minetest.env:get_node(pos)
local meta = minetest.env:get_meta(pos)
local meta0 = meta:to_table()
if node.name == name then
return nil
end
node.name = name
local meta0 = meta:to_table()
minetest.env:set_node(pos,node)
meta = minetest.env:get_meta(pos)
meta:from_table(meta0)
return 1
local node = minetest.env:get_node(pos)
if node.name ~= name then
local meta = minetest.env:get_meta(pos)
local meta0 = meta:to_table()
node.name = name
minetest.env:set_node(pos,node)
meta = minetest.env:get_meta(pos)
meta:from_table(meta0)
end
return node.name
end