2020-05-23 22:39:55 +02:00
local S = minetest.get_translator ( " mcl_brewing_stand " )
2020-05-17 00:22:09 +02:00
2020-06-08 23:47:53 +02:00
local function active_brewing_formspec ( fuel_percent , brew_percent )
2020-05-17 00:22:09 +02:00
return " size[9,8.75] " ..
2020-05-25 15:08:37 +02:00
" background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory.png] " ..
2020-06-08 23:47:53 +02:00
-- "background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory_active.png]"..
2020-05-17 00:22:09 +02:00
" label[0,4.0; " .. minetest.formspec_escape ( minetest.colorize ( " #313131 " , S ( " Inventory " ) ) ) .. " ] " ..
" list[current_player;main;0,4.5;9,3;9] " ..
mcl_formspec.get_itemslot_bg ( 0 , 4.5 , 9 , 3 ) ..
" list[current_player;main;0,7.75;9,1;] " ..
mcl_formspec.get_itemslot_bg ( 0 , 7.75 , 9 , 1 ) ..
" list[current_name;fuel;0.5,1.75;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 0.5 , 1.75 , 1 , 1 ) .. " image[0.5,1.75;1,1;mcl_brewing_fuel_bg.png] " ..
" list[current_name;input;2.75,0.5;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 2.75 , 0.5 , 1 , 1 ) ..
" list[context;stand;4.5,2.5;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 4.5 , 2.5 , 1 , 1 ) .. " image[4.5,2.5;1,1;mcl_brewing_bottle_bg.png] " ..
" list[context;stand;6,2.8;1,1;1] " ..
mcl_formspec.get_itemslot_bg ( 6 , 2.8 , 1 , 1 ) .. " image[6,2.8;1,1;mcl_brewing_bottle_bg.png] " ..
" list[context;stand;7.5,2.5;1,1;2] " ..
mcl_formspec.get_itemslot_bg ( 7.5 , 2.5 , 1 , 1 ) .. " image[7.5,2.5;1,1;mcl_brewing_bottle_bg.png] " ..
2020-05-25 15:08:37 +02:00
" image[2.7,3.33;1.28,0.41;mcl_brewing_burner.png^[lowpart: " ..
( 100 - fuel_percent ) .. " :mcl_brewing_burner_active.png^[transformR270] " ..
" image[2.76,1.4;1,2.15;mcl_brewing_bubbles.png^[lowpart: " ..
2020-06-08 23:47:53 +02:00
( brew_percent ) .. " :mcl_brewing_bubbles_active.png] " ..
2020-05-25 15:08:37 +02:00
2020-05-17 00:22:09 +02:00
" listring[current_player;main] " ..
" listring[current_name;fuel] " ..
" listring[current_name;input] " ..
" listring[context;stand] "
end
2020-05-23 22:39:55 +02:00
local brewing_formspec = " size[9,8.75] " ..
" background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory.png] " ..
" label[0,4.0; " .. minetest.formspec_escape ( minetest.colorize ( " #313131 " , S ( " Inventory " ) ) ) .. " ] " ..
" list[current_player;main;0,4.5;9,3;9] " ..
mcl_formspec.get_itemslot_bg ( 0 , 4.5 , 9 , 3 ) ..
" list[current_player;main;0,7.75;9,1;] " ..
mcl_formspec.get_itemslot_bg ( 0 , 7.75 , 9 , 1 ) ..
" list[current_name;fuel;0.5,1.75;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 0.5 , 1.75 , 1 , 1 ) .. " image[0.5,1.75;1,1;mcl_brewing_fuel_bg.png] " ..
" list[current_name;input;2.75,0.5;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 2.75 , 0.5 , 1 , 1 ) ..
" list[context;stand;4.5,2.5;1,1;] " ..
mcl_formspec.get_itemslot_bg ( 4.5 , 2.5 , 1 , 1 ) .. " image[4.5,2.5;1,1;mcl_brewing_bottle_bg.png] " ..
" list[context;stand;6,2.8;1,1;1] " ..
mcl_formspec.get_itemslot_bg ( 6 , 2.8 , 1 , 1 ) .. " image[6,2.8;1,1;mcl_brewing_bottle_bg.png] " ..
" list[context;stand;7.5,2.5;1,1;2] " ..
mcl_formspec.get_itemslot_bg ( 7.5 , 2.5 , 1 , 1 ) .. " image[7.5,2.5;1,1;mcl_brewing_bottle_bg.png] " ..
2020-05-25 15:08:37 +02:00
" image[2.7,3.33;1.28,0.41;mcl_brewing_burner.png^[transformR270] " ..
" image[2.76,1.4;1,2.15;mcl_brewing_bubbles.png] " ..
2020-05-23 22:39:55 +02:00
" listring[current_player;main] " ..
" listring[current_name;fuel] " ..
" listring[current_name;input] " ..
" listring[context;stand] "
local function swap_node ( pos , name )
local node = minetest.get_node ( pos )
if node.name == name then
return
2020-05-17 00:22:09 +02:00
end
2020-05-23 22:39:55 +02:00
node.name = name
minetest.swap_node ( pos , node )
end
2020-05-25 21:31:35 +02:00
local function brewable ( inv )
local ingredient = inv : get_stack ( " input " , 1 ) : get_name ( )
2020-05-28 03:15:46 +02:00
local stands = { }
2020-05-27 00:10:20 +02:00
local stand_size = inv : get_size ( " stand " )
2020-05-28 03:15:46 +02:00
local was_alchemy = { false , false , false }
2020-05-25 21:31:35 +02:00
2020-05-27 00:10:20 +02:00
for i = 1 , stand_size do
2020-05-25 21:31:35 +02:00
local bottle = inv : get_stack ( " stand " , i ) : get_name ( )
2020-05-28 00:36:10 +02:00
local alchemy = mcl_potions.get_alchemy ( ingredient , bottle )
if alchemy then
stands [ i ] = alchemy
2020-05-28 03:15:46 +02:00
was_alchemy [ i ] = true
2020-05-28 00:36:10 +02:00
else
stands [ i ] = bottle
2020-05-25 21:31:35 +02:00
end
end
2020-05-27 00:10:20 +02:00
-- if any stand holds a new potion, return the list of new potions
2020-05-28 03:15:46 +02:00
for i = 1 , table.getn ( was_alchemy ) do
if was_alchemy [ i ] then return stands end
end
2020-05-25 21:31:35 +02:00
return false
end
2020-05-23 22:39:55 +02:00
local function brewing_stand_timer ( pos , elapsed )
-- Inizialize metadata
local meta = minetest.get_meta ( pos )
2020-05-25 15:28:23 +02:00
2020-06-08 23:47:53 +02:00
local fuel_timer = meta : get_float ( " fuel_timer " ) or 0
local BREW_TIME = 20 -- all brews brew the same
local BURN_TIME = BREW_TIME * 10
2020-05-23 22:39:55 +02:00
2020-05-25 15:28:23 +02:00
local input_item = meta : get_string ( " input_item " ) or " "
local stand_timer = meta : get_float ( " stand_timer " ) or 0
2020-06-08 23:47:53 +02:00
local fuel = meta : get_float ( " fuel " ) or 0
2020-05-23 22:39:55 +02:00
local inv = meta : get_inventory ( )
2020-05-25 15:28:23 +02:00
local input_list , stand_list , fuel_list
2020-05-23 22:39:55 +02:00
local update = true
while update do
update = false
input_list = inv : get_list ( " input " )
stand_list = inv : get_list ( " stand " )
2020-05-25 15:08:37 +02:00
fuel_list = inv : get_list ( " fuel " )
2020-05-23 22:39:55 +02:00
2020-05-27 00:10:20 +02:00
-- TODO ... fix this. Goal is to reset the process if the stand changes
2020-05-25 15:28:23 +02:00
-- for i=1, inv:get_size("stand", i) do -- reset the process due to change
2020-05-27 00:10:20 +02:00
-- local _name = inv:get_stack("stand", i):get_name()
2020-05-27 03:07:07 +02:00
-- if _name ~= stand_items[i] then
2020-05-25 15:28:23 +02:00
-- stand_timer = 0
2020-05-27 03:07:07 +02:00
-- stand_items[i] = _name
2020-05-25 15:28:23 +02:00
-- update = true -- need to update the stand with new data
2020-05-27 03:07:07 +02:00
-- return 1
2020-05-25 15:28:23 +02:00
-- end
-- end
2020-06-08 23:47:53 +02:00
brew_output = brewable ( inv )
if fuel ~= 0 and brew_output then
2020-05-23 22:39:55 +02:00
2020-06-08 23:47:53 +02:00
fuel_timer = fuel_timer + elapsed
stand_timer = stand_timer + elapsed
2020-05-23 22:39:55 +02:00
2020-06-08 23:47:53 +02:00
if fuel_timer >= BURN_TIME then --replace with more fuel
fuel = 0 --force a new fuel grab
fuel_timer = 0
end
2020-05-27 00:10:20 +02:00
2020-06-08 23:47:53 +02:00
-- Replace the stand item with the brew result
if stand_timer >= BREW_TIME then
2020-05-27 00:10:20 +02:00
2020-06-08 23:47:53 +02:00
local input_count = inv : get_stack ( " input " , 1 ) : get_count ( )
if ( input_count - 1 ) ~= 0 then
inv : set_stack ( " input " , 1 , inv : get_stack ( " input " , 1 ) : get_name ( ) .. " " .. ( input_count - 1 ) )
else
inv : set_stack ( " input " , 1 , " " )
end
2020-05-27 00:10:20 +02:00
2020-06-08 23:47:53 +02:00
for i = 1 , inv : get_size ( " stand " ) do
if brew_output [ i ] then
minetest.sound_play ( " mcl_brewing_complete " , { pos = pos , gain = 0.4 , max_hear_range = 16 } , true )
inv : set_stack ( " stand " , i , brew_output [ i ] )
minetest.sound_play ( " mcl_potions_bottle_pour " , { pos = pos , gain = 0.6 , max_hear_range = 16 } , true )
2020-05-25 21:31:35 +02:00
end
end
2020-06-08 23:47:53 +02:00
stand_timer = 0
update = false -- stop the update if brew is complete
2020-05-25 21:31:35 +02:00
end
2020-06-08 23:47:53 +02:00
elseif fuel == 0 then --get more fuel from fuel_list
2020-05-25 15:08:37 +02:00
2020-06-08 23:47:53 +02:00
-- only allow blaze powder fuel
local fuel_name = inv : get_stack ( " fuel " , 1 ) : get_name ( )
local fuel_count = inv : get_stack ( " fuel " , 1 ) : get_count ( )
2020-05-25 15:28:23 +02:00
2020-06-08 23:47:53 +02:00
if fuel_name == " mcl_mobitems:blaze_powder " then -- Grab another fuel
2020-05-25 15:28:23 +02:00
2020-06-08 23:47:53 +02:00
if ( fuel_count - 1 ) ~= 0 then
inv : set_stack ( " fuel " , 1 , fuel_name .. " " .. ( fuel_count - 1 ) )
else
inv : set_stack ( " fuel " , 1 , " " )
2020-05-27 00:10:20 +02:00
end
2020-06-08 23:47:53 +02:00
update = true
fuel = 1
else -- no fuel available
update = false
2020-05-23 22:39:55 +02:00
end
2020-06-08 23:47:53 +02:00
2020-05-23 22:39:55 +02:00
end
2020-05-17 00:22:09 +02:00
2020-06-08 23:47:53 +02:00
elapsed = 0
2020-05-23 22:39:55 +02:00
end
2020-05-25 15:08:37 +02:00
--update formspec
2020-05-23 22:39:55 +02:00
local formspec = brewing_formspec
local result = false
2020-06-08 23:47:53 +02:00
if fuel_timer ~= 0 then
local fuel_percent = math.floor ( fuel_timer / BURN_TIME * 100 % BURN_TIME )
2020-05-27 00:10:20 +02:00
local brew_percent = math.floor ( stand_timer / BREW_TIME * 100 )
2020-06-08 23:47:53 +02:00
formspec = active_brewing_formspec ( fuel_percent , brew_percent * 1 % 100 )
2020-05-23 22:39:55 +02:00
result = true
2020-05-17 00:22:09 +02:00
else
2020-05-23 22:39:55 +02:00
minetest.get_node_timer ( pos ) : stop ( )
2020-05-17 00:22:09 +02:00
end
2020-05-23 22:39:55 +02:00
2020-06-08 23:47:53 +02:00
meta : set_float ( " fuel_timer " , fuel_timer )
2020-05-25 15:28:23 +02:00
meta : set_float ( " stand_timer " , stand_timer )
2020-06-08 23:47:53 +02:00
meta : set_float ( " fuel " , fuel )
-- meta:set_list("stand_items", stand_list)
2020-05-23 22:39:55 +02:00
meta : set_string ( " formspec " , formspec )
return result
2020-05-17 00:22:09 +02:00
end
2020-05-23 22:39:55 +02:00
local function allow_metadata_inventory_put ( pos , listname , index , stack , player )
local name = player : get_player_name ( )
if minetest.is_protected ( pos , name ) then
minetest.record_protection_violation ( pos , name )
return 0
end
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
if listname == " fuel " then
-- Test stack with size 1 because we burn one fuel at a time
local teststack = ItemStack ( stack )
teststack : set_count ( 1 )
local output , decremented_input = minetest.get_craft_result ( { method = " fuel " , width = 1 , items = { teststack } } )
if output.time ~= 0 then
-- Only allow to place 1 item if fuel get replaced by recipe.
-- This is the case for lava buckets.
local replace_item = decremented_input.items [ 1 ]
if replace_item : is_empty ( ) then
-- For most fuels, just allow to place everything
return stack : get_count ( )
else
if inv : get_stack ( listname , index ) : get_count ( ) == 0 then
return 1
else
return 0
end
end
else
return 0
end
elseif listname == " input " then
return stack : get_count ( )
elseif listname == " stand " then
return 0
end
end
2020-05-17 00:22:09 +02:00
-- Drop input items of brewing_stand at pos with metadata meta
local function drop_brewing_stand_items ( pos , meta )
local inv = meta : get_inventory ( )
local stack = inv : get_stack ( " fuel " , 1 )
if not stack : is_empty ( ) then
local p = { x = pos.x + math.random ( 0 , 10 ) / 10 - 0.5 , y = pos.y , z = pos.z + math.random ( 0 , 10 ) / 10 - 0.5 }
minetest.add_item ( p , stack )
end
local stack = inv : get_stack ( " input " , 1 )
if not stack : is_empty ( ) then
local p = { x = pos.x + math.random ( 0 , 10 ) / 10 - 0.5 , y = pos.y , z = pos.z + math.random ( 0 , 10 ) / 10 - 0.5 }
minetest.add_item ( p , stack )
end
for i = 1 , inv : get_size ( " stand " ) do
local stack = inv : get_stack ( " stand " , i )
if not stack : is_empty ( ) then
local p = { x = pos.x + math.random ( 0 , 10 ) / 10 - 0.5 , y = pos.y , z = pos.z + math.random ( 0 , 10 ) / 10 - 0.5 }
minetest.add_item ( p , stack )
end
end
end
2020-05-25 15:08:37 +02:00
local on_rotate
if minetest.get_modpath ( " screwdriver " ) then
on_rotate = screwdriver.rotate_simple
end
2020-05-17 00:22:09 +02:00
2020-06-08 23:47:53 +02:00
local doc_string =
S ( " To use an brewing_stand, rightclick it. An brewing_stand has 2 input slots (on the left) and one output slot. " ) .. " \n " ..
S ( " To rename items, put an item stack in one of the item slots while keeping the other input slot empty. Type in a name, hit enter or “Set Name”, then take the renamed item from the output slot. " ) .. " \n " ..
S ( " There are two possibilities to repair tools (and armor): " ) .. " \n " ..
S ( " • Tool + Tool: Place two tools of the same type in the input slots. The “health” of the repaired tool is the sum of the “health” of both input tools, plus a 12% bonus. " ) .. " \n " ..
S ( " • Tool + Material: Some tools can also be repaired by combining them with an item that it's made of. For example, iron pickaxes can be repaired with iron ingots. This repairs the tool by 25%. " ) .. " \n " ..
S ( " Armor counts as a tool. It is possible to repair and rename a tool in a single step. " ) .. " \n \n " ..
S ( " The brewing_stand has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the brewing_stand gets damaged. brewing_stand also have a chance of being damaged when they fall by more than 1 block. If a very damaged brewing_stand is damaged again, it is destroyed. " )
local tiles = { " mcl_brewing_top.png " , --top
" mcl_brewing_base.png " , --bottom
" mcl_brewing_side.png " , --right
" mcl_brewing_side.png " , --left
" mcl_brewing_side.png " , --back
" mcl_brewing_side.png^[transformFX " } --front
local allow_put = function ( pos , listname , index , stack , player )
local name = player : get_player_name ( )
if minetest.is_protected ( pos , name ) then
minetest.record_protection_violation ( pos , name )
return 0
else
return stack : get_count ( )
end
end
local on_put = function ( pos , listname , index , stack , player )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
local str = " "
for i = 1 , inv : get_size ( " stand " ) do
local stack = inv : get_stack ( " stand " , i )
if not stack : is_empty ( ) then
str = str .. " 1 "
else str = str .. " 0 "
end
end
minetest.swap_node ( pos , { name = " mcl_brewing:stand_ " .. str } )
minetest.get_node_timer ( pos ) : start ( 1.0 )
--some code here to enforce only potions getting placed on stands
end
local after_dig = function ( pos , oldnode , oldmetadata , digger )
local meta = minetest.get_meta ( pos )
local meta2 = meta
meta : from_table ( oldmetadata )
drop_brewing_stand_items ( pos , meta )
meta : from_table ( meta2 : to_table ( ) )
end
local allow_take = function ( pos , listname , index , stack , player )
local name = player : get_player_name ( )
if minetest.is_protected ( pos , name ) then
minetest.record_protection_violation ( pos , name )
return 0
else
return stack : get_count ( )
end
end
local on_take = function ( pos , listname , index , stack , player )
local meta = minetest.get_meta ( pos )
2020-06-10 02:09:32 +02:00
local inv = meta : get_inventory ( )
local str = " "
for i = 1 , inv : get_size ( " stand " ) do
local stack = inv : get_stack ( " stand " , i )
if not stack : is_empty ( ) then
str = str .. " 1 "
else str = str .. " 0 "
end
end
minetest.swap_node ( pos , { name = " mcl_brewing:stand_ " .. str } )
minetest.get_node_timer ( pos ) : start ( 1.0 )
--some code here to enforce only potions getting placed on stands
2020-06-08 23:47:53 +02:00
end
minetest.register_node ( " mcl_brewing:stand_000 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 0 , not_in_craft_guide = 0 } ,
tiles = tiles ,
drop = { " mcl_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
-- {-7/16, -6/16 ,-7/16 , -6/16, 1/16, -6/16 }, -- bottle 1
-- {-6/16, -6/16 ,-6/16 , -5/16, 3/16, -5/16 }, -- bottle 1
-- {-5/16, -6/16 ,-5/16 , -4/16, 3/16, -4/16 }, -- bottle 1
-- {-4/16, -6/16 ,-4/16 , -3/16, 3/16, -3/16 }, -- bottle 1
-- {-3/16, -6/16 ,-3/16 , -2/16, 1/16, -2/16 }, -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
-- {7/16, -6/16 ,-7/16 , 6/16, 1/16, -6/16 }, -- bottle 2
-- {6/16, -6/16 ,-6/16 , 5/16, 3/16, -5/16 }, -- bottle 2
-- {5/16, -6/16 ,-5/16 , 4/16, 3/16, -4/16 }, -- bottle 2
-- {4/16, -6/16 ,-4/16 , 3/16, 3/16, -3/16 }, -- bottle 2
-- {3/16, -6/16 ,-3/16 , 2/16, 1/16, -2/16 }, -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
-- {0/16, 1/16 , 3/16 , 1/16, 3/16, 6/16 }, -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
end ,
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
end ,
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
2020-06-10 02:09:32 +02:00
minetest.register_alias ( " mcl_brewing:stand " , " mcl_brewing:stand_000 " )
2020-06-08 23:47:53 +02:00
minetest.register_node ( " mcl_brewing:stand_100 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
2020-05-17 00:22:09 +02:00
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
2020-05-25 15:08:37 +02:00
2020-05-19 23:31:07 +02:00
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
2020-05-17 01:15:34 +02:00
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
2020-05-19 23:31:07 +02:00
{ - 7 / 16 , - 6 / 16 , - 7 / 16 , - 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 1
{ - 6 / 16 , - 6 / 16 , - 6 / 16 , - 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 1
{ - 5 / 16 , - 6 / 16 , - 5 / 16 , - 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 1
{ - 4 / 16 , - 6 / 16 , - 4 / 16 , - 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 1
{ - 3 / 16 , - 6 / 16 , - 3 / 16 , - 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
2020-06-08 23:47:53 +02:00
-- {7/16, -6/16 ,-7/16 , 6/16, 1/16, -6/16 }, -- bottle 2
-- {6/16, -6/16 ,-6/16 , 5/16, 3/16, -5/16 }, -- bottle 2
-- {5/16, -6/16 ,-5/16 , 4/16, 3/16, -4/16 }, -- bottle 2
-- {4/16, -6/16 ,-4/16 , 3/16, 3/16, -3/16 }, -- bottle 2
-- {3/16, -6/16 ,-3/16 , 2/16, 1/16, -2/16 }, -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
-- {0/16, 1/16 , 3/16 , 1/16, 3/16, 6/16 }, -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
end ,
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
end ,
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_node ( " mcl_brewing:stand_010 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
-- {-7/16, -6/16 ,-7/16 , -6/16, 1/16, -6/16 }, -- bottle 1
-- {-6/16, -6/16 ,-6/16 , -5/16, 3/16, -5/16 }, -- bottle 1
-- {-5/16, -6/16 ,-5/16 , -4/16, 3/16, -4/16 }, -- bottle 1
-- {-4/16, -6/16 ,-4/16 , -3/16, 3/16, -3/16 }, -- bottle 1
-- {-3/16, -6/16 ,-3/16 , -2/16, 1/16, -2/16 }, -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
2020-05-19 23:31:07 +02:00
{ 7 / 16 , - 6 / 16 , - 7 / 16 , 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 2
{ 6 / 16 , - 6 / 16 , - 6 / 16 , 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 2
{ 5 / 16 , - 6 / 16 , - 5 / 16 , 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 2
{ 4 / 16 , - 6 / 16 , - 4 / 16 , 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 2
{ 3 / 16 , - 6 / 16 , - 3 / 16 , 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
2020-06-08 23:47:53 +02:00
-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
-- {0/16, 1/16 , 3/16 , 1/16, 3/16, 6/16 }, -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
end ,
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
end ,
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_node ( " mcl_brewing:stand_001 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
-- {-7/16, -6/16 ,-7/16 , -6/16, 1/16, -6/16 }, -- bottle 1
-- {-6/16, -6/16 ,-6/16 , -5/16, 3/16, -5/16 }, -- bottle 1
-- {-5/16, -6/16 ,-5/16 , -4/16, 3/16, -4/16 }, -- bottle 1
-- {-4/16, -6/16 ,-4/16 , -3/16, 3/16, -3/16 }, -- bottle 1
-- {-3/16, -6/16 ,-3/16 , -2/16, 1/16, -2/16 }, -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
-- {7/16, -6/16 ,-7/16 , 6/16, 1/16, -6/16 }, -- bottle 2
-- {6/16, -6/16 ,-6/16 , 5/16, 3/16, -5/16 }, -- bottle 2
-- {5/16, -6/16 ,-5/16 , 4/16, 3/16, -4/16 }, -- bottle 2
-- {4/16, -6/16 ,-4/16 , 3/16, 3/16, -3/16 }, -- bottle 2
-- {3/16, -6/16 ,-3/16 , 2/16, 1/16, -2/16 }, -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
2020-05-19 23:31:07 +02:00
{ 0 / 16 , - 6 / 16 , 2 / 16 , 1 / 16 , 1 / 16 , 7 / 16 } , -- bottle 3
{ 0 / 16 , 1 / 16 , 3 / 16 , 1 / 16 , 3 / 16 , 6 / 16 } , -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
2020-05-17 00:22:09 +02:00
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
2020-06-08 23:47:53 +02:00
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
2020-05-17 00:22:09 +02:00
local meta = minetest.get_meta ( pos )
2020-06-08 23:47:53 +02:00
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
2020-05-17 00:22:09 +02:00
end ,
2020-06-08 23:47:53 +02:00
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
2020-05-17 00:22:09 +02:00
end
end ,
2020-06-08 23:47:53 +02:00
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_node ( " mcl_brewing:stand_110 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
{ - 7 / 16 , - 6 / 16 , - 7 / 16 , - 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 1
{ - 6 / 16 , - 6 / 16 , - 6 / 16 , - 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 1
{ - 5 / 16 , - 6 / 16 , - 5 / 16 , - 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 1
{ - 4 / 16 , - 6 / 16 , - 4 / 16 , - 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 1
{ - 3 / 16 , - 6 / 16 , - 3 / 16 , - 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
{ 7 / 16 , - 6 / 16 , - 7 / 16 , 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 2
{ 6 / 16 , - 6 / 16 , - 6 / 16 , 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 2
{ 5 / 16 , - 6 / 16 , - 5 / 16 , 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 2
{ 4 / 16 , - 6 / 16 , - 4 / 16 , 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 2
{ 3 / 16 , - 6 / 16 , - 3 / 16 , 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
-- {0/16, 1/16 , 3/16 , 1/16, 3/16, 6/16 }, -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
end ,
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
2020-05-17 00:22:09 +02:00
end
end ,
2020-05-23 22:39:55 +02:00
2020-06-08 23:47:53 +02:00
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_node ( " mcl_brewing:stand_101 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
{ - 7 / 16 , - 6 / 16 , - 7 / 16 , - 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 1
{ - 6 / 16 , - 6 / 16 , - 6 / 16 , - 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 1
{ - 5 / 16 , - 6 / 16 , - 5 / 16 , - 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 1
{ - 4 / 16 , - 6 / 16 , - 4 / 16 , - 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 1
{ - 3 / 16 , - 6 / 16 , - 3 / 16 , - 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
-- {7/16, -6/16 ,-7/16 , 6/16, 1/16, -6/16 }, -- bottle 2
-- {6/16, -6/16 ,-6/16 , 5/16, 3/16, -5/16 }, -- bottle 2
-- {5/16, -6/16 ,-5/16 , 4/16, 3/16, -4/16 }, -- bottle 2
-- {4/16, -6/16 ,-4/16 , 3/16, 3/16, -3/16 }, -- bottle 2
-- {3/16, -6/16 ,-3/16 , 2/16, 1/16, -2/16 }, -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
{ 0 / 16 , - 6 / 16 , 2 / 16 , 1 / 16 , 1 / 16 , 7 / 16 } , -- bottle 3
{ 0 / 16 , 1 / 16 , 3 / 16 , 1 / 16 , 3 / 16 , 6 / 16 } , -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
2020-05-17 00:22:09 +02:00
local meta = minetest.get_meta ( pos )
2020-06-08 23:47:53 +02:00
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
2020-05-17 00:22:09 +02:00
end ,
2020-06-08 23:47:53 +02:00
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
2020-05-17 00:22:09 +02:00
end ,
2020-06-08 23:47:53 +02:00
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_node ( " mcl_brewing:stand_011 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
-- {-7/16, -6/16 ,-7/16 , -6/16, 1/16, -6/16 }, -- bottle 1
-- {-6/16, -6/16 ,-6/16 , -5/16, 3/16, -5/16 }, -- bottle 1
-- {-5/16, -6/16 ,-5/16 , -4/16, 3/16, -4/16 }, -- bottle 1
-- {-4/16, -6/16 ,-4/16 , -3/16, 3/16, -3/16 }, -- bottle 1
-- {-3/16, -6/16 ,-3/16 , -2/16, 1/16, -2/16 }, -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
{ 7 / 16 , - 6 / 16 , - 7 / 16 , 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 2
{ 6 / 16 , - 6 / 16 , - 6 / 16 , 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 2
{ 5 / 16 , - 6 / 16 , - 5 / 16 , 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 2
{ 4 / 16 , - 6 / 16 , - 4 / 16 , 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 2
{ 3 / 16 , - 6 / 16 , - 3 / 16 , 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
{ 0 / 16 , - 6 / 16 , 2 / 16 , 1 / 16 , 1 / 16 , 7 / 16 } , -- bottle 3
{ 0 / 16 , 1 / 16 , 3 / 16 , 1 / 16 , 3 / 16 , 6 / 16 } , -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
}
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
2020-05-17 00:22:09 +02:00
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
2020-06-08 23:47:53 +02:00
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
2020-05-23 22:39:55 +02:00
local form = brewing_formspec
2020-05-17 00:22:09 +02:00
meta : set_string ( " formspec " , form )
end ,
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
end ,
2020-05-23 22:39:55 +02:00
on_timer = brewing_stand_timer ,
2020-05-25 15:08:37 +02:00
on_rotate = on_rotate ,
2020-06-08 23:47:53 +02:00
} )
minetest.register_node ( " mcl_brewing:stand_111 " , {
description = S ( " Brewing Stand " ) ,
_doc_items_longdesc = S ( " The stand allows you to brew potions! " ) ,
_doc_items_usagehelp = doc_string ,
_tt_help = S ( " Brew Potions " ) ,
groups = { pickaxey = 1 , falling_node = 1 , crush_after_fall = 1 , deco_block = 1 , brewing_stand = 1 , not_in_creative_inventory = 1 , not_in_craft_guide = 1 } ,
tiles = tiles ,
drop = { " mlc_brewing:stand " } ,
paramtype = " light " ,
sunlight_propagates = true ,
is_ground_content = false ,
paramtype2 = " facedir " ,
drawtype = " nodebox " ,
node_box = {
type = " fixed " ,
fixed = {
2020-05-23 22:39:55 +02:00
2020-06-08 23:47:53 +02:00
{ - 1 / 16 , - 5 / 16 , - 1 / 16 , 1 / 16 , 8 / 16 , 1 / 16 } , -- heat plume
{ 2 / 16 , - 8 / 16 , - 8 / 16 , 8 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 8 / 16 , - 8 / 16 , - 8 / 16 , - 2 / 16 , - 6 / 16 , - 2 / 16 } , -- base
{ - 3 / 16 , - 8 / 16 , 2 / 16 , 3 / 16 , - 6 / 16 , 8 / 16 } , -- base
{ - 7 / 16 , - 6 / 16 , - 7 / 16 , - 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 1
{ - 6 / 16 , - 6 / 16 , - 6 / 16 , - 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 1
{ - 5 / 16 , - 6 / 16 , - 5 / 16 , - 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 1
{ - 4 / 16 , - 6 / 16 , - 4 / 16 , - 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 1
{ - 3 / 16 , - 6 / 16 , - 3 / 16 , - 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 1
{ - 5 / 16 , 3 / 16 , - 5 / 16 , - 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 1
{ - 4 / 16 , 6 / 16 , - 4 / 16 , - 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 1
{ - 3 / 16 , 7 / 16 , - 3 / 16 , - 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 1
{ - 2 / 16 , 7 / 16 , - 2 / 16 , - 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 1
2020-05-23 22:39:55 +02:00
2020-05-17 00:22:09 +02:00
2020-06-08 23:47:53 +02:00
{ 7 / 16 , - 6 / 16 , - 7 / 16 , 6 / 16 , 1 / 16 , - 6 / 16 } , -- bottle 2
{ 6 / 16 , - 6 / 16 , - 6 / 16 , 5 / 16 , 3 / 16 , - 5 / 16 } , -- bottle 2
{ 5 / 16 , - 6 / 16 , - 5 / 16 , 4 / 16 , 3 / 16 , - 4 / 16 } , -- bottle 2
{ 4 / 16 , - 6 / 16 , - 4 / 16 , 3 / 16 , 3 / 16 , - 3 / 16 } , -- bottle 2
{ 3 / 16 , - 6 / 16 , - 3 / 16 , 2 / 16 , 1 / 16 , - 2 / 16 } , -- bottle 2
{ 5 / 16 , 3 / 16 , - 5 / 16 , 4 / 16 , 7 / 16 , - 4 / 16 } , -- line 2
{ 4 / 16 , 6 / 16 , - 4 / 16 , 3 / 16 , 8 / 16 , - 3 / 16 } , -- line 2
{ 3 / 16 , 7 / 16 , - 3 / 16 , 2 / 16 , 8 / 16 , - 2 / 16 } , -- line 2
{ 2 / 16 , 7 / 16 , - 2 / 16 , 1 / 16 , 8 / 16 , - 1 / 16 } , -- line 2
{ 0 / 16 , - 6 / 16 , 2 / 16 , 1 / 16 , 1 / 16 , 7 / 16 } , -- bottle 3
{ 0 / 16 , 1 / 16 , 3 / 16 , 1 / 16 , 3 / 16 , 6 / 16 } , -- bottle 3
{ 0 / 16 , 7 / 16 , 1 / 16 , 1 / 16 , 8 / 16 , 3 / 16 } , -- line 3
{ 0 / 16 , 6 / 16 , 3 / 16 , 1 / 16 , 7 / 16 , 5 / 16 } , -- line 3
{ 0 / 16 , 3 / 16 , 4 / 16 , 1 / 16 , 6 / 16 , 5 / 16 } , -- line 3
2020-05-17 00:22:09 +02:00
}
2020-06-08 23:47:53 +02:00
} ,
sounds = mcl_sounds.node_sound_metal_defaults ( ) ,
_mcl_blast_resistance = 1200 ,
_mcl_hardness = 5 ,
after_dig_node = after_dig ,
allow_metadata_inventory_take = allow_take ,
allow_metadata_inventory_put = allow_put ,
on_metadata_inventory_put = on_put ,
on_metadata_inventory_take = on_take ,
on_construct = function ( pos )
local meta = minetest.get_meta ( pos )
local inv = meta : get_inventory ( )
inv : set_size ( " input " , 1 )
inv : set_size ( " fuel " , 1 )
inv : set_size ( " stand " , 3 )
-- inv:set_size("stand2", 1)
-- inv:set_size("stand3", 1)
local form = brewing_formspec
meta : set_string ( " formspec " , form )
end ,
2020-05-17 00:22:09 +02:00
2020-06-08 23:47:53 +02:00
on_receive_fields = function ( pos , formname , fields , sender )
local sender_name = sender : get_player_name ( )
if minetest.is_protected ( pos , sender_name ) then
minetest.record_protection_violation ( pos , sender_name )
return
end
end ,
on_timer = brewing_stand_timer ,
on_rotate = on_rotate ,
} )
minetest.register_craft ( {
output = " mcl_brewing:stand " ,
recipe = {
{ " " , " mcl_mobitems:blaze_rod " , " " } ,
{ " mcl_core:stone_smooth " , " mcl_core:stone_smooth " , " mcl_core:stone_smooth " } ,
}
} )
-- Legacy
minetest.register_lbm ( {
label = " Update brewing_stand formspecs (0.60.0 " ,
name = " mcl_brewing:update_formspec_0_60_0 " ,
--nodenames = { "group:brewing_stand" },
run_at_every_load = false ,
action = function ( pos , node )
local meta = minetest.get_meta ( pos )
meta : set_string ( " formspec " , brewing_formspec )
end ,
} )