Add MV version of compressor too, remove infinite sand-producing compressor recipe.
authorNovatux <nathanael.courant@laposte.net>
Wed, 2 Jul 2014 20:45:46 +0000 (22:45 +0200)
committerNovatux <nathanael.courant@laposte.net>
Wed, 2 Jul 2014 20:45:46 +0000 (22:45 +0200)
24 files changed:
technic/legacy.lua
technic/machines/LV/compressor.lua
technic/machines/MV/compressor.lua [new file with mode: 0644]
technic/machines/register/compressor.lua [new file with mode: 0644]
technic/machines/register/compressor_recipes.lua [new file with mode: 0644]
technic/machines/register/init.lua
technic/textures/technic_compressor_back.png [deleted file]
technic/textures/technic_compressor_bottom.png [deleted file]
technic/textures/technic_compressor_front.png [deleted file]
technic/textures/technic_compressor_front_active.png [deleted file]
technic/textures/technic_compressor_side.png [deleted file]
technic/textures/technic_compressor_top.png [deleted file]
technic/textures/technic_lv_compressor_back.png [new file with mode: 0644]
technic/textures/technic_lv_compressor_bottom.png [new file with mode: 0644]
technic/textures/technic_lv_compressor_front.png [new file with mode: 0644]
technic/textures/technic_lv_compressor_front_active.png [new file with mode: 0644]
technic/textures/technic_lv_compressor_side.png [new file with mode: 0644]
technic/textures/technic_lv_compressor_top.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_back.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_bottom.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_front.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_front_active.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_side.png [new file with mode: 0644]
technic/textures/technic_mv_compressor_top.png [new file with mode: 0644]

index f1ecf670a9ae23951c22408e821089e3b894bc47..c8359371eb279bfc42ecbcaacdd39155f5229988 100644 (file)
@@ -19,6 +19,8 @@ technic.legacy_nodenames = {
        ["technic:grinder_active"] = "technic:lv_grinder_active",
        ["technic:extractor"]        = "technic:lv_extractor",
        ["technic:extractor_active"] = "technic:lv_extractor_active",
+       ["technic:compressor"]        = "technic:lv_compressor",
+       ["technic:compressor_active"] = "technic:lv_compressor_active",
        ["technic:hv_battery_box"] = "technic:hv_battery_box0",
        ["technic:hv_cable"] = "technic:hv_cable0",
        ["technic:lv_cable"] = "technic:lv_cable0",
index 84aaac9e86f55aff6a90b7143b3d8ef68b70773f..11bf16d4de690b1bbd83a06ed4cd6bc4e7ace570 100644 (file)
@@ -1,50 +1,8 @@
 
-technic.compressor_recipes = {}
+minetest.register_alias("compressor", "technic:lv_compressor")
 
-local S = technic.getter
-
-if unified_inventory and unified_inventory.register_craft_type then
-       unified_inventory.register_craft_type("compressing", {
-               description = S("Compressing"),
-               height = 1,
-               width = 1,
-       })
-end
-
-technic.register_compressor_recipe = function(src, src_count, dst, dst_count)
-       technic.compressor_recipes[src] = {src_count = src_count, dst_name = dst, dst_count = dst_count}
-       if unified_inventory then
-               unified_inventory.register_craft({
-                       type = "compressing",
-                       output = dst.." "..dst_count,
-                       items = {src.." "..src_count},
-                       width = 0,
-               })
-       end
-end
-
-technic.get_compressor_recipe = function(item)
-       if technic.compressor_recipes[item.name] and 
-          item.count >= technic.compressor_recipes[item.name].src_count then
-               return technic.compressor_recipes[item.name]
-       else
-               return nil
-       end
-end
-
-technic.register_compressor_recipe("default:snowblock",         1, "default:ice",             1)
-technic.register_compressor_recipe("default:sand",              1, "default:sandstone",       1)
-technic.register_compressor_recipe("default:desert_sand",       1, "default:desert_stone",    1)
-technic.register_compressor_recipe("technic:mixed_metal_ingot", 1, "technic:composite_plate", 1)
-technic.register_compressor_recipe("default:copper_ingot",      5, "technic:copper_plate",    1)
-technic.register_compressor_recipe("technic:coal_dust",         4, "technic:graphite",        1)
-technic.register_compressor_recipe("technic:carbon_cloth",      1, "technic:carbon_plate",    1)
-technic.register_compressor_recipe("technic:enriched_uranium",  4, "technic:uranium_fuel",    1)
-
-
-minetest.register_alias("compressor", "technic:compressor")
 minetest.register_craft({
-       output = 'technic:compressor',
+       output = 'technic:lv_compressor',
        recipe = {
                {'default:stone',       'default:stone',        'default:stone'},
                {'mesecons:piston',     'technic:motor',        'mesecons:piston'},
@@ -52,114 +10,4 @@ minetest.register_craft({
        }
 })
 
-local compressor_formspec =
-       "invsize[8,9;]"..
-       "label[0,0;"..S("%s Compressor"):format("LV").."]"..
-       "list[current_name;src;3,1;1,1;]"..
-       "list[current_name;dst;5,1;2,2;]"..
-       "list[current_player;main;0,5;8,4;]"
-
-minetest.register_node("technic:compressor", {
-       description = S("%s Compressor"):format("LV"),
-       tiles = {"technic_compressor_top.png",  "technic_compressor_bottom.png",
-                "technic_compressor_side.png", "technic_compressor_side.png",
-                "technic_compressor_back.png", "technic_compressor_front.png"},
-       paramtype2 = "facedir",
-       groups = {cracky=2},
-       legacy_facedir_simple = true,
-       sounds = default.node_sound_wood_defaults(),
-       on_construct = function(pos)
-               local meta = minetest.get_meta(pos)
-               meta:set_string("infotext", S("%s Compressor"):format("LV"))
-               meta:set_string("formspec", compressor_formspec)
-               local inv = meta:get_inventory()
-               inv:set_size("src", 1)
-               inv:set_size("dst", 4)
-       end,
-       can_dig = technic.machine_can_dig,
-       allow_metadata_inventory_put = technic.machine_inventory_put,
-       allow_metadata_inventory_take = technic.machine_inventory_take,
-       allow_metadata_inventory_move = technic.machine_inventory_move,
-})
-
-minetest.register_node("technic:compressor_active", {
-       description = S("%s Compressor"):format("LV"),
-       tiles = {"technic_compressor_top.png",  "technic_compressor_bottom.png",
-                "technic_compressor_side.png", "technic_compressor_side.png",
-                "technic_compressor_back.png", "technic_compressor_front_active.png"},
-       paramtype2 = "facedir",
-       drop = "technic:compressor",
-       groups = {cracky=2, not_in_creative_inventory=1},
-       legacy_facedir_simple = true,
-       sounds = default.node_sound_wood_defaults(),
-       can_dig = technic.machine_can_dig,
-       allow_metadata_inventory_put = technic.machine_inventory_put,
-       allow_metadata_inventory_take = technic.machine_inventory_take,
-       allow_metadata_inventory_move = technic.machine_inventory_move,
-})
-
-minetest.register_abm({
-       nodenames = {"technic:compressor","technic:compressor_active"},
-       interval = 1,
-       chance   = 1,
-       action = function(pos, node, active_object_count, active_object_count_wider)
-               local meta         = minetest.get_meta(pos)
-               local eu_input     = meta:get_int("LV_EU_input")
-               local machine_name = S("%s Compressor"):format("LV")
-               local machine_node = "technic:compressor"
-               local demand       = 300
-                -- Setup meta data if it does not exist.
-               if not eu_input then
-                       meta:set_int("LV_EU_demand", demand)
-                       meta:set_int("LV_EU_input", 0)
-                       return
-               end
-               -- Power off automatically if no longer connected to a switching station
-               technic.switching_station_timeout_count(pos, "LV")
-               local inv    = meta:get_inventory()
-               local empty  = inv:is_empty("src")
-               local srcstack  = inv:get_stack("src", 1)
-               local src_item, recipe, result = nil, nil, nil
-
-               if srcstack then
-                       src_item = srcstack:to_table()
-               end
-               if src_item then
-                       recipe = technic.get_compressor_recipe(src_item)
-               end
-               if recipe then
-                       result = {name=recipe.dst_name, count=recipe.dst_count}
-               end 
-               if empty or (not result) or
-                  (not inv:room_for_item("dst", result)) then
-                       technic.swap_node(pos, machine_node)
-                       meta:set_string("infotext", S("%s Idle"):format(machine_name))
-                       meta:set_int("LV_EU_demand", 0)
-                       meta:set_int("src_time", 0)
-                       return
-               end
-
-               if eu_input < demand then
-                       technic.swap_node(pos, machine_node)
-                       meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
-               elseif eu_input >= demand then
-                       technic.swap_node(pos, machine_node.."_active")
-                       meta:set_string("infotext", S("%s Active"):format(machine_name))
-
-                       meta:set_int("src_time", meta:get_int("src_time") + 1)
-                       if meta:get_int("src_time") >= 4 then 
-                               meta:set_int("src_time", 0)
-                               srcstack:take_item(recipe.src_count)
-                               inv:set_stack("src", 1, srcstack)
-                               inv:add_item("dst", result)
-                       end
-               end
-               meta:set_int("LV_EU_demand", demand)
-       end
-})
-
-technic.register_machine("LV", "technic:compressor",        technic.receiver)
-technic.register_machine("LV", "technic:compressor_active", technic.receiver)
-
+technic.register_compressor({tier = "LV", demand = {300}, speed = 1})
diff --git a/technic/machines/MV/compressor.lua b/technic/machines/MV/compressor.lua
new file mode 100644 (file)
index 0000000..5b36cc5
--- /dev/null
@@ -0,0 +1,12 @@
+-- MV compressor
+
+minetest.register_craft({
+       output = 'technic:mv_compressor',
+       recipe = {
+               {'technic:stainless_steel_ingot', 'technic:lv_compressor',  'technic:stainless_steel_ingot'},
+               {'pipeworks:tube_1',              'technic:mv_transformer', 'pipeworks:tube_1'},
+               {'technic:stainless_steel_ingot', 'technic:mv_cable0',      'technic:stainless_steel_ingot'},
+       }
+})
+
+technic.register_compressor({tier = "MV", demand = {800, 600, 400}, speed = 2, upgrade = 1, tube = 1})
diff --git a/technic/machines/register/compressor.lua b/technic/machines/register/compressor.lua
new file mode 100644 (file)
index 0000000..49830d7
--- /dev/null
@@ -0,0 +1,9 @@
+
+local S = technic.getter
+
+function technic.register_compressor(data)
+       data.typename = "compressing"
+       data.machine_name = "compressor"
+       data.machine_desc = S("%s Compressor")
+       technic.register_base_machine(data)
+end
diff --git a/technic/machines/register/compressor_recipes.lua b/technic/machines/register/compressor_recipes.lua
new file mode 100644 (file)
index 0000000..b6012df
--- /dev/null
@@ -0,0 +1,24 @@
+
+local S = technic.getter
+
+technic.register_recipe_type("compressing", S("Compressing"))
+
+function technic.register_compressor_recipe(data)
+       data.time = data.time or 4
+       technic.register_recipe("compressing", data)
+end
+
+local recipes = {
+       {"default:snowblock",          "default:ice"},
+       {"default:desert_sand",        "default:desert_stone"},
+       {"technic:mixed_metal_ingot",  "technic:composite_plate"},
+       {"default:copper_ingot 5",     "technic:copper_plate"},
+       {"technic:coal_dust 4",        "technic:graphite"},
+       {"technic:carbon_cloth",       "technic:carbon_plate"},
+       {"technic:enriched_uranium 4", "technic:uranium_fuel"},
+}
+
+for _, data in pairs(recipes) do
+       technic.register_compressor_recipe({input = data[1], output = data[2]})
+end
+
index f1518febcde120bfb68760bacdfd1968a7fe8d4c..be94e05834b017aef53bbcdea22d643d933f2af4 100644 (file)
@@ -11,6 +11,8 @@ dofile(path.."/grinder.lua")
 dofile(path.."/grinder_recipes.lua")
 dofile(path.."/extractor.lua")
 dofile(path.."/extractor_recipes.lua")
+dofile(path.."/compressor.lua")
+dofile(path.."/compressor_recipes.lua")
 dofile(path.."/solar_array.lua")
 dofile(path.."/generator.lua")
 
diff --git a/technic/textures/technic_compressor_back.png b/technic/textures/technic_compressor_back.png
deleted file mode 100644 (file)
index 11286e3..0000000
Binary files a/technic/textures/technic_compressor_back.png and /dev/null differ
diff --git a/technic/textures/technic_compressor_bottom.png b/technic/textures/technic_compressor_bottom.png
deleted file mode 100644 (file)
index 886f27e..0000000
Binary files a/technic/textures/technic_compressor_bottom.png and /dev/null differ
diff --git a/technic/textures/technic_compressor_front.png b/technic/textures/technic_compressor_front.png
deleted file mode 100644 (file)
index 007d6de..0000000
Binary files a/technic/textures/technic_compressor_front.png and /dev/null differ
diff --git a/technic/textures/technic_compressor_front_active.png b/technic/textures/technic_compressor_front_active.png
deleted file mode 100644 (file)
index b3d27c0..0000000
Binary files a/technic/textures/technic_compressor_front_active.png and /dev/null differ
diff --git a/technic/textures/technic_compressor_side.png b/technic/textures/technic_compressor_side.png
deleted file mode 100644 (file)
index 87acda6..0000000
Binary files a/technic/textures/technic_compressor_side.png and /dev/null differ
diff --git a/technic/textures/technic_compressor_top.png b/technic/textures/technic_compressor_top.png
deleted file mode 100644 (file)
index 786b859..0000000
Binary files a/technic/textures/technic_compressor_top.png and /dev/null differ
diff --git a/technic/textures/technic_lv_compressor_back.png b/technic/textures/technic_lv_compressor_back.png
new file mode 100644 (file)
index 0000000..11286e3
Binary files /dev/null and b/technic/textures/technic_lv_compressor_back.png differ
diff --git a/technic/textures/technic_lv_compressor_bottom.png b/technic/textures/technic_lv_compressor_bottom.png
new file mode 100644 (file)
index 0000000..886f27e
Binary files /dev/null and b/technic/textures/technic_lv_compressor_bottom.png differ
diff --git a/technic/textures/technic_lv_compressor_front.png b/technic/textures/technic_lv_compressor_front.png
new file mode 100644 (file)
index 0000000..007d6de
Binary files /dev/null and b/technic/textures/technic_lv_compressor_front.png differ
diff --git a/technic/textures/technic_lv_compressor_front_active.png b/technic/textures/technic_lv_compressor_front_active.png
new file mode 100644 (file)
index 0000000..b3d27c0
Binary files /dev/null and b/technic/textures/technic_lv_compressor_front_active.png differ
diff --git a/technic/textures/technic_lv_compressor_side.png b/technic/textures/technic_lv_compressor_side.png
new file mode 100644 (file)
index 0000000..87acda6
Binary files /dev/null and b/technic/textures/technic_lv_compressor_side.png differ
diff --git a/technic/textures/technic_lv_compressor_top.png b/technic/textures/technic_lv_compressor_top.png
new file mode 100644 (file)
index 0000000..786b859
Binary files /dev/null and b/technic/textures/technic_lv_compressor_top.png differ
diff --git a/technic/textures/technic_mv_compressor_back.png b/technic/textures/technic_mv_compressor_back.png
new file mode 100644 (file)
index 0000000..11286e3
Binary files /dev/null and b/technic/textures/technic_mv_compressor_back.png differ
diff --git a/technic/textures/technic_mv_compressor_bottom.png b/technic/textures/technic_mv_compressor_bottom.png
new file mode 100644 (file)
index 0000000..886f27e
Binary files /dev/null and b/technic/textures/technic_mv_compressor_bottom.png differ
diff --git a/technic/textures/technic_mv_compressor_front.png b/technic/textures/technic_mv_compressor_front.png
new file mode 100644 (file)
index 0000000..007d6de
Binary files /dev/null and b/technic/textures/technic_mv_compressor_front.png differ
diff --git a/technic/textures/technic_mv_compressor_front_active.png b/technic/textures/technic_mv_compressor_front_active.png
new file mode 100644 (file)
index 0000000..b3d27c0
Binary files /dev/null and b/technic/textures/technic_mv_compressor_front_active.png differ
diff --git a/technic/textures/technic_mv_compressor_side.png b/technic/textures/technic_mv_compressor_side.png
new file mode 100644 (file)
index 0000000..87acda6
Binary files /dev/null and b/technic/textures/technic_mv_compressor_side.png differ
diff --git a/technic/textures/technic_mv_compressor_top.png b/technic/textures/technic_mv_compressor_top.png
new file mode 100644 (file)
index 0000000..786b859
Binary files /dev/null and b/technic/textures/technic_mv_compressor_top.png differ