cherry cake

master
root 2022-04-22 00:20:36 +02:00
parent 1f64c71553
commit 0c2d5f90fc
17 changed files with 140 additions and 12 deletions

49
mods/foodz/api.lua Normal file
View File

@ -0,0 +1,49 @@
S, modname = ...
function foodz.register_food(name, def)
def.groups.food = 1
local food_name = modname..":"..name
if def.type == "craft" then
minetest.register_craftitem(food_name, {
description = S(def.description),
inventory_image = def.inventory_image,
wield_image = def.wield_image or def.inventory_image,
groups = def.groups,
on_use = function(itemstack, user, pointed_thing)
eatz.item_eat(itemstack, user, food_name, hp or 1, hunger or 2)
return itemstack
end
})
else
minetest.register_node(food_name, {
inventory_image = def.inventory_image,
drawtype = "nodebox",
description = S(def.description),
tiles = def.tiles,
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = def.node_box,
},
selection_box = {
type = "fixed",
fixed = def.selection_box,
},
groups = def.groups,
on_use = function(itemstack, user, pointed_thing)
eatz.item_eat(itemstack, user, food_name, def.hp or 1, def.hunger or 2)
return itemstack
end
})
end
minetest.register_craft({
type = "shapeless",
output = food_name,
recipe = def.recipe,
})
end

24
mods/foodz/candy.lua Normal file
View File

@ -0,0 +1,24 @@
foodz.register_food("cherry_cake", {
type = "block",
node_box = {
{-0.25, -0.5, -0.25, 0.25, -0.125, 0.25},
{-0.0625, -0.125, -0.0625, 0.0625, 0, 0.0625},
},
selection_box = {
{-0.25, -0.5, -0.25, 0.25, -0.125, 0.25},
},
tiles = {
"foodz_cherry_cake_top.png",
"foodz_cherry_cake_bottom.png",
"foodz_cherry_cake_side.png",
"foodz_cherry_cake_side.png",
"foodz_cherry_cake_side.png",
"foodz_cherry_cake_side.png",
},
description = "Cherry Cake",
inventory_image = "foodz_cherry_cake_inv.png",
hp = 12,
hunger = 16,
groups = {cake = 1, oddly_breakable_by_hand = 1},
recipe = {"treez:cherries", "farmz:flour"},
})

8
mods/foodz/init.lua Normal file
View File

@ -0,0 +1,8 @@
foodz = {}
local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname)
local S = minetest.get_translator(modname)
assert(loadfile(modpath .. "/api.lua"))(S, modname)
assert(loadfile(modpath .. "/candy.lua"))()

View File

@ -0,0 +1,2 @@
# textdomain: foodz
Cherry Cake=Tarta de cereza

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 537 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B

View File

@ -191,8 +191,8 @@ function kitz.register_mob(name, def)
self:set_var("tamed", nil)
end,
roam = function(self, pos, vel)
return kitz.roam(self, pos, vel)
roam = function(self, pos, vel, dtime)
return kitz.roam(self, pos, vel, dtime)
end,
set_owner = function(self, owner)
@ -253,7 +253,7 @@ function kitz.is_near_2d(p1, p2, threshold)
end
end
function kitz.roam(self, pos, vel)
function kitz.roam(self, pos, vel, dtime)
if self.path then
local dist = kitz.distance_2d(pos, self.path[1])
if kitz.is_near_2d(pos, self.path[1], 0.0625) or
@ -270,7 +270,13 @@ function kitz.roam(self, pos, vel)
pos.z + math.random(-1, 1)
)
if helper.node_is_air(new_pos, "under") then
vel = vector.subtract(new_pos, pos)
local dir = vector.subtract(new_pos, pos)
local frame = 0.07
vel = {
x = math.round(dir.x * (1 - math.sin(frame*0.7, 1)), 4),
y = vel.y,
z = math.round(dir.z * (1 - math.sin(frame*0.7, 1)), 4)
}
self:create_path()
self.distance_2d = kitz.distance_2d(pos, new_pos)
self.path[#self.path+1] = new_pos
@ -340,7 +346,7 @@ function kitz.step(self, dtime)
status = self:set_status("roam")
end
if status == "roam" then
new_vel = self:roam(pos, vel)
new_vel = self:roam(pos, vel, dtime)
--minetest.chat_send_all(tostring(new_vel))
elseif status == "jump" then
--status = self:set_status("roam")
@ -352,7 +358,7 @@ function kitz.step(self, dtime)
self.object:set_velocity(new_vel)
self.object:set_yaw(minetest.dir_to_yaw(new_vel))
else
--self.object:set_velocity(vel)
self.object:set_velocity(vel)
end
if status == "roam" then
self.object:set_acceleration({x=0, y= gravity, z=0})

View File

@ -1,5 +1,7 @@
local S, farmz_mod = ...
local dirt_grass_time = 1200
local function remove_plow(pos)
if helper.in_group(pos, "plow") or helper.in_group(pos, "plant") then
minetest.swap_node(pos, {name="air"})
@ -18,8 +20,22 @@ minetest.register_node("nodez:dirt", {
tiles = {"nodez_dirt.png"},
groups = {crumbly=3, dirt=1, soil=1},
sounds = sound.dirt(),
on_destruct = function(pos)
destroy_plow(pos)
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local node = minetest.get_node_or_nil(pos)
if node then
node.param2 = 1
end
minetest.get_node_timer(pos):start(dirt_grass_time)
end,
on_timer = function(pos, elapsed)
minetest.swap_node(pos, {name = "nodez:dirt_with_grass"})
return false
end
})

View File

@ -4,7 +4,8 @@ local S = ...
minetest.register_craftitem("nodez:iron_ingot", {
description = S("Iron Ingot"),
inventory_image = "nodez_iron_ingot.png"
inventory_image = "nodez_iron_ingot.png",
groups = {ore = 1}
})
minetest.register_craft({

View File

@ -49,3 +49,10 @@ minetest.register_craftitem("nodez:silex", {
groups = {silex=1, ore=1},
inventory_image = "nodez_silex.png"
})
minetest.register_node("nodez:marble", {
description = S("Marble"),
tiles ={"nodez_marble.png"},
groups = {cracky=3, stone=1, build=1},
sounds = sound.stone(),
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 546 B

View File

@ -1,4 +1,4 @@
wikiz = {}
wwikiz = {}
local modname = minetest.get_current_modname()
local S = minetest.get_translator(modname)
@ -61,13 +61,21 @@ local function create_inv_cube(tiles)
return inv_cube
end
local recipes_cache = {}
local function render_recipes(item_name, recipe_no)
local render = ""
local row = 0
local col = 0
local row_offset = 6
local col_offset = 3
local recipes = minetest.get_all_craft_recipes(item_name)
local recipes
if recipes_cache[item_name] then
recipes = recipes_cache[item_name]
else
recipes = minetest.get_all_craft_recipes(item_name)
recipes_cache[item_name] = recipes
end
if recipes then
local recipe = recipes[recipe_no]
local items = recipe.items
@ -118,8 +126,8 @@ local function render_recipes(item_name, recipe_no)
render = render .."image["..tostring(col+col_offset+3)..","..tostring(row+row_offset+0.5)..";1,1;"..output_img
.."]"
else
render = render .."label["..tostring(col+col_offset+3)..","..tostring(row+row_offset+0.75)..";"..item_name
.."]"
render = render .."label["..tostring(col+col_offset+3)..","..tostring(row+row_offset+0.75)..";"
..craft_items[item_name].description.."]"
end
if output_no then
render = render .."label["..tostring(col+col_offset+3+0.25)..","..tostring(row+row_offset+0.5+1)
@ -215,6 +223,8 @@ local function get_crafts(group)
return crafts
end
local crafts_cache = {}
sfinv.register_page("wiki", {
title = S("Wiki"),
get = function(self, player, context)
@ -262,7 +272,12 @@ sfinv.register_page("wiki", {
_context.group = group
_context.craft_page = 1
end
local crafts = get_crafts(group)
local crafts
if crafts_cache[group] then
crafts = crafts_cache[group]
else
crafts = get_crafts(group)
end
if crafts then
_context.crafts = render_crafts(crafts, _context.craft_page)
end