Noch ein paar mehr Mods

This commit is contained in:
N-Nachtigal 2025-05-11 00:42:25 +02:00
parent 9e345a25fb
commit ec69291b75
965 changed files with 8185 additions and 2010444 deletions

View file

@ -0,0 +1,48 @@
Minetest mod: Pizzaria [jelys_pizzaria]
---------------------------------------
Code MIT (Extex101) 2021-2023
Licenses of media
---------------------------------------
Audio
---------------------------------------
Jan Koehl jelys_pizzaria_pizza_walk.ogg (CC BY-SA 3.0)
https://freesound.org/people/JanKoehl/sounds/85604/
Textures
---------------------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Extex101 2021-2023
You are free to:
Share — copy and redistribute the material in any medium or format.
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
The licensor cannot revoke these freedoms as long as you follow the license terms.
Under the following terms:
Attribution — You must give appropriate credit, provide a link to the license, and
indicate if changes were made. You may do so in any reasonable manner, but not in any way
that suggests the licensor endorses you or your use.
ShareAlike — If you remix, transform, or build upon the material, you must distribute
your contributions under the same license as the original.
No additional restrictions — You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
Notices:
You do not have to comply with the license for elements of the material in the public
domain or where your use is permitted by an applicable exception or limitation.
No warranties are given. The license may not give you all of the permissions necessary
for your intended use. For example, other rights such as publicity, privacy, or moral
rights may limit how you use the material.
For more details:
http://creativecommons.org/licenses/by-sa/3.0/

View file

@ -0,0 +1,29 @@
# Pizzaria
Minetest Pizzaria mod that adds advanced pizza baking as a late-game food source
Due to MTG's lack of animals and certain plants I've added the rather silly "Mese Mutation Crystal" to turn other items into the ones needed.
### - Mutations:
- Mutating an apple gives a tomato
- Mutating an apple with two pine leaves gives pineapple
- Mutating a player's bones gives 9 Meat
- Mutating blueberries gives olives
And probably the wackiest of all:
- Mutating Gold fives cheese
### - Curing:
Pepperoni has to be cured, craft your pepperoni then hang it from your ceiling until it's fully cured.
### - Pizza prep
1. Craft a bucket of water with flour to make 2x Pizza dough
2. Place the pizza dough then punch it with a rolling pin until it breaks and is rolled out into a pizza base
3. Place on your cheese, and tomato sauce
4. Add whatever 1-2 toppings your heart desires
5. Place your pizza into your pizza oven and stoke the fire with tree logs
6. Ignite your fire with a torch by punching it
7. Wait until your pizza is done, be careful not to burn it!
8. Finally remove your pizza and place it down in a pizza box or on your table
9. Cut it up and enjoy!

View file

@ -0,0 +1,10 @@
default
vessels
flowers
hunger_ng?
nbhunger?
pineapple?
mobs?
creatures?
stairs?
fire?

View file

@ -0,0 +1,198 @@
function jpizza.register_topping(def)
local newdef = def
table.insert(jpizza.toppings, {name=def.name, texture=def.texture, item=def.item, cooked_texture=def.cooked_texture, topping_inv=def.topping_inv, eat=def.eat})
end
local function find(value, key, list)
for _, i in pairs(list) do
if i[key] == value then
return _
end
end
return false
end
function jpizza.register_pizza(name, def)
local newDef = def
newDef.tiles = {
def.texture[1],
def.texture[2]
}
newDef.groups = {oddly_breakable_by_hand=3, crumbly=3, attached_node = 1}
if def.toppings == 1 then
newDef.groups.pizza = 1
end
newDef.use_texture_alpha = "clip"
newDef.drawtype = "nodebox"
newDef.paramtype = "light"
newDef.sunlight_propagates = true
newDef.selection_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.4, 0.5},
}
}
newDef.stack_max = 1
newDef.node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.1875, 0.5, -0.4375, 0.1875},
{-0.1875, -0.5, -0.5, 0.1875, -0.4375, 0.5},
{-0.3125, -0.5, -0.4375, 0.3125, -0.4375, 0.4375},
{-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
{-0.375, -0.5, -0.375, 0.375, -0.4375, 0.375},
}
}
if newDef.sounds == nil then
newDef.sounds = {
footstep = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},
dug = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},
dig = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},
}
end
minetest.register_node(name, newDef)
end
local raw_texture = "jelys_pizzaria_pizza_dough.png^"..
"jelys_pizzaria_pizza_sauce.png^"..
"jelys_pizzaria_pizza_cheese.png^"
local cooked_texture = "jelys_pizzaria_cooked_dough.png^"..
"jelys_pizzaria_pizza_cooked_sauce.png^"..
"jelys_pizzaria_pizza_cooked_cheese.png^"
function jpizza.spawn_slices(pos, item)
for i = 0, 5, 1 do
local x = pos.x+math.sin(i*60)/3
local z = pos.z+math.cos(i*60)/3
minetest.add_item({x=x, y=pos.y, z=z}, item)
end
end
function jpizza.make_pizzas()
for i, base in pairs(jpizza.toppings) do
jpizza.register_pizza("jelys_pizzaria:raw_pizza_"..base.name, {
description = "Raw Pizza with "..base.name,
texture = {
raw_texture..base.texture,
"jelys_pizzaria_pizza_dough.png"
},
cooked = "jelys_pizzaria:pizza_"..base.name,
cook_time = {min=100, max=200},
raw = 1,
toppings = 1,
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local name = itemstack:get_name()
local fetch = find(name, "item", jpizza.toppings)
if fetch then
local stuff = jpizza.toppings[fetch]
if minetest.registered_nodes["jelys_pizzaria:raw_pizza_"..base.name.."_"..stuff.name] then
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
minetest.set_node(pos, {name = "jelys_pizzaria:raw_pizza_"..base.name.."_"..stuff.name})
return itemstack
end
end
end,
})
jpizza.register_pizza("jelys_pizzaria:pizza_"..base.name, {
description = "Pizza with "..base.name,
texture = {
cooked_texture..base.cooked_texture,
"jelys_pizzaria_cooked_dough.png"
},
on_punch = function(pos, oldnode, digger)
local down = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
local itemstack = digger:get_wielded_item()
local downdef = minetest.registered_nodes[down.name]
if itemstack:get_name() == "jelys_pizzaria:pizza_cutter" and downdef.groups.pizza_oven == nil then
jpizza.spawn_slices(pos, "jelys_pizzaria:pizza_"..base.name.."_slice")
local wear = itemstack:get_wear()
itemstack:set_wear(wear+(65535/40))
digger:set_wielded_item(itemstack)
minetest.remove_node(pos)
end
end,
done = true
})
minetest.register_craftitem("jelys_pizzaria:pizza_"..base.name.."_slice", {
description = "Slice of "..base.name.." Pizza",
inventory_image = "jelys_pizzaria_pizza_slice.png^"..base.topping_inv[2],
stack_max = 6,
groups = {food = 1},
on_use = minetest.item_eat(1+base.eat)
})
if jpizza.has_depends.hunger_ng then
hunger_ng.add_hunger_data("jelys_pizzaria:pizza_"..base.name.."_slice", {satiates = 1+base.eat})
end
if jpizza.has_depends.hbhunger and minetest.global_exists("hbhunger") then
hbhunger.register_food("jelys_pizzaria:pizza_"..base.name.."_slice", 1+base.eat)
end
for j = i, #jpizza.toppings, 1 do
local side = jpizza.toppings[j]
if side.name ~= base.name then
local pizza_name = "jelys_pizzaria:raw_pizza_"..base.name.."_"..side.name
local pizza_name2 = "jelys_pizzaria:raw_pizza_"..side.name.."_"..base.name
minetest.register_alias(pizza_name2, pizza_name)
jpizza.register_pizza(pizza_name, {
description = "Raw Pizza with "..base.name.." and "..side.name,
cook_time = {min=200, max=250},
texture = {
raw_texture..base.texture.."^("..side.texture.."^[transformR90)",
"jelys_pizzaria_pizza_dough.png"
},
raw = 1,
cooked = "jelys_pizzaria:pizza_"..base.name.."_"..side.name,
})
end
end
for j = i, #jpizza.toppings, 1 do
local side = jpizza.toppings[j]
if side.name ~= base.name then
local pizza_name = "jelys_pizzaria:pizza_"..base.name.."_"..side.name
jpizza.register_pizza(pizza_name, {
description = "Pizza with "..base.name.." and "..side.name,
texture = {
cooked_texture..base.cooked_texture.."^("..side.cooked_texture.."^[transformR90)",
"jelys_pizzaria_cooked_dough.png"
},
on_punch = function(pos, oldnode, digger)
local down = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
local itemstack = digger:get_wielded_item()
local downdef = minetest.registered_nodes[down.name]
if itemstack:get_name() == "jelys_pizzaria:pizza_cutter" and downdef.groups.pizza_oven == nil then
jpizza.spawn_slices(pos, pizza_name.."_slice")
local wear = itemstack:get_wear()
itemstack:set_wear(wear+(65535/40))
digger:set_wielded_item(itemstack)
minetest.remove_node(pos)
end
end,
done=true
})
local num1 = math.floor(math.random(1,2)+0.5)
local num2 = 1
if num1 == 1 then
num2 = 2
end
minetest.register_craftitem(pizza_name.."_slice", {
description = "Slice of "..base.name.." and "..side.name.." Pizza",
inventory_image = "jelys_pizzaria_pizza_slice.png^"..base.topping_inv[num1].."^"..side.topping_inv[num2],
stack_max = 6,
groups = {food = 1},
on_use = minetest.item_eat(1+base.eat+side.eat)
})
minetest.register_alias(pizza_name.."_slice", "jelys_pizzaria:pizza_"..side.name.."_"..base.name)
if jpizza.has_depends.hunger_ng == true then
hunger_ng.add_hunger_data(pizza_name.."_slice", {satiates = 1+base.eat+side.eat})
end
if jpizza.has_depends.hbhunger and minetest.global_exists("hbhunger") then
hbhunger.register_food(pizza_name.."_slice", 1+base.eat+side.eat)
end
end
end
end
end

View file

@ -0,0 +1,75 @@
jpizza = {}
jpizza.toppings = {}
jpizza.op_depends = {"hunger_ng", "hbhunger", "pineapple", "mobs", "creatures", "fire", "stairs", "dungeon_loot", "farming"}
jpizza.has_depends = {}
for _, i in pairs(jpizza.op_depends) do
if minetest.get_modpath(i) then
jpizza.has_depends[i] = true
else
jpizza.has_depends[i] = false
end
end
jpizza.path = minetest.get_modpath("jelys_pizzaria")
dofile(jpizza.path.."/functions.lua")
dofile(jpizza.path.."/nodes.lua")--nodes
dofile(jpizza.path.."/oven.lua")
dofile(jpizza.path.."/items.lua")
jpizza.register_topping({
item = "jelys_pizzaria:olives",
name = "olives",
topping_inv = {
"jelys_pizzaria_topping_olives_inv_1.png",
"jelys_pizzaria_topping_olives_inv_2.png"
},
texture = "jelys_pizzaria_topping_olives.png",
cooked_texture = "jelys_pizzaria_topping_olives_cooked.png",
eat = 2,
})
jpizza.register_topping({
item = "jelys_pizzaria:pepperoni_cured",
name = "pepperoni",
topping_inv = {
"jelys_pizzaria_topping_pepperoni_inv_1.png",
"jelys_pizzaria_topping_pepperoni_inv_2.png"
},
texture = "jelys_pizzaria_topping_pepperoni.png",
cooked_texture = "jelys_pizzaria_topping_pepperoni_cooked.png",
eat = 4,
})
jpizza.register_topping({
item = "jelys_pizzaria:sausage",
name = "sausage",
topping_inv = {
"jelys_pizzaria_topping_sausage_inv_1.png",
"jelys_pizzaria_topping_sausage_inv_2.png"
},
texture = "jelys_pizzaria_topping_sausage.png",
cooked_texture = "jelys_pizzaria_topping_sausage_cooked.png",
eat = 4,
})
jpizza.register_topping({
item = "flowers:mushroom_brown",
name = "mushrooms",
topping_inv = {
"jelys_pizzaria_topping_mushroom_inv_1.png",
"jelys_pizzaria_topping_mushroom_inv_2.png",
},
texture = "jelys_pizzaria_topping_mushrooms.png",
cooked_texture = "jelys_pizzaria_topping_mushrooms_cooked.png",
eat = 1,
})
dofile(jpizza.path.."/mutation_backup.lua")
jpizza.make_pizzas()

View file

@ -0,0 +1,217 @@
-- Burnt Pizza
jpizza.register_pizza("jelys_pizzaria:burnt_pizza", {
description = "Burnt Pizza",
texture = {"jelys_pizzaria_burnt_pizza.png", "jelys_pizzaria_burnt_pizza.png"},
on_punch = function(pos, oldnode, digger)
local down = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
local itemstack = digger:get_wielded_item()
local downdef = minetest.registered_nodes[down.name]
if itemstack:get_name() == "jelys_pizzaria:pizza_cutter" and downdef.groups.pizza_oven == nil then
jpizza.spawn_slices(pos, "jelys_pizzaria:burnt_pizza_slice")
minetest.remove_node(pos)
end
end,
on_destruct = function(pos)
local down = {x=pos.x, y=pos.y-1,z=pos.z}
if minetest.get_node(down).name == "jelys_pizzaria:pizza_oven" then
minetest.get_meta(down):set_string("infotext", "Empty Pizza Oven")
end
end,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craftitem("jelys_pizzaria:burnt_pizza_slice", {
description = "Burned Pizza Slice",
inventory_image = "jelys_pizzaria_burnt_pizza_slice.png",
stack_max = 12,
on_use = function(itemstack, player, pointed_thing)
minetest.chat_send_player(player:get_player_name(), "Blecht")
return minetest.do_item_eat(-2, "", itemstack, player, pointed_thing)
end
})
--Tools
minetest.register_node("jelys_pizzaria:rolling_pin", {
description = "Rolling Pin",
inventory_image = "jelys_pizzaria_rolling_pin_inv.png",
tiles={"default_wood.png"},
drawtype = "nodebox",
groups={oddly_breakable_by_hand=3},--just in case somebody places it
visual_size = 2,
tool_capabilities = {
full_punch_interval = 2.0,
max_drop_level=0,
groupcaps={
rolling_pin = {times={[2]=3.00, [3]=5.60}, uses=1, maxlevel=1},
},
damage_groups = {}
},
stack_max=1,
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.125, -0.5, 0.125, 0.125, 0.5},
{-0.0625, -0.0625, -0.6875, 0.0625, 0.0625, 0.6875},
}
},
sound = {breaks = "default_tool_breaks"},
on_place = function() return end,
node_placement_prediction = "",
})
minetest.register_tool("jelys_pizzaria:pizza_cutter", {
description = "Pizza Cutter",
inventory_image = "jelys_pizzaria_pizza_cutter.png",
wield_image = "jelys_pizzaria_pizza_cutter.png^[transformFX",
sound = {breaks = "default_tool_breaks"}
})
--Hunger support
if jpizza.has_depends.hunger_ng then
hunger_ng.add_hunger_data("jelys_pizzaria:burnt_pizza_slice", {satiates = -3, heals = -2})
hunger_ng.add_hunger_data("jelys_pizzaria:cheese_pizza_slice", {satiates = 1})
end
if jpizza.has_depends.hbhunger and minetest.global_exists("hbhunger") then
hbhunger.register_food("jelys_pizzaria:burnt_pizza_slice", 0, "", 2)
hbhunger.register_food("jelys_pizzaria:cheese_pizza_slice", 1)
end
--Craft recipes
minetest.register_craft({
output = "jelys_pizzaria:rolling_pin",
recipe = {
{"", "", "group:stick"},
{"", "group:wood",""},
{"group:stick", "",""},
}
})
minetest.register_craft({
output = "jelys_pizzaria:pizza_cutter",
recipe = {
{"","default:steel_ingot", "default:steel_ingot"},
{"","group:stick", "default:steel_ingot"},
{"group:stick", "", ""}
},
})
minetest.register_craft({
output = "jelys_pizzaria:pizza_box_closed",
recipe = {
{"dye:green", "dye:white","dye:red"},
{"default:paper", "default:paper","default:paper"},
}
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:dough 2",
recipe = {"farming:flour", "bucket:bucket_water"},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"}
}
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:dough 2",
recipe = {"farming:flour", "bucket:bucket_river_water"},
replacements = {
{"bucket:bucket_river_water", "bucket:bucket_empty"}
}
})
--Easter Eggs
minetest.register_craftitem("jelys_pizzaria:hainac_slice", {
description = "Slice of \"Heart attack in a circle\" pizza",
inventory_image = "jelys_pizzaria_hainac_slice.png",
groups = {food = 1},
on_use = function(itemstack, player, pointed_thing)
minetest.after(1, function(itemstack, player, pointed_thing)
if player:get_hp() > 0 then
minetest.do_item_eat(20, "", itemstack, player, pointed_thing)
end
end, itemstack, player, pointed_thing)
return minetest.do_item_eat(-10, "", itemstack, player, pointed_thing)
end
})
jpizza.register_pizza("jelys_pizzaria:hainac_pizza", {
description = "Whole \"Heart attack in a circle\" Pizza",
texture = {"jelys_pizzaria_pizza_hainac.png", "jelys_pizzaria_cooked_dough.png"},
done = 1,
on_punch = function(pos, oldnode, digger)
local down = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
local itemstack = digger:get_wielded_item()
local downdef = minetest.registered_nodes[down.name]
if itemstack:get_name() == "jelys_pizzaria:pizza_cutter" and downdef.groups.pizza_oven == nil then
jpizza.spawn_slices(pos, "jelys_pizzaria:hainac_slice")
minetest.remove_node(pos)
end
end,
})
local h = "jelys_pizzaria:hainac_slice"
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:hainac_pizza",
recipe = {h,h,h,h,h,h},
})
if jpizza.has_depends.dungeon_loot and minetest.settings:get_bool("jelys_pizzaria.enable_dungeon_loot") then
--Cheese
dungeon_loot.register({
name = "jelys_pizzaria:cheese",
chance = 0.1,
count = {1, 2},
y = {-32768, 0},
})
dungeon_loot.register({
name = "jelys_pizzaria:cheese",
chance = 0.2,
count = {3, 7},
y = {-32768, -500},
})
dungeon_loot.register({
name = "jelys_pizzaria:cheese",
chance = 0.2,
count = {3, 7},
y = {-431, -431},
})
--Heart attack in a circle
dungeon_loot.register({
name = "jelys_pizzaria:hainac_slice",
chance = 0.01,
count = {1,2},
y = {-608, -400},
})
dungeon_loot.register({
name = "jelys_pizzaria:hainac_slice",
chance = 0.06,
count = {1,2},
y = {-850, -800},
})
dungeon_loot.register({
name = "jelys_pizzaria:hainac_slice",
chance = 0.85,
count = {8, 10},
y = {-431, -431},
})
--Pizza Oven
dungeon_loot.register({
name = "jelys_pizzaria:pizza_oven",
chance = 0.006,
y = {-32768, -500},
})
end

View file

@ -0,0 +1,7 @@
name = jelys_pizzaria
description = Adds Pizza as an Endgame food
depends = default, vessels, flowers, farming
optional_depends = hunger_ng, hbhunger, pineapple, mobs, creatures, stairs, fire
author = Extex
title = Pizzaria
release = 27608

View file

@ -0,0 +1,48 @@
# Blender v2.79 (sub 7) OBJ File: ''
# www.blender.org
o model
v 0.501000 -0.375000 0.501000
v 0.501000 -0.375000 -0.501000
v -0.501000 -0.375000 -0.501000
v -0.501000 -0.375000 0.501000
v 0.501000 -0.500000 -0.501000
v 0.501000 -0.500000 0.501000
v -0.501000 -0.500000 0.501000
v -0.501000 -0.500000 -0.501000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 0.500000 0.500000
vt 0.500000 1.000000
vt 1.000000 0.093750
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.093750
vt 1.000000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 1.000000 0.500000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 -0.0000
s 1
f 1/1/1 2/2/1 3/3/1 4/4/1
f 5/5/2 2/6/2 1/7/2 6/8/2
f 7/9/3 4/10/3 3/11/3 8/12/3
f 8/13/4 3/14/4 2/15/4 5/16/4
f 6/17/5 1/18/5 4/19/5 7/20/5
f 8/21/6 5/22/6 6/23/6 7/24/6

View file

@ -0,0 +1,159 @@
# Blender v2.79 (sub 7) OBJ File: ''
# www.blender.org
o model
v 0.501000 -0.500000 -0.501000
v 0.501000 -0.500000 0.501000
v -0.501000 -0.500000 0.501000
v -0.501000 -0.500000 -0.501000
v -0.501000 -0.437500 0.501000
v 0.501000 -0.437500 0.501000
v -0.501000 -0.437500 -0.501000
v 0.501000 -0.437500 -0.501000
v 0.501000 -0.423437 0.561897
v 0.501000 0.552869 0.336444
v -0.501000 0.552869 0.336444
v -0.501000 -0.423437 0.561897
v -0.501000 -0.437500 0.501000
v 0.501000 -0.437500 0.501000
v -0.501000 0.538807 0.275547
v 0.501000 0.538807 0.275547
v 0.501000 -0.424306 0.561029
v 0.501000 0.552001 0.335576
v -0.501000 0.552001 0.335576
v -0.501000 -0.424306 0.561029
v 0.498999 -0.421516 0.561326
v 0.498999 0.550892 0.336773
v -0.498999 0.550892 0.336773
v -0.498999 -0.421516 0.561326
v -0.500891 -0.437474 0.500981
v 0.500891 -0.437474 0.500981
v -0.500891 0.538771 0.275560
v 0.500891 0.538771 0.275560
v 0.498410 -0.499838 -0.498410
v 0.498410 -0.499839 0.498410
v -0.500120 -0.499839 0.498410
v -0.498410 -0.499838 -0.498410
v -0.500120 -0.437478 0.500982
v 0.500975 -0.437478 0.500982
v -0.500120 -0.437661 -0.498410
v 0.500975 -0.437661 -0.498410
v 0.501000 -0.495373 -0.501000
v 0.501000 -0.495373 0.501000
v -0.501000 -0.495373 0.501000
v -0.501000 -0.495373 -0.501000
vt 1.000000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.093750
vt 1.000000 0.125000
vt 0.500000 0.125000
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.125000
vt 0.500000 0.125000
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.125000
vt 0.500000 0.125000
vt 0.500000 0.093750
vt 1.000000 0.093750
vt 1.000000 0.125000
vt 0.500000 0.125000
vt 0.500000 0.093750
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 0.500000 0.500000
vt 0.500000 1.000000
vt 1.000000 0.125000
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.125000
vt 1.000000 0.125000
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.125000
vt 1.000000 0.125000
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.125000
vt 1.000000 0.125000
vt 1.000000 0.156250
vt 0.500000 0.156250
vt 0.500000 0.125000
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.000000 0.500000
vt 0.000000 0.000000
vt 1.000000 0.031250
vt 1.000000 0.062500
vt 0.500000 0.062500
vt 0.500000 0.031250
vt 1.000000 0.031250
vt 1.000000 0.062500
vt 0.500000 0.062500
vt 0.500000 0.031250
vt 1.000000 0.031250
vt 1.000000 0.062500
vt 0.500000 0.062500
vt 0.500000 0.031250
vt 1.000000 0.031250
vt 1.000000 0.062500
vt 0.500000 0.062500
vt 0.500000 0.031250
vt 1.000000 0.000000
vt 1.000000 0.031250
vt 0.500000 0.031250
vt 0.500000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.031250
vt 0.500000 0.031250
vt 0.500000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.031250
vt 0.500000 0.031250
vt 0.500000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.031250
vt 0.500000 0.031250
vt 0.500000 0.000000
vt 0.000000 0.000000
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.000000 0.500000
vn 0.0000 -1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.2250 0.9744
vn 0.0000 0.9744 -0.2250
vn 0.0000 -0.9744 0.2250
vn 0.9995 0.0068 0.0295
vn -0.9995 0.0068 0.0295
vn 0.0000 0.9810 -0.1942
vn 0.0000 -0.9668 0.2557
vn 0.0000 -0.0412 0.9992
vn -0.9999 -0.0137 -0.0009
vn 0.9992 -0.0412 0.0000
s 1
f 4/1/1 1/2/1 2/3/1 3/4/1
f 2/5/2 6/6/2 5/7/2 3/8/2
f 4/9/3 7/10/3 8/11/3 1/12/3
f 3/13/4 5/14/4 7/15/4 4/16/4
f 1/17/5 8/18/5 6/19/5 2/20/5
f 9/21/6 10/22/6 11/23/6 12/24/6
f 16/25/5 10/26/5 9/27/5 14/28/5
f 13/29/4 12/30/4 11/31/4 15/32/4
f 15/33/7 11/34/7 10/35/7 16/36/7
f 14/37/8 9/38/8 12/39/8 13/40/8
f 17/41/6 18/42/6 19/43/6 20/44/6
f 28/45/9 22/46/9 21/47/9 26/48/9
f 25/49/10 24/50/10 23/51/10 27/52/10
f 27/53/11 23/54/11 22/55/11 28/56/11
f 26/57/12 21/58/12 24/59/12 25/60/12
f 30/61/13 34/62/13 33/63/13 31/64/13
f 32/65/3 35/66/3 36/67/3 29/68/3
f 31/69/14 33/70/14 35/71/14 32/72/14
f 29/73/15 36/74/15 34/75/15 30/76/15
f 40/77/1 37/78/1 38/79/1 39/80/1

View file

@ -0,0 +1,315 @@
# Blender v2.79 (sub 7) OBJ File: 'oven.blend'
# www.blender.org
mtllib jelys_pizzaria_pizza_oven.mtl
o model
v 0.502452 -0.499878 0.439521
v 0.502452 0.505025 0.439521
v 0.314032 0.505025 0.439521
v 0.314032 -0.499878 0.439521
v 0.314032 -0.499878 -0.502576
v 0.314032 0.505025 -0.502576
v 0.502452 0.505025 -0.502576
v 0.502452 -0.499878 -0.502576
v -0.314032 -0.499878 0.439521
v -0.314032 0.505025 0.439521
v -0.502452 0.505025 0.439521
v -0.502452 -0.499878 0.439521
v -0.502452 -0.499878 -0.502576
v -0.502452 0.505025 -0.502576
v -0.314032 0.505025 -0.502576
v -0.314032 -0.499878 -0.502576
v -0.502452 -0.248652 0.439521
v 0.502452 -0.248652 0.439521
v 0.502452 -0.248652 -0.502576
v -0.502452 -0.248652 -0.502576
v -0.502452 -0.499878 -0.125737
v -0.502452 0.505025 -0.125737
v 0.502452 0.505025 -0.125737
v 0.502452 -0.499878 -0.125737
v 0.502452 0.128186 0.439521
v -0.502452 0.128186 0.439521
v -0.502452 0.128186 -0.502576
v 0.502452 0.128186 -0.502576
v -0.502452 -0.185846 -0.439769
v 0.502452 -0.185846 -0.439769
v 0.502452 -0.185846 -0.502576
v -0.502452 -0.185846 -0.502576
v 0.502452 -0.499878 -0.439769
v -0.502452 -0.499878 -0.439769
v 0.439645 0.505025 0.439521
v -0.439645 0.505025 0.439521
v -0.439645 0.505025 -0.000124
v 0.439645 0.505025 -0.000124
v 0.439645 1.133090 0.439521
v -0.439645 1.133090 0.439521
v -0.439645 1.133090 -0.000124
v 0.439645 1.133090 -0.000124
v 0.502452 1.133090 0.439521
v 0.314032 1.133090 0.439521
v 0.314032 0.505025 -0.439769
v 0.314032 1.133090 -0.439769
v 0.502452 1.133090 -0.439769
v 0.502452 0.505025 -0.439769
v -0.314032 1.133090 0.439521
v -0.502452 1.133090 0.439521
v -0.502452 0.505025 -0.439769
v -0.502452 1.133090 -0.439769
v -0.314032 1.133090 -0.439769
v -0.314032 0.505025 -0.439769
v 0.502452 0.630638 0.439521
v -0.502452 0.630638 0.439521
v -0.502452 0.630638 -0.439769
v 0.502452 0.630638 -0.439769
v -0.251226 1.384315 0.502328
v 0.251226 1.384315 0.502328
v 0.251226 1.384315 -0.000124
v -0.251226 1.384315 -0.000124
v 0.251226 -0.499878 0.502328
v -0.251226 -0.499878 0.502328
v -0.251226 -0.499878 -0.000124
v 0.251226 -0.499878 -0.000124
v 0.333841 -0.307556 -0.260998
v -0.268463 -0.239891 -0.425669
v 0.353949 0.001258 -0.207653
v -0.248355 0.068923 -0.372323
v 0.267235 -0.044627 0.090662
v -0.335069 0.023038 -0.074009
v -0.355178 -0.285777 -0.127354
v 0.042002 0.142762 -0.425081
v -0.198226 0.139221 0.155214
v 0.306285 0.012476 -0.316469
v 0.066056 0.008935 0.263826
v 0.186521 -0.273249 -0.367792
v -0.053708 -0.276790 0.212503
v -0.077762 -0.142963 -0.476404
v -0.317991 -0.146504 0.103891
vt 0.000215 0.734052
vt 0.000215 0.656142
vt 0.078125 0.656142
vt 0.078125 0.734052
vt 0.000215 0.656142
vt 0.078125 0.656142
vt 0.078125 0.500323
vt 0.000215 0.500323
vt 0.156035 0.656142
vt 0.156035 0.500323
vt 0.078125 0.734052
vt 0.000215 0.734052
vt 0.000215 0.656142
vt 0.078125 0.656142
vt 0.000215 0.656142
vt 0.078125 0.656142
vt 0.078125 0.500323
vt 0.000215 0.500323
vt 0.000215 0.500323
vt 0.078125 0.500323
vt 0.078125 0.656142
vt 0.000215 0.656142
vt 0.078125 0.500323
vt 0.156035 0.500323
vt 0.156035 0.656142
vt 0.078125 0.656142
vt 0.500000 -0.000000
vt 0.500000 0.250000
vt 0.453125 0.250000
vt 0.453125 -0.000000
vt 0.046875 -0.000000
vt 0.046875 0.250000
vt -0.000000 0.250000
vt -0.000000 -0.000000
vt 0.500000 -0.000000
vt 0.500000 0.250000
vt 0.265625 0.250000
vt 0.265625 -0.000000
vt 0.234375 0.250000
vt 0.234375 0.500000
vt -0.000000 0.500000
vt -0.000000 0.250000
vt 0.296875 -0.000000
vt 0.296875 0.250000
vt 0.250000 0.250000
vt 0.250000 -0.000000
vt 0.250000 -0.000000
vt 0.250000 0.250000
vt 0.203125 0.250000
vt 0.203125 -0.000000
vt 0.500000 0.250000
vt 0.500000 0.500000
vt 0.265625 0.500000
vt 0.265625 0.250000
vt 0.484375 -0.000000
vt 0.484375 0.250000
vt 0.375000 0.468750
vt 0.125000 0.468750
vt 0.125000 0.234375
vt 0.375000 0.234375
vt 0.500000 0.015625
vt 0.750000 0.015625
vt 0.750000 0.250000
vt 0.500000 0.250000
vt 0.375000 0.250000
vt 0.375000 0.500000
vt 0.125000 0.500000
vt 0.125000 0.250000
vt 0.500000 0.250000
vt 0.750000 0.250000
vt 0.750000 0.484375
vt 0.500000 0.484375
vt 0.375000 0.734375
vt 0.125000 0.734375
vt 0.125000 0.500000
vt 0.375000 0.500000
vt 0.250000 0.156250
vt -0.000000 0.156250
vt 0.250000 0.078125
vt -0.000000 0.078125
vt -0.000000 0.062500
vt 0.250000 0.062500
vt 0.250000 -0.000000
vt 0.250000 0.078125
vt 0.000000 0.078125
vt 0.000000 -0.000000
vt 0.250000 0.078125
vt -0.000000 0.078125
vt 0.015625 0.390625
vt 0.500000 0.390625
vt 0.500000 0.500000
vt 0.015625 0.500000
vt 0.984375 0.593750
vt 0.984375 0.750000
vt 0.765625 0.750000
vt 0.765625 0.593750
vt 0.359375 0.562500
vt 0.359375 0.718750
vt 0.140625 0.718750
vt 0.140625 0.562500
vt 1.000000 0.593750
vt 1.000000 0.750000
vt 0.953125 0.750000
vt 0.953125 0.593750
vt 0.546875 0.500000
vt 0.546875 0.656250
vt 0.500000 0.656250
vt 0.500000 0.500000
vt 0.968750 0.593750
vt 0.968750 0.750000
vt 0.750000 0.750000
vt 0.750000 0.593750
vt 0.218750 0.343750
vt 0.218750 0.500000
vt -0.000000 0.500000
vt -0.000000 0.343750
vt 0.796875 0.593750
vt 0.796875 0.750000
vt 0.750000 0.750000
vt 0.750000 0.593750
vt 0.750000 0.500000
vt 0.750000 0.656250
vt 0.703125 0.656250
vt 0.703125 0.500000
vt 0.500000 0.343750
vt 0.500000 0.500000
vt 0.281250 0.500000
vt 0.281250 0.343750
vt 1.000000 0.593750
vt 1.000000 0.750000
vt 0.781250 0.750000
vt 0.781250 0.593750
vt 0.500000 0.015625
vt 0.750000 0.015625
vt 0.750000 0.234375
vt 0.500000 0.234375
vt 0.125000 0.296875
vt 0.375000 0.296875
vt 0.375000 0.515625
vt 0.125000 0.515625
vt 0.750000 0.531250
vt 0.500000 0.531250
vt 0.750000 0.593750
vt 0.750000 0.468750
vt 0.875000 0.468750
vt 0.875000 0.593750
vt 0.562500 0.000000
vt 0.687500 0.000000
vt 0.687500 0.125000
vt 0.562500 0.125000
vt 1.000000 -0.000000
vt 1.000000 0.468750
vt 0.875000 0.468750
vt 0.875000 -0.000000
vt 0.312500 0.312500
vt 0.312500 0.781250
vt 0.171875 0.781250
vt 0.171875 0.312500
vt 1.000000 0.000000
vt 1.000000 0.468750
vt 0.875000 0.468750
vt 0.875000 0.000000
vt 1.000000 0.000000
vt 1.000000 0.468750
vt 0.875000 0.468750
vt 0.875000 0.000000
vn -0.9590 0.1077 -0.2622
vn -0.2761 -0.1461 0.9499
vn -0.0640 -0.9834 -0.1699
vn -0.3825 -0.0056 0.9239
vn -0.3814 -0.9099 -0.1634
vn 0.8416 -0.4149 0.3459
vn 0.3814 0.9099 0.1634
vn 0.0000 -0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.0000 -1.0000 -0.0000
vn 0.0000 0.7071 0.7071
usemtl default_obsidian.png
s off
f 70/1/1 68/2/1 73/3/1 72/4/1
f 67/5/2 69/6/2 70/7/2 68/8/2
f 69/6/3 71/9/3 72/10/3 70/7/3
f 76/11/4 74/12/4 80/13/4 78/14/4
f 74/15/5 76/16/5 77/17/5 75/18/5
f 80/19/6 74/20/6 75/21/6 81/22/6
f 78/23/7 80/24/7 81/25/7 79/26/7
usemtl default_obsidian.png_NONE
s 1
f 1/27/8 2/28/8 3/29/8 4/30/8
f 5/31/9 6/32/9 7/33/9 8/34/9
f 8/35/10 7/36/10 2/37/10 1/38/10
f 4/39/11 3/40/11 6/41/11 5/42/11
f 9/43/8 10/44/8 11/45/8 12/46/8
f 13/47/9 14/48/9 15/49/9 16/50/9
f 16/51/10 15/52/10 10/53/10 9/54/10
f 12/55/11 11/56/11 14/48/11 13/47/11
f 17/57/12 18/58/12 19/59/12 20/60/12
f 1/61/13 12/62/13 13/63/14 8/64/14
f 1/27/13 2/28/15 11/45/15 12/46/13
f 21/65/9 22/66/9 23/67/9 24/68/9
f 11/69/15 2/70/15 7/71/12 14/72/12
f 25/73/14 26/74/14 27/75/14 28/76/14
f 27/77/9 14/48/9 7/33/9 28/78/9
f 29/79/12 30/80/12 31/81/12 32/82/12
f 33/83/8 30/84/8 29/85/8 34/86/8
f 13/47/9 32/87/9 31/88/9 8/34/9
f 35/89/14 36/90/14 37/91/14 38/92/14
f 35/93/8 39/94/8 40/95/8 36/96/8
f 37/97/9 41/98/9 42/99/9 38/100/9
f 2/101/8 43/102/8 44/103/8 3/104/8
f 45/105/9 46/106/9 47/107/9 48/108/9
f 48/109/10 47/110/10 43/111/10 2/112/10
f 3/113/11 44/114/11 46/115/11 45/116/11
f 10/117/8 49/118/8 50/119/8 11/120/8
f 51/121/9 52/122/9 53/123/9 54/124/9
f 54/125/10 53/126/10 49/127/10 10/128/10
f 11/129/11 50/130/11 52/131/11 51/132/11
f 50/133/12 43/134/12 47/135/12 52/136/12
f 55/137/14 56/138/14 57/139/14 58/140/14
f 57/141/9 52/122/9 47/107/9 58/142/9
f 59/143/12 60/144/12 61/145/12 62/146/12
f 63/147/14 64/148/14 65/149/14 66/150/14
f 63/151/8 60/152/8 59/153/8 64/154/8
f 65/155/9 62/156/9 61/157/9 66/158/9
f 66/159/10 61/160/10 60/161/10 63/162/10
f 64/163/11 59/164/11 62/165/11 65/166/11

View file

@ -0,0 +1,160 @@
local mutagen = "jelys_pizzaria:mese_mutator"
minetest.register_craftitem("jelys_pizzaria:mese_mutator", {
description = "Mese Mutation Crystals",
inventory_image = "jelys_pizzaria_mese_mutation_crystal.png",
})
local f = "default:mese_crystal_fragment"
local m = "default:mese_crystal"
minetest.register_craft({
output = "jelys_pizzaria:mese_mutator 4",
recipe = {
{"", f, ""},
{f, m, f},
}
})
local tomato = "jelys_pizzaria:tomato"
if farming and farming.mod == "redo" then
tomato = "farming:tomato"
else
minetest.register_craftitem("jelys_pizzaria:tomato", {
description = "Tomato",
inventory_image = "jelys_pizzaria_tomato.png",
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:tomato",
recipe = {"default:apple", mutagen},
})
end
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:sauce",
recipe = {tomato, "vessels:glass_bottle"},
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:olives",
recipe = {"default:blueberries", mutagen},
})
minetest.register_craftitem("jelys_pizzaria:cheese", {
description = "Cheese",
inventory_image = "jelys_pizzaria_cheese.png",
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:cheese 2",
recipe = {"default:gold_ingot", mutagen},
})
minetest.register_craftitem("jelys_pizzaria:olives", {
description = "Olives",
inventory_image = "jelys_pizzaria_olives.png",
})
minetest.register_craftitem("jelys_pizzaria:olives", {
description = "Olives",
inventory_image = "jelys_pizzaria_olives.png",
})
minetest.register_craftitem("jelys_pizzaria:sausage_raw", {
description = "Raw Sausage",
inventory_image = "jelys_pizzaria_sausage_raw.png",
})
minetest.register_craft({
type = "cooking",
output = "jelys_pizzaria:sausage",
recipe = "jelys_pizzaria:sausage_raw",
cooktime = 20,
})
minetest.register_craftitem("jelys_pizzaria:sausage", {
description = "Sausage",
inventory_image = "jelys_pizzaria_sausage.png",
})
minetest.register_craftitem("jelys_pizzaria:sauce", {
description = "Tomato Sauce",
inventory_image = "jelys_pizzaria_sauce.png",
})
local meat = "jelys_pizzaria:meat"
if jpizza.has_depends.mobs then
meat = "mobs:meat_raw"
elseif jpizza.has_depends.creatures then
meat = "creatures:flesh"
else
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:meat 9",
recipe = {mutagen, mutagen, mutagen, mutagen, "bones:bones", mutagen, mutagen, mutagen, mutagen},
})
minetest.register_craftitem("jelys_pizzaria:meat", {
description = "Meat",
inventory_image = "jelys_pizzaria_meat.png",
})
end
minetest.register_craft({
output = "jelys_pizzaria:pepperoni_uncured",
recipe = {
{meat},
{meat},
{meat}
},
})
minetest.register_craft({
output = "jelys_pizzaria:sausage_raw",
recipe = {
{meat,meat,meat},
},
})
local pineapple = "jelys_pizzaria:pineapple"
if jpizza.has_depends.pineapple then
minetest.register_alias("pineapple:pineapple", "jelys_pizzaria:pineapple")
pineapple = "pineapple:pineapple"
end
if farming and farming.mod == "redo" then
minetest.register_alias("farming:pineapple_ring", "jelys_pizzaria:pineapple")
pineapple = "farming:pineapple_ring"
end
if not jpizza.has_depends.pineapple and (not farming or farming and not farming.mod) then
minetest.register_node("jelys_pizzaria:pineapple", {
description = "Pineapple",
drawtype = "plantlike",
tiles = {"jelys_pizzaria_pineapple.png"},
inventory_image = "jelys_pizzaria_pineapple_inv.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16}
},
groups = {fleshy = 3, dig_immediate = 3, flammable = 2},
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
type = "shapeless",
output = "jelys_pizzaria:pineapple",
recipe = {"default:pine_needles","default:pine_needles","default:apple", mutagen, mutagen},
})
end
jpizza.register_topping({
item = pineapple,
name = "pineapple",
topping_inv = {
"jelys_pizzaria_topping_pineapple_inv_1.png",
"jelys_pizzaria_topping_pineapple_inv_2.png",
},
texture = "jelys_pizzaria_topping_pineapple.png",
cooked_texture = "jelys_pizzaria_topping_pineapple_cooked.png",
eat = 3,
})

View file

@ -0,0 +1,431 @@
local function find(value, key, list)
for _, i in pairs(list) do
if i[key] == value then
return _
end
end
return false
end
minetest.register_node("jelys_pizzaria:dough", {
description = "Pizza dough",
tiles = {
"jelys_pizzaria_pizza_dough.png",
},
groups = {rolling_pin=2, oddly_breakable_by_hand=3, attached_node = 1},
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
selection_box = {
type = "fixed",
fixed = {
-5 / 16, -0.5, -5 / 16,
5 / 16, 1 /16, 5 / 16
}
},
node_box = {
type = "fixed",
fixed = {
{-0.1875, -0.5, -0.1875, 0.1875, -0.25, 0.125},
{-0.25, -0.5, -0.125, 0.25, -0.25, 0.0625},
{-0.125, -0.5, -0.25, 0.125, -0.25, 0.1875},
{-0.125, -0.5, -0.1875, 0.125, -0.1875, 0.125},
}
},
on_dig = function(pos, node, player)
local protected = minetest.is_protected(pos, player:get_player_name())
local wielded = player:get_wielded_item()
if wielded:get_name() == "jelys_pizzaria:rolling_pin" then
minetest.set_node(pos, {name = "jelys_pizzaria:dough_rolled"})
else
if not protected then
minetest.node_dig(pos, node, player)
end
end
end,
sounds = {
footstep = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},--https://freesound.org/people/JanKoehl/sounds/85604/
dug = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},
dig = {name = "jelys_pizzaria_pizza_walk", gain = 0.3},
},
})
jpizza.register_pizza("jelys_pizzaria:dough_rolled", {
description = "Rolled Pizza dough",
texture = {
"jelys_pizzaria_pizza_dough.png",
"jelys_pizzaria_pizza_dough.png"
},
drop = "jelys_pizzaria:dough",
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
if itemstack:get_name() == "jelys_pizzaria:sauce" then
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
local inv = player:get_inventory()
if inv:room_for_item("main", "vessels:glass_bottle") then
inv:add_item("main", "vessels:glass_bottle")
else
minetest.add_item({x=pos.x, y=pos.y+1, z=pos.z}, "vessels:glass_bottle")
end
end
minetest.set_node(pos, {name="jelys_pizzaria:dough_with_sauce"})
return itemstack
end
end,
})
jpizza.register_pizza("jelys_pizzaria:dough_with_sauce", {
description = "Pizza dough with Sauce",
texture = {
"jelys_pizzaria_pizza_dough.png^jelys_pizzaria_pizza_sauce.png",
"jelys_pizzaria_pizza_dough.png"
},
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
if itemstack:get_name() == "jelys_pizzaria:cheese" then
minetest.set_node(pos, {name="jelys_pizzaria:raw_cheese_pizza"})
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
end
return itemstack
end,
})
jpizza.register_pizza("jelys_pizzaria:raw_cheese_pizza", {
description = "Raw Cheese Pizza",
texture = {
"jelys_pizzaria_pizza_dough.png^jelys_pizzaria_pizza_sauce.png^jelys_pizzaria_pizza_cheese.png",
"jelys_pizzaria_pizza_dough.png"
},
cooked = "jelys_pizzaria:cheese_pizza",
cook_time = {min=50, max = 100},
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local name = itemstack:get_name()
local fetch = find(name, "item", jpizza.toppings)
if fetch then
local stuff = jpizza.toppings[fetch]
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
minetest.set_node(pos, {name = "jelys_pizzaria:raw_pizza_"..stuff.name})
return itemstack
end
end,
})
jpizza.register_pizza("jelys_pizzaria:cheese_pizza", {
description = "Cheese Pizza",
texture = {
"jelys_pizzaria_cooked_dough.png^jelys_pizzaria_pizza_cooked_sauce.png^jelys_pizzaria_pizza_cooked_cheese.png",
"jelys_pizzaria_cooked_dough.png"
},
done = true,
on_punch = function(pos, oldnode, digger)
local down = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z})
local itemstack = digger:get_wielded_item()
local downdef = minetest.registered_nodes[down.name]
if itemstack:get_name() == "jelys_pizzaria:pizza_cutter" and downdef.groups.pizza_oven == nil then
jpizza.spawn_slices(pos, "jelys_pizzaria:cheese_pizza_slice")
minetest.remove_node(pos)
end
end,
})
minetest.register_craftitem("jelys_pizzaria:cheese_pizza_slice", {
description = "Slice of Cheese Pizza",
stack_max = 6,
inventory_image = "jelys_pizzaria_pizza_slice.png",
groups = {food = 1},
on_use = minetest.item_eat(1),
})
local function punch_pepperoni(pos, oldnode, digger)
local num = 0
local below = {x=pos.x, y=pos.y, z=pos.z}
local inv = digger:get_inventory()
if minetest.is_protected(pos, digger:get_player_name()) then return end
local name = minetest.get_node(below).name
while minetest.registered_nodes[name].groups ~= nil and minetest.registered_nodes[name].groups.pepperoni == 1 do
minetest.remove_node(below)
minetest.add_item(below, name)
below.y = below.y - 1
num = num + 1
name = minetest.get_node(below).name
end
if num == 0 then return end
return true
end
minetest.register_node("jelys_pizzaria:pepperoni_uncured", {
description = "Uncured Pepperoni",
inventory_image = "jelys_pizzaria_meat_pepperoni_uncured_inv.png",
wield_image = "jelys_pizzaria_meat_pepperoni_uncured_inv.png",
tiles = {
"jelys_pizzaria_meat_pepperoni_uncured.png",
"jelys_pizzaria_meat_pepperoni_uncured.png^[transformFX",
"jelys_pizzaria_meat_pepperoni_uncured.png",
"jelys_pizzaria_meat_pepperoni_uncured.png",
"jelys_pizzaria_meat_pepperoni_uncured.png^[transformFX",
"jelys_pizzaria_meat_pepperoni_uncured.png^[transformFX"
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {pepperoni = 1},
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(100, 200))
end,
on_timer = function(pos)
minetest.swap_node(pos, {name="jelys_pizzaria:pepperoni_cured"})
end,
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type == "node" then
local pos = pointed_thing.above
local uppos = {x=pos.x, y=pos.y+1, z=pos.z}
local upnode = minetest.get_node(uppos)
if minetest.is_protected(uppos, placer:get_player_name()) then
return minetest.item_place(itemstack, placer, pointed_thing)
end
if minetest.registered_nodes[upnode.name].walkable == false then
if placer:is_player() then minetest.chat_send_player(placer:get_player_name(), "Pepperoni has to be hung up to dry!") end
return itemstack
else
local name = minetest.get_node(pos).name
if minetest.registered_nodes[name].buildable_to == true or name == "air" then
minetest.set_node(pos, {name="jelys_pizzaria:pepperoni_uncured"})
if not minetest.is_creative_enabled(placer:get_player_name()) then
itemstack:take_item()
end
end
return minetest.item_place(itemstack, placer, pointed_thing)
end
end
return minetest.item_place(itemstack, placer, pointed_thing)
end,
on_punch = punch_pepperoni,
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.437, 0.125, 0.125, 0.125, -0.125},
{-0.125, 0.5, 0, 0.125, -0.5, 0},
{0, 0.5, -0.125, 0, -0.5, 0.125},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.125, -0.437, 0.125, 0.125, 0.125, -0.125},
}
},
})
minetest.register_node("jelys_pizzaria:pepperoni_cured", {
description = "Cured Pepperoni",
inventory_image = "jelys_pizzaria_meat_pepperoni_cured_inv.png",
wield_image = "jelys_pizzaria_meat_pepperoni_cured_inv.png",
tiles = {
"jelys_pizzaria_meat_pepperoni_cured.png",
"jelys_pizzaria_meat_pepperoni_cured.png^[transformFX",
"jelys_pizzaria_meat_pepperoni_cured.png",
"jelys_pizzaria_meat_pepperoni_cured.png",
"jelys_pizzaria_meat_pepperoni_cured.png^[transformFX",
"jelys_pizzaria_meat_pepperoni_cured.png^[transformFX"
},
use_texture_alpha = true,
drawtype = "nodebox",
paramtype = "light",
sunlight_propagates = true,
groups = {pepperoni = 1},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type == "node" then
local pos = pointed_thing.above
local uppos = {x=pos.x, y=pos.y+1, z=pos.z}
local upnode = minetest.get_node(uppos)
if minetest.is_protected(uppos, placer:get_player_name()) then
return minetest.item_place(itemstack, placer, pointed_thing)
end
if minetest.registered_nodes[upnode.name].walkable == false then
return minetest.item_place(itemstack, placer, pointed_thing)
else
local name = minetest.get_node(pos).name
if minetest.registered_nodes[name].buildable_to == true or name == "air" then
minetest.set_node(pos, {name="jelys_pizzaria:pepperoni_cured"})
if not minetest.is_creative_enabled(placer:get_player_name()) then
itemstack:take_item()
end
end
return minetest.item_place(itemstack, placer, pointed_thing)
end
end
return minetest.item_place(itemstack, placer, pointed_thing)
end,
on_punch = punch_pepperoni,
node_box = {
type = "fixed",
fixed = {
{-0.125, -0.437, 0.125, 0.125, 0.125, -0.125},
{-0.125, 0.5, 0, 0.125, -0.5, 0},
{0, 0.5, -0.125, 0, -0.5, 0.125},
}
},
selection_box = {
type = "fixed",
fixed = {
{-0.125, -0.437, 0.125, 0.125, 0.125, -0.125},
}
},
})
minetest.register_node("jelys_pizzaria:pizza_box_closed", {
description = "Pizza Box Closed",
drawtype = "mesh",
paramtype2 = "facedir",
tiles = {
"jelys_pizzaria_pizza_box.png",
},
groups = {oddly_breakable_by_hand=3},
mesh = "jelys_pizzaria_pizza_box_closed.obj",
collision_box = {
type = "fixed",
fixed = {
{-0.501, -0.5, -0.501, 0.501, -0.375, 0.501}
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.501, -0.5, -0.501, 0.501, -0.375, 0.501}
},
},
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local inv = player:get_inventory()
local contents = minetest.get_meta(pos):get_string("pizza")
if contents and minetest.registered_nodes[contents] then
minetest.get_meta(pos):set_string("pizza", "")
minetest.swap_node(pos, {name="jelys_pizzaria:pizza_box_open", param2 = node.param2})
local leftover = itemstack:add_item(contents)
if leftover:is_empty() then
return itemstack
end
inv:add_item("main", leftover)
end
minetest.swap_node(pos, {name="jelys_pizzaria:pizza_box_open", param2=node.param2})
return itemstack
end,
on_dig = function(pos, node, player)
local meta = minetest.get_meta(pos)
local contents = meta:get_string("pizza")
local inv = player:get_inventory()
local item = ItemStack("jelys_pizzaria:pizza_box_closed")
local imeta = item:get_meta()
if type(contents) == "string" and string.len(contents) > 0 then
local def = minetest.registered_nodes[contents]
imeta:set_string("pizza", contents)
imeta:set_string("description", def.description)
end
if inv:room_for_item("main", item) then
inv:add_item("main", item)
minetest.remove_node(pos)
return true
end
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local imeta = itemstack:get_meta()
local pizza = imeta:get_string("pizza")
if pizza then
meta:set_string("pizza", pizza)
end
end,
})
minetest.register_node("jelys_pizzaria:pizza_box_open", {
drawtype = "mesh",
paramtype2 = "facedir",
tiles = {
"jelys_pizzaria_pizza_box.png",
},
groups = {oddly_breakable_by_hand=3},
mesh = "jelys_pizzaria_pizza_box_open.obj",
drop = "jelys_pizzaria:pizza_box_closed",
collision_box = {
type = "fixed",
fixed = {
{-0.501, -0.5, -0.501, 0.501, -0.375, 0.501}
},
},
selection_box = {
type = "fixed",
fixed = {
{-0.501, -0.5, -0.501, 0.501, -0.4375, 0.501}
},
},
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local def = minetest.registered_nodes[itemstack:get_name()]
if def and def.done then
local meta = minetest.get_meta(pos)
meta:set_string("pizza", itemstack:get_name())
itemstack:take_item()
end
minetest.swap_node(pos, {name="jelys_pizzaria:pizza_box_closed", param2 = node.param2})
return itemstack
end,
})
minetest.register_node("jelys_pizzaria:reinforced_brick", {
description = "Reinforced Brick",
paramtype2 = "facedir",
place_param2 = 0,
tiles = {
"jelys_pizzaria_reinforced_brick_top.png^[transformFX",
"jelys_pizzaria_reinforced_brick_top.png",
"jelys_pizzaria_reinforced_brick3.png",
"jelys_pizzaria_reinforced_brick2.png^[transformFX",
"jelys_pizzaria_reinforced_brick.png^[transformFX",
"jelys_pizzaria_reinforced_brick.png",
},
groups = {cracky = 3, level = 1},
sounds = default.node_sound_stone_defaults(),
})
if jpizza.has_depends.stairs then
local function my_register_stair_and_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds, worldaligntex)
stairs.register_stair(subname, recipeitem, groups, images, desc_stair,
sounds, worldaligntex)
stairs.register_stair_inner(subname, recipeitem, groups, images, "",
sounds, worldaligntex, "Inner " .. desc_stair)
stairs.register_stair_outer(subname, recipeitem, groups, images, "",
sounds, worldaligntex, "Outer " .. desc_stair)
stairs.register_slab(subname, recipeitem, groups, images, desc_slab,
sounds, worldaligntex)
end
my_register_stair_and_slab(
"reinforced_brick",
"jelys_pizzaria:reinforced_brick",
{cracky=3},
{
"jelys_pizzaria_reinforced_brick_top.png^[transformFX",
"jelys_pizzaria_reinforced_brick_top.png",
"jelys_pizzaria_reinforced_brick3.png",
"jelys_pizzaria_reinforced_brick2.png^[transformFX",
"jelys_pizzaria_reinforced_brick.png^[transformFX",
"jelys_pizzaria_reinforced_brick.png"
},
"Reinforced Brick Stair",
"Reinforced Brick Slab",
default.node_sound_stone_defaults(),
false
)
end

View file

@ -0,0 +1,329 @@
local fuel = 260
local oven_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, -0.3125, 0.5, 0.4375}, -- bottom_left
{0.3125, -0.5, -0.5, 0.5, 0.5, 0.4375}, -- bottom_right
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.4375}, -- bottom_bottom
{-0.5, -0.5, -0.125, 0.5, 0.5, 0.4375}, -- bottom_inside
{-0.5, 0.125, -0.5, 0.5, 0.5, 0.4375}, -- bottom_top
{-0.5, -0.5, -0.5, 0.5, -0.1875, -0.4375}, -- bottom_front
{-0.4375, 0.5, 0.25, 0.4375, 1.125, 0.4375}, -- top_back
{-0.5, 0.5, -0.4375, -0.3125, 1.125, 0.4375}, -- top_left
{0.3125, 0.5, -0.4375, 0.5, 1.125, 0.4375}, -- top_right
{-0.5, 0.625, -0.4375, 0.5, 1.125, 0.4375}, -- top_front
{-0.25, -0.5, 0, 0.25, 1.375, 0.5}, -- stack_thing
}
}
minetest.register_node("jelys_pizzaria:pizza_oven_slot", {
drawtype = "airlike",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
floodable = true,
air_equivalent = true,
drop = "",
groups = {not_in_creative_inventory=1},
on_construct = function(pos)
local down = {x=pos.x, y=pos.y-1, z=pos.z}
if minetest.get_node(down).name ~= "jelys_pizzaria:pizza_oven" then
minetest.remove_node(pos)
end
end,
})
local function pizza_above(pos)
local up = {x=pos.x, y=pos.y+1, z=pos.z}
local node = minetest.get_node(up)
local def = minetest.registered_nodes[node.name]
if def then
if def.cooked then
return "raw", def.cooked
end
if def.done then
return "cooked", "jelys_pizzaria:burnt_pizza"
end
if node.name == "jelys_pizzaria:burnt_pizza" then
return "burnt", nil
end
end
return false, nil
end
local function get_oven_state(pos)
local node = minetest.get_node(pos)
if node.name == "jelys_pizzaria:pizza_oven" then
return "empty"
elseif node.name == "jelys_pizzaria:pizza_oven_fueled" then
return "fueled"
elseif node.name == "jelys_pizzaria:pizza_oven_active" then
return "active"
end
return false
end
local function swap_node(pos, name)
local node = minetest.get_node(pos)
if name == node.name or not name then
return
end
node.name = name
local timer = minetest.get_node_timer(pos)
local timeout = timer:get_timeout()
local elapsed = timer:get_elapsed()
minetest.swap_node(pos, node)
timer = minetest.get_node_timer(pos)
timer:set(timeout, elapsed)
end
local function start_timer(pos, elapsed)
--Pizza pos
local pizza_pos = {x=pos.x, y=pos.y+1, z=pos.z}
--Meta values
local meta = minetest.get_meta(pos)
local cook_time_elapsed = meta:get_float("cook_time_elapsed")
local cook_time = meta:get_float("cook_time")
local fuel_time = meta:get_float("fuel_time")
local timer = minetest.get_node_timer(pos)
--Node States
local pizza, cooked = pizza_above(pos)
local oven = get_oven_state(pos)
--Mode specification
local mode = ""
if not pizza and oven == "empty" then
mode = "empty"
elseif pizza == "raw" and oven == "active" then
mode = "cooking"
elseif cooked == "jelys_pizzaria:burnt_pizza" then
mode = "burning"
elseif oven == "empty" and pizza then
mode = "fuel_empty"
elseif not pizza and oven ~= "empty" then
mode = "nopizza"
end
--Run timers based on mode
if pizza and oven == "active" and cook_time > 0 then
meta:set_float("cook_time_elapsed", cook_time_elapsed+elapsed)
end
if oven == "active" and fuel_time > 0 then
meta:set_float("fuel_time", fuel_time-elapsed)
end
--Update values
cook_time_elapsed = meta:get_float("cook_time_elapsed")
fuel_time = meta:get_float("fuel_time")
if not pizza then
meta:set_float("cook_time_elapsed", 0)
meta:set_float("cook_time", 0)
minetest.set_node(pizza_pos, {name = "jelys_pizzaria:pizza_oven_slot"})
end
--Make a change
if cook_time_elapsed > cook_time and cooked then
minetest.set_node(pizza_pos, {name=cooked})
meta:set_float("cook_time_elapsed", 0)
meta:set_float("cook_time", 50)
end
if fuel_time <= 1 then
swap_node(pos, "jelys_pizzaria:pizza_oven")
if mode == "burning" then
meta:set_float("cook_time_elapsed", 0)
meta:set_float("cook_time", 0)
end
end
--Infotext
local infotext = "Pizza: 100%\nFuel: none;"
local fuel_percentage = math.max(math.ceil(0.5+fuel_time/fuel*98), 0)
local cook_percentage = math.floor(0.5+cook_time_elapsed/cook_time*99)
if mode == "nopizza" then
infotext = "Pizza: none;\n"..
"Fuel: ".. fuel_percentage.. "%"
elseif mode == "cooking" then
infotext = "Pizza: "..cook_percentage.."%\n"..
"Fuel: ".. fuel_percentage.. "%"
elseif mode == "fuel_empty" then
infotext = "Pizza: "..cook_percentage.."%\n"..
"Fuel: none;"
elseif mode == "empty" then
infotext = "Pizza: none;\nFuel: none;"
elseif oven == "fueled" and pizza ~= "cooked" then
infotext = "Pizza: "..cook_percentage.."%\n"..
"Fuel: ".. fuel_percentage.. "%"
elseif mode == "burning" then
infotext = "Pizza will burn in: ".. math.floor(cook_time-cook_time_elapsed).."s\n"..
"Fuel: ".. fuel_percentage.. "%"
elseif pizza == "cooked" and oven == "empty" then
infotext = "Pizza: 100%\n"..
"Fuel: none;"
elseif pizza == "burnt" then
infotext = "Pizza: Burnt"
end
local oven_state = ""
if oven == "active" then
oven_state = "Active"
else
oven_state = "Extinguished"
end
meta:set_string("infotext", infotext.."\n"..oven_state)
--Start next timer
local tick = cook_time/fuel
timer:start(tick)
end
local function rightclick(pos, node, player, itemstack, pointed_thing)
local name = itemstack:get_name()
local def = minetest.registered_nodes[name]
local pizzaspace = pizza_above(pos)
if def and def.cook_time and def.cooked and not pizzaspace then
local meta = minetest.get_meta(pos)
local up = {x = pos.x, y = pos.y+1, z = pos.z}
local itemdef = minetest.registered_nodes[name]
local cook_time = itemdef.cook_time
minetest.set_node(up, {name = name})
meta:set_float("cook_time", math.random(cook_time.min, cook_time.max))
if node.name == "jelys_pizzaria:pizza_oven_active" then
start_timer(pos, 0)
meta:set_float("cook_time_elapsed", 0)
end
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
end
return itemstack
end
local function after_destruct(pos, oldnode)
local up = {x = pos.x, y = pos.y+1, z = pos.z}
local pizza = pizza_above(pos)
local oven = oldnode.name
minetest.dig_node(up)
if jpizza.has_depends.fire and oven == "jelys_pizzaria:pizza_oven_active" then
if minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name = "fire:basic_flame"})
end
end
end
minetest.register_node("jelys_pizzaria:pizza_oven_active", {
drawtype = "mesh",
paramtype2 = "facedir",
paramtype = "light",
light_source = 8,
drop = "jelys_pizzaria:pizza_oven",
groups = {cracky = 3, level = 1, pizza_oven = 1, not_in_creative_inventory=1},
tiles = {
{
name = "jelys_pizzaria_pizza_oven_active_animated.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 64,
aspect_h = 64,
length = 3.0,
},
},
},
mesh = "jelys_pizzaria_pizza_oven.obj",
selection_box = oven_box,
collision_box = oven_box,
on_rightclick = rightclick,
after_destruct = after_destruct,
on_timer = start_timer,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("jelys_pizzaria:pizza_oven_fueled", {
drawtype = "mesh",
paramtype2 = "facedir",
groups = {cracky = 3, level = 1, pizza_oven = 1, not_in_creative_inventory=1},
tiles = {
"jelys_pizzaria_pizza_oven_fueled.png",
},
mesh = "jelys_pizzaria_pizza_oven.obj",
drop = "jelys_pizzaria:pizza_oven",
selection_box = oven_box,
collision_box = oven_box,
after_destruct = after_destruct,
on_punch = function(pos, node, player)
local itemstack = player:get_wielded_item()
if itemstack:get_name() == "default:torch" or itemstack:get_name() == "fire:flint_and_steel" then
swap_node(pos, "jelys_pizzaria:pizza_oven_active")
start_timer(pos, 0)
end
end,
on_ignite = function(pos, igniter)
swap_node(pos, "jelys_pizzaria:pizza_oven_active")
start_timer(pos, 0)
end,
on_rightclick = rightclick,
on_timer = start_timer,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("jelys_pizzaria:pizza_oven", {
description = "Pizza Oven",
drawtype = "mesh",
paramtype2 = "facedir",
groups = {cracky = 3, level = 1, pizza_oven = 1},
tiles = {
"jelys_pizzaria_pizza_oven.png",
},
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_float("cook_time_elapsed", 0)
meta:set_float("cook_time", 0)
meta:set_float("fuel_time", 0)
start_timer(pos, 0)
end,
mesh = "jelys_pizzaria_pizza_oven.obj",
selection_box = oven_box,
collision_box = oven_box,
after_destruct = after_destruct,
on_rightclick = function(pos, node, player, itemstack, pointed_thing)
local itemstack = player:get_wielded_item()
if minetest.get_item_group(itemstack:get_name(), "tree") > 0 then
if not minetest.is_creative_enabled(player:get_player_name()) then
itemstack:take_item()
end
swap_node(pos, "jelys_pizzaria:pizza_oven_fueled")
minetest.get_meta(pos):set_float("fuel_time", fuel)
end
return rightclick(pos, node, player, itemstack, pointed_thing)
end,
on_timer = start_timer,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "jelys_pizzaria:reinforced_brick",
recipe = {
{"default:clay_brick", "default:clay_brick", "default:clay_brick"},
{"default:clay_brick", "default:clay_brick", "default:clay_brick"},
{"default:clay_brick", "default:clay_brick", "default:clay_brick"},
}
})
minetest.register_craft({
output = "jelys_pizzaria:pizza_oven",
recipe = {
{"jelys_pizzaria:reinforced_brick", "jelys_pizzaria:reinforced_brick", "jelys_pizzaria:reinforced_brick"},
{"jelys_pizzaria:reinforced_brick", "", "jelys_pizzaria:reinforced_brick"},
{"jelys_pizzaria:reinforced_brick", "jelys_pizzaria:reinforced_brick", "jelys_pizzaria:reinforced_brick"},
}
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

View file

@ -0,0 +1,2 @@
# Whether pizza items should appear in dungeon chests, disabling will make the rare "haiac pizza" unobtainable, (Requires dungeon_loot)
jelys_pizzaria.enable_dungeon_loot (Add Pizza items to dungeon_loot table) bool true

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 279 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B