diff options
Diffstat (limited to 'technic/machines')
-rw-r--r-- | technic/machines/HV/forcefield.lua | 11 | ||||
-rw-r--r-- | technic/machines/HV/quarry.lua | 5 | ||||
-rw-r--r-- | technic/machines/MV/freezer.lua | 12 | ||||
-rw-r--r-- | technic/machines/MV/hydro_turbine.lua | 2 | ||||
-rw-r--r-- | technic/machines/MV/init.lua | 2 | ||||
-rw-r--r-- | technic/machines/register/freezer.lua | 9 | ||||
-rw-r--r-- | technic/machines/register/freezer_recipes.lua | 21 | ||||
-rw-r--r-- | technic/machines/register/grinder_recipes.lua | 2 | ||||
-rw-r--r-- | technic/machines/register/init.lua | 2 |
9 files changed, 56 insertions, 10 deletions
diff --git a/technic/machines/HV/forcefield.lua b/technic/machines/HV/forcefield.lua index 230c8b0..7395284 100644 --- a/technic/machines/HV/forcefield.lua +++ b/technic/machines/HV/forcefield.lua @@ -42,7 +42,7 @@ end) -- | | -- \___/\___/ -local function update_forcefield(pos, meta, active, first) +local function update_forcefield(pos, meta, active) local shape = meta:get_int("shape") local range = meta:get_int("range") local vm = VoxelManip() @@ -86,11 +86,6 @@ local function update_forcefield(pos, meta, active, first) vm:set_data(data) vm:update_liquids() vm:write_to_map() - -- update_map is very slow, but if we don't call it we'll - -- get phantom blocks on the client. - if not active or first then - vm:update_map() - end end local function set_forcefield_formspec(meta) @@ -273,13 +268,11 @@ local function run(pos, node) technic.swap_node(pos, "technic:forcefield_emitter_off") end elseif eu_input >= power_requirement then - local first = false if node.name == "technic:forcefield_emitter_off" then - first = true technic.swap_node(pos, "technic:forcefield_emitter_on") meta:set_string("infotext", S("%s Active"):format(machine_name)) end - update_forcefield(pos, meta, true, first) + update_forcefield(pos, meta, true) end end diff --git a/technic/machines/HV/quarry.lua b/technic/machines/HV/quarry.lua index 0a45559..b6f9c14 100644 --- a/technic/machines/HV/quarry.lua +++ b/technic/machines/HV/quarry.lua @@ -112,6 +112,11 @@ local function quarry_run(pos, node) if meta:get_int("enabled") and meta:get_int("HV_EU_input") >= quarry_demand and meta:get_int("purge_on") == 0 then local pdir = minetest.facedir_to_dir(node.param2) + if pdir.y ~= 0 then + -- faces up or down, not valid, otherwise depth-check would run endless and hang up the server + return + end + local qdir = pdir.x == 1 and vector.new(0,0,-1) or (pdir.z == -1 and vector.new(-1,0,0) or (pdir.x == -1 and vector.new(0,0,1) or diff --git a/technic/machines/MV/freezer.lua b/technic/machines/MV/freezer.lua new file mode 100644 index 0000000..ab48838 --- /dev/null +++ b/technic/machines/MV/freezer.lua @@ -0,0 +1,12 @@ +-- MV freezer + +minetest.register_craft({ + output = 'technic:mv_freezer', + recipe = { + {'technic:stainless_steel_ingot', 'technic:motor', 'technic:stainless_steel_ingot'}, + {'pipeworks:pipe_1_empty', 'technic:mv_transformer', 'pipeworks:pipe_1_empty'}, + {'technic:stainless_steel_ingot', 'technic:mv_cable', 'technic:stainless_steel_ingot'}, + } +}) + +technic.register_freezer({tier = "MV", demand = {800, 600, 400}, speed = 0.5, upgrade = 1, tube = 1}) diff --git a/technic/machines/MV/hydro_turbine.lua b/technic/machines/MV/hydro_turbine.lua index 36aac91..e5df5e6 100644 --- a/technic/machines/MV/hydro_turbine.lua +++ b/technic/machines/MV/hydro_turbine.lua @@ -18,7 +18,7 @@ minetest.register_craft({ local function get_water_flow(pos) local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "water") == 3 then + if minetest.get_item_group(node.name, "water") == 3 and string.find(node.name, "flowing") then return node.param2 -- returns approx. water flow, if any end return 0 diff --git a/technic/machines/MV/init.lua b/technic/machines/MV/init.lua index 7092fda..07c44b6 100644 --- a/technic/machines/MV/init.lua +++ b/technic/machines/MV/init.lua @@ -25,6 +25,8 @@ dofile(path.."/centrifuge.lua") dofile(path.."/tool_workshop.lua") +dofile(path.."/freezer.lua") + -- The power radiator supplies appliances with inductive coupled power: -- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric. -- This is currently useless, slow, and mostly copied diff --git a/technic/machines/register/freezer.lua b/technic/machines/register/freezer.lua new file mode 100644 index 0000000..b4da6d9 --- /dev/null +++ b/technic/machines/register/freezer.lua @@ -0,0 +1,9 @@ + +local S = technic.getter + +function technic.register_freezer(data) + data.typename = "freezing" + data.machine_name = "freezer" + data.machine_desc = S("%s Freezer") + technic.register_base_machine(data) +end diff --git a/technic/machines/register/freezer_recipes.lua b/technic/machines/register/freezer_recipes.lua new file mode 100644 index 0000000..641b28a --- /dev/null +++ b/technic/machines/register/freezer_recipes.lua @@ -0,0 +1,21 @@ + +local S = technic.getter + +technic.register_recipe_type("freezing", { description = S("Freezing") }) + +function technic.register_freezer_recipe(data) + data.time = data.time or 5 + technic.register_recipe("freezing", data) +end + +local recipes = { + {"bucket:bucket_water", { "default:ice", "bucket:bucket_empty" } }, + {"bucket:bucket_river_water", { "default:ice", "bucket:bucket_empty" } }, + {"default:dirt", "default:dirt_with_snow" }, + {"bucket:bucket_lava", { "default:obsidian", "bucket:bucket_empty" } } +} + +for _, data in pairs(recipes) do + technic.register_freezer_recipe({input = {data[1]}, output = data[2]}) +end + diff --git a/technic/machines/register/grinder_recipes.lua b/technic/machines/register/grinder_recipes.lua index da90aad..ab70724 100644 --- a/technic/machines/register/grinder_recipes.lua +++ b/technic/machines/register/grinder_recipes.lua @@ -30,6 +30,8 @@ local recipes = { {"default:sandstone", "default:sand 2"}, -- reverse recipe can be found in the compressor {"default:desert_sandstone", "default:desert_sand 2"}, -- reverse recipe can be found in the compressor {"default:silver_sandstone", "default:silver_sand 2"}, -- reverse recipe can be found in the compressor + + {"default:ice", "default:snowblock"}, } -- defuse the sandstone -> 4 sand recipe to avoid infinite sand bugs (also consult the inverse compressor recipe) diff --git a/technic/machines/register/init.lua b/technic/machines/register/init.lua index 1667d75..29ec2ea 100644 --- a/technic/machines/register/init.lua +++ b/technic/machines/register/init.lua @@ -20,6 +20,7 @@ dofile(path.."/grinder_recipes.lua") dofile(path.."/extractor_recipes.lua") dofile(path.."/compressor_recipes.lua") dofile(path.."/centrifuge_recipes.lua") +dofile(path.."/freezer_recipes.lua") -- Multi-Machine Recipes dofile(path.."/grindings.lua") @@ -31,3 +32,4 @@ dofile(path.."/grinder.lua") dofile(path.."/extractor.lua") dofile(path.."/compressor.lua") dofile(path.."/centrifuge.lua") +dofile(path.."/freezer.lua") |