Better fluid_lib support, support elepower metals as well
This commit is contained in:
parent
3424d682ed
commit
759ec65d8b
@ -1,4 +1,4 @@
|
|||||||
-- Fluidity for Minetest 0.5.0+
|
-- Fluidity for Minetest 5.0.0+
|
||||||
-- Copyright (c) 2018 Evert "Diamond" Prants <evert@lunasqu.ee>
|
-- Copyright (c) 2018 Evert "Diamond" Prants <evert@lunasqu.ee>
|
||||||
|
|
||||||
fluidity = rawget(_G, "fluidity") or {}
|
fluidity = rawget(_G, "fluidity") or {}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name = fluidity
|
name = fluidity
|
||||||
description = Adds Molten versions of commonly occuring metals. Supports default, technic and moreores.
|
description = Adds Molten versions of commonly occuring metals. Supports default, technic, elepower and moreores.
|
||||||
depends = default,fluid_lib,bucket
|
depends = default,fluid_lib,bucket
|
||||||
optional_depends = technic,moreores
|
optional_depends = technic,moreores
|
||||||
|
@ -16,49 +16,11 @@ metal_caster.casts = {
|
|||||||
|
|
||||||
local metal_cache = {}
|
local metal_cache = {}
|
||||||
|
|
||||||
function metal_caster.get_metal_caster_formspec_default()
|
function metal_caster.get_metal_caster_formspec(water, metal)
|
||||||
return "size[8,8.5]"..
|
|
||||||
default.gui_bg..
|
|
||||||
default.gui_bg_img..
|
|
||||||
default.gui_slots..
|
|
||||||
"list[context;cast;2.7,0.2;1,1;]"..
|
|
||||||
"image[2.7,1.35;1,1;gui_furnace_arrow_bg.png^[transformFY]"..
|
|
||||||
"list[context;output;2.7,2.5;1,1;]"..
|
|
||||||
"list[context;coolant;0.25,2.5;1,1;]"..
|
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_barbg.png]"..
|
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
"label[0.08,3.4;Water: 0/"..metal_caster.max_coolant.." mB]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_barbg.png]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
"label[0.08,3.75;No Molten Metal]"..
|
|
||||||
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
|
||||||
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
|
||||||
"image[5.7,0.2;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
|
||||||
"image[5.7,1.4;1,1;gui_furnace_arrow_bg.png^[transformR90]"..
|
|
||||||
"button[6.68,2.48;1.33,1;dump;Dump]"..
|
|
||||||
"list[current_player;main;0,4.25;8,1;]"..
|
|
||||||
"list[current_player;main;0,5.5;8,3;8]"..
|
|
||||||
"listring[context;coolant]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;cast]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;output]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;bucket_in]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;bucket_out]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
default.get_hotbar_bg(0, 4.25)
|
|
||||||
end
|
|
||||||
|
|
||||||
function metal_caster.get_metal_caster_formspec(data)
|
|
||||||
local water_percent = math.floor(100 * data.water_fluid_storage / metal_caster.max_coolant)
|
|
||||||
local metal_percent = math.floor(100 * data.metal_fluid_storage / metal_caster.max_metal)
|
|
||||||
|
|
||||||
local metal_formspec = "label[0.08,3.75;No Molten Metal]"
|
local metal_formspec = "label[0.08,3.75;No Molten Metal]"
|
||||||
|
|
||||||
if data.metal ~= "" then
|
if metal ~= nil then
|
||||||
metal_formspec = "label[0.08,3.75;"..data.metal..": "..data.metal_fluid_storage.."/"..metal_caster.max_metal.." mB]"
|
metal_formspec = "label[0.08,3.75;Metal: "..fluid_lib.buffer_to_string(metal).."]"
|
||||||
end
|
end
|
||||||
|
|
||||||
return "size[8,8.5]"..
|
return "size[8,8.5]"..
|
||||||
@ -69,13 +31,9 @@ function metal_caster.get_metal_caster_formspec(data)
|
|||||||
"image[2.7,1.35;1,1;gui_furnace_arrow_bg.png^[transformFY]"..
|
"image[2.7,1.35;1,1;gui_furnace_arrow_bg.png^[transformFY]"..
|
||||||
"list[context;output;2.7,2.5;1,1;]"..
|
"list[context;output;2.7,2.5;1,1;]"..
|
||||||
"list[context;coolant;0.25,2.5;1,1;]"..
|
"list[context;coolant;0.25,2.5;1,1;]"..
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_barbg.png"..
|
metal_melter.fluid_bar(0.08, 0, water)..
|
||||||
"\\^[lowpart\\:" .. water_percent .. "\\:default_water.png\\\\^[resize\\\\:64x128]"..
|
"label[0.08,3.4;Water: ".. fluid_lib.buffer_to_string(water) .."]"..
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_gauge.png]"..
|
metal_melter.fluid_bar(6.68, 0, metal)..
|
||||||
"label[0.08,3.4;Water: "..data.water_fluid_storage.."/"..metal_caster.max_coolant.." mB]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_barbg.png"..
|
|
||||||
"\\^[lowpart\\:" .. metal_percent .. "\\:"..data.metal_texture.."\\\\^[resize\\\\:64x128]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
metal_formspec..
|
metal_formspec..
|
||||||
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
||||||
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
||||||
@ -106,6 +64,12 @@ local function can_dig(pos, player)
|
|||||||
inv:is_empty("output")
|
inv:is_empty("output")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_bucket_for_fluid(src)
|
||||||
|
local bucket = bucket.liquids[src]
|
||||||
|
if not bucket then return nil end
|
||||||
|
return bucket.itemname
|
||||||
|
end
|
||||||
|
|
||||||
local function allow_metadata_inventory_put (pos, listname, index, stack, player)
|
local function allow_metadata_inventory_put (pos, listname, index, stack, player)
|
||||||
if minetest.is_protected(pos, player:get_player_name()) then
|
if minetest.is_protected(pos, player:get_player_name()) then
|
||||||
return 0
|
return 0
|
||||||
@ -243,27 +207,26 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
|
||||||
-- Current amount of water (coolant) in the block
|
-- Current amount of water (coolant) in the block
|
||||||
local coolant_count = meta:get_int("water_fluid_storage")
|
local coolant = fluid_lib.get_buffer_data(pos, "water")
|
||||||
|
|
||||||
-- Current amount of metal in the block
|
-- Current amount of metal in the block
|
||||||
local metal_count = meta:get_int("metal_fluid_storage")
|
local metal = fluid_lib.get_buffer_data(pos, "metal")
|
||||||
|
|
||||||
-- Current metal used
|
-- Current metal used
|
||||||
local metal = meta:get_string("metal_fluid")
|
|
||||||
local metal_type = ""
|
local metal_type = ""
|
||||||
|
|
||||||
local dumping = meta:get_int("dump")
|
local dumping = meta:get_int("dump")
|
||||||
if dumping and dumping == 1 then
|
if dumping and dumping == 1 then
|
||||||
metal_count = 0
|
metal.amount = 0
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
refresh = true
|
refresh = true
|
||||||
meta:set_int("dump", 0)
|
meta:set_int("dump", 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Insert water bucket into tank, return empty bucket
|
-- Insert water bucket into tank, return empty bucket
|
||||||
if inv:get_stack("coolant", 1):get_name() == "bucket:bucket_water" then
|
if inv:get_stack("coolant", 1):get_name() == "bucket:bucket_water" then
|
||||||
if coolant_count + 1000 <= metal_caster.max_coolant then
|
if coolant.amount + 1000 <= metal_caster.max_coolant then
|
||||||
coolant_count = coolant_count + 1000
|
coolant.amount = coolant.amount + 1000
|
||||||
inv:set_list("coolant", {"bucket:bucket_empty"})
|
inv:set_list("coolant", {"bucket:bucket_empty"})
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
@ -272,16 +235,17 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
-- Handle input bucket, only allow a molten metal
|
-- Handle input bucket, only allow a molten metal
|
||||||
local bucket_in = inv:get_stack("bucket_in", 1)
|
local bucket_in = inv:get_stack("bucket_in", 1)
|
||||||
local bucket_name = bucket_in:get_name()
|
local bucket_name = bucket_in:get_name()
|
||||||
if (bucket_name:find("bucket") and bucket_name ~= "bucket:bucket_empty") or (not fluidity.florbs.get_is_empty_florb(bucket_in) and fluidity.florbs.get_is_florb(bucket_in)) then
|
if (bucket_name:find("bucket") and bucket_name ~= "bucket:bucket_empty") or (not fluidity.florbs.get_is_empty_florb(bucket_in) and
|
||||||
|
fluidity.florbs.get_is_florb(bucket_in)) then
|
||||||
local is_florb = fluidity.florbs.get_is_florb(bucket_in)
|
local is_florb = fluidity.florbs.get_is_florb(bucket_in)
|
||||||
if is_florb then
|
if is_florb then
|
||||||
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_in)
|
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_in)
|
||||||
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
||||||
if fluid_metal and (fluid_name == metal or metal == "") then
|
if fluid_metal and (fluid_name == metal.fluid or metal.fluid == "") then
|
||||||
local take = 1000
|
local take = 1000
|
||||||
|
|
||||||
if metal_count + take > metal_melter.max_metal then
|
if metal.amount + take > metal_melter.max_metal then
|
||||||
take = metal_melter.max_metal - metal_count
|
take = metal_melter.max_metal - metal.amount
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempt to take 1000 millibuckets from the florb
|
-- Attempt to take 1000 millibuckets from the florb
|
||||||
@ -290,25 +254,25 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
take = take - res
|
take = take - res
|
||||||
end
|
end
|
||||||
|
|
||||||
metal = fluid_name
|
metal.fluid = fluid_name
|
||||||
metal_count = metal_count + take
|
metal.amount = metal.amount + take
|
||||||
inv:set_list("bucket_in", {stack})
|
inv:set_list("bucket_in", {stack})
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local bucket_fluid = fluidity.get_fluid_for_bucket(bucket_name)
|
local bucket_fluid = bucket.get_liquid_for_bucket(bucket_name)
|
||||||
local fluid_is_metal = fluidity.get_metal_for_fluid(bucket_fluid) ~= nil
|
local fluid_is_metal = fluidity.get_metal_for_fluid(bucket_fluid) ~= nil
|
||||||
local empty_bucket = false
|
local empty_bucket = false
|
||||||
|
|
||||||
if fluid_is_metal then
|
if fluid_is_metal then
|
||||||
if metal ~= "" and metal == bucket_fluid then
|
if metal.fluid ~= "" and metal.fluid == bucket_fluid then
|
||||||
if metal_count + 1000 <= metal_melter.max_metal then
|
if metal.amount + 1000 <= metal_melter.max_metal then
|
||||||
metal_count = metal_count + 1000
|
metal.amount = metal.amount + 1000
|
||||||
empty_bucket = true
|
empty_bucket = true
|
||||||
end
|
end
|
||||||
elseif metal == "" then
|
elseif metal.fluid == "" then
|
||||||
metal_count = 1000
|
metal.amount = 1000
|
||||||
metal = bucket_fluid
|
metal.fluid = bucket_fluid
|
||||||
empty_bucket = true
|
empty_bucket = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -323,49 +287,49 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
-- Handle bucket output, only allow empty buckets in this slot
|
-- Handle bucket output, only allow empty buckets in this slot
|
||||||
local bucket_out = inv:get_stack("bucket_out", 1)
|
local bucket_out = inv:get_stack("bucket_out", 1)
|
||||||
bucket_name = bucket_out:get_name()
|
bucket_name = bucket_out:get_name()
|
||||||
if (bucket_name == "bucket:bucket_empty" or fluidity.florbs.get_is_florb(bucket_out)) and metal ~= "" and bucket_out:get_count() == 1 then
|
if (bucket_name == "bucket:bucket_empty" or fluidity.florbs.get_is_florb(bucket_out)) and metal and metal.fluid ~= "" and bucket_out:get_count() == 1 then
|
||||||
local is_florb = fluidity.florbs.get_is_florb(bucket_out)
|
local is_florb = fluidity.florbs.get_is_florb(bucket_out)
|
||||||
if is_florb then
|
if is_florb then
|
||||||
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_out)
|
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_out)
|
||||||
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
||||||
if not fluid_name or fluid_name == metal then
|
if not fluid_name or fluid_name == metal.fluid then
|
||||||
local take = 1000
|
local take = 1000
|
||||||
|
|
||||||
if metal_count < take then
|
if metal.amount < take then
|
||||||
take = metal_count
|
take = metal.amount
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempt to put 1000 millibuckets into the florb
|
-- Attempt to put 1000 millibuckets into the florb
|
||||||
local stack,res = fluidity.florbs.add_fluid(bucket_out, metal, take)
|
local stack,res = fluidity.florbs.add_fluid(bucket_out, metal.fluid, take)
|
||||||
if res > 0 then
|
if res > 0 then
|
||||||
take = take - res
|
take = take - res
|
||||||
end
|
end
|
||||||
|
|
||||||
metal_count = metal_count - take
|
metal.amount = metal.amount - take
|
||||||
inv:set_list("bucket_out", {stack})
|
inv:set_list("bucket_out", {stack})
|
||||||
refresh = true
|
refresh = true
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local bucket = fluidity.get_bucket_for_fluid(metal)
|
local bucket = get_bucket_for_fluid(metal.fluid)
|
||||||
if metal_count >= 1000 then
|
if bucket and metal.amount >= 1000 then
|
||||||
metal_count = metal_count - 1000
|
metal.amount = metal.amount - 1000
|
||||||
inv:set_list("bucket_out", {bucket})
|
inv:set_list("bucket_out", {bucket})
|
||||||
refresh = true
|
refresh = true
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If we have a cast, check if we can cast right now.
|
-- If we have a cast, check if we can cast right now.
|
||||||
if metal ~= "" then
|
if metal and metal.fluid ~= "" then
|
||||||
metal_type = fluidity.get_metal_for_fluid(metal)
|
metal_type = fluidity.get_metal_for_fluid(metal.fluid)
|
||||||
|
|
||||||
local caststack = inv:get_stack("cast", 1):get_name()
|
local caststack = inv:get_stack("cast", 1):get_name()
|
||||||
local castname = get_cast_for_name(caststack)
|
local castname = get_cast_for_name(caststack)
|
||||||
@ -377,16 +341,16 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
local result_cost = cast.cost * metal_caster.spec.ingot
|
local result_cost = cast.cost * metal_caster.spec.ingot
|
||||||
local coolant_cost = result_cost / 4
|
local coolant_cost = result_cost / 4
|
||||||
|
|
||||||
if metal_count >= result_cost and coolant_count >= coolant_cost then
|
if metal.amount >= result_cost and coolant.amount >= coolant_cost then
|
||||||
local stack = ItemStack(result_name)
|
local stack = ItemStack(result_name)
|
||||||
local output_stack = inv:get_stack("output", 1)
|
local output_stack = inv:get_stack("output", 1)
|
||||||
if output_stack:item_fits(stack) then
|
if output_stack:item_fits(stack) then
|
||||||
inv:set_stack("output", 1, increment_stack(output_stack, stack))
|
inv:set_stack("output", 1, increment_stack(output_stack, stack))
|
||||||
metal_count = metal_count - result_cost
|
metal.amount = metal.amount - result_cost
|
||||||
coolant_count = coolant_count - coolant_cost
|
coolant.amount = coolant.amount - coolant_cost
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
refresh = true
|
refresh = true
|
||||||
@ -397,7 +361,7 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
-- Create a new cast
|
-- Create a new cast
|
||||||
local result_cost = metal_caster.spec.cast
|
local result_cost = metal_caster.spec.cast
|
||||||
local coolant_cost = result_cost / 4
|
local coolant_cost = result_cost / 4
|
||||||
if metal_count >= result_cost and coolant_count >= coolant_cost then
|
if metal.amount >= result_cost and coolant.amount >= coolant_cost then
|
||||||
local mtype, ctype = get_cast_for(caststack)
|
local mtype, ctype = get_cast_for(caststack)
|
||||||
if mtype and ctype then
|
if mtype and ctype then
|
||||||
local cmod = metal_caster.casts[ctype].mod_name or "metal_melter"
|
local cmod = metal_caster.casts[ctype].mod_name or "metal_melter"
|
||||||
@ -407,11 +371,11 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
if output_stack:item_fits(stack) then
|
if output_stack:item_fits(stack) then
|
||||||
inv:set_stack("output", 1, increment_stack(output_stack, stack))
|
inv:set_stack("output", 1, increment_stack(output_stack, stack))
|
||||||
inv:set_stack("cast", 1, decrement_stack(cast_stack))
|
inv:set_stack("cast", 1, decrement_stack(cast_stack))
|
||||||
metal_count = metal_count - result_cost
|
metal.amount = metal.amount - result_cost
|
||||||
coolant_count = coolant_count - coolant_cost
|
coolant.amount = coolant.amount - coolant_cost
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
|
|
||||||
refresh = true
|
refresh = true
|
||||||
@ -421,35 +385,29 @@ local function caster_node_timer(pos, elapsed)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
meta:set_int("water_fluid_storage", coolant_count)
|
meta:set_int("water_fluid_storage", coolant.amount)
|
||||||
meta:set_int("metal_fluid_storage", metal_count)
|
meta:set_int("metal_fluid_storage", metal.amount)
|
||||||
meta:set_string("metal_fluid", metal)
|
meta:set_string("metal_fluid", metal.fluid)
|
||||||
|
meta:set_string("water_fluid", "default:water_source")
|
||||||
local metal_texture = "default_lava.png"
|
|
||||||
local metal_name = ""
|
|
||||||
|
|
||||||
local infotext = "Metal Caster\n"
|
local infotext = "Metal Caster\n"
|
||||||
infotext = infotext.."Water: "..coolant_count.."/"..metal_caster.max_coolant.." mB \n"
|
infotext = infotext .. fluid_lib.buffer_to_string(coolant) .. "\n"
|
||||||
|
|
||||||
if metal ~= "" then
|
if metal and metal.fluid ~= "" then
|
||||||
metal_texture = "fluidity_"..fluidity.get_metal_for_fluid(metal)..".png"
|
infotext = infotext .. fluid_lib.buffer_to_string(metal)
|
||||||
|
|
||||||
metal_name = fluid_lib.cleanse_node_description(metal)
|
|
||||||
infotext = infotext..metal_name..": "..metal_count.."/"..metal_caster.max_metal.." mB"
|
|
||||||
else
|
else
|
||||||
infotext = infotext .. "No Molten Metal"
|
infotext = infotext .. "No Molten Metal"
|
||||||
end
|
end
|
||||||
|
|
||||||
meta:set_string("infotext", infotext)
|
meta:set_string("infotext", infotext)
|
||||||
meta:set_string("formspec", metal_caster.get_metal_caster_formspec(
|
meta:set_string("formspec", metal_caster.get_metal_caster_formspec(coolant, metal))
|
||||||
{water_fluid_storage=coolant_count, metal_fluid_storage=metal_count, metal_texture=metal_texture, metal=metal_name}))
|
|
||||||
|
|
||||||
return refresh
|
return refresh
|
||||||
end
|
end
|
||||||
|
|
||||||
local function on_construct(pos)
|
local function on_construct(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", metal_caster.get_metal_caster_formspec_default())
|
meta:set_string("formspec", metal_caster.get_metal_caster_formspec())
|
||||||
|
|
||||||
-- Create inventory
|
-- Create inventory
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
@ -10,6 +10,25 @@ dofile(modpath.."/meltable.lua")
|
|||||||
-- Crafting components
|
-- Crafting components
|
||||||
dofile(modpath.."/components.lua")
|
dofile(modpath.."/components.lua")
|
||||||
|
|
||||||
|
-- Fluid bar for formspec
|
||||||
|
function metal_melter.fluid_bar(x, y, fluid_buffer)
|
||||||
|
local texture = "default_water.png"
|
||||||
|
local metric = 0
|
||||||
|
|
||||||
|
if fluid_buffer and fluid_buffer.fluid and fluid_buffer.fluid ~= "" and
|
||||||
|
minetest.registered_nodes[fluid_buffer.fluid] ~= nil then
|
||||||
|
texture = minetest.registered_nodes[fluid_buffer.fluid].tiles[1]
|
||||||
|
if type(texture) == "table" then
|
||||||
|
texture = texture.name
|
||||||
|
end
|
||||||
|
metric = math.floor(100 * fluid_buffer.amount / fluid_buffer.capacity)
|
||||||
|
end
|
||||||
|
|
||||||
|
return "image["..x..","..y..";1,2.8;melter_gui_barbg.png"..
|
||||||
|
"\\^[lowpart\\:"..metric.."\\:"..texture.."\\\\^[resize\\\\:64x128]"..
|
||||||
|
"image["..x..","..y..";1,2.8;melter_gui_gauge.png]"
|
||||||
|
end
|
||||||
|
|
||||||
-- Melter
|
-- Melter
|
||||||
dofile(modpath.."/melter.lua")
|
dofile(modpath.."/melter.lua")
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ end
|
|||||||
|
|
||||||
-- Autofind meltable
|
-- Autofind meltable
|
||||||
local autofind = {"ingot", "lump", "crystal", "ore", "block"}
|
local autofind = {"ingot", "lump", "crystal", "ore", "block"}
|
||||||
local modfind = {"default", "technic", "moreores"}
|
local modfind = {"default", "technic", "moreores", "elepower_dynamics"}
|
||||||
|
|
||||||
for metal,_ in pairs(fluidity.molten_metals) do
|
for metal,_ in pairs(fluidity.molten_metals) do
|
||||||
for i,v in pairs(modfind) do
|
for i,v in pairs(modfind) do
|
||||||
|
@ -49,46 +49,11 @@ function metal_melter.get_metal_from_stack(stack)
|
|||||||
return metal, metal_type
|
return metal, metal_type
|
||||||
end
|
end
|
||||||
|
|
||||||
function metal_melter.get_metal_melter_formspec_default()
|
function metal_melter.get_metal_melter_formspec(lava, metal)
|
||||||
return "size[8,8.5]"..
|
|
||||||
default.gui_bg..
|
|
||||||
default.gui_bg_img..
|
|
||||||
default.gui_slots..
|
|
||||||
"list[context;input;2.25,0.2;1,1;]"..
|
|
||||||
"list[context;heat;2.25,1.4;1,1;]"..
|
|
||||||
"image[1.3,1.4;1,1;gui_furnace_arrow_bg.png^[transformR90]"..
|
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_barbg.png]"..
|
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
"label[0.08,3.4;Lava: 0/"..metal_melter.max_fuel.." mB]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_barbg.png]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
"label[0.08,3.75;No Molten Metal]"..
|
|
||||||
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
|
||||||
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
|
||||||
"image[5.7,0.2;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
|
||||||
"image[5.7,1.4;1,1;gui_furnace_arrow_bg.png^[transformR90]"..
|
|
||||||
"button[6.68,2.48;1.33,1;dump;Dump]"..
|
|
||||||
"list[current_player;main;0,4.25;8,1;]"..
|
|
||||||
"list[current_player;main;0,5.5;8,3;8]"..
|
|
||||||
"listring[context;heat]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;input]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;bucket_in]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
"listring[context;bucket_out]"..
|
|
||||||
"listring[current_player;main]"..
|
|
||||||
default.get_hotbar_bg(0, 4.25)
|
|
||||||
end
|
|
||||||
|
|
||||||
function metal_melter.get_metal_melter_formspec(data)
|
|
||||||
local lava_percent = math.floor(100 * data.lava_level / metal_melter.max_fuel)
|
|
||||||
local metal_percent = math.floor(100 * data.metal_level / metal_melter.max_metal)
|
|
||||||
|
|
||||||
local metal_formspec = "label[0.08,3.75;No Molten Metal]"
|
local metal_formspec = "label[0.08,3.75;No Molten Metal]"
|
||||||
|
|
||||||
if data.metal ~= "" then
|
if metal ~= nil then
|
||||||
metal_formspec = "label[0.08,3.75;"..data.metal..": "..data.metal_level.."/"..metal_melter.max_metal.." mB]"
|
metal_formspec = "label[0.08,3.75;Metal: "..fluid_lib.buffer_to_string(metal).."]"
|
||||||
end
|
end
|
||||||
|
|
||||||
return "size[8,8.5]"..
|
return "size[8,8.5]"..
|
||||||
@ -98,13 +63,9 @@ function metal_melter.get_metal_melter_formspec(data)
|
|||||||
"list[context;input;2.25,0.2;1,1;]"..
|
"list[context;input;2.25,0.2;1,1;]"..
|
||||||
"list[context;heat;2.25,1.4;1,1;]"..
|
"list[context;heat;2.25,1.4;1,1;]"..
|
||||||
"image[1.3,1.4;1,1;gui_furnace_arrow_bg.png^[transformR90]"..
|
"image[1.3,1.4;1,1;gui_furnace_arrow_bg.png^[transformR90]"..
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_barbg.png"..
|
metal_melter.fluid_bar(0.08, 0, lava)..
|
||||||
"\\^[lowpart\\:" .. lava_percent .. "\\:default_lava.png\\\\^[resize\\\\:64x128]"..
|
"label[0.08,3.4;Lava: ".. fluid_lib.buffer_to_string(lava) .."]"..
|
||||||
"image[0.08,0;1.4,2.8;melter_gui_gauge.png]"..
|
metal_melter.fluid_bar(6.68, 0, metal)..
|
||||||
"label[0.08,3.4;Lava: "..data.lava_level.."/"..metal_melter.max_fuel.." mB]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_barbg.png"..
|
|
||||||
"\\^[lowpart\\:" .. metal_percent .. "\\:"..data.metal_texture.."\\\\^[resize\\\\:64x128]"..
|
|
||||||
"image[6.68,0;1.4,2.8;melter_gui_gauge.png]"..
|
|
||||||
metal_formspec..
|
metal_formspec..
|
||||||
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
"list[context;bucket_in;4.7,0.2;1,1;]"..
|
||||||
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
"list[context;bucket_out;4.7,1.4;1,1;]"..
|
||||||
@ -124,6 +85,12 @@ function metal_melter.get_metal_melter_formspec(data)
|
|||||||
default.get_hotbar_bg(0, 4.25)
|
default.get_hotbar_bg(0, 4.25)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function get_bucket_for_fluid(src)
|
||||||
|
local bucket = bucket.liquids[src]
|
||||||
|
if not bucket then return nil end
|
||||||
|
return bucket.itemname
|
||||||
|
end
|
||||||
|
|
||||||
local function allow_metadata_inventory_put (pos, listname, index, stack, player)
|
local function allow_metadata_inventory_put (pos, listname, index, stack, player)
|
||||||
if minetest.is_protected(pos, player:get_player_name()) then
|
if minetest.is_protected(pos, player:get_player_name()) then
|
||||||
return 0
|
return 0
|
||||||
@ -186,26 +153,23 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
|
||||||
-- Current amount of lava in the block
|
-- Current amount of lava in the block
|
||||||
local heat_count = meta:get_int("lava_fluid_storage")
|
local lava = fluid_lib.get_buffer_data(pos, "lava")
|
||||||
|
|
||||||
-- Current amount of metal in the block
|
|
||||||
local metal_count = meta:get_int("metal_fluid_storage")
|
|
||||||
|
|
||||||
-- Current metal used
|
-- Current metal used
|
||||||
local metal = meta:get_string("metal_fluid")
|
local metal = fluid_lib.get_buffer_data(pos, "metal")
|
||||||
|
|
||||||
local dumping = meta:get_int("dump")
|
local dumping = meta:get_int("dump")
|
||||||
if dumping and dumping == 1 then
|
if dumping and dumping == 1 then
|
||||||
metal_count = 0
|
metal.amount = 0
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
refresh = true
|
refresh = true
|
||||||
meta:set_int("dump", 0)
|
meta:set_int("dump", 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Insert lava bucket into tank, return empty bucket
|
-- Insert lava bucket into tank, return empty bucket
|
||||||
if inv:get_stack("heat", 1):get_name() == "bucket:bucket_lava" then
|
if inv:get_stack("heat", 1):get_name() == "bucket:bucket_lava" then
|
||||||
if heat_count + 1000 <= metal_melter.max_fuel then
|
if lava.amount + 1000 <= metal_melter.max_fuel then
|
||||||
heat_count = heat_count + 1000
|
lava.amount = lava.amount + 1000
|
||||||
inv:set_list("heat", {"bucket:bucket_empty"})
|
inv:set_list("heat", {"bucket:bucket_empty"})
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
@ -219,11 +183,11 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
if is_florb then
|
if is_florb then
|
||||||
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_in)
|
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_in)
|
||||||
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
||||||
if fluid_metal and (fluid_name == metal or metal == "") then
|
if fluid_metal and (fluid_name == metal.fluid or metal.fluid == "") then
|
||||||
local take = 1000
|
local take = 1000
|
||||||
|
|
||||||
if metal_count + take > metal_melter.max_metal then
|
if metal.amount + take > metal_melter.max_metal then
|
||||||
take = metal_melter.max_metal - metal_count
|
take = metal_melter.max_metal - metal.amount
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempt to take 1000 millibuckets from the florb
|
-- Attempt to take 1000 millibuckets from the florb
|
||||||
@ -232,25 +196,25 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
take = take - res
|
take = take - res
|
||||||
end
|
end
|
||||||
|
|
||||||
metal = fluid_name
|
metal.fluid = fluid_name
|
||||||
metal_count = metal_count + take
|
metal.amount = metal.amount + take
|
||||||
inv:set_list("bucket_in", {stack})
|
inv:set_list("bucket_in", {stack})
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local bucket_fluid = fluidity.get_fluid_for_bucket(bucket_name)
|
local bucket_fluid = bucket.get_liquid_for_bucket(bucket_name)
|
||||||
local fluid_is_metal = fluidity.get_metal_for_fluid(bucket_fluid) ~= nil
|
local fluid_is_metal = fluidity.get_metal_for_fluid(bucket_fluid) ~= nil
|
||||||
local empty_bucket = false
|
local empty_bucket = false
|
||||||
|
|
||||||
if fluid_is_metal then
|
if fluid_is_metal then
|
||||||
if metal ~= "" and metal == bucket_fluid then
|
if metal.fluid ~= "" and metal.fluid == bucket_fluid then
|
||||||
if metal_count + 1000 <= metal_melter.max_metal then
|
if metal.amount + 1000 <= metal_melter.max_metal then
|
||||||
metal_count = metal_count + 1000
|
metal.amount = metal.amount + 1000
|
||||||
empty_bucket = true
|
empty_bucket = true
|
||||||
end
|
end
|
||||||
elseif metal == "" then
|
elseif metal.fluid == "" then
|
||||||
metal_count = 1000
|
metal.amount = 1000
|
||||||
metal = bucket_fluid
|
metal.fluid = bucket_fluid
|
||||||
empty_bucket = true
|
empty_bucket = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -265,41 +229,41 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
-- Handle bucket output, only allow empty buckets in this slot
|
-- Handle bucket output, only allow empty buckets in this slot
|
||||||
local bucket_out = inv:get_stack("bucket_out", 1)
|
local bucket_out = inv:get_stack("bucket_out", 1)
|
||||||
bucket_name = bucket_out:get_name()
|
bucket_name = bucket_out:get_name()
|
||||||
if (bucket_name == "bucket:bucket_empty" or fluidity.florbs.get_is_florb(bucket_out)) and metal ~= "" and bucket_out:get_count() == 1 then
|
if (bucket_name == "bucket:bucket_empty" or fluidity.florbs.get_is_florb(bucket_out)) and metal.fluid ~= "" and bucket_out:get_count() == 1 then
|
||||||
local is_florb = fluidity.florbs.get_is_florb(bucket_out)
|
local is_florb = fluidity.florbs.get_is_florb(bucket_out)
|
||||||
if is_florb then
|
if is_florb then
|
||||||
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_out)
|
local contents, fluid_name, capacity = fluidity.florbs.get_florb_contents(bucket_out)
|
||||||
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
local fluid_metal = fluidity.get_metal_for_fluid(fluid_name)
|
||||||
if not fluid_name or fluid_name == metal then
|
if not fluid_name or fluid_name == metal.fluid then
|
||||||
local take = 1000
|
local take = 1000
|
||||||
|
|
||||||
if metal_count < take then
|
if metal.amount < take then
|
||||||
take = metal_count
|
take = metal.amount
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Attempt to put 1000 millibuckets into the florb
|
-- Attempt to put 1000 millibuckets into the florb
|
||||||
local stack,res = fluidity.florbs.add_fluid(bucket_out, metal, take)
|
local stack,res = fluidity.florbs.add_fluid(bucket_out, metal.fluid, take)
|
||||||
if res > 0 then
|
if res > 0 then
|
||||||
take = take - res
|
take = take - res
|
||||||
end
|
end
|
||||||
|
|
||||||
metal_count = metal_count - take
|
metal.amount = metal.amount - take
|
||||||
inv:set_list("bucket_out", {stack})
|
inv:set_list("bucket_out", {stack})
|
||||||
refresh = true
|
refresh = true
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
local bucket = fluidity.get_bucket_for_fluid(metal)
|
local bucket = get_bucket_for_fluid(metal.fluid)
|
||||||
if metal_count >= 1000 then
|
if bucket and metal.amount >= 1000 then
|
||||||
metal_count = metal_count - 1000
|
metal.amount = metal.amount - 1000
|
||||||
inv:set_list("bucket_out", {bucket})
|
inv:set_list("bucket_out", {bucket})
|
||||||
refresh = true
|
refresh = true
|
||||||
|
|
||||||
if metal_count == 0 then
|
if metal.amount == 0 then
|
||||||
metal = ""
|
metal.fluid = ""
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -311,13 +275,13 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
local mt, t = metal_melter.get_metal_from_stack(input)
|
local mt, t = metal_melter.get_metal_from_stack(input)
|
||||||
if mt then
|
if mt then
|
||||||
local metal_name = fluidity.molten_metals[mt]
|
local metal_name = fluidity.molten_metals[mt]
|
||||||
if metal_name and (metal == "" or metal == metal_name) then
|
if metal_name and (metal.fluid == "" or metal.fluid == metal_name) then
|
||||||
local cnt = metal_melter.spec[t]
|
local cnt = metal_melter.spec[t]
|
||||||
local heat_consume = math.floor(cnt / metal_melter.lava_usage)
|
local heat_consume = math.floor(cnt / metal_melter.lava_usage)
|
||||||
if metal_count + cnt <= metal_melter.max_metal and heat_count >= heat_consume then
|
if metal.amount + cnt <= metal_melter.max_metal and lava.amount >= heat_consume then
|
||||||
metal = metal_name
|
metal.fluid = metal_name
|
||||||
metal_count = metal_count + cnt
|
metal.amount = metal.amount + cnt
|
||||||
heat_count = heat_count - heat_consume
|
lava.amount = lava.amount - heat_consume
|
||||||
inv:set_stack("input", 1, take_from_stack(inv:get_stack("input", 1), 1))
|
inv:set_stack("input", 1, take_from_stack(inv:get_stack("input", 1), 1))
|
||||||
refresh = true
|
refresh = true
|
||||||
end
|
end
|
||||||
@ -326,34 +290,28 @@ local function melter_node_timer(pos, elapsed)
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Refresh metadata and formspec
|
-- Refresh metadata and formspec
|
||||||
meta:set_int("lava_fluid_storage", heat_count)
|
meta:set_int("lava_fluid_storage", lava.amount)
|
||||||
meta:set_int("metal_fluid_storage", metal_count)
|
meta:set_int("metal_fluid_storage", metal.amount)
|
||||||
meta:set_string("metal_fluid", metal)
|
meta:set_string("metal_fluid", metal.fluid)
|
||||||
|
meta:set_string("lava_fluid", "default:lava_source")
|
||||||
local metal_texture = "default_lava.png"
|
|
||||||
local metal_name = ""
|
|
||||||
|
|
||||||
local infotext = "Metal Melter\n"
|
local infotext = "Metal Melter\n"
|
||||||
infotext = infotext.."Lava: "..heat_count.."/"..metal_melter.max_fuel.." mB \n"
|
infotext = infotext .. fluid_lib.buffer_to_string(lava) .. "\n"
|
||||||
|
|
||||||
if metal ~= "" then
|
if metal and metal.fluid ~= "" then
|
||||||
metal_texture = "fluidity_"..fluidity.get_metal_for_fluid(metal)..".png"
|
infotext = fluid_lib.buffer_to_string(metal)
|
||||||
|
|
||||||
metal_name = fluid_lib.cleanse_node_description(metal)
|
|
||||||
infotext = infotext..metal_name..": "..metal_count.."/"..metal_melter.max_metal.." mB"
|
|
||||||
else
|
else
|
||||||
infotext = infotext .. "No Molten Metal"
|
infotext = infotext .. "No Molten Metal"
|
||||||
end
|
end
|
||||||
|
|
||||||
if heat_count > 144 then
|
if lava.amount > 144 then
|
||||||
swap_node(pos, "metal_melter:metal_melter_filled")
|
swap_node(pos, "metal_melter:metal_melter_filled")
|
||||||
else
|
else
|
||||||
swap_node(pos, "metal_melter:metal_melter")
|
swap_node(pos, "metal_melter:metal_melter")
|
||||||
end
|
end
|
||||||
|
|
||||||
meta:set_string("infotext", infotext)
|
meta:set_string("infotext", infotext)
|
||||||
meta:set_string("formspec", metal_melter.get_metal_melter_formspec(
|
meta:set_string("formspec", metal_melter.get_metal_melter_formspec(lava, metal))
|
||||||
{lava_level=heat_count, metal_level=metal_count, metal_texture=metal_texture, metal=metal_name}))
|
|
||||||
|
|
||||||
-- If true, calls for another clock cycle.
|
-- If true, calls for another clock cycle.
|
||||||
return refresh
|
return refresh
|
||||||
@ -361,7 +319,7 @@ end
|
|||||||
|
|
||||||
local function on_construct(pos)
|
local function on_construct(pos)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", metal_melter.get_metal_melter_formspec_default())
|
meta:set_string("formspec", metal_melter.get_metal_melter_formspec())
|
||||||
|
|
||||||
-- Create inventory
|
-- Create inventory
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
name = metal_melter
|
name = metal_melter
|
||||||
description = Melt and cast metals.
|
description = Melt and cast metals.
|
||||||
depends = default,fluidity,bucket,fluid_tanks
|
depends = default,fluidity,bucket,fluid_tanks
|
||||||
optional_depends = pipeworks
|
optional_depends = pipeworks,elepower_dynamics
|
||||||
|
@ -274,11 +274,6 @@ tinkering.materials = {
|
|||||||
gold = {name = "Gold", default = "default:gold_ingot", color = "#FFFF54", base = "ingot", cast = true, modifier = modifiers.gold},
|
gold = {name = "Gold", default = "default:gold_ingot", color = "#FFFF54", base = "ingot", cast = true, modifier = modifiers.gold},
|
||||||
mese = {name = "Mese", default = "default:mese_crystal", color = "#FFFF02", base = "gem", cast = true, modifier = modifiers.mese},
|
mese = {name = "Mese", default = "default:mese_crystal", color = "#FFFF02", base = "gem", cast = true, modifier = modifiers.mese},
|
||||||
|
|
||||||
-- From technic
|
|
||||||
lead = {name = "Lead", default = "technic:lead_ingot", color = "#C6C6C6", base = "ingot", cast = true, modifier = modifiers.lead},
|
|
||||||
chromium = {name = "Chromium", default = "technic:chromium_ingot", color = "#DFE8E8", base = "ingot", cast = true, modifier = modifiers.chromium},
|
|
||||||
zinc = {name = "Zinc", default = "technic:zinc_ingot", color = "#CEE8EF", base = "ingot", cast = true, modifier = modifiers.zinc},
|
|
||||||
|
|
||||||
-- From moreores
|
-- From moreores
|
||||||
silver = {name = "Silver", default = "moreores:silver_ingot", color = "#D7E2E8", base = "ingot", cast = true, modifier = modifiers.silver},
|
silver = {name = "Silver", default = "moreores:silver_ingot", color = "#D7E2E8", base = "ingot", cast = true, modifier = modifiers.silver},
|
||||||
mithril = {name = "Mithril", default = "moreores:mithril_ingot", color = "#6868D7", base = "ingot", cast = true, modifier = modifiers.mithril}
|
mithril = {name = "Mithril", default = "moreores:mithril_ingot", color = "#6868D7", base = "ingot", cast = true, modifier = modifiers.mithril}
|
||||||
@ -287,3 +282,24 @@ tinkering.materials = {
|
|||||||
tinkering.modifiers = {
|
tinkering.modifiers = {
|
||||||
diamond = {name = "Diamond", default = "default:diamond", modifier = modifiers.diamond}
|
diamond = {name = "Diamond", default = "default:diamond", modifier = modifiers.diamond}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if minetest.get_modpath("technic") then
|
||||||
|
-- From technic
|
||||||
|
tinkering.materials["lead"] = {name = "Lead", default = "technic:lead_ingot",
|
||||||
|
color = "#C6C6C6", base = "ingot", cast = true, modifier = modifiers.lead}
|
||||||
|
|
||||||
|
tinkering.materials["chromium"] = {name = "Chromium", default = "technic:chromium_ingot",
|
||||||
|
color = "#DFE8E8", base = "ingot", cast = true, modifier = modifiers.chromium}
|
||||||
|
|
||||||
|
tinkering.materials["zinc"] = {name = "Zinc", default = "technic:zinc_ingot",
|
||||||
|
color = "#CEE8EF", base = "ingot", cast = true, modifier = modifiers.zinc}
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("elepower_dynamics") then
|
||||||
|
-- From elepower
|
||||||
|
tinkering.materials["lead"] = {name = "Lead", default = "elepower_dynamics:lead_ingot",
|
||||||
|
color = "#C6C6C6", base = "ingot", cast = true, modifier = modifiers.lead}
|
||||||
|
|
||||||
|
tinkering.materials["zinc"] = {name = "Zinc", default = "elepower_dynamics:zinc_ingot",
|
||||||
|
color = "#CEE8EF", base = "ingot", cast = true, modifier = modifiers.zinc}
|
||||||
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user