summaryrefslogtreecommitdiff
path: root/technic
diff options
context:
space:
mode:
Diffstat (limited to 'technic')
-rw-r--r--technic/machines/HV/forcefield.lua11
-rw-r--r--technic/machines/HV/quarry.lua5
-rw-r--r--technic/machines/MV/freezer.lua12
-rw-r--r--technic/machines/MV/hydro_turbine.lua2
-rw-r--r--technic/machines/MV/init.lua2
-rw-r--r--technic/machines/register/freezer.lua9
-rw-r--r--technic/machines/register/freezer_recipes.lua21
-rw-r--r--technic/machines/register/grinder_recipes.lua2
-rw-r--r--technic/machines/register/init.lua2
-rw-r--r--technic/textures/technic_mv_freezer_bottom.pngbin0 -> 284 bytes
-rw-r--r--technic/textures/technic_mv_freezer_front.pngbin0 -> 413 bytes
-rw-r--r--technic/textures/technic_mv_freezer_front_active.pngbin0 -> 447 bytes
-rw-r--r--technic/textures/technic_mv_freezer_side.pngbin0 -> 381 bytes
-rw-r--r--technic/textures/technic_mv_freezer_top.pngbin0 -> 325 bytes
-rw-r--r--technic/textures/technicx32/technic_mv_freezer_bottom.pngbin0 -> 672 bytes
-rw-r--r--technic/textures/technicx32/technic_mv_freezer_front.pngbin0 -> 947 bytes
-rw-r--r--technic/textures/technicx32/technic_mv_freezer_front_active.pngbin0 -> 1094 bytes
-rw-r--r--technic/textures/technicx32/technic_mv_freezer_side.pngbin0 -> 1079 bytes
-rw-r--r--technic/textures/technicx32/technic_mv_freezer_top.pngbin0 -> 826 bytes
19 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")
diff --git a/technic/textures/technic_mv_freezer_bottom.png b/technic/textures/technic_mv_freezer_bottom.png
new file mode 100644
index 0000000..f0c7ce2
--- /dev/null
+++ b/technic/textures/technic_mv_freezer_bottom.png
Binary files differ
diff --git a/technic/textures/technic_mv_freezer_front.png b/technic/textures/technic_mv_freezer_front.png
new file mode 100644
index 0000000..bd6f387
--- /dev/null
+++ b/technic/textures/technic_mv_freezer_front.png
Binary files differ
diff --git a/technic/textures/technic_mv_freezer_front_active.png b/technic/textures/technic_mv_freezer_front_active.png
new file mode 100644
index 0000000..d90010a
--- /dev/null
+++ b/technic/textures/technic_mv_freezer_front_active.png
Binary files differ
diff --git a/technic/textures/technic_mv_freezer_side.png b/technic/textures/technic_mv_freezer_side.png
new file mode 100644
index 0000000..c5e211b
--- /dev/null
+++ b/technic/textures/technic_mv_freezer_side.png
Binary files differ
diff --git a/technic/textures/technic_mv_freezer_top.png b/technic/textures/technic_mv_freezer_top.png
new file mode 100644
index 0000000..10102bd
--- /dev/null
+++ b/technic/textures/technic_mv_freezer_top.png
Binary files differ
diff --git a/technic/textures/technicx32/technic_mv_freezer_bottom.png b/technic/textures/technicx32/technic_mv_freezer_bottom.png
new file mode 100644
index 0000000..4e3351f
--- /dev/null
+++ b/technic/textures/technicx32/technic_mv_freezer_bottom.png
Binary files differ
diff --git a/technic/textures/technicx32/technic_mv_freezer_front.png b/technic/textures/technicx32/technic_mv_freezer_front.png
new file mode 100644
index 0000000..4327514
--- /dev/null
+++ b/technic/textures/technicx32/technic_mv_freezer_front.png
Binary files differ
diff --git a/technic/textures/technicx32/technic_mv_freezer_front_active.png b/technic/textures/technicx32/technic_mv_freezer_front_active.png
new file mode 100644
index 0000000..4aba6f8
--- /dev/null
+++ b/technic/textures/technicx32/technic_mv_freezer_front_active.png
Binary files differ
diff --git a/technic/textures/technicx32/technic_mv_freezer_side.png b/technic/textures/technicx32/technic_mv_freezer_side.png
new file mode 100644
index 0000000..c439476
--- /dev/null
+++ b/technic/textures/technicx32/technic_mv_freezer_side.png
Binary files differ
diff --git a/technic/textures/technicx32/technic_mv_freezer_top.png b/technic/textures/technicx32/technic_mv_freezer_top.png
new file mode 100644
index 0000000..2b54212
--- /dev/null
+++ b/technic/textures/technicx32/technic_mv_freezer_top.png
Binary files differ