New settings:
- bucket_use_clasic_recipe - bucket_material_... Small code cleanupmaster
parent
01b9a4a013
commit
1f5e60aef7
|
@ -1,3 +1,12 @@
|
|||
--------------------------------------------------
|
||||
Ver. 5.0 [10.01.2021] DEVEL
|
||||
|
||||
Added settings:
|
||||
bucket_use_clasic_recipe - use clasic recipe for bucket if true
|
||||
bucket_material_... - settings for allowed materials
|
||||
|
||||
Some code cleanup
|
||||
|
||||
--------------------------------------------------
|
||||
Ver. 4.1 [20.12.2020]
|
||||
|
||||
|
|
98
init.lua
98
init.lua
|
@ -7,12 +7,23 @@ local S = minetest.get_translator("bucket")
|
|||
-- bucket item definitions
|
||||
bucket = {}
|
||||
|
||||
bucket.material = "default:steel_ingot"
|
||||
bucket.empty = "bucket:bucket_empty"
|
||||
bucket.water = "bucket:bucket_water_uni"
|
||||
bucket.lava = "bucket:bucket_lava_uni"
|
||||
bucket.default_material = "steel"
|
||||
bucket.liquids = {}
|
||||
-- standard bucket recipe (like in minecraft)
|
||||
-- conflicts "Wood Empty Bucket" with farming "Wooden Bowl"
|
||||
bucket.recipe_clasic ={
|
||||
{"MATERIAL", "", "MATERIAL"},
|
||||
{"", "MATERIAL", ""}
|
||||
}
|
||||
-- new recipe for bucket
|
||||
bucket.recipe_new ={
|
||||
{"MATERIAL", "", "MATERIAL"},
|
||||
{"MATERIAL", "", "MATERIAL"},
|
||||
{"MATERIAL", "MATERIAL", "MATERIAL"}
|
||||
}
|
||||
|
||||
-- Bucket aliases - default bucket ist steel
|
||||
minetest.register_alias("bucket", bucket.empty.."_"..bucket.default_material)
|
||||
|
@ -26,17 +37,50 @@ minetest.register_alias("bucket:bucket_lava", bucket.lava.."_"..bucket.default_m
|
|||
-- define bucket liquids and Liquid_name
|
||||
dofile(minetest.get_modpath("bucket") .. "/bucket_liquids.lua")
|
||||
|
||||
--craft diferent types of bucket
|
||||
-- craft diferent types of bucket
|
||||
-- recipe can be anjustet for every material type
|
||||
local craft_ingreds = {
|
||||
wood = {"group:wood", "default_wood.png"},
|
||||
stone = {"group:stone", "default_stone.png"},
|
||||
steel = {"default:steel_ingot", "default_steel_block.png"},
|
||||
bronze = {"default:bronze_ingot", "default_bronze_block.png"},
|
||||
mese = {"default:mese_crystal", "default_mese_block.png"},
|
||||
diamond = {"default:diamond", "default_diamond_block.png"},
|
||||
gold = {"default:gold_ingot", "default_gold_block.png"}
|
||||
wood = {"group:wood", "default_wood.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_wood", true)
|
||||
},
|
||||
stone = {"group:stone", "default_stone.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_stone", true)
|
||||
},
|
||||
steel = {"default:steel_ingot", "default_steel_block.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_steel", true)
|
||||
},
|
||||
bronze = {"default:bronze_ingot", "default_bronze_block.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_bronze", true)
|
||||
},
|
||||
mese = {"default:mese_crystal", "default_mese_block.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_mese", true)
|
||||
},
|
||||
diamond = {"default:diamond", "default_diamond_block.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_diamond", true)
|
||||
},
|
||||
gold = {"default:gold_ingot", "default_gold_block.png",
|
||||
recipe = table.copy(bucket.recipe_clasic),
|
||||
enabled = minetest.settings:get_bool("bucket_material_gold", true)
|
||||
}
|
||||
}
|
||||
|
||||
-- set new recipe if enabled
|
||||
local use_clasic_recipe = minetest.settings:get_bool("bucket_use_clasic_recipe", true)
|
||||
|
||||
if not use_clasic_recipe then
|
||||
for idx, mat in pairs(craft_ingreds) do
|
||||
craft_ingreds[idx].recipe = table.copy(bucket.recipe_new)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.log(dump(craft_ingreds))
|
||||
|
||||
-- according to source (liquid type) assign bucket with "bucket" liquid
|
||||
-- with this you can override the mod setting
|
||||
bucket.giving_back={
|
||||
|
@ -54,30 +98,37 @@ bucket.giving_back={
|
|||
-- load settingtypes
|
||||
local get_flowing_liquid = minetest.settings:get_bool("bucket_get_flowing", true)
|
||||
|
||||
-- craft empty bucket
|
||||
minetest.register_craft({
|
||||
output = bucket.empty.." 1",
|
||||
recipe = {
|
||||
{bucket.material, "", bucket.material},
|
||||
{"", bucket.material, ""},
|
||||
}
|
||||
})
|
||||
|
||||
-- Function relpaces all "MATERIAL" with new/real material definition new_mat
|
||||
local function replace_recipe_material(recipe_def, new_mat)
|
||||
local recipe_mat = table.copy(recipe_def)
|
||||
for r_row_idx, r_row in pairs(recipe_def) do
|
||||
for r_idx, r_mat in pairs(r_row) do
|
||||
if r_mat=="MATERIAL" then
|
||||
recipe_mat[r_row_idx][r_idx]=new_mat
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.log(dump(recipe_mat))
|
||||
return recipe_mat
|
||||
end
|
||||
|
||||
-- Register empty buckets crafting recipes
|
||||
for name, mat in pairs(craft_ingreds) do
|
||||
-- replace "MATERIAL" with correct one
|
||||
local bucket_recipe = replace_recipe_material(mat.recipe, mat[1])
|
||||
|
||||
-- register new empty bucket crafting recipe
|
||||
minetest.register_craft({
|
||||
output = "bucket:bucket_empty".."_"..name,
|
||||
recipe = {
|
||||
{mat[1], "", mat[1]},
|
||||
{"", mat[1], ""},
|
||||
}
|
||||
recipe = table.copy(bucket_recipe)
|
||||
})
|
||||
end
|
||||
|
||||
-- for compatibility
|
||||
minetest.register_alias("bucket:bucket_empty", "bucket:bucket_empty_steel")
|
||||
|
||||
|
||||
-- protection - from original bucket mod
|
||||
-- not analysed yet
|
||||
local function check_protection(pos, name, text)
|
||||
if minetest.is_protected(pos, name) then
|
||||
minetest.log("action", (name ~= "" and name or "A mod")
|
||||
|
@ -193,6 +244,7 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
-- Register Empty buckets
|
||||
for mat_name, mat in pairs(craft_ingreds) do
|
||||
-- Capitalise first character
|
||||
|
|
|
@ -7,3 +7,32 @@ bucket_lava_flowing_range (Bucket lava flowing range) int 1
|
|||
# If true, then liquid can be taken even from flowing one
|
||||
# (not only from source)
|
||||
bucket_get_flowing (Flowing liwuid can be taken) bool true
|
||||
|
||||
# Use "clasic" bucket recipe
|
||||
# - This can interfere with farming mod Wood Empty Bucket = Wooden Bowl
|
||||
# + X + - + X +
|
||||
# + - + X + - +
|
||||
#
|
||||
# NEW Recipe
|
||||
# + X + - + X +
|
||||
# + X + - + X +
|
||||
# + X + X + X +
|
||||
bucket_use_clasic_recipe (Use clasic recipe for bucket) bool true
|
||||
|
||||
# Enabled buckettypes
|
||||
[Bucket types]
|
||||
|
||||
# Enable steel bucket
|
||||
bucket_material_steel (Enable steel bucket) bool true
|
||||
# Enable wood bucket
|
||||
bucket_material_wood (Enable wood bucket) bool true
|
||||
# Enable stone bucket
|
||||
bucket_material_stone (Enable stone bucket) bool true
|
||||
# Enable bronze bucket
|
||||
bucket_material_bronze (Enable bronze bucket) bool true
|
||||
# Enable mese bucket
|
||||
bucket_material_mese (Enable mese bucket) bool true
|
||||
Enable diamond bucket
|
||||
bucket_material_diamond (Enable diamond bucket) bool true
|
||||
Enable gold bucket
|
||||
bucket_material_gold (Enable gold bucket) bool true
|
||||
|
|
Loading…
Reference in New Issue