diff options
Diffstat (limited to 'windmill/init.lua')
-rw-r--r-- | windmill/init.lua | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/windmill/init.lua b/windmill/init.lua new file mode 100644 index 0000000..440712f --- /dev/null +++ b/windmill/init.lua @@ -0,0 +1,125 @@ + + +windmill = {} + +windmill.register_windmill = function( nodename, descr, animation_png, animation_png_reverse, scale, inventory_image, animation_speed, craft_material, sel_radius ) + + minetest.register_node( nodename, { + description = descr.." (clockwise)", + drawtype = "signlike", + visual_scale = scale, + tiles = { + {name=animation_png, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=animation_speed}}, + }, + inventory_image = inventory_image.."^[transformFX", + wield_image = inventory_image.."^[transformFX", + wield_scale = {x=1, y=1, z=1}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 1, -- reflecting a bit of light might be expected + selection_box = { + type = "wallmounted", + wall_side = {-0.4, -sel_radius, -sel_radius, -0.2, sel_radius, sel_radius}, + }, + groups = {choppy=2,dig_immediate=3,attached_node=1}, + legacy_wallmounted = true, + + }) + + + -- this one rotates in the opposite direction than the first one + minetest.register_node( nodename.."_reverse", { + description = descr.." (counter-clockwise)", + drawtype = "signlike", + visual_scale = scale, + tiles = { + {name=animation_png_reverse, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=animation_speed}}, + }, + inventory_image = inventory_image, + wield_image = inventory_image, + wield_scale = {x=1, y=1, z=1}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 1, -- reflecting a bit of light might be expected + selection_box = { + type = "wallmounted", + wall_side = {-0.4, -sel_radius, -sel_radius, -0.2, sel_radius, sel_radius}, + }, + groups = {choppy=2,dig_immediate=3,attached_node=1}, + legacy_wallmounted = true, + + }) + + minetest.register_craft({ + output = nodename.."_reverse", + recipe = {{ nodename }}, + }) + + minetest.register_craft({ + output = nodename, + recipe = {{ nodename.."_reverse" }}, + }) + + minetest.register_craft({ + output = nodename, + recipe = { + { craft_material, "", craft_material }, + { "", "default:stick", "", }, + { craft_material, "", craft_material }, + } +}) +end + + +windmill.register_windmill( "windmill:windmill", "Windmill rotors", + "windmill.png", "windmill_reverse.png", + 6.0, "windmill_4blade_inv.png", 1.0, "default:steel_ingot", 2.9 ); + +windmill.register_windmill( "windmill:windmill_modern", "Windmill turbine", + "windmill_3blade_cw.png", "windmill_3blade_ccw.png", + 6.0, "windmill_3blade_inv.png", 1.0, "homedecor:plastic_sheeting", 2.9 ); + +windmill.register_windmill( "windmill:windmill_sails", "Windmill sails", + "windmill_wooden_cw_with_sails.png", "windmill_wooden_ccw_with_sails.png", + 6.0, "windmill_wooden_inv.png", 1.0, "wool:white", 3 ); + +windmill.register_windmill( "windmill:windmill_idle", "Windmill idle", + "windmill_wooden_cw.png", "windmill_wooden_ccw.png", + 6.0, "windmill_wooden_no_sails_inv.png", 2.0, "default:wood", 3 ); + +-- this one is smaller than the other ones +windmill.register_windmill( "windmill:windmill_farm", "Windmill found on farms", + "windmill_farm_cw.png", "windmill_farm_ccw.png", + 3.0, "windmill_farm_inv.png", 0.5, "default:stick", 1.5 ); + +minetest.register_node("windmill:axis", { + description = "Axis for mounting windmills", + drawtype = "nodebox", + tiles = {"default_wood.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + groups = {choppy=2,dig_immediate=3}, + node_box = { + type = "fixed", + fixed = {{-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}, + {-0.1,-0.1,-0.5,0.1,0.1,0.5}}, + }, + selection_box = { + type = "fixed", + fixed = {{-0.25, -0.5, -0.25, 0.25, 0.4, 0.25}, + {-0.1,-0.1,-0.5,0.1,0.1,0.5}}, + }, +}) + + +minetest.register_craft({ + output = "windmill:axis", + recipe = { + {"default:steel_ingot", "default:stick", "default:steel_ingot" }, + } +}) |