mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-12-23 16:39:33 +01:00
Merge pull request 'Add sweet berries from mcl5' (#2842) from sweet_berries into master
Reviewed-on: https://git.minetest.land/MineClone2/MineClone2/pulls/2842 Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
This commit is contained in:
commit
e6b3458018
11 changed files with 125 additions and 8 deletions
|
@ -12,6 +12,7 @@ mcl_damage = {
|
|||
drown = {bypasses_armor = true},
|
||||
starve = {bypasses_armor = true, bypasses_magic = true},
|
||||
cactus = {},
|
||||
sweet_berry = {},
|
||||
fall = {bypasses_armor = true},
|
||||
fly_into_wall = {bypasses_armor = true}, -- unused
|
||||
out_of_world = {bypasses_armor = true, bypasses_magic = true, bypasses_invulnerability = true, bypasses_totem = true},
|
||||
|
|
|
@ -59,18 +59,18 @@ for _, campfire in pairs(campfires) do
|
|||
drawtype = "mesh",
|
||||
mesh = "mcl_campfires_campfire_lit.obj",
|
||||
tiles = {{
|
||||
name="mcl_campfires_" .. campfire.techname .. "_fire.png",
|
||||
name="mcl_campfires_" .. campfire.techname .. "_fire.png",
|
||||
animation={
|
||||
type="vertical_frames",
|
||||
aspect_w=16,
|
||||
aspect_h=16,
|
||||
type="vertical_frames",
|
||||
aspect_w=16,
|
||||
aspect_h=16,
|
||||
length=2.0
|
||||
}},
|
||||
{name="mcl_campfires_" .. campfire.techname .. "_log_lit.png",
|
||||
{name="mcl_campfires_" .. campfire.techname .. "_log_lit.png",
|
||||
animation={
|
||||
type="vertical_frames",
|
||||
aspect_w=16,
|
||||
aspect_h=16,
|
||||
type="vertical_frames",
|
||||
aspect_w=16,
|
||||
aspect_h=16,
|
||||
length=2.0
|
||||
}}
|
||||
},
|
||||
|
|
|
@ -281,6 +281,13 @@ local function apply_bone_meal(pointed_thing)
|
|||
if math.random(1, 100) <= 75 then
|
||||
return mcl_farming:grow_plant("plant_beetroot", pos, n, 1, true)
|
||||
end
|
||||
elseif string.find(n.name, "mcl_farming:sweet_berry_bush_") then
|
||||
mcl_dye.add_bone_meal_particle(pos)
|
||||
if n.name == "mcl_farming:sweet_berry_bush_3" then
|
||||
return minetest.add_item(vector.offset(pos,math.random()-0.5,math.random()-0.5,math.random()-0.5),"mcl_farming:sweet_berry")
|
||||
else
|
||||
return mcl_farming:grow_plant("plant_sweet_berry_bush", pos, n, 1, true)
|
||||
end
|
||||
elseif n.name == "mcl_cocoas:cocoa_1" or n.name == "mcl_cocoas:cocoa_2" then
|
||||
mcl_dye.add_bone_meal_particle(pos)
|
||||
-- Cocoa: Advance by 1 stage
|
||||
|
|
|
@ -27,3 +27,6 @@ dofile(minetest.get_modpath("mcl_farming").."/potatoes.lua")
|
|||
|
||||
-- ========= BEETROOT =========
|
||||
dofile(minetest.get_modpath("mcl_farming").."/beetroot.lua")
|
||||
|
||||
-- ========= SWEET BERRY =========
|
||||
dofile(minetest.get_modpath("mcl_farming").."/sweet_berry.lua")
|
||||
|
|
87
mods/ITEMS/mcl_farming/sweet_berry.lua
Normal file
87
mods/ITEMS/mcl_farming/sweet_berry.lua
Normal file
|
@ -0,0 +1,87 @@
|
|||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local planton = {"mcl_core:dirt_with_grass", "mcl_core:dirt", "mcl_core:podzol", "mcl_core:coarse_dirt", "mcl_farming:soil", "mcl_farming:soil_wet", "mcl_moss:moss"}
|
||||
|
||||
for i=0, 3 do
|
||||
local texture = "mcl_farming_sweet_berry_bush_" .. i .. ".png"
|
||||
local node_name = "mcl_farming:sweet_berry_bush_" .. i
|
||||
local groups = {sweet_berry=1, 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, flammable=3, fire_encouragement=60, fire_flammability=20, compostability=30}
|
||||
if i > 0 then
|
||||
groups.sweet_berry_thorny = 1
|
||||
end
|
||||
minetest.register_node(node_name, {
|
||||
drawtype = "plantlike",
|
||||
tiles = {texture},
|
||||
description = S("Sweet Berry Bush (Stage @1)", i),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 3,
|
||||
liquid_viscosity = 15,
|
||||
liquidtype = "source",
|
||||
liquid_alternative_flowing = node_name,
|
||||
liquid_alternative_source = node_name,
|
||||
liquid_renewable = false,
|
||||
liquid_range = 0,
|
||||
walkable = false,
|
||||
drop = (i>=2) and ("mcl_farming:sweet_berry" .. (i==3 and " 3" or "")) or "",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, (-0.30 + (i*0.25)), 6 / 16},
|
||||
},
|
||||
inventory_image = texture,
|
||||
wield_image = texture,
|
||||
groups = groups,
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
minetest.register_alias("mcl_sweet_berry:sweet_berry_bush_" .. i, node_name)
|
||||
end
|
||||
|
||||
minetest.register_craftitem("mcl_farming:sweet_berry", {
|
||||
description = S("Sweet Berry"),
|
||||
inventory_image = "mcl_farming_sweet_berry.png",
|
||||
_mcl_saturation = 0.4,
|
||||
groups = { food = 2, eatable = 1, compostability=30 },
|
||||
on_secondary_use = minetest.item_eat(1),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
if pointed_thing.type == "node" and table.indexof(planton,minetest.get_node(pointed_thing.under).name) ~= -1 and minetest.get_node(pointed_thing.above).name == "air" then
|
||||
minetest.set_node(pointed_thing.above,{name="mcl_farming:sweet_berry_bush_0"})
|
||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
return minetest.do_item_eat(1, nil, itemstack, placer, pointed_thing)
|
||||
end,
|
||||
})
|
||||
minetest.register_alias("mcl_sweet_berry:sweet_berry", "mcl_farming:sweet_berry")
|
||||
|
||||
-- TODO: Find proper interval and chance values for sweet berry bushes. Current interval and chance values are copied from mcl_farming:beetroot which has similar growth stages.
|
||||
mcl_farming:add_plant("plant_sweet_berry_bush", "mcl_farming:sweet_berry_bush_3", {"mcl_farming:sweet_berry_bush_0", "mcl_farming:sweet_berry_bush_1", "mcl_farming:sweet_berry_bush_2"}, 68, 3)
|
||||
|
||||
local function berry_damage_check(obj)
|
||||
local p = obj:get_pos()
|
||||
if not p then return end
|
||||
if not minetest.find_node_near(p,0.4,{"group:sweet_berry_thorny"},true) then return end
|
||||
local v = obj:get_velocity()
|
||||
if v.x < 0.1 and v.y < 0.1 and v.z < 0.1 then return end
|
||||
|
||||
mcl_util.deal_damage(obj, 0.5, {type = "sweet_berry"})
|
||||
end
|
||||
|
||||
local etime = 0
|
||||
minetest.register_globalstep(function(dtime)
|
||||
etime = dtime + etime
|
||||
if etime < 0.5 then return end
|
||||
etime = 0
|
||||
for _,pl in pairs(minetest.get_connected_players()) do
|
||||
berry_damage_check(pl)
|
||||
end
|
||||
for _,ent in pairs(minetest.luaentities) do
|
||||
if ent.is_mob then
|
||||
berry_damage_check(ent.object)
|
||||
end
|
||||
end
|
||||
end)
|
BIN
mods/ITEMS/mcl_farming/textures/mcl_farming_sweet_berry.png
Normal file
BIN
mods/ITEMS/mcl_farming/textures/mcl_farming_sweet_berry.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 462 B |
Binary file not shown.
After Width: | Height: | Size: 318 B |
Binary file not shown.
After Width: | Height: | Size: 759 B |
Binary file not shown.
After Width: | Height: | Size: 800 B |
Binary file not shown.
After Width: | Height: | Size: 858 B |
|
@ -2851,6 +2851,25 @@ local function register_decorations()
|
|||
flags = "place_center_x,place_center_z, force_placement",
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = {"mcl_core:dirt_with_grass","mcl_core:podzol"},
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.012,
|
||||
spread = {x = 100, y = 100, z = 100},
|
||||
seed = 354,
|
||||
octaves = 1,
|
||||
persist = 0.5,
|
||||
lacunarity = 1.0,
|
||||
flags = "absvalue"
|
||||
},
|
||||
biomes = {"Taiga","ColdTaiga","MegaTaiga","MegaSpruceTaiga", "Forest"},
|
||||
y_max = mcl_vars.mg_overworld_max,
|
||||
y_min = 2,
|
||||
decoration = "mcl_sweet_berry:sweet_berry_bush_3"
|
||||
})
|
||||
|
||||
-- Large ice spike
|
||||
minetest.register_decoration({
|
||||
|
|
Loading…
Reference in a new issue