forked from Mineclonia/Mineclonia
Compare commits
21 Commits
slimeblock
...
master
Author | SHA1 | Date |
---|---|---|
My favourite Minetest cheat clients are Dragonfire and Waspsaliva. | 20e44e4033 | |
Mikita Wiśniewski | ac3031c679 | |
My favourite Minetest cheat clients are Dragonfire and Waspsaliva. | 54f72a1457 | |
Nils Dagsson Moskopp | 0808b54192 | |
Nils Dagsson Moskopp | 14cbc63b5f | |
Nils Dagsson Moskopp | de8ea11b39 | |
My favourite Minetest cheat clients are Dragonfire and Waspsaliva. | 1ce88e7528 | |
Nils Dagsson Moskopp | 6e11819b79 | |
Nils Dagsson Moskopp | 5acc9191fa | |
Nils Dagsson Moskopp | 32d89d6d5f | |
My favourite Minetest cheat clients are Dragonfire and Waspsaliva. | d2c335d8fb | |
Nils Dagsson Moskopp | 7d2ef66175 | |
Nils Dagsson Moskopp | fdd3c5db86 | |
Nils Dagsson Moskopp | c4912effaf | |
Nils Dagsson Moskopp | 1967e10a52 | |
Nils Dagsson Moskopp | f8d55ee61b | |
Nils Dagsson Moskopp | 3948a0e7af | |
Nils Dagsson Moskopp | a44fd9c88b | |
Alexander Minges | 6381d65dbb | |
Alexander Minges | 59b013f766 | |
Alexander Minges | d59888c4df |
|
@ -0,0 +1 @@
|
||||||
|
name = walkover
|
|
@ -123,6 +123,10 @@ mobs:register_mob("mobs_mc:snowman", {
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
minetest.sound_play("mcl_tools_shears_cut", {pos = pos}, true)
|
minetest.sound_play("mcl_tools_shears_cut", {pos = pos}, true)
|
||||||
|
|
||||||
|
if minetest.registered_items["mcl_farming:pumpkin_face"] then
|
||||||
|
minetest.add_item({x=pos.x, y=pos.y+1.4, z=pos.z}, "mcl_farming:pumpkin_face")
|
||||||
|
end
|
||||||
|
|
||||||
-- Wear out
|
-- Wear out
|
||||||
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
if not minetest.is_creative_enabled(clicker:get_player_name()) then
|
||||||
item:add_wear(mobs_mc.misc.shears_wear)
|
item:add_wear(mobs_mc.misc.shears_wear)
|
||||||
|
|
|
@ -74,7 +74,7 @@ local professions = {
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
{ { "mcl_farming:pumpkin_face", 8, 13 }, E1 },
|
{ { "mcl_farming:pumpkin", 8, 13 }, E1 },
|
||||||
{ E1, { "mcl_farming:pumpkin_pie", 2, 3} },
|
{ E1, { "mcl_farming:pumpkin_pie", 2, 3} },
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
name = mcl_experience
|
|
@ -1 +1,2 @@
|
||||||
|
name = mcl_formspec
|
||||||
description = Helper mod to simplify creation of formspecs a little bit
|
description = Helper mod to simplify creation of formspecs a little bit
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
name = mcl_tmp_message
|
|
@ -1,6 +1,5 @@
|
||||||
local GRAVITY = tonumber(minetest.settings:get("movement_gravity"))
|
|
||||||
|
|
||||||
--register stoppers for movestones/pistons
|
--register stoppers for movestones/pistons
|
||||||
|
|
||||||
mesecon.mvps_stoppers = {}
|
mesecon.mvps_stoppers = {}
|
||||||
mesecon.mvps_unsticky = {}
|
mesecon.mvps_unsticky = {}
|
||||||
mesecon.mvps_droppers = {}
|
mesecon.mvps_droppers = {}
|
||||||
|
@ -48,6 +47,8 @@ end
|
||||||
|
|
||||||
-- For nodes which ignore sticky sides.
|
-- For nodes which ignore sticky sides.
|
||||||
-- They can't be pulled by sticky pistons and don't interact with slime blocks.
|
-- They can't be pulled by sticky pistons and don't interact with slime blocks.
|
||||||
|
-- TODO: This has NOT any actual effect so far. The actual functionality
|
||||||
|
-- still needs to be implemented.
|
||||||
function mesecon.register_mvps_unsticky(nodename, get_unsticky)
|
function mesecon.register_mvps_unsticky(nodename, get_unsticky)
|
||||||
if get_unsticky == nil then
|
if get_unsticky == nil then
|
||||||
get_unsticky = true
|
get_unsticky = true
|
||||||
|
@ -65,6 +66,9 @@ function mesecon.is_mvps_unsticky(node, pulldir, stack, stackid)
|
||||||
if type(get_unsticky) == "function" then
|
if type(get_unsticky) == "function" then
|
||||||
get_unsticky = get_unsticky(node, pulldir, stack, stackid)
|
get_unsticky = get_unsticky(node, pulldir, stack, stackid)
|
||||||
end
|
end
|
||||||
|
if get_unsticky == nil then
|
||||||
|
get_unsticky = false
|
||||||
|
end
|
||||||
|
|
||||||
return get_unsticky
|
return get_unsticky
|
||||||
end
|
end
|
||||||
|
@ -146,7 +150,6 @@ function mesecon.mvps_get_stack(pos, dir, maximum, piston_pos)
|
||||||
-- add connected nodes to frontiers, connected is a vector list
|
-- add connected nodes to frontiers, connected is a vector list
|
||||||
-- the vectors must be absolute positions
|
-- the vectors must be absolute positions
|
||||||
local connected = {}
|
local connected = {}
|
||||||
|
|
||||||
if minetest.registered_nodes[nn.name]
|
if minetest.registered_nodes[nn.name]
|
||||||
and minetest.registered_nodes[nn.name].mvps_sticky then
|
and minetest.registered_nodes[nn.name].mvps_sticky then
|
||||||
connected, has_loop = minetest.registered_nodes[nn.name].mvps_sticky(np, nn, piston_pos)
|
connected, has_loop = minetest.registered_nodes[nn.name].mvps_sticky(np, nn, piston_pos)
|
||||||
|
@ -206,16 +209,9 @@ function mesecon.mvps_push(pos, dir, maximum, player_name, piston_pos)
|
||||||
end
|
end
|
||||||
|
|
||||||
function mesecon.mvps_pull_single(pos, dir, maximum, player_name, piston_pos)
|
function mesecon.mvps_pull_single(pos, dir, maximum, player_name, piston_pos)
|
||||||
local nodes = mesecon.mvps_get_stack(pos, dir, maximum, player_name, piston_pos)
|
return mesecon.mvps_push_or_pull(pos, vector.multiply(dir, -1), dir, maximum, player_name, piston_pos)
|
||||||
|
|
||||||
if not nodes then return end
|
|
||||||
-- ensure sticky pistons; even without slimeblocks attached adhere to the unpullable rule.
|
|
||||||
for id, n in ipairs(nodes) do
|
|
||||||
if not mesecon.is_mvps_unsticky(n.node, dir, nodes, id) then
|
|
||||||
return mesecon.mvps_push_or_pull(pos, vector.multiply(dir, -1), dir, maximum, player_name, piston_pos)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- pos: pos of mvps; stackdir: direction of building the stack
|
-- pos: pos of mvps; stackdir: direction of building the stack
|
||||||
-- movedir: direction of actual movement
|
-- movedir: direction of actual movement
|
||||||
-- maximum: maximum nodes to be pushed
|
-- maximum: maximum nodes to be pushed
|
||||||
|
@ -327,17 +323,17 @@ function mesecon.mvps_move_objects(pos, dir, nodestack)
|
||||||
-- Move object at tip of stack, pushpos is position at tip of stack
|
-- Move object at tip of stack, pushpos is position at tip of stack
|
||||||
local pushpos = vector.add(pos, vector.multiply(dir, #nodestack))
|
local pushpos = vector.add(pos, vector.multiply(dir, #nodestack))
|
||||||
|
|
||||||
local objects = minetest.get_objects_inside_radius(pushpos, 1.15)
|
local objects = minetest.get_objects_inside_radius(pushpos, 1)
|
||||||
for _, obj in ipairs(objects) do
|
for _, obj in ipairs(objects) do
|
||||||
table.insert(objects_to_move, obj)
|
table.insert(objects_to_move, obj)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Move objects lying/standing on the stack (before it was pushed - oldstack)
|
-- Move objects lying/standing on the stack (before it was pushed - oldstack)
|
||||||
if GRAVITY > 0 then
|
if tonumber(minetest.settings:get("movement_gravity")) > 0 and dir.y == 0 then
|
||||||
-- If gravity positive, push players standing on the stack
|
-- If gravity positive and dir horizontal, push players standing on the stack
|
||||||
for _, n in ipairs(nodestack) do
|
for _, n in ipairs(nodestack) do
|
||||||
local p_above = vector.add(n.pos, {x=0, y=1, z=0})
|
local p_above = vector.add(n.pos, {x=0, y=1, z=0})
|
||||||
local objects = minetest.get_objects_inside_radius(p_above, 1.15)
|
local objects = minetest.get_objects_inside_radius(p_above, 1)
|
||||||
for _, obj in ipairs(objects) do
|
for _, obj in ipairs(objects) do
|
||||||
table.insert(objects_to_move, obj)
|
table.insert(objects_to_move, obj)
|
||||||
end
|
end
|
||||||
|
@ -346,57 +342,26 @@ function mesecon.mvps_move_objects(pos, dir, nodestack)
|
||||||
|
|
||||||
for _, obj in ipairs(objects_to_move) do
|
for _, obj in ipairs(objects_to_move) do
|
||||||
local entity = obj:get_luaentity()
|
local entity = obj:get_luaentity()
|
||||||
local player = obj:is_player()
|
if not entity or not mesecon.is_mvps_unmov(entity.name) then
|
||||||
|
local np = vector.add(obj:get_pos(), dir)
|
||||||
|
|
||||||
if not entity or not player and not mesecon.is_mvps_unmov(entity.name) then
|
|
||||||
local np = vector.add(obj:getpos(), dir)
|
|
||||||
|
|
||||||
--move only if destination is not solid
|
--move only if destination is not solid
|
||||||
local nn = minetest.get_node(np)
|
local nn = minetest.get_node(np)
|
||||||
if not ((not minetest.registered_nodes[nn.name])
|
if not ((not minetest.registered_nodes[nn.name])
|
||||||
or minetest.registered_nodes[nn.name].walkable) then
|
or minetest.registered_nodes[nn.name].walkable) then
|
||||||
obj:set_pos(np)
|
obj:set_pos(np)
|
||||||
-- Launch Player, TNT & mobs like in Minecraft
|
|
||||||
-- Only doing so if slimeblock is attached.
|
|
||||||
for _, r in ipairs(mesecon.rules.alldirs) do
|
|
||||||
local adjpos = vector.add(np, r)
|
|
||||||
local adjnode = minetest.get_node(adjpos)
|
|
||||||
if minetest.registered_nodes[adjnode.name] and minetest.registered_nodes[adjnode.name].mvps_sticky then
|
|
||||||
local np = vector.add(obj:getpos(), dir)
|
|
||||||
|
|
||||||
-- Reset acceleration of all objects before launching.
|
|
||||||
-- Fixes eggs & snowballs thrown by dispensers, and have negative acceleration.
|
|
||||||
obj:set_acceleration({x=dir.x, y=-GRAVITY, z=dir.z})
|
|
||||||
|
|
||||||
|
|
||||||
--Need to set velocities differently for players, items & mobs/tnt, and falling anvils.
|
|
||||||
if player then
|
|
||||||
obj:add_player_velocity({x = dir.x * 10, y = dir.y * 13, z = dir.z * 10})
|
|
||||||
elseif entity.name == "__builtin:item" then
|
|
||||||
obj:add_velocity({x = dir.x * 180, y = dir.y * 130, z = dir.z * 180})
|
|
||||||
elseif entity.name == "__builtin:falling_node" then
|
|
||||||
obj:add_velocity({x = dir.x * 43, y = dir.y * 72, z = dir.z * 43})
|
|
||||||
else
|
|
||||||
obj:add_velocity({x = dir.x * 6, y = dir.y * 9, z = dir.z * 6})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Unmovable by design
|
||||||
|
|
||||||
-- Unmovable by design: nodes
|
|
||||||
mesecon.register_mvps_stopper("mcl_core:barrier")
|
mesecon.register_mvps_stopper("mcl_core:barrier")
|
||||||
mesecon.register_mvps_stopper("mcl_core:realm_barrier")
|
mesecon.register_mvps_stopper("mcl_core:realm_barrier")
|
||||||
mesecon.register_mvps_stopper("mcl_core:void")
|
mesecon.register_mvps_stopper("mcl_core:void")
|
||||||
mesecon.register_mvps_stopper("mcl_core:bedrock")
|
mesecon.register_mvps_stopper("mcl_core:bedrock")
|
||||||
mesecon.register_mvps_stopper("mcl_core:obsidian")
|
mesecon.register_mvps_stopper("mcl_core:obsidian")
|
||||||
mesecon.register_mvps_stopper("mcl_chests:ender_chest")
|
mesecon.register_mvps_stopper("mcl_chests:ender_chest")
|
||||||
mesecon.register_mvps_stopper("mcl_chests:ender_chest_small")
|
|
||||||
mesecon.register_mvps_stopper("mcl_mobspawners:spawner")
|
mesecon.register_mvps_stopper("mcl_mobspawners:spawner")
|
||||||
mesecon.register_mvps_stopper("mesecons_commandblock:commandblock_off")
|
mesecon.register_mvps_stopper("mesecons_commandblock:commandblock_off")
|
||||||
mesecon.register_mvps_stopper("mesecons_commandblock:commandblock_on")
|
mesecon.register_mvps_stopper("mesecons_commandblock:commandblock_on")
|
||||||
|
@ -404,28 +369,6 @@ mesecon.register_mvps_stopper("mcl_portals:portal")
|
||||||
mesecon.register_mvps_stopper("mcl_portals:portal_end")
|
mesecon.register_mvps_stopper("mcl_portals:portal_end")
|
||||||
mesecon.register_mvps_stopper("mcl_portals:end_portal_frame")
|
mesecon.register_mvps_stopper("mcl_portals:end_portal_frame")
|
||||||
mesecon.register_mvps_stopper("mcl_portals:end_portal_frame_eye")
|
mesecon.register_mvps_stopper("mcl_portals:end_portal_frame_eye")
|
||||||
mesecon.register_mvps_stopper("mcl_enchanting:table")
|
|
||||||
mesecon.register_mvps_stopper("mcl_jukebox:jukebox")
|
|
||||||
mesecon.register_mvps_stopper("mesecons_solarpanel:solar_panel_on")
|
|
||||||
mesecon.register_mvps_stopper("mesecons_solarpanel:solar_panel_off")
|
|
||||||
mesecon.register_mvps_stopper("mesecons_solarpanel:solar_panel_inverted_on")
|
|
||||||
mesecon.register_mvps_stopper("mesecons_solarpanel:solar_panel_inverted_off")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:chest")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:chest_small")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:chest_left")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:chest_right")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:trapped_chest")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:trapped_chest_small")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:trapped_chest_left")
|
|
||||||
mesecon.register_mvps_stopper("mcl_chests:trapped_chest_right")
|
|
||||||
mesecon.register_mvps_stopper("mcl_banners:hanging_banner")
|
|
||||||
mesecon.register_mvps_stopper("mcl_banners:standing_banner")
|
|
||||||
mesecon.register_mvps_stopper("mcl_signs:wall_sign")
|
|
||||||
mesecon.register_mvps_stopper("mcl_signs:standing_sign")
|
|
||||||
mesecon.register_mvps_stopper("mcl_signs:standing_sign22_5")
|
|
||||||
mesecon.register_mvps_stopper("mcl_signs:standing_sign45")
|
|
||||||
mesecon.register_mvps_stopper("mcl_signs:standing_sign67_5")
|
|
||||||
|
|
||||||
|
|
||||||
-- Unmovable by technical restrictions.
|
-- Unmovable by technical restrictions.
|
||||||
-- Open formspec would screw up if node is destroyed (minor problem)
|
-- Open formspec would screw up if node is destroyed (minor problem)
|
||||||
|
@ -444,22 +387,7 @@ mesecon.register_mvps_stopper("mcl_anvils:anvil_damage_1")
|
||||||
mesecon.register_mvps_stopper("mcl_anvils:anvil_damage_2")
|
mesecon.register_mvps_stopper("mcl_anvils:anvil_damage_2")
|
||||||
-- Would screw up on/off state of trapped chest (big problem)
|
-- Would screw up on/off state of trapped chest (big problem)
|
||||||
|
|
||||||
|
-- Glazed terracotta: unpullable
|
||||||
-- Unmovable by design: objects
|
|
||||||
mesecon.register_mvps_unmov("mcl_enchanting:book")
|
|
||||||
mesecon.register_mvps_unmov("mcl_chests:chest")
|
|
||||||
mesecon.register_mvps_unmov("mcl_banners:hanging_banner")
|
|
||||||
mesecon.register_mvps_unmov("mcl_banners:standing_banner")
|
|
||||||
mesecon.register_mvps_unmov("mcl_signs:text")
|
|
||||||
mesecon.register_mvps_unmov("mcl_mobspawners:doll")
|
|
||||||
mesecon.register_mvps_unmov("mcl_armor_stand:armor_entity")
|
|
||||||
mesecon.register_mvps_unmov("mcl_itemframes:item")
|
|
||||||
mesecon.register_mvps_unmov("mcl_itemframes:map")
|
|
||||||
mesecon.register_mvps_unmov("mcl_paintings:painting")
|
|
||||||
mesecon.register_mvps_unmov("mcl_end:crystal")
|
|
||||||
|
|
||||||
|
|
||||||
-- Unpullable by design: nodes
|
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_red")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_red")
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_orange")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_orange")
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_yellow")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_yellow")
|
||||||
|
@ -476,444 +404,6 @@ mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_black")
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_brown")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_brown")
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_light_blue")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_light_blue")
|
||||||
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_pink")
|
mesecon.register_mvps_unsticky("mcl_colorblocks:glazed_terracotta_pink")
|
||||||
-- Beds
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_black_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_black_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_blue_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_blue_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_brown_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_brown_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_cyan_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_cyan_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_green_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_green_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_grey_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_grey_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_light_blue_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_light_blue_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_lime_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_lime_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_magenta_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_magenta_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_orange_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_orange_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_pink_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_pink_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_purple_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_purple_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_red_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_red_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_silver_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_silver_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_white_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_white_bottom")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_yellow_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_beds:bed_yellow_bottom")
|
|
||||||
-- Buttons
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_stone_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_stone_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_wood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_wood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_acaciawood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_acaciawood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_birchwood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_birchwood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_darkwood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_darkwood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_sprucewood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_sprucewood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_junglewood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_button:button_junglewood_on")
|
|
||||||
-- Cactus, Sugarcane & Vines
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:cactus")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:reeds")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:vine")
|
|
||||||
-- Cake
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_3")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_4")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_5")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake_6")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cake:cake")
|
|
||||||
-- Carpet
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:black_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:blue_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:brown_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:cyan_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:green_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:grey_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:light_blue_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:lime_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:orange_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:magenta_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:pink_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:purple_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:red_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:silver_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:white_carpet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_wool:yellow_carpet")
|
|
||||||
-- Carved & Jack O'Lantern Pumpkins, Pumpkin & Melon
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:pumpkin_face")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:pumpkin_face_light")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:pumpkin")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:melon")
|
|
||||||
-- Chorus Plant & Flower
|
|
||||||
mesecon.register_mvps_unsticky("mcl_end:chorus_plant")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_end:chorus_flower")
|
|
||||||
-- Cobweb
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:cobweb")
|
|
||||||
-- Cocoa
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cocoas:cocoa_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cocoas:cocoa_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_cocoas:cocoa_3")
|
|
||||||
-- Doors
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:wooden_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:wooden_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:wooden_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:wooden_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:iron_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:iron_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:iron_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:iron_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:acacia_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:acacia_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:acacia_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:acacia_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:birch_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:birch_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:birch_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:birch_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:dark_oak_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:dark_oak_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:dark_oak_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:dark_oak_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:spruce_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:spruce_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:spruce_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:spruce_door_b_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:jungle_door_t_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:jungle_door_b_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:jungle_door_t_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_doors:jungle_door_b_2")
|
|
||||||
-- Dragon Egg
|
|
||||||
mesecon.register_mvps_unsticky("mcl_end:dragon_egg")
|
|
||||||
-- Fire
|
|
||||||
mesecon.register_mvps_unsticky("mcl_fire:fire")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_fire:eternal_fire")
|
|
||||||
-- Flower Pots
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_allium")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_azure_bluet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_blue_orchid")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_dandelion")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_fern")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_oxeye_daisy")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_poppy")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_tulip_orange")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_tulip_pink")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_tulip_red")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowerpots:flower_pot_tulip_white")
|
|
||||||
-- Flowers & Lilypad
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:allium")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:azure_bluet")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:blue_orchid")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:dandelion")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:double_fern")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:double_fern_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:fern")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:lilac")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:lilac_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:oxeye_daisy")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:peony")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:peony_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:poppy")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:rose_bush")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:rose_bush_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:sunflower")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:sunflower_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:tallgrass")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:double_grass")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:double_grass_top")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:tulip_orange")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:tulip_pink")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:tulip_red")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:tulip_white")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_flowers:waterlily")
|
|
||||||
-- Heads
|
|
||||||
mesecon.register_mvps_unsticky("mcl_heads:creeper")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_heads:skeleton")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_heads:steve")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_heads:wither_skeleton")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_heads:zombie")
|
|
||||||
-- Item Frame
|
|
||||||
mesecon.register_mvps_unsticky("mcl_itemframes:item_frame")
|
|
||||||
-- Ladder
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:ladder")
|
|
||||||
-- Lava & Water
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:lava_source")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:lava_flowing")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:water_source")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:water_flowing")
|
|
||||||
mesecon.register_mvps_unsticky("mclx_core:river_water_source")
|
|
||||||
mesecon.register_mvps_unsticky("mclx_core:river_water_flowing")
|
|
||||||
-- Leaves
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:leaves")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:acacialeaves")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:birchleaves")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:darkleaves")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:spruceleaves")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:jungleleaves")
|
|
||||||
-- Lever
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_walllever:wall_lever_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_walllever:wall_lever_on")
|
|
||||||
-- Mushrooms & Nether Wart
|
|
||||||
mesecon.register_mvps_unsticky("mcl_mushroom:mushroom_brown")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_mushroom:mushroom_red")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_nether:nether_wart_0")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_nether:nether_wart_1")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_nether:nether_wart_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_nether:nether_wart")
|
|
||||||
-- Pressure Plates
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_wood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_wood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_stone_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_stone_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_acaciawood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_acaciawoood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_birchwood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_birchwood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_darkwood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_darkwood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_sprucekwood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_sprucewood_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_junglewood_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_pressureplates:pressure_plate_junglewood_off")
|
|
||||||
-- Redstone Comparators
|
|
||||||
mesecon.register_mvps_unsticky("mcl_comparators:comparator_on_sub")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_comparators:comparator_off_sub")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_comparators:comparator_on_comp")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_comparators:comparator_off_comp")
|
|
||||||
-- Redstone Dust
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00000000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00000000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10000000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10000000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01000000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01000000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11000000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11000000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00100000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00100000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10100000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10100000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00010000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00010000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10010000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10010000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10001000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10001000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11001000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11001000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10101000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10101000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10011000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10011000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111000_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111000_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01000100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01000100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11000100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11000100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11001100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11001100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111100_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111100_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00100010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00100010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10100010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10100010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10101010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10101010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111010_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111010_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01100110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11100110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11101110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111110_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111110_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00010001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00010001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10010001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10010001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10011001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10011001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111001_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111001_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01010101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11010101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11011101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111101_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111101_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_00110011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10110011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_10111011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111011_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111011_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110111_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_01110111_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110111_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11110111_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111111_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons:wire_11111111_off")
|
|
||||||
-- Redstone Repeater
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_off_1")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_off_2")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_off_3")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_off_4")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_on_1")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_on_2")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_on_3")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_delayer:delayer_on_4")
|
|
||||||
-- Redstone Torch
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_torch:mesecon_torch_on")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_torch:mesecon_torch_off")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_torch:mesecon_torch_on_wall")
|
|
||||||
mesecon.register_mvps_unsticky("mesecons_torch:mesecon_torch_off_wall")
|
|
||||||
-- Sea Pickle
|
|
||||||
mesecon.register_mvps_unsticky("mcl_ocean:sea_pickle_1_dead_brain_coral_block")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_ocean:sea_pickle_2_dead_brain_coral_block")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_ocean:sea_pickle_3_dead_brain_coral_block")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_ocean:sea_pickle_4_dead_brain_coral_block")
|
|
||||||
-- Shulker chests
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:black_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:blue_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:brown_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:cyan_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:green_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:grey_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:light_blue_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:lime_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:orange_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:magenta_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:pink_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:purple_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:red_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:silver_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:white_shulker_box_small")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_chests:yellow_shulker_box_small")
|
|
||||||
-- Snow
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_3")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_4")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_5")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_6")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_7")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_core:snow_8")
|
|
||||||
-- Torch
|
|
||||||
mesecon.register_mvps_unsticky("mcl_torches:torch")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_torches:torch_wall")
|
|
||||||
-- Wheat
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_2")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_3")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_4")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_5")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_6")
|
|
||||||
mesecon.register_mvps_unsticky("mcl_farming:wheat_7")
|
|
||||||
|
|
||||||
|
|
||||||
mesecon.register_on_mvps_move(mesecon.move_hot_nodes)
|
mesecon.register_on_mvps_move(mesecon.move_hot_nodes)
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ minetest.register_node("mcl_core:slimeblock", {
|
||||||
neighbor_node = minetest.get_node(neighbor_pos)
|
neighbor_node = minetest.get_node(neighbor_pos)
|
||||||
end
|
end
|
||||||
local name = neighbor_node.name
|
local name = neighbor_node.name
|
||||||
if name ~= "air" and name ~= "ignore" and not mesecon.mvps_unsticky[name] then
|
if name ~= "air" and name ~= "ignore" then
|
||||||
local piston, piston_side, piston_up, piston_down = false, false, false, false
|
local piston, piston_side, piston_up, piston_down = false, false, false, false
|
||||||
if name == "mesecons_pistons:piston_sticky_off" or name == "mesecons_pistons:piston_normal_off" then
|
if name == "mesecons_pistons:piston_sticky_off" or name == "mesecons_pistons:piston_normal_off" then
|
||||||
piston, piston_side = true, true
|
piston, piston_side = true, true
|
||||||
|
|
|
@ -18,19 +18,21 @@ minetest.register_node("mcl_farming:beetroot_0", {
|
||||||
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
|
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
|
||||||
_doc_items_entry_name = S("Premature Beetroot Plant"),
|
_doc_items_entry_name = S("Premature Beetroot Plant"),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
drop = "mcl_farming:beetroot_seeds",
|
||||||
tiles = {"mcl_farming_beetroot_0.png"},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_0.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_beetroot_0.png",
|
inventory_image = "mcl_farming_beetroot_0.png",
|
||||||
wield_image = "mcl_farming_beetroot_0.png",
|
wield_image = "mcl_farming_beetroot_0.png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, -6/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
@ -42,19 +44,21 @@ minetest.register_node("mcl_farming:beetroot_1", {
|
||||||
description = S("Premature Beetroot Plant (Stage 2)"),
|
description = S("Premature Beetroot Plant (Stage 2)"),
|
||||||
_doc_items_create_entry = false,
|
_doc_items_create_entry = false,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
drop = "mcl_farming:beetroot_seeds",
|
||||||
tiles = {"mcl_farming_beetroot_1.png"},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_1.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_beetroot_1.png",
|
inventory_image = "mcl_farming_beetroot_1.png",
|
||||||
wield_image = "mcl_farming_beetroot_1.png",
|
wield_image = "mcl_farming_beetroot_1.png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, -3/16, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, -4/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
@ -66,19 +70,21 @@ minetest.register_node("mcl_farming:beetroot_2", {
|
||||||
description = S("Premature Beetroot Plant (Stage 3)"),
|
description = S("Premature Beetroot Plant (Stage 3)"),
|
||||||
_doc_items_create_entry = false,
|
_doc_items_create_entry = false,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:beetroot_seeds",
|
drop = "mcl_farming:beetroot_seeds",
|
||||||
tiles = {"mcl_farming_beetroot_2.png"},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_2.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_beetroot_2.png",
|
inventory_image = "mcl_farming_beetroot_2.png",
|
||||||
wield_image = "mcl_farming_beetroot_2.png",
|
wield_image = "mcl_farming_beetroot_2.png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, 2/16, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, 1/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
@ -91,11 +97,12 @@ minetest.register_node("mcl_farming:beetroot", {
|
||||||
_doc_items_longdesc = S("A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further."),
|
_doc_items_longdesc = S("A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further."),
|
||||||
_doc_items_create_entry = true,
|
_doc_items_create_entry = true,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = {
|
drop = {
|
||||||
--[[ drops 1 beetroot guaranteed.
|
--[[ drops 1 beetroot guaranteed.
|
||||||
drops 1-4 beetroot seeds:
|
drops 1-4 beetroot seeds:
|
||||||
|
@ -112,13 +119,14 @@ minetest.register_node("mcl_farming:beetroot", {
|
||||||
{ items = {"mcl_farming:beetroot_seeds 1"}, rarity = 4 },
|
{ items = {"mcl_farming:beetroot_seeds 1"}, rarity = 4 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
tiles = {"mcl_farming_beetroot_3.png"},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_beetroot_3.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_beetroot_3.png",
|
inventory_image = "mcl_farming_beetroot_3.png",
|
||||||
wield_image = "mcl_farming_beetroot_3.png",
|
wield_image = "mcl_farming_beetroot_3.png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, 3/16, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, 2/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,beetroot=4},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,beetroot=4},
|
||||||
|
|
|
@ -28,18 +28,20 @@ for i=1, 7 do
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
paramtype2 = "meshoptions",
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:carrot_item",
|
drop = "mcl_farming:carrot_item",
|
||||||
tiles = {texture},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = texture,
|
inventory_image = texture,
|
||||||
wield_image = texture,
|
wield_image = texture,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, sel_height, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, sel_height - 1/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
@ -53,11 +55,13 @@ minetest.register_node("mcl_farming:carrot", {
|
||||||
_doc_items_longdesc = S("Mature carrot plants are ready to be harvested for carrots. They won't grow any further."),
|
_doc_items_longdesc = S("Mature carrot plants are ready to be harvested for carrots. They won't grow any further."),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
paramtype2 = "meshoptions",
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
tiles = {"farming_carrot_4.png"},
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("farming_carrot_4.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "farming_carrot_4.png",
|
inventory_image = "farming_carrot_4.png",
|
||||||
wield_image = "farming_carrot_4.png",
|
wield_image = "farming_carrot_4.png",
|
||||||
drop = {
|
drop = {
|
||||||
|
@ -72,7 +76,7 @@ minetest.register_node("mcl_farming:carrot", {
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, 4/16, 0.5}
|
{-0.5, -9/16, -0.5, 0.5, 3/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
|
|
@ -27,3 +27,73 @@ dofile(minetest.get_modpath("mcl_farming").."/potatoes.lua")
|
||||||
|
|
||||||
-- ========= BEETROOT =========
|
-- ========= BEETROOT =========
|
||||||
dofile(minetest.get_modpath("mcl_farming").."/beetroot.lua")
|
dofile(minetest.get_modpath("mcl_farming").."/beetroot.lua")
|
||||||
|
|
||||||
|
-- This function generates a row of plantlike and nodebox nodes whose
|
||||||
|
-- name starts with a given string, starting at a given position. It
|
||||||
|
-- places a given node below so that the rendering can be examined.
|
||||||
|
local function generate_plant_row(prefix, pos, below_node)
|
||||||
|
local i = 1
|
||||||
|
for node_name, node in pairs(minetest.registered_nodes) do
|
||||||
|
if (
|
||||||
|
1 == node_name:find(prefix) and
|
||||||
|
(
|
||||||
|
"plantlike" == node.drawtype or
|
||||||
|
"nodebox" == node.drawtype
|
||||||
|
)
|
||||||
|
) then
|
||||||
|
local node_pos = {
|
||||||
|
x = pos.x + i,
|
||||||
|
y = pos.y,
|
||||||
|
z = pos.z,
|
||||||
|
}
|
||||||
|
minetest.set_node(
|
||||||
|
node_pos,
|
||||||
|
{
|
||||||
|
name = node_name,
|
||||||
|
param2 = node.place_param2 or 0
|
||||||
|
}
|
||||||
|
)
|
||||||
|
local below_pos = {
|
||||||
|
x = node_pos.x,
|
||||||
|
y = node_pos.y - 1,
|
||||||
|
z = node_pos.z
|
||||||
|
}
|
||||||
|
minetest.set_node(
|
||||||
|
below_pos,
|
||||||
|
below_node
|
||||||
|
)
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_chatcommand("generate_farming_plant_rows",{
|
||||||
|
description = "Generates rows of mcl_farming plant nodes on farming soil and glass",
|
||||||
|
privs = { debug = true },
|
||||||
|
func = function(name, param)
|
||||||
|
local player = minetest.get_player_by_name(name)
|
||||||
|
local pos = player:get_pos()
|
||||||
|
local node_prefixes = {
|
||||||
|
"mcl_farming:beetroot",
|
||||||
|
"mcl_farming:carrot",
|
||||||
|
"mcl_farming:melon",
|
||||||
|
"mcl_farming:potato",
|
||||||
|
"mcl_farming:pumpkin",
|
||||||
|
"mcl_farming:wheat",
|
||||||
|
}
|
||||||
|
for i,node_prefix in ipairs(node_prefixes) do
|
||||||
|
generate_plant_row(
|
||||||
|
node_prefix,
|
||||||
|
pos,
|
||||||
|
{ name = "mcl_farming:soil" }
|
||||||
|
)
|
||||||
|
pos.z = pos.z + 2
|
||||||
|
generate_plant_row(
|
||||||
|
node_prefix,
|
||||||
|
pos,
|
||||||
|
{ name = "mcl_core:glass" }
|
||||||
|
)
|
||||||
|
pos.z = pos.z + 2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
|
@ -91,16 +91,18 @@ for s=1,7 do
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_plus_nodebox(),
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
drop = stem_drop,
|
drop = stem_drop,
|
||||||
tiles = {texture},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
wield_image = texture,
|
wield_image = texture,
|
||||||
inventory_image = texture,
|
inventory_image = texture,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.15, -0.5, -0.15, 0.15, -0.5+h, 0.15}
|
{-0.15, -9/16, -0.15, 0.15, -9/16+h, 0.15}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, plant_melon_stem=s},
|
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, plant_melon_stem=s},
|
||||||
|
|
|
@ -6,13 +6,13 @@ for i=1, 7 do
|
||||||
local texture, selbox
|
local texture, selbox
|
||||||
if i < 3 then
|
if i < 3 then
|
||||||
texture = "mcl_farming_potatoes_stage_0.png"
|
texture = "mcl_farming_potatoes_stage_0.png"
|
||||||
selbox = { -0.5, -0.5, -0.5, 0.5, -5/16, 0.5 }
|
selbox = { -0.5, -9/16, -0.5, 0.5, -6/16, 0.5 }
|
||||||
elseif i < 5 then
|
elseif i < 5 then
|
||||||
texture = "mcl_farming_potatoes_stage_1.png"
|
texture = "mcl_farming_potatoes_stage_1.png"
|
||||||
selbox = { -0.5, -0.5, -0.5, 0.5, -2/16, 0.5 }
|
selbox = { -0.5, -9/16, -0.5, 0.5, -3/16, 0.5 }
|
||||||
else
|
else
|
||||||
texture = "mcl_farming_potatoes_stage_2.png"
|
texture = "mcl_farming_potatoes_stage_2.png"
|
||||||
selbox = { -0.5, -0.5, -0.5, 0.5, 2/16, 0.5 }
|
selbox = { -0.5, -9/16, -0.5, 0.5, 1/16, 0.5 }
|
||||||
end
|
end
|
||||||
|
|
||||||
local create, name, longdesc
|
local create, name, longdesc
|
||||||
|
@ -33,13 +33,15 @@ for i=1, 7 do
|
||||||
_doc_items_entry_name = name,
|
_doc_items_entry_name = name,
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:potato_item",
|
drop = "mcl_farming:potato_item",
|
||||||
tiles = { texture },
|
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = texture,
|
inventory_image = texture,
|
||||||
wield_image = texture,
|
wield_image = texture,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
|
@ -57,12 +59,14 @@ minetest.register_node("mcl_farming:potato", {
|
||||||
description = S("Mature Potato Plant"),
|
description = S("Mature Potato Plant"),
|
||||||
_doc_items_longdesc = S("Mature potato plants are ready to be harvested for potatoes. They won't grow any further."),
|
_doc_items_longdesc = S("Mature potato plants are ready to be harvested for potatoes. They won't grow any further."),
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
tiles = {"mcl_farming_potatoes_stage_3.png"},
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_potatoes_stage_3.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
wield_image = "mcl_farming_potatoes_stage_3.png",
|
wield_image = "mcl_farming_potatoes_stage_3.png",
|
||||||
inventory_image = "mcl_farming_potatoes_stage_3.png",
|
inventory_image = "mcl_farming_potatoes_stage_3.png",
|
||||||
drop = {
|
drop = {
|
||||||
|
@ -77,7 +81,7 @@ minetest.register_node("mcl_farming:potato", {
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{ -0.5, -0.5, -0.5, 0.5, 1/16, 0.5 }
|
{ -0.5, -9/16, -0.5, 0.5, 0, 0.5 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||||
|
|
|
@ -63,16 +63,18 @@ for s=1,7 do
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_plus_nodebox(),
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
drop = stem_drop,
|
drop = stem_drop,
|
||||||
tiles = {texture},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture(texture) },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = texture,
|
inventory_image = texture,
|
||||||
wield_image = texture,
|
wield_image = texture,
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.15, -0.5, -0.15, 0.15, -0.5+h, 0.15}
|
{-0.15, -9/16, -0.15, 0.15, -9/16+h, 0.15}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,},
|
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,},
|
||||||
|
@ -104,7 +106,6 @@ local pumpkin_base_def = {
|
||||||
_mcl_blast_resistance = 1,
|
_mcl_blast_resistance = 1,
|
||||||
_mcl_hardness = 1,
|
_mcl_hardness = 1,
|
||||||
}
|
}
|
||||||
minetest.register_node("mcl_farming:pumpkin", pumpkin_base_def)
|
|
||||||
|
|
||||||
local pumpkin_face_base_def = table.copy(pumpkin_base_def)
|
local pumpkin_face_base_def = table.copy(pumpkin_base_def)
|
||||||
pumpkin_face_base_def.description = S("Pumpkin")
|
pumpkin_face_base_def.description = S("Pumpkin")
|
||||||
|
@ -115,6 +116,11 @@ pumpkin_face_base_def.groups.armor_head=1
|
||||||
pumpkin_face_base_def._mcl_armor_mob_range_factor = 0
|
pumpkin_face_base_def._mcl_armor_mob_range_factor = 0
|
||||||
pumpkin_face_base_def._mcl_armor_mob_range_mob = "mobs_mc:enderman"
|
pumpkin_face_base_def._mcl_armor_mob_range_mob = "mobs_mc:enderman"
|
||||||
pumpkin_face_base_def.groups.non_combat_armor=1
|
pumpkin_face_base_def.groups.non_combat_armor=1
|
||||||
|
pumpkin_face_base_def.on_construct = function(pos)
|
||||||
|
-- Attempt to spawn iron golem or snow golem
|
||||||
|
mobs_mc.tools.check_iron_golem_summon(pos)
|
||||||
|
mobs_mc.tools.check_snow_golem_summon(pos)
|
||||||
|
end
|
||||||
if minetest.get_modpath("mcl_armor") then
|
if minetest.get_modpath("mcl_armor") then
|
||||||
pumpkin_face_base_def.on_secondary_use = armor.on_armor_use
|
pumpkin_face_base_def.on_secondary_use = armor.on_armor_use
|
||||||
end
|
end
|
||||||
|
@ -123,12 +129,11 @@ end
|
||||||
mcl_farming:add_plant("plant_pumpkin_stem", "mcl_farming:pumpkintige_unconnect", {"mcl_farming:pumpkin_1", "mcl_farming:pumpkin_2", "mcl_farming:pumpkin_3", "mcl_farming:pumpkin_4", "mcl_farming:pumpkin_5", "mcl_farming:pumpkin_6", "mcl_farming:pumpkin_7"}, 30, 5)
|
mcl_farming:add_plant("plant_pumpkin_stem", "mcl_farming:pumpkintige_unconnect", {"mcl_farming:pumpkin_1", "mcl_farming:pumpkin_2", "mcl_farming:pumpkin_3", "mcl_farming:pumpkin_4", "mcl_farming:pumpkin_5", "mcl_farming:pumpkin_6", "mcl_farming:pumpkin_7"}, 30, 5)
|
||||||
|
|
||||||
-- Register actual pumpkin, connected stems and stem-to-pumpkin growth
|
-- Register actual pumpkin, connected stems and stem-to-pumpkin growth
|
||||||
mcl_farming:add_gourd("mcl_farming:pumpkintige_unconnect", "mcl_farming:pumpkintige_linked", "mcl_farming:pumpkintige_unconnect", stem_def, stem_drop, "mcl_farming:pumpkin_face", pumpkin_face_base_def, 30, 15, "mcl_farming_pumpkin_stem_connected.png^[colorize:#FFA800:127",
|
mcl_farming:add_gourd("mcl_farming:pumpkintige_unconnect", "mcl_farming:pumpkintige_linked", "mcl_farming:pumpkintige_unconnect", stem_def, stem_drop, "mcl_farming:pumpkin", pumpkin_base_def, 30, 15, "mcl_farming_pumpkin_stem_connected.png^[colorize:#FFA800:127")
|
||||||
function(pos)
|
|
||||||
-- Attempt to spawn iron golem or snow golem
|
-- Steal function to properly disconnect a carved pumpkin
|
||||||
mobs_mc.tools.check_iron_golem_summon(pos)
|
pumpkin_face_base_def.after_destruct = minetest.registered_nodes["mcl_farming:pumpkin"].after_destruct
|
||||||
mobs_mc.tools.check_snow_golem_summon(pos)
|
minetest.register_node("mcl_farming:pumpkin_face", pumpkin_face_base_def)
|
||||||
end)
|
|
||||||
|
|
||||||
-- Jack o'Lantern
|
-- Jack o'Lantern
|
||||||
minetest.register_node("mcl_farming:pumpkin_face_light", {
|
minetest.register_node("mcl_farming:pumpkin_face_light", {
|
||||||
|
@ -165,11 +170,6 @@ minetest.register_craft({
|
||||||
recipe = {{"mcl_farming:pumpkin"}}
|
recipe = {{"mcl_farming:pumpkin"}}
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mcl_farming:pumpkin_seeds 4",
|
|
||||||
recipe = {{"mcl_farming:pumpkin_face"}}
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craftitem("mcl_farming:pumpkin_pie", {
|
minetest.register_craftitem("mcl_farming:pumpkin_pie", {
|
||||||
description = S("Pumpkin Pie"),
|
description = S("Pumpkin Pie"),
|
||||||
_doc_items_longdesc = S("A pumpkin pie is a tasty food item which can be eaten."),
|
_doc_items_longdesc = S("A pumpkin pie is a tasty food item which can be eaten."),
|
||||||
|
@ -187,11 +187,6 @@ minetest.register_craft({
|
||||||
output = "mcl_farming:pumpkin_pie",
|
output = "mcl_farming:pumpkin_pie",
|
||||||
recipe = {"mcl_farming:pumpkin", "mcl_core:sugar", "mcl_throwing:egg"},
|
recipe = {"mcl_farming:pumpkin", "mcl_core:sugar", "mcl_throwing:egg"},
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = "mcl_farming:pumpkin_pie",
|
|
||||||
recipe = {"mcl_farming:pumpkin_face", "mcl_core:sugar", "mcl_throwing:egg"},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.get_modpath("doc") then
|
if minetest.get_modpath("doc") then
|
||||||
|
|
|
@ -178,7 +178,7 @@ end
|
||||||
- stem_def: Partial node definition of the fully-grown unconnected stem node. Many fields are already defined. You need to add `tiles` and `description` at minimum. Don't define on_construct without good reason
|
- stem_def: Partial node definition of the fully-grown unconnected stem node. Many fields are already defined. You need to add `tiles` and `description` at minimum. Don't define on_construct without good reason
|
||||||
- stem_drop: Drop probability table for all stem
|
- stem_drop: Drop probability table for all stem
|
||||||
- gourd_itemstring: Desired itemstring of the full gourd node
|
- gourd_itemstring: Desired itemstring of the full gourd node
|
||||||
- gourd_def: (almost) full definition of the gourd node. This function will add on_construct and after_dig_node to the definition for unconnecting any connected stems
|
- gourd_def: (almost) full definition of the gourd node. This function will add on_construct and after_destruct to the definition for unconnecting any connected stems
|
||||||
- grow_interval: Will attempt to grow a gourd periodically at this interval in seconds
|
- grow_interval: Will attempt to grow a gourd periodically at this interval in seconds
|
||||||
- grow_chance: Chance of 1/grow_chance to grow a gourd next to the full unconnected stem after grow_interval has passed. Must be a natural number
|
- grow_chance: Chance of 1/grow_chance to grow a gourd next to the full unconnected stem after grow_interval has passed. Must be a natural number
|
||||||
- connected_stem_texture: Texture of the connected stem
|
- connected_stem_texture: Texture of the connected stem
|
||||||
|
@ -228,8 +228,8 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register gourd
|
-- Register gourd
|
||||||
if not gourd_def.after_dig_node then
|
if not gourd_def.after_destruct then
|
||||||
gourd_def.after_dig_node = function(blockpos, oldnode, oldmetadata, user)
|
gourd_def.after_destruct = function(blockpos, oldnode)
|
||||||
-- Disconnect any connected stems, turning them back to normal stems
|
-- Disconnect any connected stems, turning them back to normal stems
|
||||||
for n=1, #neighbors do
|
for n=1, #neighbors do
|
||||||
local offset = neighbors[n]
|
local offset = neighbors[n]
|
||||||
|
@ -265,7 +265,7 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
|
||||||
stem_def.selection_box = {
|
stem_def.selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
|
{-0.15, -9/16, -0.15, 0.15, 7/16, 0.15}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -273,7 +273,20 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
|
||||||
stem_def.paramtype = "light"
|
stem_def.paramtype = "light"
|
||||||
end
|
end
|
||||||
if not stem_def.drawtype then
|
if not stem_def.drawtype then
|
||||||
stem_def.drawtype = "plantlike"
|
stem_def.drawtype = "nodebox"
|
||||||
|
end
|
||||||
|
if not stem_def.node_box then
|
||||||
|
stem_def.node_box = mcl_farming:get_plantlike_plus_nodebox()
|
||||||
|
end
|
||||||
|
if stem_def.tiles then
|
||||||
|
for i=1,#stem_def.tiles do
|
||||||
|
stem_def.tiles[i] = mcl_farming:align_plantlike_nodebox_texture(
|
||||||
|
stem_def.tiles[i]
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not stem_def.use_texture_alpha then
|
||||||
|
stem_def.use_texture_alpha = "clip"
|
||||||
end
|
end
|
||||||
if stem_def.walkable == nil then
|
if stem_def.walkable == nil then
|
||||||
stem_def.walkable = false
|
stem_def.walkable = false
|
||||||
|
@ -300,7 +313,9 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
|
||||||
minetest.register_node(stem_itemstring, stem_def)
|
minetest.register_node(stem_itemstring, stem_def)
|
||||||
|
|
||||||
-- Register connected stems
|
-- Register connected stems
|
||||||
|
local connected_stem_texture = mcl_farming:align_plantlike_nodebox_texture(
|
||||||
|
connected_stem_texture
|
||||||
|
)
|
||||||
local connected_stem_tiles = {
|
local connected_stem_tiles = {
|
||||||
{ "blank.png", --top
|
{ "blank.png", --top
|
||||||
"blank.png", -- bottom
|
"blank.png", -- bottom
|
||||||
|
@ -332,16 +347,16 @@ function mcl_farming:add_gourd(full_unconnected_stem, connected_stem_basename, s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
local connected_stem_nodebox = {
|
local connected_stem_nodebox = {
|
||||||
{-0.5, -0.5, 0, 0.5, 0.5, 0},
|
{-0.5, -9/16, 0, 0.5, 7/16, 0},
|
||||||
{-0.5, -0.5, 0, 0.5, 0.5, 0},
|
{-0.5, -9/16, 0, 0.5, 7/16, 0},
|
||||||
{0, -0.5, -0.5, 0, 0.5, 0.5},
|
{0, -9/16, -0.5, 0, 7/16, 0.5},
|
||||||
{0, -0.5, -0.5, 0, 0.5, 0.5},
|
{0, -9/16, -0.5, 0, 7/16, 0.5},
|
||||||
}
|
}
|
||||||
local connected_stem_selectionbox = {
|
local connected_stem_selectionbox = {
|
||||||
{-0.1, -0.5, -0.1, 0.5, 0.2, 0.1},
|
{-0.1, -9/16, -0.1, 0.5, 0.2 - 1/16, 0.1},
|
||||||
{-0.5, -0.5, -0.1, 0.1, 0.2, 0.1},
|
{-0.5, -9/16, -0.1, 0.1, 0.2 - 1/16, 0.1},
|
||||||
{-0.1, -0.5, -0.1, 0.1, 0.2, 0.5},
|
{-0.1, -9/16, -0.1, 0.1, 0.2 - 1/16, 0.5},
|
||||||
{-0.1, -0.5, -0.5, 0.1, 0.2, 0.1},
|
{-0.1, -9/16, -0.5, 0.1, 0.2 - 1/16, 0.1},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i=1, 4 do
|
for i=1, 4 do
|
||||||
|
@ -469,3 +484,40 @@ minetest.register_lbm({
|
||||||
mcl_farming:grow_plant(identifier, pos, node, false, false, low_speed)
|
mcl_farming:grow_plant(identifier, pos, node, false, false, low_speed)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
-- This function returns a nodebox that imitates a plantlike plus (+)
|
||||||
|
-- drawtype, but is shifted 1/16 lower, into the empty space above
|
||||||
|
-- farming soil. The regular plantlike drawtype can not do this.
|
||||||
|
function mcl_farming:get_plantlike_plus_nodebox()
|
||||||
|
return {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ 0, -9/16, -0.15, 0, 7/16, 0.15 },
|
||||||
|
{ -0.15, -9/16, 0, 0.15, 7/16, 0 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- This function returns a nodebox that imitates a plantlike grid (#)
|
||||||
|
-- drawtype, but is shifted 1/16 lower, into the empty space above
|
||||||
|
-- farming soil. The regular plantlike drawtype can not do this.
|
||||||
|
function mcl_farming:get_plantlike_grid_nodebox()
|
||||||
|
return {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ 4/16, -9/16, -8/16, 4/16, 7/16, 8/16},
|
||||||
|
{-4/16, -9/16, -8/16, -4/16, 7/16, 8/16},
|
||||||
|
{-8/16, -9/16, -4/16, 8/16, 7/16, -4/16},
|
||||||
|
{-8/16, -9/16, 4/16, 8/16, 7/16, 4/16},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- This function takes a texture and returns a modified texture where
|
||||||
|
-- the bottom row is at the top, assuming 16px × 16px textures. This
|
||||||
|
-- is used to align textures to a “plantlike” nodebox shifted 1/16
|
||||||
|
-- below its own node – into the empty space above farming soil.
|
||||||
|
function mcl_farming:align_plantlike_nodebox_texture(texture)
|
||||||
|
local texture = texture:gsub("%^", "\\%^"):gsub(":", "\\:")
|
||||||
|
return "[combine:16x16:0,-15=" .. texture .. ":0,1=" .. texture
|
||||||
|
end
|
||||||
|
|
|
@ -39,19 +39,21 @@ for i=1,7 do
|
||||||
_doc_items_entry_name = name,
|
_doc_items_entry_name = name,
|
||||||
_doc_items_longdesc = longdesc,
|
_doc_items_longdesc = longdesc,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
drop = "mcl_farming:wheat_seeds",
|
drop = "mcl_farming:wheat_seeds",
|
||||||
tiles = {"mcl_farming_wheat_stage_"..(i-1)..".png"},
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_wheat_stage_"..(i-1)..".png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
|
inventory_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
|
||||||
wield_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
|
wield_image = "mcl_farming_wheat_stage_"..(i-1)..".png",
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
{-0.5, -0.5, -0.5, 0.5, sel_heights[i], 0.5}
|
{-0.5, -9/16, -0.5, 0.5, sel_heights[i] - 1/16, 0.5}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1},
|
groups = {dig_immediate=3, not_in_creative_inventory=1, plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1, dig_by_piston=1},
|
||||||
|
@ -65,13 +67,21 @@ minetest.register_node("mcl_farming:wheat", {
|
||||||
_doc_items_longdesc = S("Mature wheat plants are ready to be harvested for wheat and wheat seeds. They won't grow any further."),
|
_doc_items_longdesc = S("Mature wheat plants are ready to be harvested for wheat and wheat seeds. They won't grow any further."),
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "meshoptions",
|
-- keep place_param2 for plantlike drawtype compatiblity
|
||||||
place_param2 = 3,
|
place_param2 = 3,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
drawtype = "plantlike",
|
drawtype = "nodebox",
|
||||||
tiles = {"mcl_farming_wheat_stage_7.png"},
|
node_box = mcl_farming:get_plantlike_grid_nodebox(),
|
||||||
|
tiles = { mcl_farming:align_plantlike_nodebox_texture("mcl_farming_wheat_stage_7.png") },
|
||||||
|
use_texture_alpha = "clip",
|
||||||
inventory_image = "mcl_farming_wheat_stage_7.png",
|
inventory_image = "mcl_farming_wheat_stage_7.png",
|
||||||
wield_image = "mcl_farming_wheat_stage_7.png",
|
wield_image = "mcl_farming_wheat_stage_7.png",
|
||||||
|
selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ -0.5, -9/16, -0.5, 0.5, 7/16, 0.5 }
|
||||||
|
}
|
||||||
|
},
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 4,
|
max_items = 4,
|
||||||
items = {
|
items = {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
local S = minetest.get_translator("mcl_tnt")
|
local S = minetest.get_translator("mcl_tnt")
|
||||||
|
local tnt_drop_rate = tonumber(minetest.settings:get("mcl_tnt_drop_rate") or 1.0)
|
||||||
local tnt_griefing = minetest.settings:get_bool("mcl_tnt_griefing", true)
|
local tnt_griefing = minetest.settings:get_bool("mcl_tnt_griefing", true)
|
||||||
|
|
||||||
local mod_death_messages = minetest.get_modpath("mcl_death_messages")
|
local mod_death_messages = minetest.get_modpath("mcl_death_messages")
|
||||||
|
@ -180,7 +181,7 @@ function TNT:on_step(dtime)
|
||||||
self.blinkstatus = not self.blinkstatus
|
self.blinkstatus = not self.blinkstatus
|
||||||
end
|
end
|
||||||
if self.timer > tnt.BOOMTIMER then
|
if self.timer > tnt.BOOMTIMER then
|
||||||
mcl_explosions.explode(self.object:get_pos(), 4, {}, self.object)
|
mcl_explosions.explode(self.object:get_pos(), 4, { drop_chance = tnt_drop_rate }, self.object)
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -232,10 +232,10 @@ if minetest.get_modpath("mcl_farming") then
|
||||||
local wear = mcl_autogroup.get_wear(toolname, "shearsy")
|
local wear = mcl_autogroup.get_wear(toolname, "shearsy")
|
||||||
itemstack:add_wear(wear)
|
itemstack:add_wear(wear)
|
||||||
end
|
end
|
||||||
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true)
|
minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true)
|
||||||
local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
|
local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
|
||||||
local param2 = minetest.dir_to_facedir(dir)
|
local param2 = minetest.dir_to_facedir(dir)
|
||||||
minetest.swap_node(pointed_thing.under, {name="mcl_farming:pumpkin_face", param2 = param2})
|
minetest.set_node(pointed_thing.under, {name="mcl_farming:pumpkin_face", param2 = param2})
|
||||||
minetest.add_item(pointed_thing.above, "mcl_farming:pumpkin_seeds 4")
|
minetest.add_item(pointed_thing.above, "mcl_farming:pumpkin_seeds 4")
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
name = screwdriver
|
|
@ -3532,7 +3532,7 @@ local function register_decorations()
|
||||||
-- Pumpkin
|
-- Pumpkin
|
||||||
minetest.register_decoration({
|
minetest.register_decoration({
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
decoration = "mcl_farming:pumpkin_face",
|
decoration = "mcl_farming:pumpkin",
|
||||||
param2 = 0,
|
param2 = 0,
|
||||||
param2_max = 3,
|
param2_max = 3,
|
||||||
place_on = {"group:grass_block_no_snow"},
|
place_on = {"group:grass_block_no_snow"},
|
||||||
|
|
|
@ -868,7 +868,7 @@ local function register_mgv6_decorations()
|
||||||
-- Pumpkin
|
-- Pumpkin
|
||||||
minetest.register_decoration({
|
minetest.register_decoration({
|
||||||
deco_type = "simple",
|
deco_type = "simple",
|
||||||
decoration = "mcl_farming:pumpkin_face",
|
decoration = "mcl_farming:pumpkin",
|
||||||
param2 = 0,
|
param2 = 0,
|
||||||
param2_max = 3,
|
param2_max = 3,
|
||||||
place_on = {"group:grass_block_no_snow"},
|
place_on = {"group:grass_block_no_snow"},
|
||||||
|
|
|
@ -542,9 +542,14 @@ mcl_structures.generate_test_structure_fireproof = function(pos, rotation, pr)
|
||||||
mcl_structures.place_schematic(pos, path, rotation, nil, true, nil, nil, pr)
|
mcl_structures.place_schematic(pos, path, rotation, nil, true, nil, nil, pr)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
mcl_structures.generate_test_structure_tnt = function(pos, rotation, pr)
|
||||||
|
local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_test_structure_tnt.mts"
|
||||||
|
mcl_structures.place_schematic(pos, path, rotation, nil, true, nil, nil, pr)
|
||||||
|
end
|
||||||
|
|
||||||
-- Debug command
|
-- Debug command
|
||||||
minetest.register_chatcommand("spawnstruct", {
|
minetest.register_chatcommand("spawnstruct", {
|
||||||
params = "desert_temple | desert_well | igloo | witch_hut | boulder | ice_spike_small | ice_spike_large | fossil | end_exit_portal | end_portal_shrine | test_structure_comparator | test_structure_fireproof",
|
params = "desert_temple | desert_well | igloo | witch_hut | boulder | ice_spike_small | ice_spike_large | fossil | end_exit_portal | end_portal_shrine | test_structure_comparator | test_structure_fireproof | test_structure_tnt",
|
||||||
description = S("Generate a pre-defined structure near your position."),
|
description = S("Generate a pre-defined structure near your position."),
|
||||||
privs = {debug = true},
|
privs = {debug = true},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
|
@ -582,6 +587,8 @@ minetest.register_chatcommand("spawnstruct", {
|
||||||
mcl_structures.generate_test_structure_comparator(pos, rot, pr)
|
mcl_structures.generate_test_structure_comparator(pos, rot, pr)
|
||||||
elseif param == "test_structure_fireproof" then
|
elseif param == "test_structure_fireproof" then
|
||||||
mcl_structures.generate_test_structure_fireproof(pos, rot, pr)
|
mcl_structures.generate_test_structure_fireproof(pos, rot, pr)
|
||||||
|
elseif param == "test_structure_tnt" then
|
||||||
|
mcl_structures.generate_test_structure_tnt(pos, rot, pr)
|
||||||
elseif param == "" then
|
elseif param == "" then
|
||||||
message = S("Error: No structure type given. Please use “/spawnstruct <type>”.")
|
message = S("Error: No structure type given. Please use “/spawnstruct <type>”.")
|
||||||
errord = true
|
errord = true
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1 @@
|
||||||
|
name = mcl_engine_workarounds
|
|
@ -0,0 +1 @@
|
||||||
|
name = mcl_selftests
|
|
@ -0,0 +1 @@
|
||||||
|
name = mcl_player
|
|
@ -24,6 +24,9 @@ mcl_doWeatherCycle (Change weather) bool true
|
||||||
# Note that blocks never have drops when in Creative Mode.
|
# Note that blocks never have drops when in Creative Mode.
|
||||||
mcl_doTileDrops (Blocks have drops) bool true
|
mcl_doTileDrops (Blocks have drops) bool true
|
||||||
|
|
||||||
|
# Chance of a node destroyed by a TNT explosion to be dropped as an item
|
||||||
|
mcl_tnt_drop_rate (TNT drop rate) float 1.0 0.0 1.0
|
||||||
|
|
||||||
# If enabled, TNT explosions destroy blocks.
|
# If enabled, TNT explosions destroy blocks.
|
||||||
mcl_tnt_griefing (TNT destroys blocks) bool true
|
mcl_tnt_griefing (TNT destroys blocks) bool true
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue