write something there

This commit is contained in:
N-Nachtigal 2025-05-04 16:01:41 +02:00
commit b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions

63
mods/x_farming/API.md Normal file
View file

@ -0,0 +1,63 @@
# [Mod] X Farming [x_farming] API
## Types
`BonemealTreeDef`
```typescript
type BonemealTreeDef = {
// sapling name
name: string
// 1 out of `chance`, e.g. 2 = 50% chance
chance: number
// grow tree from sapling, should return `true` if the growing was successful
grow_tree: function(pos: Vector): boolean
}
```
## Class `x_farming.x_bonemeal`
**Method**
`is_on_soil(pos: Vector): boolean`
Check if node has a soil below its self.
**Method**
`is_on_sand(pos: Vector): boolean`
Check if node has a sand below its self.
**Method**
`register_tree_defs(self: x_bonemeal, defs: BonemealTreeDef[]): void`
Register tree definition for bonemeal to work on this sapling.
Other mods can register new tree growth from sapling using bonemeal.
example
```lua
x_farming.x_bonemeal:register_tree_defs({
{
name = 'everness:coral_tree_sapling',
chance = 3,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
minetest.place_schematic(
{ x = pos.x - 19, y = pos.y, z = pos.z - 19 },
minetest.get_modpath('mymod') .. '/schematics/mymod_mytree_from_sapling.mts',
'random',
nil,
false
)
return true
end
}
})
```

1313
mods/x_farming/LICENSE.txt Normal file

File diff suppressed because it is too large Load diff

438
mods/x_farming/README.md Normal file
View file

@ -0,0 +1,438 @@
# X Farming [x_farming]
Farming with new plants, crops and ice fishing.
![screenshot](screenshot.png)
## Description
Hunger points in the description assume that you have [hbhubger](https://forum.minetest.net/viewtopic.php?t=11336) with hunger mod configured with x_farming. If not then you can consider hunger points as health points.
## Features
- shareable food items
- stove
- ropes, rope fence, rope safety net
- candles (with colors)
- adds bees, bee hives and honey harvesting
- compatible with Mineclone
- compatible with Everness
- adds christmas tree
- adds scarecrow
- adds food source to almost every biome, allows traveling the world without relying on apples only
- block farming, instead of food items, blocks can be harvested/crafted and used for building or decoration
- adds ice fishing - farming fish based on biomes and amount of ice around
- farming on different block than dirt, e.g. obsidian, jungle tree..
- farming in dark, no need for light for farming, e.g. obsidian wart
- vertical farming, e.g. farming cocoa on jungle tree trunk
- new trees and wood blocks allows for tree farms
- food items can heal or poison you
- some food items can be placed and used as decoration
- some food items can grow back on trees/cactus after harvesting
- using combination of snow block and pumpkin can spawn snowman mob
- mod is lightweight and optimized for servers
- plants and trees are spawning as decoration troughout the world (see biomes below)
- stairs and slabs for all new blocks
- leafdecay with falling fruit after tree trunk is harvested
- supports hbhunger mod
- crates and bags for storage (holds 1 stack)
- composter
### Composter
Right-click/place action with most plants, leaves, harvest, grass... will create/add compost. Once full another right-click/place action will give back bonemeal.
Each item has different chance for creating compost. In general items harder to obtain have higher chance of creating compost.
Additionally other mods can add group `{compost = 50}` to the items, where the number is chance of creating compost.
### Crates and Bags
Crafting crate/bag will give you empty crate/bag and can be used as a storage for raw farming items. Storage holds up to 1 stack making it work as "place-able" stacks. Crate/bag can be dug and carried while remembering the contents of the crate/bag. After placing the crate/bag you can access the contents again with right click (or the key by placing the node). List of items what can be placed in crates: melon, pumpkin_block, coffee, corn, obsidian_wart, potato, beetroot, carrot, cocoa_bean, kiwi_fruit, cactus_fruit_item, strawberry, pine_nut, stevia, soybean, fish, wheat, cotton. List of items what can be placed in bags: salt.
### Empty Soup Bowl ![screenshot](textures/x_farming_bowl.png)
Empty soup bowl is used as a vessel for soups and stew. To craft bowl put any kind of block with group wood in the middle of the bottom row in the crafting grid and then diagonal left and right also the same block, this will give you 3 empty soup bowls.
### Fish Stew ![screenshot](textures/x_farming_fish_stew.png)
Eating fish stew will restore 8 hunger points. To craft fish stew put empty soup bowl in the middle of the bottom row of the crafting grid, then bake potato above it, right from the potato will come salt, left from the potato will come carrot, then on top of the potato put any fish.
### Beetroot ![screenshot](textures/x_farming_beetroot.png)
Beetroots are obtained from harvesting a fully grown crop plant, which drops the beetroot and seeds.
Beetroots can be eaten to restore 3 hunger points.
**Beetroot Soup** ![screenshot](textures/x_farming_beetroot_soup.png)
Beetroots soup can be eaten to restore 6 hunger points.
To craft beetroot soup put beetroot in the first two rows in the crafting grid and in the middle of the bottom row empty soup bowl.
### Carrot ![screenshot](textures/x_farming_carrot.png)
Carrot can be farmed and harvested on wet soil. Planted carrots take 8 stages to grow and go through 4 visually distinct stages.
Eating a carrot restores 3 hunger points.
Carrot can be used as an ingredient for hog stew.
**Golden Carrot** ![screenshot](textures/x_farming_carrot_golden.png)
Eating golden carrot will restore 10 hunger points and 10 health points - the highest values currently in x_farming mod.
To craft golden carrot put regular carrot in the middle of the crafting grid and surround it with golden lumps.
### Coffee ![screenshot](textures/x_farming_coffee.png)
Planted coffee take 5 stages to grow. Farming coffee plants will drop coffee beans. Coffee beans cannot be eaten but are used to craft cup of coffee.
**Coffee Cup (hot)** ![screenshot](textures/x_farming_coffee_cup_hot.png)
Drinking/eating hot cup of coffee will restore 6 hunger points, 4 health points and will return a empty glass.
Hot cup of coffee can be obtained by cooking cold cup of coffee in a furnace.
Coffee cup can be placed as a block in the world for decoration.
### Corn ![screenshot](textures/x_farming_corn.png)
When farmed, corn will take 10 stages to grow.
Corn cannot be eaten but is used for crafting popped corn.
**Popped Corn** ![screenshot](textures/x_farming_corn_pop.png)
Eating popped corn will restore 1 hunger point.
Popped corn can be obtained by cooking corn cobin a furnace.
Pooped corn can be furhter used for crafting popcorn.
**Popcorn** ![screenshot](textures/x_farming_corn_popcorn.png)
Eating popcorn will restore 5 hunger points.
Popcorn can be crafted by adding popped corn in the first row of the crafting grid and surround the rest of the grid with paper leaving the middle input empty.
Popcorn can be placed as a block in the world for decoration.
### Melon ![screenshot](textures/x_farming_melon.png)
Farming melons will generate melon block in the last stage of growth. When harvesting this block and leaving the melon stem intact the melon block will grow from the stem again (in about 1 minetest day). The placement of the melon is completely random around the stem and it needs to have space 1 air in order to grow the melon block.
Melon fruit will drop melon slices.
Eeting melon slices will restore 2 health points.
Melon slices can be used for crafting melon block.
**Golden Melon** ![screenshot](textures/x_farming_golden_melon.png)
Eating golden melon slice will restore 10 hunger points and 10 health points - the highest values currently in x_farming mod.
To craft golden melon slice put melon slice in the middle of the crafting grid and surround it with golden lumps.
**Melon Block** ![screenshot](textures/x_farming_melon_fruit_side.png)
Melon block cannot be eating nor crafted to seeds or melon slices.
Melon block can placed in to the world as a building block or for decoration.
To craft melon block fill the crafting grid with melon slices.
### Obsidian Wart ![screenshot](textures/x_farming_obsidian_wart.png)
When planted on plowed and wet obsidian soil, obsidian wart will grow through 6 stages. The growth rate is not affected by light or any other environmental factors.
Harvesting obsidian wart plant will drop obsidian wart what can be used for further crafting (see below).
**Wart Brick** ![screenshot](textures/x_farming_wart_brick.png)
Wart brick can be obtained by cooking obsidian wart in a furnace.
Wart brick is used for furhter crafting.
**Wart Block** ![screenshot](textures/x_farming_wart_block.png)
Wart block is used as a building block and for decoration.
To craft wart block fill the crafting grid with obsidian wart.
**Wart Brick Block** ![screenshot](textures/x_farming_wart_brick_block.png)
Wart brick block is used as a building block and for decoration.
To craft wart brick block put wart brick next to wart brick to the first row of crafting grid and wart brick next to wart brick to the second row.
**Wart Red Brick Block** ![screenshot](textures/x_farming_wart_red_brick_block.png)
Wart red brick block is used as a building block and for decoration.
To craft wart red brick block put obsidian wart and wart brick to the first row of crafting grid and wart brick and obsidian wart to the second row.
**Wartrack** ![screenshot](textures/x_farming_wartrack.png)
Wartrack is used as a building block and for decoration.
To craft wartrack put two wart blocks next to each other in first and second row of the crafting grid. This will return 4 wartracks.
All wart blocks includes slabs and stairs.
### Potato ![screenshot](textures/x_farming_potato.png)
When farmed, potatoes will take 8 stages to grow. However, there are only 4 distinct textures, so only 4 visible stages.
Fully grown potato crops have chance of dropping an additional poisonous potato.
Eating a potato restores 2 hunger points.
**Baked potato** ![screenshot](textures/x_farming_potato_baked.png)
Baked potato can be obtained by cooking potato in a furnace.
Eating a baked potato restores 6 hunger points.
Baked potato can be used as an ingredient for hog stew.
**Poisonous potato** ![screenshot](textures/x_farming_potato_poisonous.png)
The poisonous potato is a rare drop when harvesting potato crops.
Eating a poisonous potato reduces 6 hunger points and 5 health points.
Poisonous potato cannot be planted on soil or baked.
### Pumpkin ![screenshot](textures/x_farming_pumpkin.png)
Farming pumpkin will generate pumpkin block in the last stage of growth. When harvesting this block and leaving the pumpkin stem intact the pumpkin block will grow from the stem again (in about 1 minetest day). The placement of the pumpkin is completely random around the stem and it needs to have space 1 air in order to grow the pumpkin block.
Pumpkin fruit/block will drop pumpking block.
Pumpking block can be used for crafting pumpkin pie, pumpkin lantern or can be used as a fuel (better than cactus).
**Pumpkin lantern** ![screenshot](textures/x_farming_pumpkin_fruit_side_on.png)
Pumpkin lantern gives the same light as torch but it's not flowed away by water.
To craft pumpkin lantern place torch in the middle of the crafting grid and put pumpkin block above it.
Pumpking lantern can be used as a fuel (better than cactus).
**Pumpkin pie** ![screenshot](textures/x_farming_pumpkin_pie.png)
Eating pumpkin pie will restore 6 healt points.
To craft pumpkin pie put pumpkin block in the second row of the crafting grid, then flour next to it and egg below the flower.
Egg is currently dependent on [mobs redo](https://github.com/tenplus1/mobs_redo) mod.
**Snow golem** ![screenshot](textures/x_farming_pumpkin_fruit_side_off.png)
When [mobs npc installed with snow golem mob](https://bitbucket.org/minetest_gamers/mobs_npc/overview), placing 2 snowblocks vertically ending up with pumpkin block or pumpkin lantern a snow golem NPC will spawn. This mob is not tamed. You can tame snow golem with bread, meat or diamond. Snow golem will follow you and help you fight mobs or can stay in place (right click). Giving snow golem a gold lump will drop random item.
### Cocoa
Cocoa is planted on jungletree using cocoa bean and fully grown cocoa will drop cocoa bean. From cocoa bean you can further craft eat items. Cocoa have 3 stages of growth.
### Kiwi Tree
Kiwi tree can be found in savana and drops kiwi fruit and sapling from leaves. This tree adds new tree trunk and wood planks also (including stairs and slabs). Kiwi fruit will grow back on the tree after harvested from the tree enabling farming Kiwis. Can be placed as a decoration.
### Large Cactus with Fruit
Cactus with Fruits can be found in desert. You will need axe to harvest the fruit. Fruit will grow back on cactus after harvested - enabling harvesting Dragon Fruits. Can be placed as a decoration. Seedling can be crafted for more farming and harvesting.
### Strawberry
Strawberries can be found in coniferous forest. They drop seeds and strawberries.
### Pine Nut Tree
Allows to harvest pine nuts. Roasted pine nuts can be eaten.
### Salt
Can be farmed as ingredient to craft other food recipes.
### Ice Fishing
Ice fish for getting various kinds of fish, treasures and junk. What type of fish you get depends on the biome where you'r fishing and how many ice blocks are directly around your fishing equipment (there has to be space above the ice and nothing can obstruct the ice otherwise it will not count). For planting you fishing equipment you need to first drill a hole in ice using Ice Auger. Ice fishing equipment can be crafted, occasionally dropped out from digging your ice fishing equipment and can also spawn in cold biomes.
## Biomes
**Grassland**
- Melon
- Carrot
- Soybean
**Coniferous Forest**
- Strawberry
- Pine Nut Tree
**Desert**
- Large Cactus with Fruit (dragon fruit)
**Savanna**
- Kiwi Tree
- Coffee
- Stevia
**Rainforest**
- Cocoa
**Underground**
- Obsidian Wart (below -1000)
**Sandstone desert**
- Corn
- Pumpkin
**Cold desert**
- Potato
- Beetroot
**Taiga**
- Pine Nut Tree
**Rainforest Swamp**
- Salt
- Swamp Darter
- Swamp Frog
- Sturgeon
- Sunfish
- Swordfish
**Savanna Shore**
- Salt
- Angelfish
- Lingcod
- Lukewarm Ocean Hermit Crab
- Magma Slimefish
- Manta Ray
**Icesheet Ocean**
- Angler
- Frozen Boneminnow
- Frozen Ocean Hermit Crab
- Paddlefish
- Pearl Isopod
**Taiga Ocean**
- Armored Catfish
- Gar
- Giant Moray
- Perch
- Piglish
**Desert Ocean**
- Arrow Squid
- Desert Frog
- Desert Sunfish
- Piranha
- Prismfish
- Pumpkinseed
**Tundra Ocean**
- Barracuda
- Flier
- Floral Faefish
- Flounder
- Fourhorn Sculpin
**Snowy Grassland Ocean**
- Grass Pickerel
- Guppy
- Hagfish
- Rainbowfish
- Red Snapper
**Coniferous Forest Ocean**
- Bream
- Redbreast Sunfish
- Rockfish
- Rohu
- Rosefish
**Grassland Ocean**
- Conger
- Sablefish
- Sardine
- Sawfish
- Skate
- Skullfin
**Savanna Ocean**
- Chorus Snail
- White Bullhead
- Whitefish
- Wolffish
- Woodskip
**Cold Desert Ocean**
- Chub
- Cold Ocean Hermit Crab
- Oscar
- Leerfish
**Sandstone Desert Ocean**
- Clam
- Skykoi
- Smallmouth Bass
- Sterlet
**Deciduous Forest Ocean**
- Crayfish
- Damselfish
- Danios
- Vampire Squid
- Walleye
- Warm Ocean Hermit Crab
**Rainforest Ocean**
- Burbot
- Koi
- Lamprey
- Largemouth Bass
- Lava Eel
- Leech
**Icesheet**
- Dwarf Caiman
- Eel
- Electric Eel
- Endray
- Tench
**Tundra Beach**
- Carp
- Catfish
- Catla
- Ocean Hermit Crab
- Octopus
**Deciduous Forest Shore**
- Congo Tiger Fish
- Convict Cichlid
- Minnow
- Mud Flounder
- Neon Tetra
Seeds can be found also in dungeon chests.
## Dependencies
- _none_
## Optional Dependencies
- default
- farming
- hbhunger
- stairs
- wool
- dye
- vessels (recipes, if not present then x_farming will load its own vessels needed for recipe)
- bucket (recipes)
- mcl_core
- mcl_farming
- mcl_potions
- hunger_ng
- mcl_stairs
## License:
- see attached LICENSE.txt file
## Installation
see: https://wiki.minetest.net/Installing_Mods

2940
mods/x_farming/api.lua Normal file

File diff suppressed because it is too large Load diff

27
mods/x_farming/bags.lua Normal file
View file

@ -0,0 +1,27 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
---Empty bag
x_farming.register_bag('bag_empty', {
description = S('Empty Bag'),
tiles = { 'x_farming_bag_empty.png' },
groups = { choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
stack_max = tonumber(minetest.settings:get('default_stack_max')) or 99
})

105
mods/x_farming/barley.lua Normal file
View file

@ -0,0 +1,105 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- BARLEY
x_farming.register_plant('x_farming:barley', {
description = S('Barley Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Barley Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_barley_seed.png',
steps = 8,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 0,
})
-- needed
local override_def = {
description = S('Barley') .. '\n' .. S('Compost chance') .. ': 50%',
short_description = S('Barley'),
groups = {
-- X Farming
compost = 50,
-- MCL
compostability = 50
},
_mcl_blast_resistance = 0,
}
minetest.override_item('x_farming:barley', override_def)
-- Registered before the stairs so the stairs get fuel recipes.
minetest.register_craft({
type = 'fuel',
recipe = 'x_farming:barley_stack',
burntime = 3,
})
if minetest.get_modpath('stairs') then
do
local recipe = 'x_farming:barley'
local groups = { snappy = 3, flammable = 4 }
local images = { 'x_farming_barley_stack_side.png' }
local sounds = x_farming.node_sound_leaves_defaults()
stairs.register_stair('barley_stack', recipe, groups, images, S('Barley Stack Stair'),
sounds, true)
stairs.register_stair_inner('barley_stack', recipe, groups, images, '',
sounds, true, S('Inner Barley Stack Stair'))
stairs.register_stair_outer('barley_stack', recipe, groups, images, '',
sounds, true, S('Outer Barley Stack Stair'))
stairs.register_slab('barley_stack', recipe, groups, images, S('Barley Stack Slab'),
sounds, true)
end
end
---crate
x_farming.register_crate('crate_barley_3', {
description = S('Barley Crate'),
short_description = S('Barley Crate'),
tiles = { 'x_farming_crate_barley_3.png' },
_custom = {
crate_item = 'x_farming:barley'
}
})
minetest.register_decoration(asuna.features.crops.barley.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1100,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:barley_5",
"x_farming:barley_6",
"x_farming:barley_7",
"x_farming:barley_8",
},
}))

624
mods/x_farming/bees.lua Normal file
View file

@ -0,0 +1,624 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local rand = PcgRandom(tonumber(tostring(os.time()):reverse():sub(1, 9)))
local function update_hive_infotext(pos)
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(meta:get_string('x_farming'))
if data then
local text = 'Occupancy: ' .. data.occupancy .. ' / 3\n'
.. 'Saturation: ' .. data.saturation .. ' / 5'
meta:set_string('infotext', text)
end
end
local function bee_particles(pos)
minetest.add_particlespawner({
amount = 20,
time = 0.1,
minpos = { x = pos.x - 0.25, y = pos.y, z = pos.z - 0.25 },
maxpos = { x = pos.x + 0.25, y = pos.y, z = pos.z + 0.25 },
minvel = { x = -0.5, y = -2, z = -0.5 },
maxvel = { x = 0.5, y = -2, z = 0.5 },
minacc = { x = -0.5, y = -2, z = -0.5 },
maxacc = { x = 0.5, y = -2, z = 0.5 },
minexptime = 0.5,
maxexptime = 1,
texture = 'x_farming_default_particle.png^[colorize:#FFD69C:255',
collisiondetection = true
})
end
local function update_bee_infotext(pos)
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(meta:get_string('x_farming'))
if data then
meta:set_string('infotext', 'Hive position: ' .. data.pos_hive)
end
end
-- how often node timers for plants will tick, +/- some random value
local function tick_hive(pos)
minetest.get_node_timer(pos):start(math.random(15, 25))
end
-- how often a growth failure tick is retried (e.g. too dark)
local function tick_bee(pos)
minetest.get_node_timer(pos):start(math.random(90, 150))
end
local function is_valid_hive_position(pos, params)
if not pos then
return false
end
local _params = params or {}
local ommit_node_group_check = _params.ommit_node_group_check or false
local hive_node = minetest.get_node(pos)
if not hive_node then
return false
end
if not ommit_node_group_check then
if minetest.get_item_group(hive_node.name, 'bee_hive') == 0 then
return false
end
end
local meta_hive = minetest.get_meta(pos)
local data_hive = minetest.deserialize(meta_hive:get_string('x_farming'))
if not data_hive then
return false
end
if not data_hive.occupancy then
return false
end
if data_hive.occupancy >= 3 then
return false
end
return true
end
local function get_valid_hive_position(pos_hive, pos_bee)
local valid_pos = nil
if pos_hive then
valid_pos = vector.copy(pos_hive)
end
if is_valid_hive_position(valid_pos) then
return valid_pos
end
valid_pos = nil
-- Find neighboring bee hive position
local hive_positions = minetest.find_nodes_in_area(
vector.add(pos_bee, 5),
vector.subtract(pos_bee, 5),
{ 'group:bee_hive' }
)
for _, p in ipairs(hive_positions) do
if is_valid_hive_position(p, { ommit_node_group_check = true }) then
valid_pos = p
break
end
end
return valid_pos
end
-- Hive
minetest.register_node('x_farming:bee_hive', {
description = S('Bee Hive'),
short_description = S('Bee Hive'),
tiles = {
'x_farming_bee_hive_top.png',
'x_farming_bee_hive_bottom.png',
'x_farming_bee_hive_side.png',
'x_farming_bee_hive_side.png',
'x_farming_bee_hive_side.png',
'x_farming_bee_hive_front.png',
},
paramtype2 = 'facedir',
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 1,
bee_hive = 1,
no_silktouch = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 5,
-- ALL
tree = 1,
flammable = 2,
},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
on_timer = function(pos, elapsed)
-- Hive data
local meta_hive = minetest.get_meta(pos)
local data_hive = minetest.deserialize(meta_hive:get_string('x_farming'))
local node = minetest.get_node(pos)
if data_hive.occupancy == 0 then
return
end
local flower_positions = minetest.find_nodes_in_area_under_air(
vector.add(pos, 5),
vector.subtract(pos, 5),
{ 'group:flower' }
)
if not flower_positions then
tick_hive(pos)
end
if flower_positions and #flower_positions > 0 then
local random_pos = flower_positions[rand:next(1, #flower_positions)]
local pos_bee = vector.new(random_pos.x, random_pos.y + 1, random_pos.z)
local tod = minetest.get_timeofday()
local is_day = false
if tod > 0.2 and tod < 0.805 then
is_day = true
end
if data_hive and data_hive.occupancy > 0 and is_day then
local pos_hive_front = vector.subtract(vector.new(pos.x, pos.y + 0.5, pos.z), minetest.facedir_to_dir(node.param2))
-- Send bee out
data_hive.occupancy = data_hive.occupancy - 1
minetest.swap_node(pos_bee, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
tick_bee(pos_bee)
minetest.sound_play('x_farming_bee', {
pos = pos_bee,
})
bee_particles(pos_bee)
bee_particles(pos_hive_front)
-- Bee data
local meta_bee = minetest.get_meta(pos_bee)
local data_bee = {
pos_hive = vector.new(pos):to_string()
}
meta_bee:set_string('x_farming', minetest.serialize(data_bee))
meta_hive:set_string('x_farming', minetest.serialize(data_hive))
update_hive_infotext(pos)
update_bee_infotext(pos_bee)
end
end
if data_hive and data_hive.occupancy > 0 then
tick_hive(pos)
end
end,
on_construct = function(pos)
local meta = minetest.get_meta(pos)
local data = {
occupancy = 0,
saturation = 0
}
meta:set_string('x_farming', minetest.serialize(data))
update_hive_infotext(pos)
end,
after_place_node = function(pos, placer, itemstack, pointed_thing)
tick_hive(pos)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(meta:get_string('x_farming'))
if not data then
return itemstack
end
if data.occupancy == 3 then
return itemstack
end
if minetest.get_item_group(itemstack:get_name(), 'bee') > 0 then
data.occupancy = data.occupancy + 1
meta:set_string('x_farming', minetest.serialize(data))
update_hive_infotext(pos)
itemstack:take_item()
minetest.sound_play('x_farming_bee', {
pos = pos,
})
end
if data.occupancy > 0 and not minetest.get_node_timer(pos):is_started() then
tick_hive(pos)
end
return itemstack
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local data = minetest.deserialize(oldmetadata.fields.x_farming)
local positions = minetest.find_nodes_in_area_under_air(
vector.add(pos, 5),
vector.subtract(pos, 5),
{ 'group:flower', 'group:flora' }
)
if positions and #positions > 0 and data.occupancy and data.occupancy > 0 then
for i = 1, data.occupancy do
local p = positions[i]
if p then
local pos_bee = vector.new(p.x, p.y + 1, p.z)
minetest.swap_node(pos_bee, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
tick_bee(pos_bee)
bee_particles(pos_bee)
if i == 1 then
minetest.sound_play('x_farming_bee', {
pos = pos_bee,
})
end
end
end
end
end,
})
-- Hive saturrated
minetest.register_node('x_farming:bee_hive_saturated', {
description = S('Bee Hive'),
short_description = S('Bee Hive'),
tiles = {
'x_farming_bee_hive_top.png',
'x_farming_bee_hive_bottom.png',
'x_farming_bee_hive_side.png^x_farming_bee_hive_saturated_overlay.png',
'x_farming_bee_hive_side.png^x_farming_bee_hive_saturated_overlay.png',
'x_farming_bee_hive_side.png^x_farming_bee_hive_saturated_overlay.png',
'x_farming_bee_hive_front.png^x_farming_bee_hive_saturated_overlay.png',
},
paramtype2 = 'facedir',
drop = 'x_farming:bee_hive',
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 1,
bee_hive = 1,
no_silktouch = 1,
not_in_creative_inventory = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 5,
-- ALL
tree = 1,
flammable = 2,
},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local stack_name = itemstack:get_name()
local stack = itemstack
local meta = minetest.get_meta(pos)
local data = minetest.deserialize(meta:get_string('x_farming'))
if stack_name == 'vessels:glass_bottle' or stack_name == 'x_farming:glass_bottle' then
-- Fill bottle with honey and return it
itemstack:take_item()
local pos_hive_front = vector.subtract(vector.new(pos.x, pos.y + 0.5, pos.z), minetest.facedir_to_dir(node.param2))
minetest.add_item(
pos_hive_front,
ItemStack({ name = 'x_farming:bottle_honey' })
)
minetest.swap_node(pos, { name = 'x_farming:bee_hive', param2 = node.param2 })
minetest.sound_play('x_farming_bee', {
pos = pos,
})
bee_particles(pos_hive_front)
data.saturation = 0
meta:set_string('x_farming', minetest.serialize(data))
update_hive_infotext(pos)
tick_hive(pos)
elseif stack_name == 'x_farming:honeycomb_saw' then
-- Add use to the tool and drop honeycomb
itemstack:add_wear(65535 / 50)
local pos_hive_front = vector.subtract(vector.new(pos.x, pos.y + 0.5, pos.z), minetest.facedir_to_dir(node.param2))
minetest.add_item(
pos_hive_front,
ItemStack({ name = 'x_farming:honeycomb' })
)
minetest.swap_node(pos, { name = 'x_farming:bee_hive', param2 = node.param2 })
minetest.sound_play('x_farming_bee', {
pos = pos,
})
bee_particles(pos_hive_front)
data.saturation = 0
meta:set_string('x_farming', minetest.serialize(data))
update_hive_infotext(pos)
tick_hive(pos)
end
return stack
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local data = minetest.deserialize(oldmetadata.fields.x_farming)
local positions = minetest.find_nodes_in_area_under_air(
vector.add(pos, 5),
vector.subtract(pos, 5),
{ 'group:flower', 'group:flora' }
)
if positions and #positions > 0 and data.occupancy and data.occupancy > 0 then
for i = 1, data.occupancy do
local p = positions[i]
if p then
local pos_bee = vector.new(p.x, p.y + 1, p.z)
minetest.swap_node(pos_bee, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
tick_bee(pos_bee)
bee_particles(pos_bee)
if i == 1 then
minetest.sound_play('x_farming_bee', {
pos = pos,
})
end
end
end
end
end,
})
-- Bee
minetest.register_node('x_farming:bee', {
description = S('Bee'),
short_description = S('Bee'),
drawtype = 'mesh',
mesh = 'x_farming_bee.obj',
tiles = {
{
name = 'x_farming_bee_mesh_animated.png',
animation = {
type = 'vertical_frames',
aspect_w = 34,
aspect_h = 30,
length = 0.3
},
backface_culling = false
},
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
paramtype2 = 'facedir',
walkable = false,
selection_box = {
type = 'fixed',
fixed = { -4 / 16, -4 / 16, -4 / 16, 4 / 16, 4 / 16, 4 / 16 }
},
groups = {
-- MTG
snappy = 2,
cracky = 2,
crumbly = 2,
choppy = 2,
fleshy = 10,
oddly_breakable_by_hand = 1,
disable_jump = 1,
bee = 1,
no_silktouch = 1,
not_in_creative_inventory = 1,
-- MCL
handy = 1,
},
damage_per_second = 2,
move_resistance = 7,
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
sounds = x_farming.node_sound_wood_defaults(),
drop = {
max_items = 1,
items = {
{
-- 1/20 chance
items = { 'x_farming:honeycomb' },
rarity = 10,
}
}
},
on_timer = function(pos, elapsed)
-- Bee data
local meta_bee = minetest.get_meta(pos)
local data_bee = minetest.deserialize(meta_bee:get_string('x_farming')) or {}
local pos_hive = get_valid_hive_position(data_bee.pos_hive and vector.from_string(data_bee.pos_hive) or nil, pos)
if not pos_hive then
-- Bee data not found, remove bee
minetest.remove_node(pos)
minetest.sound_play('x_farming_bee', {
pos = pos,
})
bee_particles(pos)
return
end
local meta_hive = minetest.get_meta(pos_hive)
local data_hive = minetest.deserialize(meta_hive:get_string('x_farming'))
local node_hive = minetest.get_node(pos_hive)
-- Bee go home
data_hive.occupancy = data_hive.occupancy + 1
local flower_node = minetest.get_node(vector.new(pos.x, pos.y - 1, pos.z))
if flower_node then
if minetest.get_item_group(flower_node.name, 'flower') > 0 and data_hive.saturation < 5 then
data_hive.saturation = data_hive.saturation + 1
end
if data_hive.saturation >= 5 then
minetest.swap_node(pos_hive, { name = 'x_farming:bee_hive_saturated', param2 = node_hive.param2 })
end
end
meta_hive:set_string('x_farming', minetest.serialize(data_hive))
minetest.remove_node(pos)
update_hive_infotext(pos_hive)
minetest.sound_play('x_farming_bee', {
pos = pos,
})
local pos_hive_front = vector.subtract(vector.new(pos_hive.x, pos_hive.y + 0.5, pos_hive.z), minetest.facedir_to_dir(node_hive.param2))
bee_particles(pos)
bee_particles(pos_hive_front)
if not minetest.get_node_timer(pos_hive):is_started() then
tick_hive(pos_hive)
end
end,
on_punch = function(pos, node, puncher, pointed_thing)
if not puncher then
return
end
-- Hurt player when punching bee
local armor_groups = puncher:get_armor_groups()
local damage = 2
if armor_groups.fleshy then
damage = math.round((2 * 100) / armor_groups.fleshy)
end
puncher:punch(puncher, 1, {
full_punch_interval = 1,
damage_groups = { fleshy = damage },
}, nil)
minetest.sound_play('x_farming_bee', {
pos = pos,
})
bee_particles(pos)
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local stack_name = itemstack:get_name()
if stack_name == 'x_farming:jar_empty' then
itemstack:take_item()
minetest.remove_node(pos)
minetest.add_item(vector.new(pos.x, pos.y + 0.3, pos.z), ItemStack({ name = 'x_farming:jar_with_bee' }))
minetest.sound_play('x_farming_bee', {
pos = pos,
})
bee_particles(pos)
end
return itemstack
end
})
-- Spawn bees on flowers
-- local bee_spawn_timer = 0
minetest.register_globalstep(function(dtime)
-- bee_spawn_timer = bee_spawn_timer + dtime
-- if bee_spawn_timer > rand:next(90, 150) then
local abr = minetest.get_mapgen_setting('active_block_range') or 4
local spawn_reduction = 0.5
local spawn_rate = 0.5
local spawnpos, liquidflag = x_farming.get_spawn_pos_abr(dtime, 3, abr * 16, spawn_rate, spawn_reduction)
local tod = minetest.get_timeofday()
local is_day = false
if tod > 0.2 and tod < 0.805 then
is_day = true
end
if spawnpos and not liquidflag and is_day then
local bees = minetest.find_node_near(spawnpos, abr * 16 * 1.1, { 'group:bee' }) or {}
if #bees > 1 then
return
end
local flower_positions = minetest.find_nodes_in_area_under_air(
vector.add(spawnpos, 5),
vector.subtract(spawnpos, 5),
{ 'group:flower' }
)
if flower_positions and #flower_positions > 1 then
local rand_pos = flower_positions[rand:next(1, #flower_positions)]
local bee_pos = vector.new(rand_pos.x, rand_pos.y + 1, rand_pos.z)
minetest.swap_node(bee_pos, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
tick_bee(bee_pos)
minetest.log('action', '[x_farming] Added Bee at ' .. minetest.pos_to_string(bee_pos))
end
end
-- bee_spawn_timer = 0
-- end
end)

View file

@ -0,0 +1,94 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local minlight = 13
local maxlight = 14
---BEETROOT
x_farming.register_plant('x_farming:beetroot', {
description = S('Beetroot Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Beetroot Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_beetroot_seed.png',
steps = 8,
minlight = minlight,
maxlight = maxlight,
fertility = { 'grassland' },
groups = { flammable = 4, compost = 65 },
place_param2 = 0,
})
---needed
local beetroot_def = {
description = S('Beetroot') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 3'),
short_description = S('Beetroot'),
groups = {
-- X Farming
compost = 65,
-- MCL
food = 2,
eatable = 1,
compostability = 65
},
_mcl_saturation = 1.2,
_mcl_blast_resistance = 0,
}
if minetest.get_modpath('farming') then
beetroot_def.on_use = minetest.item_eat(3)
end
if minetest.get_modpath('mcl_farming') then
beetroot_def.on_place = minetest.item_eat(3)
beetroot_def.on_secondary_use = minetest.item_eat(3)
end
minetest.override_item('x_farming:beetroot', beetroot_def)
---crate
x_farming.register_crate('crate_beetroot_3', {
description = S('Beetroot Crate'),
tiles = { 'x_farming_crate_beetroot_3.png' },
_custom = {
crate_item = 'x_farming:beetroot'
}
})
minetest.register_decoration(asuna.features.crops.beetroot.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1101,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:beetroot_5",
"x_farming:beetroot_6",
"x_farming:beetroot_7",
"x_farming:beetroot_8",
},
}))

View file

@ -0,0 +1,64 @@
--[[
X Farming Bonemeal. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
if minetest.get_modpath("bonemeal") then
-- Alias
minetest.register_alias("x_farming:bonemeal","bonemeal:bonemeal")
else
--- Register craftitem definition - added to minetest.registered_items[name]
minetest.register_craftitem('x_farming:bonemeal', {
description = S('Bonemeal - use it as a fertilizer for most plants.'),
inventory_image = 'x_farming_x_bonemeal_bonemeal.png',
on_use = function(itemstack, user, pointed_thing)
local result = x_farming.x_bonemeal:on_use(itemstack, user, pointed_thing)
return result.itemstack
end,
})
-- Crafting
minetest.register_craft({
output = 'x_farming:bonemeal 4',
recipe = {
{ 'bones:bones' }
}
})
if minetest.get_modpath('default') then
minetest.register_craft({
output = 'x_farming:bonemeal 4',
recipe = {
{ 'default:coral_skeleton' }
}
})
end
end
--
-- Crafting
--
if minetest.get_modpath('everness') then
minetest.register_craft({
output = 'x_farming:bonemeal 4',
recipe = {
{ 'everness:coral_skeleton' }
}
})
end

337
mods/x_farming/cactus.lua Normal file
View file

@ -0,0 +1,337 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- Large cactus
if minetest.get_modpath("default") then
-- Alias cactus and seedling
minetest.register_alias("x_farming:cactus","default:cactus")
minetest.register_alias("x_farming:large_cactus_with_fruit_seedling","default:large_cactus_seedling")
-- Add cactus fruits to grown large cactus
local oglcsot = minetest.registered_items["default:large_cactus_seedling"].on_timer
minetest.override_item("default:large_cactus_seedling",{
on_timer = function(pos)
local retval = oglcsot(pos)
local fruit_locations = minetest.find_nodes_in_area_under_air(pos:add(vector.new(-2,1,-2)),pos:add(vector.new(2,8,2)),"default:cactus")
for _,cpos in ipairs(fruit_locations) do
if math.random(1,10) < 7 then
minetest.set_node(cpos:add(vector.new(0,1,0)),{ name = "x_farming:cactus_fruit" })
end
end
return retval
end,
})
else
minetest.register_node('x_farming:cactus', {
description = S('Cactus'),
tiles = {
'x_farming_cactus_top.png',
'x_farming_cactus_top.png',
'x_farming_cactus.png',
'x_farming_cactus.png',
'x_farming_cactus.png^[transformFX',
'x_farming_cactus.png^[transformFX',
},
paramtype2 = 'facedir',
groups = {
-- MTG
choppy = 3,
-- X Farming
compost = 50,
-- MCL
handy = 1,
deco_block = 1,
dig_by_piston = 1,
plant = 1,
enderman_takable = 1,
compostability = 50
},
sounds = x_farming.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
})
minetest.register_node('x_farming:large_cactus_with_fruit_seedling', {
description = S('Large Cactus with Fruit Seedling') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Large Cactus with Fruit Seedling'),
drawtype = 'plantlike',
tiles = { 'x_farming_large_cactus_with_fruit_seedling.png' },
inventory_image = 'x_farming_large_cactus_with_fruit_seedling.png',
wield_image = 'x_farming_large_cactus_with_fruit_seedling.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
selection_box = {
type = 'fixed',
fixed = {
-5 / 16, -0.5, -5 / 16,
5 / 16, 0.5, 5 / 16
}
},
groups = {
-- MTG
choppy = 3,
dig_immediate = 3,
attached_node = 1,
compost = 30,
-- MCL
handy = 1,
deco_block = 1,
dig_by_piston = 1,
compostability = 30
},
sounds = x_farming.node_sound_wood_defaults(),
on_place = function(itemstack, placer, pointed_thing)
itemstack = x_farming.sapling_on_place(itemstack, placer, pointed_thing,
'x_farming:large_cactus_with_fruit_seedling',
{ x = -3, y = 0, z = -3 },
{ x = 3, y = 6, z = 3 },
4)
return itemstack
end,
on_construct = function(pos)
-- Normal cactus farming adds 1 cactus node by ABM,
-- interval 12s, chance 83.
-- Consider starting with 5 cactus nodes. We make sure that growing a
-- large cactus is not a faster way to produce new cactus nodes.
-- Confirmed by experiment, when farming 5 cacti, on average 1 new
-- cactus node is added on average every
-- 83 / 5 = 16.6 intervals = 16.6 * 12 = 199.2s.
-- Large cactus contains on average 14 cactus nodes.
-- 14 * 199.2 = 2788.8s.
-- Set random range to average to 2789s.
minetest.get_node_timer(pos):start(math.random(1859, 3719))
end,
on_timer = function(pos, elapsed)
local node_under = minetest.get_node_or_nil(
{ x = pos.x, y = pos.y - 1, z = pos.z })
if not node_under then
-- Node under not yet loaded, try later
minetest.get_node_timer(pos):start(300)
return
end
if minetest.get_item_group(node_under.name, 'sand') == 0 then
-- Seedling dies
minetest.remove_node(pos)
return
end
local light_level = minetest.get_node_light(pos)
if not light_level or light_level < 13 then
-- Too dark for growth, try later in case it's night
minetest.get_node_timer(pos):start(300)
return
end
minetest.log('action', 'A large cactus seedling grows into a large' ..
'cactus at ' .. minetest.pos_to_string(pos))
x_farming.grow_large_cactus(pos)
end,
})
minetest.register_craft({
output = 'x_farming:large_cactus_with_fruit_seedling',
recipe = {
{ '', 'x_farming:cactus_fruit_item', '' },
{ 'x_farming:cactus_fruit_item', 'x_farming:cactus', 'x_farming:cactus_fruit_item' },
{ '', 'x_farming:cactus_fruit_item', '' },
}
})
minetest.register_craft({
type = 'fuel',
recipe = 'x_farming:large_cactus_with_fruit_seedling',
burntime = 5,
})
end
minetest.register_node('x_farming:cactus_fruit', {
description = S('Dragon Fruit'),
short_description = S('Dragon Fruit'),
inventory_image = 'x_farming_cactus_fruit_sides.png',
is_ground_content = false,
tiles = {
'x_farming_cactus_fruit_top.png',
'x_farming_cactus_fruit_bottom.png',
'x_farming_cactus_fruit_sides.png',
'x_farming_cactus_fruit_sides.png',
'x_farming_cactus_fruit_sides.png',
'x_farming_cactus_fruit_sides.png'
},
use_texture_alpha = 'clip',
drawtype = 'nodebox',
paramtype = 'light',
node_box = {
type = 'fixed',
fixed = {
{ -0.25, -0.5, -0.25, 0.25, 0.0625, 0.25 },
}
},
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.0625, 0.25 },
},
drop = {
max_items = 1, -- Maximum number of items to drop.
items = { -- Choose max_items randomly from this list.
{
items = { 'x_farming:cactus_fruit_item' }, -- Items to drop.
rarity = 1, -- Probability of dropping is 1 / rarity.
}
},
},
groups = {
-- MTG
choppy = 3,
flammable = 2,
not_in_creative_inventory = 1,
leafdecay = 3,
leafdecay_drop = 1,
-- MCL
handy = 1,
deco_block = 1,
dig_by_piston = 1,
plant = 1,
enderman_takable = 1,
compostability = 50
},
sounds = x_farming.node_sound_wood_defaults(),
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.param2 == 20 then
minetest.set_node(pos, { name = 'x_farming:cactus_fruit_mark' })
minetest.get_node_timer(pos):start(math.random(300, 1500))
end
end,
})
minetest.register_node('x_farming:cactus_fruit_mark', {
description = S('Cactus Fruit Marker'),
short_description = S('Cactus Fruit Marker'),
inventory_image = 'x_farming_cactus_fruit_sides.png^x_farming_invisible_node_overlay.png',
wield_image = 'x_farming_cactus_fruit_sides.png^x_farming_invisible_node_overlay.png',
drawtype = 'airlike',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
drop = '',
groups = { not_in_creative_inventory = 1 },
on_timer = function(pos, elapsed)
local n = minetest.get_node({ x = pos.x, y = pos.y - 1, z = pos.z })
if not ( n.name == 'x_farming:cactus' or n.name == "default:cactus" ) then
minetest.remove_node(pos)
elseif minetest.get_node_light(pos) < 11 then
minetest.get_node_timer(pos):start(200)
else
minetest.set_node(pos, { name = 'x_farming:cactus_fruit', param2 = 20 })
end
end
})
-- Fruit Item
local cactus_fruit_item_def = {
description = S('Dragon Fruit') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
short_description = S('Dragon Fruit'),
drawtype = 'plantlike',
tiles = { 'x_farming_cactus_fruit_item.png' },
inventory_image = 'x_farming_cactus_fruit_item.png',
on_use = minetest.item_eat(2),
sounds = x_farming.node_sound_leaves_defaults(),
groups = {
-- X Farming
compost = 65,
-- MCL
food = 2,
eatable = 1,
compostability = 65,
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
minetest.set_node(pos, { name = 'x_farming:cactus_fruit' })
end,
}
if minetest.get_modpath('mcl_farming') then
cactus_fruit_item_def.on_secondary_use = minetest.item_eat(2)
end
minetest.register_node('x_farming:cactus_fruit_item', cactus_fruit_item_def)
x_farming.register_leafdecay({
trunks = { 'x_farming:cactus' },
leaves = { 'x_farming:cactus_fruit' },
radius = 1,
})
minetest.register_craft({
type = 'fuel',
recipe = 'x_farming:cactus_fruit_item',
burntime = 10,
})
---crate
x_farming.register_crate('crate_cactus_fruit_item_3', {
description = S('Cactus Fruit Crate'),
short_description = S('Cactus Fruit Crate'),
tiles = { 'x_farming_crate_cactus_fruit_item_3.png' },
_custom = {
crate_item = 'x_farming:cactus_fruit_item'
}
})
--[[minetest.register_decoration(asuna.features.crops.cactus.inject_decoration({
deco_type = "schematic",
sidelen = 16,
noise_params = {
offset = -0.0004,
scale = 0.0005,
spread = { x = 200, y = 200, z = 200 },
seed = 230,
octaves = 2,
persist = 0.6
},
y_max = 31000,
y_min = 4,
schematic = minetest.get_modpath("x_farming") .. '/schematics/x_farming_large_cactus.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
}))]]
minetest.register_decoration({
deco_type = "simple",
decoration = "x_farming:cactus_fruit",
place_on = "default:cactus",
sidelen = 80,
y_min = 4,
y_max = 31000,
fill_ratio = 0.05,
})

123
mods/x_farming/carrot.lua Normal file
View file

@ -0,0 +1,123 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local minlight = 13
local maxlight = 14
-- carrot
x_farming.register_plant('x_farming:carrot', {
description = S('Planting Carrot') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Planting Carrot'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_carrot_seed.png',
steps = 8,
minlight = minlight,
maxlight = maxlight,
fertility = { 'grassland' },
groups = { flammable = 4, compost = 65 },
place_param2 = 3,
})
-- needed
local carrot_def = {
description = S('Carrot') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 3'),
short_description = S('Carrot'),
groups = {
-- X Farming
compost = 65,
-- MCL
food = 2,
eatable = 1,
compostability = 65
},
_mcl_saturation = 3.6,
_mcl_blast_resistance = 0,
}
if minetest.get_modpath('farming') then
carrot_def.on_use = minetest.item_eat(3)
end
if minetest.get_modpath('mcl_farming') then
carrot_def.on_place = minetest.item_eat(3)
carrot_def.on_secondary_use = minetest.item_eat(3)
end
minetest.override_item('x_farming:carrot', carrot_def)
-- Golden carrot
local golden_carrot_def = {
description = S('Golden Carrot') .. '\n' .. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 10'),
inventory_image = 'x_farming_carrot_golden.png',
wield_image = 'x_farming_carrot_golden.png',
groups = {
-- MCL
food = 2,
eatable = 1,
},
_mcl_saturation = 14.4,
}
if x_farming.hbhunger ~= nil or x_farming.hunger_ng ~= nil then
golden_carrot_def.description = golden_carrot_def.description .. '\n' .. minetest.colorize(x_farming.colors.red, S('Heal') .. ': 10')
end
if minetest.get_modpath('farming') then
golden_carrot_def.on_use = minetest.item_eat(10)
end
if minetest.get_modpath('mcl_farming') then
golden_carrot_def.on_place = minetest.item_eat(10)
golden_carrot_def.on_secondary_use = minetest.item_eat(10)
end
minetest.register_craftitem('x_farming:carrot_golden', golden_carrot_def)
---crate
x_farming.register_crate('crate_carrot_3', {
description = S('Carrot Crate'),
short_description = S('Carrot Crate'),
tiles = { 'x_farming_crate_carrot_3.png' },
_custom = {
crate_item = 'x_farming:carrot'
}
})
minetest.register_decoration(asuna.features.crops.carrot.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1103,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:carrot_5",
"x_farming:carrot_6",
"x_farming:carrot_7",
"x_farming:carrot_8",
},
}))

View file

@ -0,0 +1,163 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
minetest.register_node('x_farming:christmas_tree_sapling', {
description = S('Christmas Tree Sapling') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Christmas Tree Sapling'),
drawtype = 'plantlike',
tiles = { 'x_farming_christmas_tree_sapling.png' },
inventory_image = 'x_farming_christmas_tree_sapling.png',
wield_image = 'x_farming_christmas_tree_sapling.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
on_timer = x_farming.grow_sapling,
selection_box = {
type = 'fixed',
fixed = { -4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16 }
},
groups = {
-- MTG
snappy = 2,
-- MCL
plant = 1,
non_mycelium_plant = 1,
deco_block = 1,
dig_by_water = 1,
dig_by_piston = 1,
destroy_by_lava_flow = 1,
compostability = 30,
-- ALL
dig_immediate = 3,
flammable = 3,
attached_node = 1,
sapling = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = x_farming.sapling_on_place(itemstack, placer, pointed_thing,
'x_farming:christmas_tree_sapling',
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{ x = -2, y = 1, z = -2 },
{ x = 2, y = 14, z = 2 },
-- maximum interval of interior volume check
4)
return itemstack
end,
})
-- Decorated Pine Leaves
minetest.register_node('x_farming:christmas_tree_leaves', {
description = S('Decorated Pine Leaves') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Decorated Pine Leaves'),
drawtype = 'allfaces_optional',
tiles = {
{
-- Animated, 'blinking lights' version. ~ LazyJ
name = 'x_farming_christmas_tree_leaves_animated.png',
animation = {
type = 'vertical_frames',
aspect_w = 16,
aspect_h = 16,
length = 20.0
},
}
},
waving = 0,
paramtype = 'light',
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
leafdecay = 3,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1,
dig_by_piston = 1,
fire_encouragement = 30,
fire_flammability = 60,
deco_block = 1,
compostability = 30,
-- ALL
flammable = 2,
leaves = 1,
},
_mcl_shears_drop = true,
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
sounds = x_farming.node_sound_leaves_defaults(),
after_place_node = x_farming.after_place_leaves,
light_source = 5,
})
-- Star
minetest.register_node('x_farming:christmas_tree_star', {
description = S('Christmas Tree Star'),
tiles = { 'x_farming_christmas_tree_star.png' },
inventory_image = 'x_farming_christmas_tree_star.png',
wield_image = 'x_farming_christmas_tree_star.png',
drawtype = 'plantlike',
paramtype = 'light',
walkable = false,
groups = {
-- MTG
cracky = 1,
crumbly = 1,
choppy = 1,
oddly_breakable_by_hand = 1,
not_in_creative_inventory = 1,
leafdecay = 3,
leafdecay_drop = 1,
-- MCL
handy = 1,
glass = 1,
building_block = 1,
material_glass = 1
},
_mcl_blast_resistance = 0.3,
_mcl_hardness = 0.3,
sounds = x_farming.node_sound_thin_glass_defaults(),
light_source = 5,
})
x_farming.register_leafdecay({
trunks = { 'x_farming:pine_nut_tree' },
leaves = {
'x_farming:christmas_tree_leaves',
'x_farming:christmas_tree_star',
-- since christmas tree is loaded after pine_nut_tree
-- we are including pine_nut_leaves here
'x_farming:pine_nut',
'x_farming:pine_nut_leaves',
},
radius = 3,
})

720
mods/x_farming/cocoa.lua Normal file
View file

@ -0,0 +1,720 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local dpath = minetest.get_modpath("default")
-- how often node timers for plants will tick, +/- some random value
local function tick(pos)
minetest.get_node_timer(pos):start(math.random(332, 572))
end
-- how often a growth failure tick is retried (e.g. too dark)
local function tick_again(pos)
minetest.get_node_timer(pos):start(math.random(80, 160))
end
function x_farming.grow_cocoa_plant(pos, elapsed)
local node = minetest.get_node(pos)
local name = node.name
local def = minetest.registered_nodes[name]
if not def.next_plant then
-- disable timer for fully grown plant
return
end
-- check if on jungletree
local direction = minetest.facedir_to_dir(node.param2)
local below_pos = vector.add(pos, direction)
local below = minetest.get_node(below_pos)
if below.name ~= 'default:jungletree' and below.name ~= 'x_farming:jungle_tree' then
tick_again(pos)
return
end
-- check light
local light = minetest.get_node_light(pos)
if not light or light < def.minlight or light > def.maxlight then
tick_again(pos)
return
end
-- grow
minetest.swap_node(pos, { name = def.next_plant, param2 = node.param2 })
-- new timer needed?
if minetest.registered_nodes[def.next_plant].next_plant then
tick(pos)
end
end
function x_farming.place_cocoa_bean(itemstack, placer, pointed_thing)
local pt = pointed_thing
-- check if pointing at a node
if not pt then
return itemstack
end
if pt.type ~= 'node' then
return itemstack
end
local under = minetest.get_node(pt.under)
local above = minetest.get_node(pt.above)
local udef = minetest.registered_nodes[under.name]
if udef and udef.on_rightclick
and not (placer and placer:is_player()
and placer:get_player_control().sneak)
then
return udef.on_rightclick(pt.under, under, placer, itemstack, pointed_thing) or itemstack
end
local player_name = placer and placer:get_player_name() or ''
if minetest.is_protected(pt.under, player_name) then
minetest.record_protection_violation(pt.under, player_name)
return
end
if minetest.is_protected(pt.above, player_name) then
minetest.record_protection_violation(pt.above, player_name)
return
end
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name] then
return itemstack
end
if not minetest.registered_nodes[above.name] then
return itemstack
end
-- check if NOT pointing at the top/below of the node
if pt.above.y == pt.under.y - 1
or pt.above.y == pt.under.y + 1
then
return itemstack
end
-- check if you can replace the node above the pointed node
if not minetest.registered_nodes[above.name].buildable_to then
return itemstack
end
-- check if pointing at soil
if under.name ~= 'default:jungletree' and under.name ~= 'x_farming:jungle_tree' then
return itemstack
end
local direction = vector.direction(pt.above, pt.under)
local new_param2 = minetest.dir_to_facedir(direction)
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.above, { name = 'x_farming:cocoa_1', param2 = new_param2 })
tick(pt.above)
if not minetest.is_creative_enabled(player_name) then
itemstack:take_item()
end
return itemstack
end
-- COCOA
minetest.register_craftitem('x_farming:cocoa_bean', {
description = S('Cocoa bean') .. ' (' .. S('plant on jungle tree trunk') .. ')'
.. '\n' .. S('Compost chance') .. ': 65%',
short_description = S('Cocoa bean'),
tiles = { 'x_farming_cocoa_bean.png' },
inventory_image = 'x_farming_cocoa_bean.png',
wield_image = 'x_farming_cocoa_bean.png',
groups = { compost = 65 },
on_place = x_farming.place_cocoa_bean,
})
-- 1
minetest.register_node('x_farming:cocoa_1', {
description = S('Cocoa') .. ' 1',
short_description = S('Cocoa') .. ' 1',
drawtype = 'nodebox',
tiles = {
'x_farming_cocoa_top_1.png',
'x_farming_cocoa_bottom_1.png',
'x_farming_cocoa_right_1.png',
'x_farming_cocoa_left_1.png',
'x_farming_cocoa_front_1.png',
'x_farming_cocoa_front_1.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
wield_scale = { x = 2, y = 2, z = 2 },
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
paramtype2 = 'facedir',
is_ground_content = false,
drop = {
items = {
{ items = { 'x_farming:cocoa_bean' }, rarity = 3 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.125, -0.0625, 0.1875, 0.125, 0.25, 0.4375 }, -- fruit
{ 0, 0.25, 0.3125, 0, 0.375, 0.375 }, -- stem_1
{ 0, 0.375, 0.4375, 0, 0.4375, 0.5 }, -- stem_2
{ 0, 0.3125, 0.375, 0, 0.4375, 0.4375 }, -- stem_3
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.125, -0.0625, 0.1875, 0.125, 0.5, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.125, -0.0625, 0.1875, 0.125, 0.5, 0.5 },
},
},
groups = {
-- MTG
choppy = 3,
flammable = 2,
plant = 1,
cocoa = 1,
-- MCL
handy = 1,
axey = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1,
attached_node_facedir = 1,
-- ALL
not_in_creative_inventory = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 0.2,
sounds = x_farming.node_sound_wood_defaults(),
next_plant = 'x_farming:cocoa_2',
on_timer = x_farming.grow_cocoa_plant,
minlight = 13,
maxlight = 15,
})
-- 2
minetest.register_node('x_farming:cocoa_2', {
description = S('Cocoa') .. ' 2',
short_description = S('Cocoa') .. ' 2',
drawtype = 'nodebox',
tiles = {
'x_farming_cocoa_top_2.png',
'x_farming_cocoa_bottom_2.png',
'x_farming_cocoa_right_2.png',
'x_farming_cocoa_left_2.png',
'x_farming_cocoa_front_2.png',
'x_farming_cocoa_front_2.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
wield_scale = { x = 1.5, y = 1.5, z = 1.5 },
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
paramtype2 = 'facedir',
is_ground_content = false,
drop = {
items = {
{ items = { 'x_farming:cocoa_bean' }, rarity = 2 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.1875, -0.1875, 0.0625, 0.1875, 0.25, 0.4375 }, -- fruit
{ 0, 0.25, 0.25, 0, 0.375, 0.375 }, -- stem_1
{ 0, 0.375, 0.375, 0, 0.5, 0.5 }, -- stem_2
{ 0, 0.375, 0.3125, 0, 0.4375, 0.375 }, -- stem_3
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.1875, -0.1875, 0.0625, 0.1875, 0.5, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.1875, -0.1875, 0.0625, 0.1875, 0.5, 0.5 },
},
},
groups = {
-- MTG
choppy = 3,
flammable = 2,
plant = 1,
cocoa = 2,
-- MCL
handy = 1,
axey = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1,
attached_node_facedir = 1,
-- ALL
not_in_creative_inventory = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 0.2,
sounds = x_farming.node_sound_wood_defaults(),
next_plant = 'x_farming:cocoa_3',
on_timer = x_farming.grow_cocoa_plant,
minlight = 13,
maxlight = 15
})
-- 3
minetest.register_node('x_farming:cocoa_3', {
description = S('Cocoa') .. ' 3',
short_description = S('Cocoa') .. ' 3',
drawtype = 'nodebox',
tiles = {
'x_farming_cocoa_top_3.png',
'x_farming_cocoa_bottom_3.png',
'x_farming_cocoa_right_3.png',
'x_farming_cocoa_left_3.png',
'x_farming_cocoa_front_3.png',
'x_farming_cocoa_front_3.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
wield_scale = { x = 1.5, y = 1.5, z = 1.5 },
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
paramtype2 = 'facedir',
is_ground_content = false,
drop = {
items = {
{ items = { 'x_farming:cocoa_bean' }, rarity = 1 },
{ items = { 'x_farming:cocoa_bean' }, rarity = 2 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.25, -0.3125, -0.0625, 0.25, 0.25, 0.4375 },
{ -0.0624999, 0.25, 0.25, 0.0625, 0.375, 0.4375 },
{ -0.0625, 0.375, 0.375, 0.0625, 0.5, 0.5 },
{ -0.0624999, 0.375, 0.3125, 0.0625, 0.4375, 0.375 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.25, -0.3125, -0.0625, 0.25, 0.5, 0.5 },
},
},
groups = {
-- MTG
choppy = 3,
flammable = 2,
plant = 1,
leafdecay = 3,
leafdecay_drop = 1,
cocoa = 3,
-- MCL
handy = 1,
axey = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1,
attached_node_facedir = 1,
-- ALL
not_in_creative_inventory = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 0.2,
sounds = x_farming.node_sound_wood_defaults(),
minlight = 13,
maxlight = 15
})
-- replacement LBM for pre-nodetimer plants
minetest.register_lbm({
name = 'x_farming:start_nodetimer_cocoa',
nodenames = {
'x_farming:cocoa_1',
'x_farming:cocoa_2'
},
action = function(pos, node)
tick_again(pos)
end,
})
if dpath then
minetest.register_alias("x_farming:jungle_tree","default:jungletree")
minetest.register_alias("x_farming:jungle_wood","default:junglewood")
minetest.register_alias("x_farming:jungle_leaves","default:jungleleaves")
minetest.register_alias("x_farming:jungle_with_cocoa_sapling","default:junglesapling")
minetest.register_alias("stairs:stair_jungle_wood","stairs:stair_junglewood")
minetest.register_alias("stairs:stair_inner_jungle_wood","stairs:stair_inner_junglewood")
minetest.register_alias("stairs:stair_outer_jungle_wood","stairs:stair_outer_junglewood")
minetest.register_alias("stairs:slab_jungle_wood","stairs:slab_junglewood")
-- leafdecay
default.register_leafdecay({
trunks = { 'default:jungletree' },
leaves = {
'x_farming:cocoa_1',
'x_farming:cocoa_2',
'x_farming:cocoa_3',
},
radius = 2,
})
else
--sapling
minetest.register_node('x_farming:jungle_with_cocoa_sapling', {
description = S('Jungle Tree with Cocoa Sapling') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Jungle Tree with Cocoa Sapling'),
drawtype = 'plantlike',
tiles = { 'x_farming_junglesapling.png' },
inventory_image = 'x_farming_junglesapling.png',
wield_image = 'x_farming_junglesapling.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
on_timer = x_farming.grow_jungle_tree,
selection_box = {
type = 'fixed',
fixed = { -4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16 }
},
groups = {
-- MTG
snappy = 2,
flammable = 2,
-- MCL
plant = 1,
non_mycelium_plant = 1,
deco_block = 1,
dig_by_water = 1,
dig_by_piston = 1,
destroy_by_lava_flow = 1,
compostability = 30,
-- ALL
dig_immediate = 3,
attached_node = 1,
sapling = 1,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = x_farming.sapling_on_place(itemstack, placer, pointed_thing,
'x_farming:jungle_with_cocoa_sapling',
-- minp, maxp to be checked, relative to sapling pos
{ x = -3, y = -5, z = -3 },
{ x = 3, y = 31, z = 3 },
-- maximum interval of interior volume check
4)
return itemstack
end,
})
-- trunk
minetest.register_node('x_farming:jungle_tree', {
description = S('Jungle Tree'),
short_description = S('Jungle Tree'),
tiles = { 'x_farming_jungle_tree_top.png', 'x_farming_jungle_tree_top.png', 'x_farming_jungle_tree.png' },
paramtype2 = 'facedir',
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 5,
-- ALL
tree = 1,
flammable = 2,
},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
-- leaves
minetest.register_node('x_farming:jungle_leaves', {
description = S('Jungle Tree Leaves') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Jungle Tree Leaves'),
drawtype = 'allfaces_optional',
waving = 1,
tiles = { 'x_farming_jungleleaves.png' },
special_tiles = { 'x_farming_jungleleaves.png' },
paramtype = 'light',
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
leafdecay = 3,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1,
dig_by_piston = 1,
fire_encouragement = 30,
fire_flammability = 60,
deco_block = 1,
compostability = 30,
-- ALL
flammable = 2,
leaves = 1,
},
_mcl_shears_drop = true,
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
items = { 'x_farming:jungle_with_cocoa_sapling' },
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = { 'x_farming:jungle_leaves' },
}
}
},
sounds = x_farming.node_sound_leaves_defaults(),
after_place_node = x_farming.after_place_leaves,
})
-- leafdecay
x_farming.register_leafdecay({
trunks = { 'x_farming:jungle_tree' },
leaves = {
'x_farming:jungle_leaves'
},
radius = 2,
})
-- planks
minetest.register_node('x_farming:jungle_wood', {
description = S('Jungle Wood Planks'),
short_description = S('Jungle Wood Planks'),
paramtype2 = 'facedir',
place_param2 = 0,
tiles = { 'x_farming_jungle_wood.png' },
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
-- Everness
everness_wood = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 20,
-- ALL
flammable = 3,
wood = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
})
-- Stairs
if minetest.global_exists('stairs') and minetest.get_modpath('stairs') then
stairs.register_stair_and_slab(
'jungle_wood',
'x_farming:jungle_wood',
{ choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
{ 'x_farming_jungle_wood.png' },
'Jungle Wooden Stair',
'Jungle Wooden Slab',
x_farming.node_sound_wood_defaults(),
false
)
end
end
-- Cookie
local cookie_def = {
description = S('Cookie') .. '\n' .. S('Compost chance') .. ': 85%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
inventory_image = 'x_farming_cookie.png',
groups = {
-- MTG
compost = 85,
-- MCL
food = 2,
eatable = 2,
compostability = 85
},
}
if minetest.get_modpath('farming') then
cookie_def.on_use = minetest.item_eat(2)
end
if minetest.get_modpath('mcl_farming') then
cookie_def.on_place = minetest.item_eat(2)
cookie_def.on_secondary_use = minetest.item_eat(2)
end
minetest.register_craftitem('x_farming:cookie', cookie_def)
-- Chocolate
local chocolate_def = {
description = S('Chocolate') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 3'),
inventory_image = 'x_farming_chocolate.png',
groups = {
-- MTG
compost = 65,
-- MCL
food = 2,
eatable = 2,
compostability = 65
},
}
if minetest.get_modpath('farming') then
chocolate_def.on_use = minetest.item_eat(3)
end
if minetest.get_modpath('mcl_farming') then
chocolate_def.on_place = minetest.item_eat(3)
chocolate_def.on_secondary_use = minetest.item_eat(3)
end
minetest.register_craftitem('x_farming:chocolate', chocolate_def)
if minetest.get_modpath('mcl_stairs') then
mcl_stairs.register_stair_and_slab(
'x_farming_jungle_wood',
'x_farming:jungle_wood',
{ handy = 1, axey = 1, building_block = 1, material_wood = 1, fire_encouragement = 5, fire_flammability = 20, flammable = 3, wood = 1, },
{ 'x_farming_jungle_wood.png' },
S('Jungle Wooden Stair'),
S('Jungle Wooden Slab'),
x_farming.node_sound_wood_defaults(),
6,
2,
S('Double Jungle Wooden Slab'),
nil
)
end
-- Crate
x_farming.register_crate('crate_cocoa_bean_3', {
description = S('Cocoa Bean Crate'),
short_description = S('Cocoa Bean Crate'),
tiles = { 'x_farming_crate_cocoa_bean_3.png' },
_custom = {
crate_item = 'x_farming:cocoa_bean'
}
})
local c_jungletree = minetest.get_content_id("default:jungletree")
local c_cocoa2 = minetest.get_content_id("x_farming:cocoa_2")
local c_cocoa3 = minetest.get_content_id("x_farming:cocoa_3")
abdecor.register_advanced_decoration("x_farming_cocoa",{
target = {
place_on = "default:jungletree",
fill_ratio = 0.0075,
biomes = asuna.features.crops.cocoa,
y_min = 6,
y_max = 31000,
},
fn = function(mapgen)
-- Get provided values
local pos = mapgen.pos
local va = mapgen.voxelarea
local vdata = mapgen.data
local vparam2 = mapgen.param2
-- Get stride values and adjust position
local ystride = va.ystride
local zstride = va.zstride
pos = va:index(pos.x,pos.y + 2,pos.z)
-- Get adjacent tree trunk direction
local cardinal = {
zstride,
1,
-zstride,
-1,
}
for i = 1, 4 do
local treepos = pos + cardinal[i]
if vdata[treepos] == c_jungletree then
for j = 2, 6 do
pos = pos + ystride
treepos = treepos + ystride
if j % 2 == 0 and vdata[treepos] == c_jungletree and vdata[pos] == minetest.CONTENT_AIR then
vdata[pos] = (pos + 2 * j) % 7 == 0 and c_cocoa2 or c_cocoa3
vparam2[pos] = i - 1
end
end
end
end
end,
flags = {
param2 = true,
},
})

141
mods/x_farming/coffee.lua Normal file
View file

@ -0,0 +1,141 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- COFFEE
x_farming.register_plant('x_farming:coffee', {
description = S('Coffee Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Coffee Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_coffee_seed.png',
steps = 5,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 0,
})
-- needed
minetest.override_item('x_farming:coffee', {
description = S('Coffee bean') .. '\n' .. S('Compost chance') .. ': 50%',
short_description = S('Coffee bean'),
groups = {
-- MTG
compost = 50,
-- MCL
compostability = 50,
}
})
minetest.register_craftitem('x_farming:bottle_coffee', {
description = S('Coffee Bottle'),
tiles = { 'x_farming_bottle_coffee.png' },
inventory_image = 'x_farming_bottle_coffee.png',
wield_image = 'x_farming_bottle_coffee.png',
groups = { vessel = 1 },
})
-- Hot cup of coffee
local coffee_cup_hot_def = {
description = S('Hot Cup of Coffee') .. '\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 6'),
short_description = S('Hot Cup of Coffee') .. '\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 6'),
drawtype = 'mesh',
mesh = 'x_farming_coffee_cup_hot.obj',
tiles = { 'x_farming_coffee_cup_hot_mesh.png' },
use_texture_alpha = 'clip',
inventory_image = 'x_farming_coffee_cup_hot.png',
wield_image = 'x_farming_coffee_cup_hot.png',
paramtype = 'light',
paramtype2 = 'facedir',
is_ground_content = false,
walkable = true,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.4, 0.25, 0.5, 0.25 }
},
collision_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.4, 0.25, 0, 0.25 }
},
groups = {
-- MTG
vessel = 1,
dig_immediate = 3,
attached_node = 1,
-- MCL
food = 3,
eatable = 6,
handy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
},
on_use = minetest.item_eat(6),
sounds = x_farming.node_sound_thin_glass_defaults(),
sunlight_propagates = true,
-- MCL
_mcl_saturation = 0.6,
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
}
if x_farming.hbhunger ~= nil or x_farming.hunger_ng ~= nil then
coffee_cup_hot_def.description = coffee_cup_hot_def.description .. '\n' .. minetest.colorize(x_farming.colors.red, S('Heal') .. ': 4')
coffee_cup_hot_def.short_description = coffee_cup_hot_def.short_description .. '\n' .. minetest.colorize(x_farming.colors.red, S('Heal') .. ': 4')
end
if minetest.get_modpath('mcl_farming') then
coffee_cup_hot_def.on_secondary_use = minetest.item_eat(6)
end
minetest.register_node('x_farming:coffee_cup_hot', coffee_cup_hot_def)
-- Crate
x_farming.register_crate('crate_coffee_3', {
description = S('Coffee Crate'),
short_description = S('Coffee Crate'),
tiles = { 'x_farming_crate_coffee_3.png' },
_custom = {
crate_item = 'x_farming:coffee'
}
})
minetest.register_decoration(asuna.features.crops.coffee.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1104,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:coffee_3",
"x_farming:coffee_4",
"x_farming:coffee_5",
},
}))

View file

@ -0,0 +1,238 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local function particle_effect(pos)
minetest.add_particlespawner({
amount = 8,
time = 2,
minpos = { x = pos.x - 0.4, y = pos.y + 0.4, z = pos.z - 0.4 },
maxpos = { x = pos.x + 0.4, y = pos.y + 0.6, z = pos.z + 0.4 },
minvel = { x = -0.1, y = 0, z = -0.1 },
maxvel = { x = 0.1, y = 0.1, z = 0.1 },
minacc = vector.new({ x = -0.1, y = 0, z = -0.1 }),
maxacc = vector.new({ x = 0.1, y = 0.1, z = 0.1 }),
minexptime = 1,
maxexptime = 2,
minsize = 1,
maxsize = 2,
texture = 'x_farming_x_bonemeal_particles.png',
animation = {
type = 'vertical_frames',
aspect_w = 8,
aspect_h = 8,
length = 3,
},
})
end
for i = 1, 5, 1 do
local def = {}
def.name = 'x_farming:composter_' .. i
def.description = S('Composter') .. ' ' .. i
def.short_description = S('Composter') .. ' ' .. i
def.drawtype = 'mesh'
def.mesh = 'x_farming_crate.obj'
def.tiles = { 'x_farming_composter_' .. i .. '.png' }
def.use_texture_alpha = 'clip'
def.sounds = x_farming.node_sound_wood_defaults()
def.paramtype = 'light'
def.paramtype2 = 'facedir'
def.place_param2 = 0
def.is_ground_content = false
def.groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
flammable = 2,
not_in_creative_inventory = 1,
-- MCL
handy = 1,
material_wood = 1,
deco_block = 1,
dirtifier = 1,
fire_encouragement = 3,
fire_flammability = 4,
}
def.stack_max = 1
def.mod_origin = 'x_farming'
def.drop = 'x_farming:composter_1'
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local p_name = clicker:get_player_name()
if minetest.is_protected(pos, p_name) then
return itemstack
end
local wield_stack = clicker:get_wielded_item()
local wield_stack_name = wield_stack:get_name()
-- percentage, higher = better, max 100%
local chance = 0
if minetest.get_item_group(wield_stack_name, 'compost') > 0 then
-- defined in groups, e.g. `{ compost = 10 }`
chance = minetest.get_item_group(wield_stack_name, 'compost')
elseif minetest.get_item_group(wield_stack_name, 'food_bread') == 1
or minetest.get_item_group(wield_stack_name, 'wool') == 1
or node.name == 'farming:straw'
then
chance = 85
elseif minetest.get_item_group(wield_stack_name, 'flora') == 1
or minetest.get_item_group(wield_stack_name, 'food_apple') == 1
or minetest.get_item_group(wield_stack_name, 'fern') == 1
or minetest.get_item_group(wield_stack_name, 'food_wheat') == 1
or minetest.get_item_group(wield_stack_name, 'food_flour') == 1
or minetest.get_item_group(wield_stack_name, 'mushroom') == 1
or minetest.get_item_group(wield_stack_name, 'flower') == 1
then
chance = 65
elseif minetest.get_item_group(wield_stack_name, 'marram_grass') == 1
or minetest.get_item_group(wield_stack_name, 'junglegrass') == 1
or node.name == 'default:cactus'
or node.name == 'default:coral_green'
or node.name == 'default:coral_pink'
or node.name == 'default:coral_cyan'
then
chance = 50
elseif minetest.get_item_group(wield_stack_name, 'leaves') == 1
or minetest.get_item_group(wield_stack_name, 'seed') == 1
or minetest.get_item_group(wield_stack_name, 'grass') == 1
or minetest.get_item_group(wield_stack_name, 'snappy') == 3
or minetest.get_item_group(wield_stack_name, 'sapling') == 1
or minetest.get_item_group(wield_stack_name, 'food_blueberries') == 1
or minetest.get_item_group(wield_stack_name, 'food_berry') == 1
or node.name == 'default:sand_with_kelp'
or node.name == 'default:large_cactus_seedling'
then
chance = 30
end
if chance == 0 then
return itemstack
end
-- fill the composter
if math.random() < chance / 100 then
local meta = minetest.get_meta(pos)
local prev_status = meta:get_int('composter_status')
local status = prev_status + 10
if status > 100 then
status = 100
end
meta:set_int('composter_status', status)
local node_def = minetest.registered_nodes[node.name]
if math.fmod(status, 50) == 0 and node_def._next_state then
local placenode = { name = node_def._next_state }
minetest.swap_node(pos, placenode)
particle_effect(pos)
if i == 3 then
-- placed nr 4
minetest.get_node_timer(pos):start(math.random(1, 2))
end
elseif i == 1 then
-- convert to visual 1st level
minetest.swap_node(pos, { name = 'x_farming:composter_2' })
particle_effect(pos)
end
end
minetest.sound_play('x_farming_dirt_hit', { gain = 0.3, pos = pos, max_hear_distance = 10 }, true)
if not minetest.is_creative_enabled(clicker:get_player_name()) then
itemstack:take_item()
end
return itemstack
end
if i == 1 then
-- empty composter is craftable, so can be in creative inventory
def.groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
-- MCL
handy = 1,
material_wood = 1,
deco_block = 1,
dirtifier = 1,
fire_encouragement = 3,
fire_flammability = 4,
-- ALL
flammable = 2,
}
def.description = S('Composter') .. ' (' .. S('right-click/place with item to create compost') .. ')'
def.short_description = S('Composter')
end
if i < 4 then
-- all except the last
def._next_state = 'x_farming:composter_' .. i + 1
end
if i == 4 then
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- do nothing
end
-- last step
def.on_timer = function(pos, elapsed)
minetest.swap_node(pos, { name = 'x_farming:composter_5' })
end
end
if i == 5 then
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local p_name = clicker:get_player_name()
if minetest.is_protected(pos, p_name) then
return itemstack
end
local meta = minetest.get_meta(pos)
local above = vector.new(pos.x, pos.y + 0.5, pos.z)
local drop_pos = minetest.find_node_near(above, 0.5, { 'air' }) or above
minetest.sound_play('x_farming_dirt_hit', { gain = 0.3, pos = pos, max_hear_distance = 10 }, true)
-- drop bonemeal
minetest.add_item(
vector.new(drop_pos.x, drop_pos.y + 1, drop_pos.z),
ItemStack({ name = 'x_farming:bonemeal', count = math.random(1, 2) })
)
-- swap to beginning
minetest.swap_node(pos, { name = 'x_farming:composter_1' })
-- reset status
meta:set_int('composter_status', 0)
end
end
-- MCL
def._mcl_hardness = 0.6
def._mcl_blast_resistance = 0.6
minetest.register_node(def.name, def)
end

200
mods/x_farming/corn.lua Normal file
View file

@ -0,0 +1,200 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- CORN
x_farming.register_plant('x_farming:corn', {
description = S('Corn Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Corn Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_corn_seed.png',
steps = 10,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 3,
})
-- needed
local corn_def = {
description = S('Corn') .. '\n' .. S('Compost chance') .. ': 50%',
short_description = S('Corn'),
groups = {
-- X Farming
compost = 50,
-- MCL
compostability = 50,
},
}
minetest.override_item('x_farming:corn', corn_def)
minetest.override_item('x_farming:corn_6', {
visual_scale = 2.0,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.6, 0.25 }
}
})
minetest.override_item('x_farming:corn_7', {
visual_scale = 2.0,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.6, 0.25 }
}
})
minetest.override_item('x_farming:corn_8', {
visual_scale = 2.0,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.6, 0.25 }
}
})
minetest.override_item('x_farming:corn_9', {
visual_scale = 2.0,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.6, 0.25 }
}
})
minetest.override_item('x_farming:corn_10', {
visual_scale = 2.0,
selection_box = {
type = 'fixed',
fixed = { -0.25, -0.5, -0.25, 0.25, 0.6, 0.25 }
}
})
-- Popped corn
local popperd_corn_def = {
description = S('Popped corn') .. '\n' .. S('Compost chance') .. ': 50%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 1'),
short_description = S('Popped corn'),
inventory_image = 'x_farming_corn_pop.png',
groups = {
-- MTG
compost = 50,
-- MCL
food = 2,
eatable = 2,
compostability = 50
},
}
if minetest.get_modpath('farming') then
popperd_corn_def.on_use = minetest.item_eat(1)
end
if minetest.get_modpath('mcl_farming') then
popperd_corn_def.on_place = minetest.item_eat(1)
popperd_corn_def.on_secondary_use = minetest.item_eat(1)
end
minetest.register_craftitem('x_farming:corn_pop', popperd_corn_def)
-- Popcorn
local popcorn_def = {
description = S('Popcorn') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 5'),
short_description = S('Popcorn'),
drawtype = 'mesh',
mesh = 'x_farming_corn_popcorn.obj',
tiles = { 'x_farming_corn_popcorn_mesh.png' },
use_texture_alpha = 'clip',
inventory_image = 'x_farming_corn_popcorn.png',
wield_image = 'x_farming_corn_popcorn.png',
paramtype = 'light',
is_ground_content = false,
walkable = true,
selection_box = {
type = 'fixed',
fixed = { -0.3, -0.5, -0.3, 0.3, 0.4, 0.3 }
},
collision_box = {
type = 'fixed',
fixed = { -0.3, -0.5, -0.3, 0.3, 0.25, 0.3 }
},
groups = {
-- MTG
dig_immediate = 3,
attached_node = 1,
-- X Farming
compost = 65,
-- MCL
food = 2,
eatable = 2,
compostability = 65,
handy = 1,
deco_block = 1,
fire_encouragement = 60,
fire_flammability = 100,
dig_by_water = 1,
destroy_by_lava_flow = 1,
},
sounds = x_farming.node_sound_leaves_defaults(),
on_use = minetest.item_eat(5),
sunlight_propagates = true,
_mcl_saturation = 0.6,
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
}
if minetest.get_modpath('mcl_farming') then
popcorn_def.on_secondary_use = minetest.item_eat(5)
end
minetest.register_node('x_farming:corn_popcorn', popcorn_def)
---crate
x_farming.register_crate('crate_corn_3', {
description = S('Corn Crate'),
short_description = S('Corn Crate'),
tiles = { 'x_farming_crate_corn_3.png' },
_custom = {
crate_item = 'x_farming:corn'
}
})
minetest.register_decoration(asuna.features.crops.corn.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1105,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:corn_6",
"x_farming:corn_7",
"x_farming:corn_8",
"x_farming:corn_9",
"x_farming:corn_10",
},
}))

83
mods/x_farming/cotton.lua Normal file
View file

@ -0,0 +1,83 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
if minetest.get_modpath("farming") then
minetest.register_alias("x_farming:cotton","farming:cotton")
else
-- COTTON
x_farming.register_plant('x_farming:cotton', {
description = S('Cotton Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Cotton Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_cotton_seed.png',
steps = 8,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 34,
})
-- needed
local cotton_def = {
description = S('Cotton') .. '\n' .. S('Compost chance') .. ': 50%',
short_description = S('Cotton'),
groups = {
-- X Farming
compost = 50,
-- MCL
compostability = 50,
}
}
minetest.override_item('x_farming:cotton', cotton_def)
minetest.register_decoration(asuna.features.crops.cotton.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1106,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:cotton_5",
"x_farming:cotton_6",
"x_farming:cotton_7",
"x_farming:cotton_8",
},
}))
end
-- Crate
x_farming.register_crate('crate_cotton2_3', {
description = S('Cotton Crate'),
short_description = S('Cotton Crate'),
tiles = { 'x_farming_crate_cotton2_3.png' },
_custom = {
crate_item = 'x_farming:cotton'
}
})

1040
mods/x_farming/crafting.lua Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,214 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
--
-- Craft items
--
local S = minetest.get_translator(minetest.get_current_modname())
-- Flour
minetest.register_craftitem('x_farming:flour', {
description = S('Barley Flour'),
inventory_image = 'x_farming_flour.png',
groups = { food_flour = 1, flammable = 1 },
})
-- Bread
local bread_def = {
description = S('Barley Bread'),
inventory_image = 'x_farming_bread.png',
groups = {
-- MTG
food_bread = 1,
flammable = 2,
-- MCL
food = 2,
eatable = 5,
compostability = 85
},
_mcl_saturation = 6.0,
}
if minetest.get_modpath('farming') then
bread_def.on_use = minetest.item_eat(5)
end
if minetest.get_modpath('mcl_farming') then
bread_def.on_place = minetest.item_eat(5)
bread_def.on_secondary_use = minetest.item_eat(5)
end
minetest.register_craftitem('x_farming:bread', bread_def)
-- String(
if minetest.get_modpath("farming") then
minetest.register_alias("x_farming:string","farming:string")
else
minetest.register_craftitem('x_farming:string', {
description = S('Cotton String'),
inventory_image = 'x_farming_string.png',
groups = { flammable = 2 },
})
end
-- Soup Bowl
if minetest.registered_items["farming:bowl"] then
minetest.register_alias("x_farming:bowl","farming:bowl")
else
minetest.register_craftitem('x_farming:bowl', {
description = S('Empty Soup Bowl'),
inventory_image = 'x_farming_bowl.png',
})
end
-- Bottle Water
if minetest.registered_items["bottles:bottle_of_water"] then
minetest.register_alias("x_farming:bottle_water","bottles:bottle_of_water")
else
minetest.register_craftitem('x_farming:bottle_water', {
description = S('Water Bottle'),
tiles = { 'x_farming_bottle_water.png' },
inventory_image = 'x_farming_bottle_water.png',
wield_image = 'x_farming_bottle_water.png',
groups = { vessel = 1 },
})
end
-- Bottle Honey
local bottle_honey_def = {
description = S('Honey Bottle') .. '\n' .. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 6'),
tiles = { 'x_farming_bottle_honey.png' },
inventory_image = 'x_farming_bottle_honey.png',
wield_image = 'x_farming_bottle_honey.png',
groups = {
-- MCL
craftitem = 1,
food = 3,
eatable = 6,
can_eat_when_full = 1
},
_mcl_saturation = 1.2,
}
if minetest.get_modpath('farming') then
if x_farming.vessels then
bottle_honey_def.on_use = minetest.item_eat(6, 'vessels:glass_bottle')
else
bottle_honey_def.on_use = minetest.item_eat(6, 'x_farming:glass_bottle')
end
end
if minetest.get_modpath('mcl_farming') then
if x_farming.vessels then
bottle_honey_def.on_place = minetest.item_eat(6, 'x_farming:glass_bottle')
bottle_honey_def.on_secondary_use = minetest.item_eat(6, 'x_farming:glass_bottle')
else
bottle_honey_def.on_place = minetest.item_eat(6, 'x_farming:glass_bottle')
bottle_honey_def.on_secondary_use = minetest.item_eat(6, 'x_farming:glass_bottle')
end
end
minetest.register_craftitem('x_farming:bottle_honey', bottle_honey_def)
-- Honeycomb
minetest.register_craftitem('x_farming:honeycomb', {
description = S('Honeycomb'),
inventory_image = 'x_farming_honeycomb.png',
})
-- Jar empty
minetest.register_craftitem('x_farming:jar_empty', {
description = S('Empty Jar - Right-click to catch Bee with it'),
inventory_image = 'x_farming_jar_empty.png',
groups = { vessel = 1 }
})
-- Jar with bee
minetest.register_craftitem('x_farming:jar_with_bee', {
description = S('Jar with Bee - Right-click to add bee to a Hive'),
inventory_image = 'x_farming_jar_with_bee.png',
groups = { bee = 1, not_in_creative_inventory = 1 }
})
-- Rice
minetest.register_craftitem('x_farming:rice_grains', {
description = S('Rice Grains'),
inventory_image = 'x_farming_rice_grains.png',
})
-- Sushi
local sushi_maki_def = {
description = S('Sushi Maki') .. '\n' .. S('Compost chance') .. ': 85%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 5'),
inventory_image = 'x_farming_sushi_maki.png',
groups = {
-- MTG
flammable = 2,
-- MCL
food = 2,
eatable = 5,
compostability = 85
},
_mcl_saturation = 6.0,
}
if minetest.get_modpath('farming') then
sushi_maki_def.on_use = minetest.item_eat(5)
end
if minetest.get_modpath('mcl_farming') then
sushi_maki_def.on_place = minetest.item_eat(5)
sushi_maki_def.on_secondary_use = minetest.item_eat(5)
end
minetest.register_craftitem('x_farming:sushi_maki', sushi_maki_def)
local sushi_nigiri_def = {
description = S('Sushi Nigiri') .. '\n' .. S('Compost chance') .. ': 85%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 3'),
inventory_image = 'x_farming_sushi_nigiri.png',
groups = {
-- MTG
flammable = 2,
-- MCL
food = 2,
eatable = 3,
compostability = 85
},
_mcl_saturation = 4.0,
}
if minetest.get_modpath('farming') then
sushi_nigiri_def.on_use = minetest.item_eat(3)
end
if minetest.get_modpath('mcl_farming') then
sushi_nigiri_def.on_place = minetest.item_eat(3)
sushi_nigiri_def.on_secondary_use = minetest.item_eat(3)
end
minetest.register_craftitem('x_farming:sushi_nigiri', sushi_nigiri_def)
-- Brick
minetest.register_craftitem('x_farming:silt_loam_brick', {
description = S('Silt Loam Brick'),
inventory_image = 'x_farming_silt_loam_brick.png',
})

122
mods/x_farming/crates.lua Normal file
View file

@ -0,0 +1,122 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
---Crates
x_farming.register_crate('crate_empty', {
description = S('Empty Crate'),
tiles = { 'x_farming_crate_empty.png' },
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
-- MCL
handy = 1,
material_wood = 1,
deco_block = 1,
fire_encouragement = 3,
fire_flammability = 4,
-- ALL
flammable = 2
},
stack_max = tonumber(minetest.settings:get('default_stack_max')) or 99
})
if minetest.get_modpath('farming') then
---crate wheat
x_farming.register_crate('crate_wheat_3', {
description = S('Wheat Crate'),
short_description = S('Wheat Crate'),
tiles = { 'x_farming_crate_wheat_3.png' },
_custom = {
crate_item = 'farming:wheat'
}
})
---crate cotton
x_farming.register_crate('crate_cotton_3', {
description = S('Cotton Crate'),
short_description = S('Cotton Crate'),
tiles = { 'x_farming_crate_cotton_3.png' },
_custom = {
crate_item = 'farming:cotton'
}
})
if farming.mod == "redo" then
-- Register crates for Farming Redo crops
for name,crop in pairs({
Artichoke = "artichoke",
Asparagus = "asparagus",
Barley = "barley",
Beans = "beans",
Beetroot = "beetroot",
Blackberry = "blackberry",
Blueberry = "blueberry",
Cabbage = "cabbage",
Carrot = "carrot",
Chili = "chili_pepper",
Cocoa = "cocoa_beans",
Coffee = "coffee_beans",
Corn = "corn",
--Cotton = "cotton",
Cucumber = "cucumber",
Eggplant = "eggplant",
Garlic = "garlic",
Ginger = "ginger",
Grapes = "grapes",
Hemp = "hemp_leaf",
Lettuce = "lettuce",
Melon = "melon",
Mint = "mint_leaf",
Oat = "oat",
Onion = "onion",
Parsley = "parsley",
Peas = "pea_pod",
Pepper = "pepper",
["Yellow Pepper"] = "pepper_yellow",
["Red Pepper"] = "pepper_red",
Pineapple = "pineapple",
Potato = "potato",
Pumpkin = "pumpkin",
Raspberry = "raspberry",
Rhubarb = "rhubarb",
Rice = "rice",
Rye = "rye",
Soy = "soy_pod",
Spinach = "spinach",
Strawberry = "strawberry",
Sunflower = "sunflower",
Tomato = "tomato",
Vanilla = "vanilla",
-- "Wheat",
}) do
if minetest.registered_items["farming:" .. crop] then
x_farming.register_crate("crate_" .. crop .. "_3", {
description = name .. " Crate",
short_description = name .. " Crate",
tiles = { "x_farming_crate_" .. crop .. "_3.png" },
_custom = {
crate_item = "farming:" .. crop,
},
})
end
end
end
end

View file

@ -0,0 +1,47 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it pos the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- Activate timers on bees which were spawned without starting the timer (bug was fixed in 5d04f7fdc5cb43e7573438a864c3730e05cff608)
minetest.register_lbm({
-- Descriptive label for profiling purposes (optional).
-- Definitions with identical labels will be listed as one.
label = 'x_farming_bee_timers',
-- Identifier of the LBM, should follow the modname:<whatever> convention
name = 'x_farming:bee_timers',
-- List of node names to trigger the LBM on.
-- Names of non-registered nodes and groups (as group:groupname)
-- will work as well.
nodenames = {
'x_farming:bee',
'x_farming:lotus_flower_purple',
'x_farming:lotus_flower_pink'
},
-- Function triggered for each qualifying node.
-- `dtime_s` is the in-game time (in seconds) elapsed since the block
-- was last active
action = function(pos, node, dtime_s)
local timer = minetest.get_node_timer(pos)
if not timer:is_started() then
minetest.get_node_timer(pos):start(1)
end
end
})

56
mods/x_farming/hoes.lua Normal file
View file

@ -0,0 +1,56 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local hoe_wood_def = {
description = S('Wooden Hoe'),
inventory_image = 'x_farming_tool_woodhoe.png',
wield_scale = { x = 2, y = 2, z = 1 },
max_uses = 30,
material = 'group:wood',
groups = { hoe = 1, flammable = 2 },
}
local hoe_stone_def = {
description = S('Stone Hoe'),
inventory_image = 'x_farming_tool_stonehoe.png',
wield_scale = { x = 2, y = 2, z = 1 },
max_uses = 90,
material = 'group:stone',
groups = { hoe = 1 }
}
local hoe_steel_def = {
description = S('Steel Hoe'),
inventory_image = 'x_farming_tool_steelhoe.png',
wield_scale = { x = 2, y = 2, z = 1 },
max_uses = 500,
material = 'default:steel_ingot',
groups = { hoe = 1 }
}
if minetest.get_modpath('farming') then
minetest.override_item('farming:hoe_wood', hoe_wood_def)
minetest.override_item('farming:hoe_stone', hoe_stone_def)
minetest.override_item('farming:hoe_steel', hoe_steel_def)
else
x_farming.register_hoe('x_farming:hoe_wood', hoe_wood_def)
x_farming.register_hoe('x_farming:hoe_stone', hoe_stone_def)
x_farming.register_hoe('x_farming:hoe_steel', hoe_steel_def)
end

File diff suppressed because it is too large Load diff

109
mods/x_farming/init.lua Normal file
View file

@ -0,0 +1,109 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it pos the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local mod_start_time = minetest.get_us_time()
local path = minetest.get_modpath('x_farming')
-- Legacy backwards compatibility
minetest.register_alias('x_farming:hog_stew', 'x_farming:fish_stew')
-- MineClone2 support
if minetest.get_modpath('mcl_core') and minetest.global_exists('mcl_core') then
dofile(path .. '/mod_support_mcl_aliases.lua')
end
dofile(path .. '/api.lua')
dofile(path .. '/craftitems.lua')
dofile(path .. '/nodes.lua')
dofile(path .. '/functions.lua')
dofile(path .. '/melon.lua')
dofile(path .. '/pumpkin.lua')
dofile(path .. '/coffee.lua')
dofile(path .. '/corn.lua')
dofile(path .. '/obsidian_wart.lua')
dofile(path .. '/potato.lua')
dofile(path .. '/beetroot.lua')
dofile(path .. '/carrot.lua')
dofile(path .. '/cocoa.lua')
dofile(path .. '/seeds.lua')
dofile(path .. '/kiwi_tree.lua')
dofile(path .. '/cactus.lua')
dofile(path .. '/strawberry.lua')
dofile(path .. '/pine_nut.lua')
dofile(path .. '/christmas_tree.lua')
dofile(path .. '/stevia.lua')
dofile(path .. '/soybean.lua')
dofile(path .. '/salt.lua')
dofile(path .. '/cotton.lua')
dofile(path .. '/barley.lua')
dofile(path .. '/bees.lua')
dofile(path .. '/ropes.lua')
dofile(path .. '/rice.lua')
dofile(path .. '/stove.lua')
dofile(path .. '/tools.lua')
dofile(path .. '/hoes.lua')
dofile(path .. '/ice_fishing.lua')
dofile(path .. '/bonemeal.lua')
dofile(path .. '/crates.lua')
dofile(path .. '/bags.lua')
dofile(path .. '/composter.lua')
dofile(path .. '/crafting.lua')
if not x_farming.vessels then
dofile(path .. '/vessels.lua')
end
---timer for crates
minetest.register_lbm({
label = 'x_farming timer for crates',
name = 'x_farming:start_nodetimer_crates',
nodenames = x_farming.lbm_nodenames_crates,
action = function(pos, node)
x_farming.tick_again_crates(pos)
end
})
-- MOD support
if minetest.get_modpath('default') then
dofile(path .. '/mod_support_default.lua')
end
-- hbhunger
if x_farming.hbhunger ~= nil then
if hbhunger.register_food ~= nil then
dofile(path .. '/mod_support_hbhunger.lua')
end
end
-- hunger_ng
if x_farming.hunger_ng then
dofile(path .. '/mod_support_hunger_ng.lua')
end
-- candles_3d
if minetest.get_modpath('candles_3d') then
dofile(path .. '/mod_support_candles_3d.lua')
end
local mod_end_time = (minetest.get_us_time() - mod_start_time) / 1000000
print('[Mod] x_farming loaded.. [' .. mod_end_time .. 's]')

View file

@ -0,0 +1,391 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- Required wrapper to allow customization of x_farming.after_place_leaves
local function after_place_leaves(...)
return x_farming.after_place_leaves(...)
end
-- trunk
minetest.register_node('x_farming:kiwi_tree', {
description = S('Kiwi Tree'),
short_description = S('Kiwi Tree'),
tiles = { 'x_farming_kiwi_tree_top.png', 'x_farming_kiwi_tree_top.png', 'x_farming_kiwi_tree.png' },
paramtype2 = 'facedir',
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 5,
-- ALL
tree = 1,
flammable = 2,
},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
-- leaves
minetest.register_node('x_farming:kiwi_leaves', {
description = S('Kiwi Tree Leaves') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Kiwi Tree Leaves'),
drawtype = 'allfaces_optional',
waving = 1,
tiles = { 'x_farming_kiwi_leaves.png' },
special_tiles = { 'x_farming_kiwi_leaves.png' },
paramtype = 'light',
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
leafdecay = 3,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1,
dig_by_piston = 1,
fire_encouragement = 30,
fire_flammability = 60,
deco_block = 1,
compostability = 30,
-- ALL
flammable = 2,
leaves = 1,
},
_mcl_shears_drop = true,
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
items = { 'x_farming:kiwi_sapling' },
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = { 'x_farming:kiwi_leaves' },
}
}
},
sounds = x_farming.node_sound_leaves_defaults(),
after_place_node = after_place_leaves,
})
-- sapling
minetest.register_node('x_farming:kiwi_sapling', {
description = S('Kiwi Tree Sapling') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Kiwi Tree Sapling'),
drawtype = 'plantlike',
tiles = { 'x_farming_kiwi_sapling.png' },
inventory_image = 'x_farming_kiwi_sapling.png',
wield_image = 'x_farming_kiwi_sapling.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
on_timer = x_farming.grow_sapling,
selection_box = {
type = 'fixed',
fixed = { -4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16 }
},
groups = {
-- MTG
snappy = 2,
flammable = 2,
-- MCL
plant = 1,
non_mycelium_plant = 1,
deco_block = 1,
dig_by_water = 1,
dig_by_piston = 1,
destroy_by_lava_flow = 1,
compostability = 30,
-- ALL
dig_immediate = 3,
attached_node = 1,
sapling = 1,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = x_farming.sapling_on_place(itemstack, placer, pointed_thing,
'x_farming:kiwi_sapling',
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{ x = -2, y = 1, z = -2 },
{ x = 2, y = 4, z = 2 },
-- maximum interval of interior volume check
4)
return itemstack
end,
})
-- fruit - for marker only
minetest.register_node('x_farming:kiwi', {
description = S('Kiwi'),
short_description = S('Kiwi'),
drawtype = 'plantlike',
visual_scale = 0.5,
tiles = { 'x_farming_kiwi.png' },
inventory_image = 'x_farming_kiwi.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
drop = {
max_items = 1, -- Maximum number of items to drop.
items = { -- Choose max_items randomly from this list.
{
items = { 'x_farming:kiwi_fruit' }, -- Items to drop.
rarity = 1, -- Probability of dropping is 1 / rarity.
}
},
},
selection_box = {
type = 'fixed',
fixed = { -3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16 }
},
groups = {
-- MTG
fleshy = 3,
dig_immediate = 3,
leafdecay = 3,
leafdecay_drop = 1,
not_in_creative_inventory = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
non_mycelium_plant = 1,
fire_encouragement = 60,
fire_flammability = 100,
dig_by_water = 1,
destroy_by_lava_flow = 1,
compostability = 30,
-- ALL
flammable = 2,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.param2 == 0 then
minetest.set_node(pos, { name = 'x_farming:kiwi_mark' })
minetest.get_node_timer(pos):start(math.random(300, 1500))
end
end,
})
minetest.register_node('x_farming:kiwi_mark', {
description = S('Kiwi Marker'),
short_description = S('Kiwi Marker'),
inventory_image = 'x_farming:kiwi_fruit.png^x_farming_invisible_node_overlay.png',
wield_image = 'x_farming:kiwi_fruit.png^x_farming_invisible_node_overlay.png',
drawtype = 'airlike',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
drop = '',
groups = { not_in_creative_inventory = 1 },
on_timer = function(pos, elapsed)
if not minetest.find_node_near(pos, 1, 'x_farming:kiwi_leaves') then
minetest.remove_node(pos)
elseif minetest.get_node_light(pos) < 11 then
minetest.get_node_timer(pos):start(200)
else
minetest.set_node(pos, { name = 'x_farming:kiwi' })
end
end
})
-- Kiwi eatable fruit
local kiwi_fruit_def = {
description = S('Kiwi') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
short_description = S('Kiwi'),
drawtype = 'mesh',
mesh = 'x_farming_kiwi_fruit.obj',
tiles = { 'x_farming_kiwi_fruit_mesh.png' },
use_texture_alpha = 'clip',
inventory_image = 'x_farming_kiwi_fruit.png',
wield_image = 'x_farming_kiwi_fruit.png',
paramtype = 'light',
is_ground_content = false,
walkable = true,
selection_box = {
type = 'fixed',
fixed = { -0.2, -0.5, -0.2, 0.2, -0.2, 0.2 }
},
collision_box = {
type = 'fixed',
fixed = { -0.1, -0.5, -0.1, 0.1, -0.3, 0.1 }
},
groups = {
-- MTG
dig_immediate = 3,
compost = 65,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
non_mycelium_plant = 1,
fire_encouragement = 60,
fire_flammability = 100,
dig_by_water = 1,
destroy_by_lava_flow = 1,
compostability = 65,
food = 2,
eatable = 1,
-- ALL
flammable = 2,
attached_node = 1,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
on_use = minetest.item_eat(2),
sunlight_propagates = true
}
if minetest.get_modpath('mcl_farming') then
kiwi_fruit_def.on_secondary_use = minetest.item_eat(2)
end
minetest.register_node('x_farming:kiwi_fruit', kiwi_fruit_def)
-- leafdecay
x_farming.register_leafdecay({
trunks = { 'x_farming:kiwi_tree' },
leaves = { 'x_farming:kiwi', 'x_farming:kiwi_leaves' },
radius = 3,
})
-- planks
minetest.register_node('x_farming:kiwi_wood', {
description = S('Kiwi Wood Planks'),
short_description = S('Kiwi Wood Planks'),
paramtype2 = 'facedir',
place_param2 = 0,
tiles = { 'x_farming_kiwi_wood.png' },
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
-- Everness
everness_wood = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 20,
-- ALL
flammable = 3,
wood = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
})
-- Stairs
if minetest.global_exists('stairs') and minetest.get_modpath('stairs') then
stairs.register_stair_and_slab(
'kiwi_wood',
'x_farming:kiwi_wood',
{ choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
{ 'x_farming_kiwi_wood.png' },
S('Kiwi Wooden Stair'),
S('Kiwi Wooden Slab'),
x_farming.node_sound_wood_defaults(),
false
)
end
if minetest.get_modpath('mcl_stairs') then
mcl_stairs.register_stair_and_slab(
'kiwi_wood',
'x_farming:kiwi_wood',
{ handy = 1, axey = 1, building_block = 1, material_wood = 1, fire_encouragement = 5, fire_flammability = 20, flammable = 3, wood = 1, },
{ 'x_farming_kiwi_wood.png' },
S('Kiwi Wooden Stair'),
S('Kiwi Wooden Slab'),
x_farming.node_sound_wood_defaults(),
6,
2,
S('Double Kiwi Wooden Slab'),
nil
)
end
-- Crate
x_farming.register_crate('crate_kiwi_fruit_3', {
description = S('Kiwi Fruit Crate'),
short_description = S('Kiwi Fruit Crate'),
tiles = { 'x_farming_crate_kiwi_fruit_3.png' },
_custom = {
crate_item = 'x_farming:kiwi_fruit'
}
})
minetest.register_decoration(asuna.features.crops.kiwi.inject_decoration({
deco_type = "schematic",
sidelen = 16,
noise_params = {
offset = -0.0005,
scale = 0.001,
spread = { x = 80, y = 80, z = 80 },
seed = 2,
octaves = 1,
persist = 0.66
},
y_max = 31000,
y_min = 5,
schematic = minetest.get_modpath("x_farming") .. '/schematics/x_farming_kiwi_tree.mts',
flags = 'place_center_x, place_center_z',
rotation = 'random',
}))

View file

@ -0,0 +1,135 @@
# textdomain: x_farming
owned by=
Quantity=
Bag Empty=
Beetroot Seed=
Beetroot=
Beetroot Crate=
Bonemeal - use it as a fertilizer for most plants=
Dragon Fruit=
Cactus Fruit Marker=
Large Cactus with Fruit Seedling=
Cactus Fruit Crate=
Planting Carrot=
Carrot=
Carrot Crate=
Cocoa bean=
plant on jungle tree trunk=
Cocoa=
Jungle Tree with Cocoa Sapling=
Jungle Tree=
Jungle Tree Leaves=
Jungle Wood Planks=
Cocoa Bean Crate=
Coffee Seed=
Coffee bean=
Hot Cup of Coffee=
Coffee Crate=
Composter=
right-click/place with item to create compost=
Corn Seed=
Corn=
Popcorn=
Corn Crate=
Hunger=
Compost chance=
Cookie=
Chocolate=
Empty Soup Bowl=
Golden Carrot=
Coffee Bottle=
Popped corn=
Golden Melon=
Wart Brick=
Baked Potato=
Poisonous Potato=
Poison=
Water Bottle=
Heal=
Crate Empty=
Wheat Crate=
Cotton Crate=
Biome=
Cooked=
Ice Fishing (Place on drilled Ice)=
Drilled Ice=
Ice Auger drills hole in ice for ice fishing.=
Fish Crate=
Kiwi Tree=
Kiwi Tree Leaves=
Kiwi Tree Sapling=
Kiwi=
Kiwi Marker=
Kiwi Wood Planks=
Kiwi Wooden Stair=
Kiwi Wooden Slab=
Kiwi Fruit Crate=
Melon Seed=
Melon=
Melon Fruit=
Melon Block=
Melon Crate=
Donut=
Chocolate Donut=
Fries=
Pumpkin Pie=
Beetroot Soup=
Fish Stew=
Cactus Brick=
Cactus Brick Stair=
Cactus Brick Slab=
Scarecrow=
Obsidian Wart Seed=
Plant on Obsidian=
Obsidian Wart=
Obsidian Soil=
Wet Obsidian Soil=
Wart Block=
Wartrack=
Wart Brick Block=
Wart Red Brick Block=
Wart Block Stair=
Wart Block Slab=
Wart Brick Stair=
Wart Brick Slab=
Wart Red Brick Stair=
Wart Red Brick Slab=
Wartrack Stair=
Wartrack Slab=
Obsidian Wart Crate=
Pine Nut Tree=
Pine Nut Needles=
Pine Nut Sapling=
Pine Nut=
Pine Nut Roasted=
Pine Nut Marker=
Pine Nut Wood Planks=
Pine Nut Wooden Stair=
Pine Nut Wooden Slab=
Pine Nut Crate=
Planting Potato=
Potato=
Potato Crate=
Pumpkin Seed=
Pumpkin Fruit=
Pumpkin Block=
Pumpkin Lantern=
Pumpkin Crate=
Salt=
Salty Water (plant on wet soil)=
Snow Golem dropped you an item for gold!=
NPC stands still.=
NPC will follow you.=
Soybean Seed=
Soybean=
Soymilk Bottle=
Raw Soymilk Bottle=
Soybean Crate=
Stevia Seed=
Stevia=
Sugar=
Stevia Crate=
Strawberry Seed=
Strawberry=
Strawberry Crate=
Empty Glass Bottle=

250
mods/x_farming/melon.lua Normal file
View file

@ -0,0 +1,250 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- MELON
x_farming.register_plant('x_farming:melon', {
description = S('Melon Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Melon Seed'),
inventory_image = 'x_farming_melon_seed.png',
steps = 8,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 3,
})
-- needed
local melon_def = {
description = S('Melon') .. '\n' .. S('Compost chance') .. ': 50%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
groups = {
-- X Farming
compost = 50,
-- MCL
food = 2,
eatable = 2,
compostability = 50,
},
_mcl_saturation = 1.2,
wield_image = 'x_farming_melon.png',
}
if minetest.get_modpath('farming') then
melon_def.on_use = minetest.item_eat(2)
end
if minetest.get_modpath('mcl_farming') then
melon_def.on_place = minetest.item_eat(2)
melon_def.on_secondary_use = minetest.item_eat(2)
end
minetest.override_item('x_farming:melon', melon_def)
-- MELON FRUIT - HARVEST
minetest.register_node('x_farming:melon_fruit', {
description = S('Melon Fruit'),
tiles = {
'x_farming_melon_fruit_top.png',
'x_farming_melon_fruit_bottom.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png'
},
sounds = x_farming.node_sound_wood_defaults(),
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
flammable = 4,
fall_damage_add_percent = -30,
-- MCL
handy = 1,
axey = 1,
plant = 1,
dig_by_piston = 1,
},
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
drop = {
max_items = 7, -- Maximum number of items to drop.
items = { -- Choose max_items randomly from this list.
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 1, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 2, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 2, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 2, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 3, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 3, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:melon' }, -- Items to drop.
rarity = 3, -- Probability of dropping is 1 / rarity.
},
},
},
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local parent = oldmetadata.fields.parent
local parent_pos_from_child = minetest.string_to_pos(parent)
local parent_node = nil
-- make sure we have position
if parent_pos_from_child
and parent_pos_from_child ~= nil then
parent_node = minetest.get_node(parent_pos_from_child)
end
-- tick parent if parent stem still exists
if parent_node
and parent_node ~= nil
and parent_node.name == 'x_farming:melon_8' then
x_farming.tick_block(parent_pos_from_child)
end
end
})
-- MELON BLOCK - HARVEST from crops
minetest.register_node('x_farming:melon_block', {
description = S('Melon Block') .. '\n' .. S('Compost chance') .. ': 65%',
short_description = S('Melon Block'),
tiles = {
'x_farming_melon_fruit_top.png',
'x_farming_melon_fruit_bottom.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png',
'x_farming_melon_fruit_side.png'
},
sounds = x_farming.node_sound_wood_defaults(),
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
flammable = 4,
fall_damage_add_percent = -30,
not_in_creative_inventory = 1,
compost = 65,
-- MCL
handy = 1,
axey = 1,
plant = 1,
dig_by_piston = 1,
building_block = 1,
enderman_takable = 1,
compostability = 65
},
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
})
-- take over the growth from minetest_game farming from here
minetest.override_item('x_farming:melon_8', {
next_plant = 'x_farming:melon_fruit',
on_timer = x_farming.grow_block
})
-- Golden Melon
local golden_melon_def = {
description = S('Golden Melon') .. '\n' .. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 10'),
inventory_image = 'x_farming_golden_melon.png',
wield_image = 'x_farming_golden_melon.png',
groups = {
-- MCL
food = 2,
eatable = 1,
},
_mcl_saturation = 14.4,
}
if x_farming.hbhunger ~= nil or x_farming.hunger_ng ~= nil then
golden_melon_def.description = golden_melon_def.description .. '\n' .. minetest.colorize(x_farming.colors.red, S('Heal') .. ': 10')
end
if minetest.get_modpath('farming') then
golden_melon_def.on_use = minetest.item_eat(10)
end
if minetest.get_modpath('mcl_farming') then
golden_melon_def.on_place = minetest.item_eat(10)
golden_melon_def.on_secondary_use = minetest.item_eat(10)
end
minetest.register_craftitem('x_farming:golden_melon', golden_melon_def)
-- replacement LBM for pre-nodetimer plants
minetest.register_lbm({
name = 'x_farming:start_nodetimer_melon',
nodenames = { 'x_farming:melon_8' },
action = function(pos, node)
x_farming.tick_block_short(pos)
end,
})
---crate
x_farming.register_crate('crate_melon_3', {
description = S('Melon Crate'),
short_description = S('Melon Crate'),
tiles = { 'x_farming_crate_melon_3.png' },
_custom = {
crate_item = 'x_farming:melon'
}
})
minetest.register_decoration(asuna.features.crops.melon.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1107,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:melon_5",
"x_farming:melon_6",
"x_farming:melon_7",
"x_farming:melon_8",
"x_farming:melon_block",
},
}))

6
mods/x_farming/mod.conf Normal file
View file

@ -0,0 +1,6 @@
name = x_farming
description = Farming with new plants, crops, trees, ice fishing, bees, candles, scarecrow, crates, composter, bonemeal, ropes, pies...
depends =
optional_depends = default, farming, hbhunger, stairs, wool, dye, vessels, bucket, mcl_core, mcl_farming, mcl_potions, hunger_ng, mcl_stairs, candles_3d, mcl_dye, stamina, ethereal, abdecor, naturalbiomes, bottles_default
supported_games =
min_minetest_version = 5.4

View file

@ -0,0 +1,36 @@
--[[
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- Candles
minetest.register_craft({
output = 'candles_3d:unlit_orange_1',
recipe = {
{ 'x_farming:string' },
{ 'x_farming:honeycomb' },
{ 'x_farming:honeycomb' },
},
})
minetest.register_craft({
output = 'candles_3d:unlit_orange_1',
recipe = {
{ 'farming:string' },
{ 'x_farming:honeycomb' },
{ 'x_farming:honeycomb' },
},
})

View file

@ -0,0 +1,196 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local tree_defs = {
['default:sapling'] = {
-- apple tree
name = 'default:sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_new_apple_tree(pos)
return true
end
},
['default:junglesapling'] = {
-- jungle tree
name = 'default:junglesapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_new_jungle_tree(pos)
return true
end
},
['default:emergent_jungle_sapling'] = {
-- emergent jungle tree
name = 'default:emergent_jungle_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_new_emergent_jungle_tree(pos)
return true
end
},
['default:acacia_sapling'] = {
-- acacia tree
name = 'default:acacia_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_new_acacia_tree(pos)
return true
end
},
['default:aspen_sapling'] = {
-- aspen tree
name = 'default:aspen_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_new_aspen_tree(pos)
return true
end
},
['default:pine_sapling'] = {
-- pine tree
name = 'default:pine_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
if minetest.find_node_near(pos, 1, { 'group:snowy' }) then
default.grow_new_snowy_pine_tree(pos)
else
default.grow_new_pine_tree(pos)
end
return true
end
},
['default:bush_sapling'] = {
-- Bush
name = 'default:bush_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_bush(pos)
return true
end
},
['default:acacia_bush_sapling'] = {
-- Acacia bush
name = 'default:acacia_bush_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_acacia_bush(pos)
return true
end
},
['default:pine_bush_sapling'] = {
-- Pine bush
name = 'default:pine_bush_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_pine_bush(pos)
return true
end
},
['default:blueberry_bush_sapling'] = {
-- Blueberry bush
name = 'default:blueberry_bush_sapling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
default.grow_blueberry_bush(pos)
return true
end
},
['default:papyrus'] = {
-- Papyrus
name = 'default:papyrus',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_soil(pos) then
return false
end
local node = minetest.get_node(pos)
default.grow_papyrus(pos, node)
return true
end
},
['default:large_cactus_seedling'] = {
-- Large Cactus
name = 'default:large_cactus_seedling',
chance = 2,
grow_tree = function(pos)
if not x_farming.x_bonemeal.is_on_sand(pos) then
return false
end
default.grow_large_cactus(pos)
return true
end
},
}
x_farming.x_bonemeal:register_tree_defs(tree_defs)

View file

@ -0,0 +1,95 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- name, hunger_change, replace_with_item, poisen, heal, sound
-- Beetroot
hbhunger.register_food('x_farming:beetroot', 3)
hbhunger.register_food('x_farming:beetroot_soup', 6, 'x_farming:bowl')
-- Carrot
hbhunger.register_food('x_farming:carrot', 3)
hbhunger.register_food('x_farming:carrot_golden', 10, nil, nil, 10)
-- Coffee
hbhunger.register_food('x_farming:coffee_cup_hot', 6, nil, nil, 4)
-- Corn
hbhunger.register_food('x_farming:corn_pop', 1)
hbhunger.register_food('x_farming:corn_popcorn', 5)
-- Melon
hbhunger.register_food('x_farming:melon', 2)
hbhunger.register_food('x_farming:golden_melon', 10, '', nil, 10)
-- Potato
hbhunger.register_food('x_farming:potato', 2)
hbhunger.register_food('x_farming:bakedpotato', 6)
hbhunger.register_food('x_farming:poisonouspotato', -6, nil, 5)
-- Pumpkin
hbhunger.register_food('x_farming:pumpkin_pie', 6)
-- Fish stew
hbhunger.register_food('x_farming:fish_stew', 8, 'x_farming:bowl')
-- Cocoa
hbhunger.register_food('x_farming:cookie', 2)
hbhunger.register_food('x_farming:chocolate', 3)
-- Kiwi
hbhunger.register_food('x_farming:kiwi_fruit', 2)
-- Dragon fruit
hbhunger.register_food('x_farming:cactus_fruit_item', 2)
-- Strawberry
hbhunger.register_food('x_farming:strawberry', 2)
-- Pine Nut Roasted
hbhunger.register_food('x_farming:pine_nut_roasted', 2)
-- Donuts
hbhunger.register_food('x_farming:donut', 3)
hbhunger.register_food('x_farming:donut_chocolate', 4)
-- Fries
hbhunger.register_food('x_farming:fries', 6)
-- Bread
hbhunger.register_food('x_farming:bread', 5)
-- Bottle Honey
if x_farming.vessels then
hbhunger.register_food('x_farming:bottle_honey', 6, 'vessels:glass_bottle')
else
hbhunger.register_food('x_farming:bottle_honey', 6, 'x_farming:glass_bottle')
end
-- Sushi
hbhunger.register_food('x_farming:sushi_maki', 5)
hbhunger.register_food('x_farming:sushi_nigiri', 3)
hbhunger.register_food('x_farming:bowl_french_potatoes', 8, 'x_farming:bowl')
hbhunger.register_food('x_farming:bowl_baked_fish', 8, 'x_farming:bowl')
hbhunger.register_food('x_farming:bowl_melon_slush', 8, 'x_farming:bowl')
hbhunger.register_food('x_farming:slice_strawberry_pie', 6)
hbhunger.register_food('x_farming:slice_chocolate_pie', 6)
hbhunger.register_food('x_farming:slice_honey_kiwi_pie', 6)

View file

@ -0,0 +1,90 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- Beetroot
hunger_ng.add_hunger_data('x_farming:beetroot', { satiates = 3 })
hunger_ng.add_hunger_data('x_farming:beetroot_soup', { satiates = 6 }, 'x_farming:bowl')
-- Carrot
hunger_ng.add_hunger_data('x_farming:carrot', { satiates = 3 })
hunger_ng.add_hunger_data('x_farming:carrot_golden', { satiates = 10, heals = 10 })
-- Coffee
hunger_ng.add_hunger_data('x_farming:coffee_cup_hot', { satiates = 6, heals = 4 })
-- Corn
hunger_ng.add_hunger_data('x_farming:corn_pop', { satiates = 1 })
hunger_ng.add_hunger_data('x_farming:corn_popcorn', { satiates = 5 })
-- Melon
hunger_ng.add_hunger_data('x_farming:melon', { satiates = 2 })
hunger_ng.add_hunger_data('x_farming:golden_melon', { satiates = 10, heals = 10 })
-- Potato
hunger_ng.add_hunger_data('x_farming:potato', { satiates = 2 })
hunger_ng.add_hunger_data('x_farming:bakedpotato', { satiates = 6 })
hunger_ng.add_hunger_data('x_farming:poisonouspotato', { satiates = -6, heals= -6 })
-- Pumpkin
hunger_ng.add_hunger_data('x_farming:pumpkin_pie', { satiates = 6 })
-- Fish stew
hunger_ng.add_hunger_data('x_farming:fish_stew', { satiates = 8, returns = 'x_farming:bowl' })
-- Cocoa
hunger_ng.add_hunger_data('x_farming:cookie', { satiates = 2 })
hunger_ng.add_hunger_data('x_farming:chocolate', { satiates = 3 })
-- Kiwi
hunger_ng.add_hunger_data('x_farming:kiwi_fruit', { satiates = 2 })
-- Dragon fruit
hunger_ng.add_hunger_data('x_farming:cactus_fruit_item', { satiates = 2 })
-- Strawberry
hunger_ng.add_hunger_data('x_farming:strawberry', { satiates = 2 })
-- Pine Nut Roasted
hunger_ng.add_hunger_data('x_farming:pine_nut_roasted', { satiates = 2 })
-- Donuts
hunger_ng.add_hunger_data('x_farming:donut', { satiates = 3 })
hunger_ng.add_hunger_data('x_farming:donut_chocolate', { satiates = 4 })
-- Fries
hunger_ng.add_hunger_data('x_farming:fries', { satiates = 6 })
hunger_ng.add_hunger_data('x_farming:bread', { satiates = 5 })
-- Bottle Honey
if x_farming.vessels then
hunger_ng.add_hunger_data('x_farming:bottle_honey', { satiates = 6, returns = 'vessels:glass_bottle' })
else
hunger_ng.add_hunger_data('x_farming:bottle_honey', { satiates = 6, returns = 'x_farming:glass_bottle' })
end
-- Sushi
hunger_ng.add_hunger_data('x_farming:sushi_maki', { satiates = 5 })
hunger_ng.add_hunger_data('x_farming:sushi_nigiri', { satiates = 3 })
hunger_ng.add_hunger_data('x_farming:bowl_french_potatoes', { satiates = 8, returns = 'x_farming:bowl' })
hunger_ng.add_hunger_data('x_farming:bowl_baked_fish', { satiates = 8, returns = 'x_farming:bowl' })
hunger_ng.add_hunger_data('x_farming:bowl_melon_slush', { satiates = 8, returns = 'x_farming:bowl' })
hunger_ng.add_hunger_data('x_farming:slice_strawberry_pie', { satiates = 6 })
hunger_ng.add_hunger_data('x_farming:slice_chocolate_pie', { satiates = 6 })
hunger_ng.add_hunger_data('x_farming:slice_honey_kiwi_pie', { satiates = 6 })

View file

@ -0,0 +1,168 @@
--[[
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
minetest.register_alias('default:water_source', 'mcl_core:water_source')
minetest.register_alias('default:dirt', 'mcl_core:dirt')
minetest.register_alias('default:dirt_with_rainforest_litter', 'mcl_core:dirt_with_grass')
minetest.register_alias('default:dirt_with_snow', 'mcl_core:dirt_with_grass_snow')
minetest.register_alias('default:dirt_with_coniferous_litter', 'mcl_core:podzol')
minetest.register_alias('default:dirt_with_grass', 'mcl_core:dirt_with_grass')
minetest.register_alias('default:stick', 'mcl_core:stick')
minetest.register_alias('default:paper', 'mcl_core:paper')
minetest.register_alias('default:book', 'mcl_books:book')
minetest.register_alias('default:skeleton_key', 'mcl_core:gold_nugget')
minetest.register_alias('default:flint', 'mcl_core:flint')
minetest.register_alias('default:obsidian_shard', 'mcl_core:prismarine_shard')
minetest.register_alias('default:clay_brick', 'mcl_core:brick')
minetest.register_alias('default:mese_crystal_fragment', 'mcl_amethyst:amethyst_shard')
-- Ingots
minetest.register_alias('default:gold_ingot', 'mcl_core:gold_ingot')
minetest.register_alias('default:bronze_ingot', 'mcl_copper:copper_ingot')
minetest.register_alias('default:tin_ingot', 'mcl_core:iron_ingot')
minetest.register_alias('default:copper_ingot', 'mcl_copper:copper_ingot')
minetest.register_alias('default:steel_ingot', 'mcl_core:iron_ingot')
minetest.register_alias('default:coal_lump', 'mcl_core:coal_lump')
minetest.register_alias('default:gold_lump', 'mcl_core:gold_nugget')
-- Tools
minetest.register_alias('default:pick_stone', 'mcl_tools:pick_stone')
minetest.register_alias('default:pick_bronze', 'mcl_tools:pick_gold')
minetest.register_alias('default:pick_steel', 'mcl_tools:pick_iron')
minetest.register_alias('default:shovel_stone', 'mcl_tools:shovel_stone')
minetest.register_alias('default:shovel_bronze', 'mcl_tools:shovel_gold')
minetest.register_alias('default:shovel_steel', 'mcl_tools:shovel_iron')
minetest.register_alias('default:axe_stone', 'mcl_tools:axe_stone')
minetest.register_alias('default:axe_bronze', 'mcl_tools:axe_gold')
minetest.register_alias('default:axe_steel', 'mcl_tools:axe_iron')
minetest.register_alias('default:sword_stone', 'mcl_tools:sword_stone')
minetest.register_alias('default:sword_bronze', 'mcl_tools:sword_gold')
minetest.register_alias('default:sword_steel', 'mcl_tools:sword_iron')
-- Items / Nodes
minetest.register_alias('default:bookshelf', 'mcl_books:bookshelf')
minetest.register_alias('default:sign_wall_wood', 'mcl_signs:wall_sign')
minetest.register_alias('default:ladder_wood', 'mcl_core:ladder')
minetest.register_alias('default:ladder_steel', 'mcl_core:ladder')
minetest.register_alias('default:glass', 'mcl_core:glass')
minetest.register_alias('default:obsidian_glass', 'mcl_core:glass')
-- Trees
minetest.register_alias('default:tree', 'mcl_core:tree')
minetest.register_alias('default:jungletree', 'mcl_core:jungletree')
minetest.register_alias('default:pine_tree', 'mcl_core:sprucetree')
minetest.register_alias('default:cactus', 'mcl_core:cactus')
minetest.register_alias('default:large_cactus_seedling', 'mcl_core:cactus')
minetest.register_alias('default:papyrus', 'mcl_core:reeds')
minetest.register_alias('default:junglegrass', 'mcl_flowers:double_grass')
minetest.register_alias('default:blueberry_bush_sapling', 'mcl_flowers:rose_bush')
minetest.register_alias('default:sapling', 'mcl_core:sapling')
minetest.register_alias('default:junglesapling', 'mcl_core:junglesapling')
minetest.register_alias('default:pine_sapling', 'mcl_core:sprucesapling')
minetest.register_alias('default:acacia_sapling', 'mcl_core:acaciasapling')
minetest.register_alias('default:aspen_sapling', 'mcl_core:birchsapling')
minetest.register_alias('default:clay_lump', 'mcl_core:clay_lump')
minetest.register_alias('default:tin_lump', 'mcl_raw_ores:raw_gold')
minetest.register_alias('default:copper_lump', 'mcl_copper:raw_copper')
minetest.register_alias('default:iron_lump', 'mcl_raw_ores:raw_iron')
minetest.register_alias('default:coalblock', 'mcl_core:coalblock')
minetest.register_alias('default:steelblock', 'mcl_core:ironblock')
minetest.register_alias('default:copperblock', 'mcl_copper:block')
minetest.register_alias('default:tinblock', 'mcl_core:goldblock')
minetest.register_alias('default:bronzeblock', 'mcl_copper:block')
minetest.register_alias('default:mese', 'mesecons_torch:redstoneblock')
minetest.register_alias('default:meselamp', 'mesecons_lightstone:lightstone_off')
minetest.register_alias('default:obsidian', 'mcl_core:obsidian')
minetest.register_alias('default:mese_crystal', 'mcl_ocean:prismarine_crystals')
minetest.register_alias('default:diamond', 'mcl_core:diamond')
minetest.register_alias('default:pick_mese', 'mcl_tools:pick_diamond')
minetest.register_alias('default:shovel_mese', 'mcl_tools:shovel_diamond')
minetest.register_alias('default:axe_mese', 'mcl_tools:axe_diamond')
minetest.register_alias('default:sword_mese', 'mcl_tools:sword_diamond')
minetest.register_alias('default:snowblock', 'mcl_core:snowblock')
minetest.register_alias('default:ice', 'mcl_core:ice')
minetest.register_alias('default:torch', 'mcl_torches:torch')
minetest.register_alias('default:cobble', 'mcl_core:cobble')
minetest.register_alias('default:chest', 'mcl_chests:chest')
minetest.register_alias('default:snow', 'mcl_core:snow')
minetest.register_alias('default:stone', 'mcl_core:stone')
minetest.register_alias('default:sand', 'mcl_core:sand')
minetest.register_alias('default:gravel', 'mcl_core:gravel')
minetest.register_alias('default:stone_with_coal', 'mcl_core:stone_with_coal')
minetest.register_alias('default:stone_with_iron', 'mcl_core:stone_with_iron')
minetest.register_alias('default:stone_with_tin', 'mcl_core:stone_with_copper')
minetest.register_alias('default:stone_with_gold', 'mcl_core:stone_with_gold')
minetest.register_alias('default:stone_with_mese', 'mcl_core:stone_with_redstone')
minetest.register_alias('default:stone_with_diamond', 'mcl_core:stone_with_diamond')
minetest.register_alias('default:lava_source', 'mcl_core:lava_source')
minetest.register_alias('default:mossycobble', 'mcl_core:mossycobble')
minetest.register_alias('default:clay', 'mcl_colorblocks:hardened_clay')
minetest.register_alias('default:dry_dirt_with_dry_grass', 'mcl_core:dirt_with_grass')
minetest.register_alias('default:dry_dirt', 'mcl_core:coarse_dirt')
minetest.register_alias('default:coral_skeleton', 'mcl_core:bone_block')
minetest.register_alias('default:coral_orange', 'mcl_ocean:tube_coral_block')
minetest.register_alias('default:coral_brown', 'mcl_ocean:brain_coral_block')
minetest.register_alias('default:lava_flowing', 'mcl_core:lava_flowing')
minetest.register_alias('stairs:slab_cursed_brick_with_growth', 'mcl_stairs:slab_cursed_brick_with_growth')
minetest.register_alias('default:fence_wood', 'mcl_fences:fence')
minetest.register_alias('default:torch_wall', 'mcl_torches:torch_wall')
minetest.register_alias('default:wood', 'mcl_core:wood')
minetest.register_alias('default:junglewood', 'mcl_core:junglewood')
minetest.register_alias('default:pine_wood', 'mcl_core:sprucewood')
minetest.register_alias('default:mese_post_light_pine_wood', 'mcl_torches:torch')
minetest.register_alias_force('default:acacia_tree', 'mcl_core:acaciatree')
minetest.register_alias('default:dry_grass_4', 'mcl_core:deadbush')
minetest.register_alias('default:dry_grass_2', 'mcl_core:deadbush')
minetest.register_alias('default:dry_shrub', 'mcl_core:deadbush')
minetest.register_alias('default:stonebrick', 'mcl_core:stonebrick')
minetest.register_alias('default:jungleleaves', 'mcl_core:jungleleaves')
minetest.register_alias('default:torch_ceiling', 'mcl_torches:torch_wall')
minetest.register_alias('default:goldblock', 'mcl_core:goldblock')
minetest.register_alias('stairs:stair_junglewood', 'mcl_stairs:stair_junglewood')
minetest.register_alias('stairs:slab_junglewood', 'mcl_stairs:slab_junglewood')
minetest.register_alias('stairs:slab_dry_wood', 'mcl_stairs:slab_dry_wood')
minetest.register_alias('stairs:stair_dry_wood', 'mcl_stairs:stair_dry_wood')
minetest.register_alias('stairs:stair_wood', 'mcl_stairs:stair_wood')
minetest.register_alias('stairs:slab_stonebrick', 'mcl_stairs:slab_stonebrick')
minetest.register_alias('stairs:stair_inner_wood', 'mcl_stairs:stair_wood_inner')
minetest.register_alias('stairs:stair_outer_stonebrick', 'mcl_stairs:stair_stonebrick_outer')
minetest.register_alias('stairs:stair_stonebrick', 'mcl_stairs:stair_stonebrick')
minetest.register_alias('stairs:stair_mossycobble', 'mcl_stairs:stair_mossycobble')
minetest.register_alias('walls:cobble', 'mcl_walls:cobble')
minetest.register_alias('xpanes:trapdoor_steel_bar', 'mcl_doors:iron_trapdoor')
minetest.register_alias('doors:trapdoor_open', 'mcl_doors:trapdoor_open')
minetest.register_alias('doors:trapdoor', 'mcl_doors:trapdoor')
minetest.register_alias('doors:door_wood_a', 'mcl_doors:wooden_door')
minetest.register_alias('doors:hidden', 'air')
-- Dye
minetest.register_alias('dye:brown', 'mcl_dye:brown')
minetest.register_alias('dye:black', 'mcl:dye:black')
minetest.register_alias('dye:blue', 'mcl:dye:blue')
minetest.register_alias('dye:cyan', 'mcl:dye:cyan')
minetest.register_alias('dye:dark_grey', 'mcl:dye:dark_grey')
minetest.register_alias('dye:grey', 'mcl:dye:grey')
minetest.register_alias('dye:dark_green', 'mcl:dye:dark_green')
minetest.register_alias('dye:green', 'mcl:dye:green')
minetest.register_alias('dye:magenta', 'mcl:dye:magenta')
minetest.register_alias('dye:orange', 'mcl:dye:orange')
minetest.register_alias('dye:pink', 'mcl:dye:pink')
minetest.register_alias('dye:violet', 'mcl:dye:violet')
minetest.register_alias('dye:red', 'mcl:dye:red')
minetest.register_alias('dye:white', 'mcl:dye:white')
minetest.register_alias('dye:yellow', 'mcl:dye:yellow')
minetest.register_alias('default:sand_with_kelp', 'mcl_ocean:kelp')

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,822 @@
# Blender v2.83.20 OBJ File: 'x_farming_baked_fish.blend'
# www.blender.org
mtllib x_farming_baked_fish.mtl
o wood_with_skeleton_x_farming_baked_fish
v 0.455000 -0.370000 0.455000
v 0.455000 -0.370000 -0.455000
v -0.455000 -0.370000 0.455000
v -0.455000 -0.370000 -0.455000
v 0.455000 -0.500000 0.455000
v 0.455000 -0.500000 -0.455000
v -0.455000 -0.500000 0.455000
v -0.455000 -0.500000 -0.455000
v -0.192156 -0.135307 0.128485
v 0.455000 -0.234628 -0.065000
v 0.325000 -0.234628 -0.130000
v 0.325000 -0.234628 0.130000
v 0.520000 -0.234628 -0.065000
v 0.455000 -0.234628 -0.130000
v 0.520000 -0.234628 0.130000
v -0.192156 -0.135307 -0.195000
v -0.195000 -0.299804 -0.130000
v -0.195000 -0.234804 -0.130000
v -0.195000 -0.234804 0.130000
v -0.195000 -0.299804 0.130000
v 0.260781 -0.135307 0.128485
v 0.195781 -0.135307 0.128485
v 0.130781 -0.135307 0.128485
v 0.065781 -0.135307 0.128485
v 0.000781 -0.135307 0.128485
v -0.064219 -0.135307 0.128485
v -0.129219 -0.135307 0.128485
v -0.129219 -0.135307 -0.195000
v -0.064219 -0.135307 -0.195000
v 0.000781 -0.135307 -0.195000
v 0.065781 -0.135307 -0.195000
v 0.130781 -0.135307 -0.195000
v 0.195781 -0.135307 -0.195000
v 0.260781 -0.135307 -0.195000
v -0.192156 -0.366443 0.128485
v -0.192156 -0.366443 -0.195000
v 0.260781 -0.366443 0.128485
v 0.195781 -0.366443 0.128485
v 0.130781 -0.366443 0.128485
v 0.065781 -0.366443 0.128485
v 0.000781 -0.366443 0.128485
v -0.064219 -0.366443 0.128485
v -0.129219 -0.366443 0.128485
v -0.129219 -0.366443 -0.195000
v -0.064219 -0.366443 -0.195000
v 0.000781 -0.366443 -0.195000
v 0.065781 -0.366443 -0.195000
v 0.130781 -0.366443 -0.195000
v 0.195781 -0.366443 -0.195000
v 0.260781 -0.366443 -0.195000
v 0.325000 -0.265845 0.130000
v 0.325000 -0.200845 0.130000
v 0.325000 -0.200845 -0.130000
v 0.325000 -0.265845 -0.130000
v -0.260000 -0.267304 -0.130000
v -0.195000 -0.267304 -0.130000
v -0.195000 -0.267304 0.130000
v -0.260000 -0.267304 0.130000
v -0.260000 -0.267304 0.065000
v -0.325000 -0.267304 0.130000
v -0.390000 -0.267304 0.195000
v -0.520000 -0.267304 0.195000
v -0.455000 -0.267304 -0.130000
v -0.325000 -0.267304 -0.130000
v -0.520000 -0.267304 0.130000
v -0.390000 -0.267304 -0.195000
v -0.520000 -0.267304 -0.195000
v -0.260000 -0.267304 -0.065000
v -0.325000 -0.267304 -0.065000
v -0.325000 -0.267304 0.065000
v -0.390000 -0.267304 -0.130000
v -0.390000 -0.267304 0.130000
v -0.455000 -0.267304 0.130000
v -0.520000 -0.267304 -0.130000
v -0.192156 -0.193091 0.128485
v -0.192156 -0.308659 0.128485
v 0.325000 -0.308659 0.128485
v 0.325000 -0.193091 0.128485
v -0.129219 -0.308659 0.128485
v -0.129219 -0.193091 0.128485
v -0.064219 -0.308659 0.128485
v -0.064219 -0.193091 0.128485
v 0.000781 -0.308659 0.128485
v 0.000781 -0.193091 0.128485
v 0.065781 -0.308659 0.128485
v 0.065781 -0.193091 0.128485
v 0.130781 -0.308659 0.128485
v 0.130781 -0.193091 0.128485
v 0.195781 -0.308659 0.128485
v 0.195781 -0.193091 0.128485
v 0.260781 -0.308659 0.128485
v 0.260781 -0.193091 0.128485
v 0.325000 -0.370000 0.130000
v 0.520000 -0.240000 0.130000
v -0.195000 -0.305000 0.130000
v -0.260000 -0.305000 0.130000
v -0.260000 -0.240000 0.065000
v -0.325000 -0.305000 0.130000
v -0.325000 -0.240000 0.130000
v -0.390000 -0.305000 0.130000
v -0.390000 -0.240000 0.195000
v -0.520000 -0.240000 0.195000
v -0.520000 -0.305000 0.195000
v -0.455000 -0.305000 -0.130000
v -0.455000 -0.240000 -0.130000
v 0.520000 -0.175000 0.130000
v 0.260000 -0.240000 0.130000
v 0.260000 -0.240000 0.195000
v -0.130000 -0.240000 0.260000
v -0.065000 -0.240000 0.130000
v 0.026125 -0.012500 0.065000
v 0.260000 -0.305000 -0.195000
v 0.455000 -0.305000 -0.130000
v 0.260000 -0.305000 -0.260000
v -0.130000 -0.240000 -0.260000
v -0.195000 -0.305000 -0.260000
v -0.325000 -0.240000 -0.130000
v -0.520000 -0.240000 0.130000
v -0.520000 -0.305000 -0.195000
v -0.000000 -0.240000 -0.325000
v -0.065000 -0.240000 -0.325000
v -0.130000 -0.240000 0.195000
v -0.130000 -0.240000 -0.390000
v -0.260000 -0.175000 -0.195000
v 0.325000 -0.370000 -0.195000
v 0.325000 -0.305000 -0.130000
v 0.520000 -0.305000 0.130000
v 0.520000 -0.305000 -0.065000
v 0.455000 -0.305000 -0.065000
v -0.325000 -0.305000 -0.130000
v -0.390000 -0.305000 0.195000
v -0.390000 -0.305000 -0.130000
v -0.390000 -0.305000 -0.195000
v -0.390000 -0.240000 -0.195000
v 0.455000 -0.175000 -0.130000
v 0.260000 -0.175000 -0.195000
v 0.195000 -0.240000 0.260000
v -0.065000 -0.240000 -0.390000
v 0.325000 -0.175000 0.130000
v 0.325000 -0.110000 0.130000
v 0.325000 -0.175000 -0.130000
v 0.325000 -0.110000 -0.195000
v 0.082417 -0.045000 -0.065000
v -0.195000 -0.370000 0.130000
v -0.195000 -0.370000 -0.195000
v -0.260000 -0.240000 0.130000
v -0.260000 -0.305000 0.065000
v -0.260000 -0.305000 -0.065000
v -0.520000 -0.305000 0.130000
v -0.520000 -0.240000 -0.195000
v -0.195000 -0.175000 -0.260000
v -0.260000 -0.175000 0.130000
v -0.260000 -0.240000 -0.065000
v -0.195000 -0.175000 0.130000
v 0.325000 -0.305000 0.130000
v -0.195000 -0.305000 -0.195000
v -0.260000 -0.305000 -0.195000
v -0.325000 -0.305000 0.065000
v -0.325000 -0.305000 -0.065000
v -0.455000 -0.305000 0.130000
v -0.520000 -0.305000 -0.130000
v 0.195000 -0.240000 0.195000
v -0.065000 -0.240000 0.195000
v -0.000000 -0.240000 -0.260000
v -0.325000 -0.240000 -0.065000
v -0.325000 -0.240000 0.065000
v -0.390000 -0.240000 -0.130000
v -0.390000 -0.240000 0.130000
v -0.455000 -0.240000 0.130000
v -0.520000 -0.240000 -0.130000
v 0.520000 -0.175000 -0.065000
v 0.455000 -0.175000 -0.065000
v 0.260000 -0.175000 -0.260000
v -0.195000 -0.175000 -0.195000
v -0.195000 -0.110000 0.130000
v -0.195000 -0.110000 -0.195000
v 0.082417 -0.045000 -0.000000
v 0.026125 -0.012500 -0.000000
v 0.195000 -0.110000 0.065000
v 0.195000 -0.110000 -0.065000
v 0.323250 -0.370000 0.130000
v 0.323250 -0.370000 -0.195000
v -0.192156 -0.110000 -0.195000
v -0.192156 -0.110000 0.130000
v 0.323250 -0.110000 0.130000
v -0.192156 -0.370000 -0.195000
v 0.323250 -0.110000 -0.195000
v -0.192156 -0.370000 0.130000
v 0.065000 -0.110000 -0.195000
v 0.065000 -0.110000 0.130000
v 0.065000 -0.370000 -0.195000
v 0.065000 -0.370000 0.130000
v 0.065000 -0.175000 -0.195000
v 0.065000 -0.305000 -0.195000
v 0.065000 -0.175000 -0.260000
v 0.065000 -0.305000 -0.260000
vt 0.437500 -0.000000
vt 0.500000 0.437500
vt 0.500000 -0.000000
vt -0.000000 1.000000
vt 0.437500 0.937500
vt 0.437500 1.000000
vt 0.500000 0.875000
vt 0.437500 0.437500
vt 0.500000 0.437500
vt -0.000000 0.437500
vt 0.437500 0.437500
vt -0.000000 0.437500
vt 0.437500 0.875000
vt 0.000000 0.875000
vt 0.000000 0.937500
vt 0.437500 0.875000
vt 0.000000 0.875000
vt 0.812500 0.750000
vt 0.875000 0.718750
vt 0.875000 0.843750
vt 0.937500 0.843750
vt 0.906250 1.000000
vt 0.906250 0.843750
vt 0.656250 0.968750
vt 0.687500 0.843750
vt 0.656250 0.843750
vt 0.968750 0.843750
vt 0.937500 1.000000
vt 0.937500 0.843750
vt 0.906250 0.843750
vt 0.875000 1.000000
vt 0.875000 0.843750
vt 0.812500 0.843750
vt 0.781250 1.000000
vt 0.781250 0.843750
vt 0.875000 0.843750
vt 0.843750 1.000000
vt 0.843750 0.843750
vt 0.781250 0.843750
vt 0.750000 1.000000
vt 0.750000 0.843750
vt 0.750000 0.843750
vt 0.718750 1.000000
vt 0.718750 0.843750
vt 0.843750 0.843750
vt 0.812500 1.000000
vt 0.812500 0.843750
vt 0.656250 0.843750
vt 0.625000 0.968750
vt 0.625000 0.843750
vt 0.718750 0.968750
vt 0.687500 0.843750
vt 0.718750 0.843750
vt 0.593750 0.937500
vt 0.562500 0.968750
vt 0.531250 0.968750
vt 0.562500 0.750000
vt 0.562500 0.812500
vt 0.593750 0.812500
vt -0.000000 0.937500
vt 0.437500 0.875000
vt 0.000000 -0.000000
vt 0.437500 0.437500
vt 0.437500 0.937500
vt 0.781250 0.843750
vt 0.781250 0.750000
vt 0.812500 0.718750
vt 0.937500 1.000000
vt 0.687500 0.968750
vt 0.968750 1.000000
vt 0.906250 1.000000
vt 0.812500 1.000000
vt 0.875000 1.000000
vt 0.781250 1.000000
vt 0.750000 1.000000
vt 0.843750 1.000000
vt 0.656250 0.968750
vt 0.687500 0.968750
vt 0.593750 0.875000
vt 0.625000 0.875000
vt 0.625000 0.937500
vt 0.593750 0.968750
vt 0.562500 0.843750
vt 0.593750 0.843750
vt 0.500000 0.812500
vt 0.562500 0.812500
vt 0.531250 0.843750
vt 0.500000 0.843750
vt 0.500000 1.000000
vt 0.500000 0.968750
vt 0.562500 1.000000
vt 0.781250 0.843750
vt 0.781250 0.812500
vt 0.750000 0.843750
vt 0.781250 0.750000
vt 0.750000 0.812500
vt 0.781250 0.718750
vt 0.750000 0.718750
vt 0.750000 0.750000
vt 0.718750 0.750000
vt 0.718750 0.812500
vt 0.687500 0.843750
vt 0.718750 0.843750
vt 0.687500 0.812500
vt 0.718750 0.718750
vt 0.687500 0.718750
vt 0.687500 0.750000
vt 0.625000 0.843750
vt 0.656250 0.843750
vt 0.656250 0.812500
vt 0.656250 0.750000
vt 0.625000 0.812500
vt 0.656250 0.718750
vt 0.625000 0.718750
vt 0.562500 0.843750
vt 0.593750 0.843750
vt 0.625000 0.750000
vt 0.593750 0.750000
vt 0.593750 0.718750
vt 0.562500 0.718750
vt 0.531250 0.750000
vt 0.531250 0.812500
vt 0.687500 0.156250
vt 0.687500 0.125000
vt 0.562500 0.093750
vt 0.750000 0.781250
vt 0.812500 0.750000
vt 0.750000 0.750000
vt 0.750000 0.875000
vt 0.812500 0.843750
vt 0.750000 0.843750
vt 0.750000 0.968750
vt 0.812500 0.937500
vt 0.750000 0.937500
vt 0.000000 1.000000
vt 0.312500 0.968750
vt 0.000000 0.968750
vt 0.187500 0.250000
vt 0.000000 0.250000
vt 0.000000 0.218750
vt 0.312500 0.906250
vt 0.000000 0.937500
vt 0.000000 0.906250
vt 0.187500 0.906250
vt 0.312500 0.906250
vt 0.312500 0.875000
vt 0.875000 0.843750
vt 0.812500 0.875000
vt 0.812500 0.843750
vt 0.875000 0.812500
vt 0.812500 0.843750
vt 0.812500 0.812500
vt 0.750000 0.937500
vt 0.875000 0.906250
vt 0.750000 0.906250
vt 0.875000 0.937500
vt 0.812500 0.968750
vt 0.812500 0.937500
vt 0.250000 0.187500
vt 0.187500 0.250000
vt 0.187500 0.187500
vt 0.500000 0.343750
vt 0.562500 0.343750
vt 0.562500 0.468750
vt 0.312500 0.156250
vt 0.312500 0.281250
vt 0.250000 0.187500
vt 0.187500 0.312500
vt 0.250000 0.375000
vt 0.000000 0.375000
vt 0.750000 0.656250
vt 0.687500 0.718750
vt 0.687500 0.656250
vt 0.625000 0.968750
vt 0.687500 0.750000
vt 0.625000 0.750000
vt 0.812500 0.812500
vt 0.750000 0.843750
vt 0.750000 0.812500
vt 0.875000 0.750000
vt 0.812500 0.781250
vt 0.812500 0.750000
vt 0.812500 0.781250
vt 0.750000 0.812500
vt 0.750000 0.781250
vt 0.875000 0.781250
vt 0.812500 0.812500
vt 0.812500 0.781250
vt 0.562500 0.218750
vt 0.437500 0.281250
vt 0.437500 0.218750
vt 0.750000 0.750000
vt 0.687500 0.968750
vt 0.687500 0.750000
vt 0.875000 0.562500
vt 0.937500 0.593750
vt 0.937500 0.625000
vt 0.875000 0.875000
vt 0.750000 0.906250
vt 0.750000 0.875000
vt 0.812500 0.750000
vt 0.875000 0.718750
vt 0.812500 0.718750
vt 0.750000 0.750000
vt 0.812500 0.718750
vt 0.750000 0.718750
vt 0.625000 0.187500
vt 0.500000 0.187500
vt 0.437500 0.218750
vt 0.062500 0.468750
vt 0.000000 0.500000
vt 0.000000 0.375000
vt 0.625000 0.718750
vt 0.687500 0.656250
vt 0.625000 0.656250
vt 0.625000 1.000000
vt 0.875000 0.968750
vt 0.625000 0.968750
vt 0.875000 0.656250
vt 0.812500 0.718750
vt 0.812500 0.656250
vt 0.937500 0.500000
vt 0.875000 0.468750
vt 0.937500 0.531250
vt 0.500000 0.375000
vt 0.500000 0.312500
vt 0.437500 0.312500
vt 0.625000 0.250000
vt 0.687500 0.281250
vt 0.562500 0.281250
vt 0.812500 0.656250
vt 0.750000 0.718750
vt 0.750000 0.656250
vt 0.000000 0.750000
vt 0.312500 0.500000
vt 0.312500 0.750000
vt 0.375000 0.218750
vt 0.375000 0.250000
vt 0.312500 0.250000
vt 0.750000 0.093750
vt 0.750000 0.062500
vt 0.687500 0.062500
vt 0.000000 0.968750
vt 0.312500 0.937500
vt 0.000000 0.937500
vt 0.500000 0.406250
vt 0.062500 0.468750
vt 0.062500 0.406250
vt 0.312500 0.875000
vt 0.000000 0.750000
vt 0.000000 0.875000
vt 0.625000 1.000000
vt 0.312500 0.875000
vt 0.312500 1.000000
vt 0.625000 0.781250
vt 0.625000 0.750000
vt 0.312500 0.750000
vt 0.312500 0.750000
vt 0.375000 0.687500
vt 0.312500 0.687500
vt 0.250000 0.093750
vt 0.000000 0.093750
vt 0.187500 0.125000
vt 0.000000 0.125000
vt 0.187500 0.156250
vt 0.750000 0.125000
vt 0.812500 0.781250
vt 0.812500 0.875000
vt 0.812500 0.968750
vt 0.312500 1.000000
vt 0.000000 0.187500
vt 0.187500 0.187500
vt 0.312500 0.937500
vt 0.000000 0.875000
vt 0.000000 0.906250
vt 0.062500 0.906250
vt 0.875000 0.875000
vt 0.875000 0.843750
vt 0.875000 0.937500
vt 0.875000 0.968750
vt 0.250000 0.250000
vt 0.562500 0.312500
vt 0.625000 0.312500
vt 0.625000 0.468750
vt 0.562500 0.500000
vt 0.500000 0.500000
vt 0.000000 0.281250
vt 0.250000 0.250000
vt 0.000000 0.250000
vt 0.000000 0.187500
vt 0.000000 0.156250
vt 0.000000 0.281250
vt 0.187500 0.281250
vt 0.250000 0.312500
vt 0.750000 0.718750
vt 0.687500 0.968750
vt 0.812500 0.843750
vt 0.875000 0.781250
vt 0.812500 0.812500
vt 0.875000 0.812500
vt 0.562500 0.281250
vt 0.750000 0.968750
vt 0.750000 0.562500
vt 0.750000 0.531250
vt 0.875000 0.531250
vt 0.937500 0.562500
vt 0.687500 0.593750
vt 0.687500 0.562500
vt 0.625000 0.656250
vt 0.625000 0.593750
vt 0.687500 0.625000
vt 0.687500 0.656250
vt 1.000000 0.656250
vt 0.937500 0.656250
vt 1.000000 0.593750
vt 0.875000 0.906250
vt 0.875000 0.750000
vt 0.812500 0.750000
vt 0.437500 0.156250
vt 0.437500 0.187500
vt 0.500000 0.156250
vt 0.750000 0.218750
vt 0.750000 0.156250
vt 0.625000 0.156250
vt 0.500000 0.468750
vt 0.500000 0.500000
vt 0.500000 0.375000
vt 0.062500 0.406250
vt 0.500000 0.406250
vt 0.687500 0.718750
vt 0.875000 1.000000
vt 0.875000 0.718750
vt 0.875000 0.437500
vt 0.750000 0.437500
vt 0.750000 0.468750
vt 0.687500 0.468750
vt 0.687500 0.500000
vt 0.625000 0.500000
vt 0.687500 0.531250
vt 0.625000 0.562500
vt 0.687500 0.562500
vt 0.937500 0.562500
vt 1.000000 0.562500
vt 1.000000 0.500000
vt 0.937500 0.468750
vt 0.437500 0.281250
vt 0.250000 0.281250
vt 0.250000 0.375000
vt 0.562500 0.218750
vt 0.625000 0.218750
vt 0.687500 0.250000
vt 0.812500 0.718750
vt 0.000000 0.500000
vt 0.312500 0.156250
vt 0.437500 0.156250
vt 0.437500 0.218750
vt 0.687500 0.031250
vt 0.187500 0.031250
vt 0.187500 0.062500
vt 0.000000 0.062500
vt 0.312500 0.968750
vt 0.500000 0.468750
vt 0.312500 0.750000
vt 0.625000 0.875000
vt 0.312500 0.875000
vt 0.625000 0.843750
vt 0.625000 0.875000
vt 0.375000 0.750000
vn 0.0000 0.0000 1.0000
vn -0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 -0.0000
vn 0.5000 0.8660 -0.0000
g wood_with_skeleton_x_farming_baked_fish_wood_with_skeleton
usemtl wood_with_skeleton
s off
f 7/1/1 1/2/1 3/3/1
f 8/4/2 2/5/2 6/6/2
f 4/7/3 7/8/3 3/9/3
f 7/1/4 6/10/4 5/11/4
f 4/12/5 1/13/5 2/14/5
f 5/15/6 2/16/6 1/17/6
f 10/18/5 11/19/5 12/20/5
f 16/21/5 27/22/5 28/23/5
f 20/24/3 18/25/3 17/26/3
f 33/27/5 21/28/5 34/29/5
f 31/30/5 23/31/5 32/32/5
f 29/33/5 25/34/5 30/35/5
f 36/36/5 43/37/5 44/38/5
f 49/39/5 37/40/5 50/41/5
f 47/42/5 39/43/5 48/44/5
f 45/45/5 41/46/5 46/47/5
f 53/48/6 51/49/6 54/50/6
f 58/51/5 56/52/5 55/53/5
f 69/54/5 71/55/5 63/56/5
f 91/57/1 92/58/1 90/59/1
f 7/1/1 5/11/1 1/2/1
f 8/4/2 4/60/2 2/5/2
f 4/7/3 8/61/3 7/8/3
f 7/1/4 8/62/4 6/10/4
f 4/12/5 3/63/5 1/13/5
f 5/15/6 6/64/6 2/16/6
f 12/20/5 15/65/5 10/18/5
f 15/65/5 13/66/5 10/18/5
f 10/18/5 14/67/5 11/19/5
f 16/21/5 9/68/5 27/22/5
f 20/24/3 19/69/3 18/25/3
f 33/27/5 22/70/5 21/28/5
f 31/30/5 24/71/5 23/31/5
f 29/33/5 26/72/5 25/34/5
f 36/36/5 35/73/5 43/37/5
f 49/39/5 38/74/5 37/40/5
f 47/42/5 40/75/5 39/43/5
f 45/45/5 42/76/5 41/46/5
f 53/48/6 52/77/6 51/49/6
f 58/51/5 57/78/5 56/52/5
f 70/79/5 59/80/5 68/81/5
f 69/54/5 64/82/5 71/55/5
f 70/79/5 68/81/5 69/54/5
f 72/83/5 60/84/5 70/79/5
f 62/85/5 61/86/5 73/87/5
f 61/86/5 72/83/5 73/87/5
f 73/87/5 65/88/5 62/85/5
f 67/89/5 74/90/5 63/56/5
f 66/91/5 67/89/5 63/56/5
f 63/56/5 73/87/5 69/54/5
f 73/87/5 72/83/5 70/79/5
f 69/54/5 73/87/5 70/79/5
f 71/55/5 66/91/5 63/56/5
f 9/92/1 75/93/1 27/94/1
f 75/93/1 76/95/1 80/96/1
f 27/94/1 75/93/1 80/96/1
f 76/95/1 35/97/1 43/98/1
f 76/95/1 43/98/1 79/99/1
f 76/95/1 79/99/1 80/96/1
f 79/99/1 81/100/1 82/101/1
f 82/101/1 80/96/1 79/99/1
f 25/102/1 26/103/1 82/101/1
f 84/104/1 25/102/1 82/101/1
f 81/100/1 42/105/1 41/106/1
f 81/100/1 41/106/1 83/107/1
f 84/104/1 82/101/1 81/100/1
f 23/108/1 24/109/1 86/110/1
f 86/110/1 84/104/1 83/107/1
f 84/104/1 81/100/1 83/107/1
f 83/107/1 85/111/1 86/110/1
f 86/110/1 85/111/1 88/112/1
f 23/108/1 86/110/1 88/112/1
f 85/111/1 40/113/1 39/114/1
f 21/115/1 22/116/1 90/59/1
f 90/59/1 88/112/1 87/117/1
f 88/112/1 85/111/1 87/117/1
f 85/111/1 39/114/1 87/117/1
f 89/118/1 38/119/1 37/120/1
f 89/118/1 37/120/1 91/57/1
f 90/59/1 87/117/1 89/118/1
f 92/58/1 21/115/1 90/59/1
f 77/121/1 78/122/1 92/58/1
f 90/59/1 89/118/1 91/57/1
f 91/57/1 77/121/1 92/58/1
g wood_with_skeleton_x_farming_baked_fish_fish
usemtl fish
f 175/123/1 154/124/1 110/125/1
f 97/126/1 158/127/1 147/128/1
f 99/129/1 100/130/1 98/131/1
f 105/132/1 161/133/1 104/134/1
f 95/135/3 145/136/3 144/137/3
f 171/138/6 106/139/6 94/140/6
f 174/141/5 152/142/5 154/143/5
f 148/144/4 157/145/4 156/146/4
f 159/147/2 153/148/2 148/149/2
f 132/150/2 117/151/2 130/152/2
f 101/153/1 103/154/1 131/155/1
f 149/156/2 169/157/2 160/158/2
f 113/159/6 172/160/6 129/161/6
f 137/162/5 162/163/5 163/164/5
f 125/165/6 142/166/6 126/167/6
f 172/168/5 141/169/5 139/170/5
f 129/171/2 171/172/2 128/173/2
f 156/174/4 114/175/4 112/176/4
f 158/177/6 99/178/6 98/179/6
f 130/180/6 165/181/6 159/182/6
f 100/183/6 101/184/6 131/185/6
f 133/186/6 167/187/6 132/188/6
f 126/189/2 135/190/2 113/191/2
f 173/192/5 174/193/5 136/194/5
f 165/195/5 167/196/5 105/197/5
f 119/198/2 134/199/2 133/200/2
f 102/201/3 149/202/3 103/203/3
f 170/204/3 119/205/3 161/206/3
f 153/207/3 97/208/3 152/209/3
f 136/210/2 142/211/2 125/212/2
f 174/213/3 116/214/3 156/215/3
f 169/216/3 104/217/3 160/218/3
f 114/219/6 136/220/6 112/221/6
f 132/222/4 159/223/4 104/224/4
f 126/225/4 113/226/4 129/227/4
f 121/228/5 123/229/5 115/230/5
f 157/231/2 174/232/2 156/233/2
f 175/234/5 142/235/5 176/236/5
f 177/237/7 178/238/7 111/239/7
f 146/240/1 96/241/1 95/242/1
f 175/243/3 174/244/3 154/245/3
f 116/246/2 173/247/2 114/248/2
f 187/249/3 181/250/3 185/251/3
f 183/252/3 188/253/3 184/254/3
f 194/255/3 191/256/3 192/257/3
f 193/258/3 196/259/3 194/260/3
f 107/261/1 94/262/1 139/263/1
f 94/262/1 106/264/1 139/263/1
f 139/263/1 140/265/1 107/261/1
f 140/265/1 175/123/1 110/125/1
f 152/266/1 146/240/1 154/124/1
f 146/240/1 110/125/1 154/124/1
f 110/125/1 107/261/1 140/265/1
f 97/126/1 166/267/1 158/127/1
f 99/129/1 168/268/1 100/130/1
f 105/132/1 170/269/1 161/133/1
f 95/135/3 156/270/3 145/136/3
f 94/140/6 127/271/6 128/272/6
f 128/272/6 171/138/6 94/140/6
f 174/141/5 124/273/5 152/142/5
f 156/146/4 95/274/4 148/144/4
f 95/274/4 96/275/4 147/276/4
f 147/276/4 148/144/4 95/274/4
f 159/147/2 165/277/2 153/148/2
f 132/150/2 167/278/2 117/151/2
f 101/153/1 102/279/1 103/154/1
f 149/156/2 118/280/2 169/157/2
f 113/159/6 135/281/6 172/160/6
f 162/163/5 108/282/5 107/283/5
f 107/283/5 110/284/5 162/163/5
f 110/284/5 163/164/5 162/163/5
f 163/164/5 122/285/5 109/286/5
f 109/286/5 137/162/5 163/164/5
f 142/166/6 140/287/6 141/288/6
f 140/287/6 139/289/6 141/288/6
f 155/290/6 93/291/6 126/167/6
f 93/291/6 125/165/6 126/167/6
f 142/166/6 141/288/6 126/167/6
f 139/170/5 106/292/5 172/168/5
f 106/292/5 171/293/5 172/168/5
f 172/168/5 135/294/5 141/169/5
f 129/171/2 172/295/2 171/172/2
f 156/174/4 116/296/4 114/175/4
f 158/177/6 166/297/6 99/178/6
f 130/180/6 117/298/6 165/181/6
f 100/183/6 168/299/6 101/184/6
f 133/186/6 134/300/6 167/187/6
f 126/189/2 141/301/2 135/190/2
f 173/192/5 151/302/5 174/193/5
f 166/303/5 97/304/5 153/305/5
f 165/195/5 117/306/5 167/196/5
f 166/303/5 153/305/5 165/195/5
f 168/307/5 99/308/5 166/303/5
f 102/309/5 101/310/5 169/311/5
f 101/310/5 168/307/5 169/311/5
f 169/311/5 118/312/5 102/309/5
f 150/313/5 170/314/5 105/197/5
f 134/315/5 150/313/5 105/197/5
f 105/197/5 169/311/5 165/195/5
f 169/311/5 168/307/5 166/303/5
f 165/195/5 169/311/5 166/303/5
f 167/196/5 134/315/5 105/197/5
f 119/198/2 150/316/2 134/199/2
f 102/201/3 118/317/3 149/202/3
f 170/204/3 150/318/3 119/205/3
f 96/319/3 146/320/3 147/321/3
f 146/320/3 152/209/3 97/208/3
f 147/321/3 146/320/3 97/208/3
f 124/322/3 157/323/3 153/207/3
f 157/323/3 148/324/3 153/207/3
f 124/322/3 153/207/3 152/209/3
f 136/210/2 174/325/2 176/326/2
f 125/212/2 145/327/2 112/328/2
f 145/327/2 156/329/2 112/328/2
f 136/210/2 176/326/2 142/211/2
f 125/212/2 112/328/2 136/210/2
f 174/213/3 151/330/3 116/214/3
f 169/216/3 105/331/3 104/217/3
f 114/219/6 173/332/6 136/220/6
f 148/333/4 147/334/4 158/335/4
f 158/335/4 98/336/4 100/337/4
f 100/337/4 131/338/4 160/339/4
f 131/338/4 103/340/4 160/339/4
f 103/340/4 149/341/4 160/339/4
f 104/224/4 161/342/4 119/343/4
f 104/224/4 119/343/4 133/344/4
f 100/337/4 160/339/4 158/335/4
f 160/339/4 104/224/4 159/223/4
f 148/333/4 158/335/4 159/223/4
f 159/223/4 158/335/4 160/339/4
f 132/222/4 130/345/4 159/223/4
f 104/224/4 133/344/4 132/222/4
f 128/346/4 127/347/4 129/227/4
f 127/347/4 155/348/4 129/227/4
f 155/348/4 126/225/4 129/227/4
f 115/230/5 164/349/5 121/228/5
f 164/349/5 120/350/5 121/228/5
f 121/228/5 138/351/5 123/229/5
f 157/231/2 124/352/2 174/232/2
f 175/234/5 140/353/5 142/235/5
f 111/239/7 179/354/7 177/237/7
f 179/354/7 180/355/7 177/237/7
f 180/355/7 143/356/7 177/237/7
f 144/357/1 93/358/1 110/125/1
f 93/358/1 155/359/1 107/261/1
f 110/125/1 93/358/1 107/261/1
f 155/359/1 127/360/1 94/262/1
f 110/125/1 146/240/1 95/242/1
f 155/359/1 94/262/1 107/261/1
f 95/242/1 144/357/1 110/125/1
f 175/243/3 176/361/3 174/244/3
f 116/246/2 151/362/2 173/247/2
f 187/249/3 182/363/3 181/250/3
f 183/252/3 186/364/3 188/253/3
f 192/257/3 190/365/3 193/366/3
f 190/365/3 189/367/3 193/366/3
f 193/366/3 194/255/3 192/257/3
f 193/258/3 195/368/3 196/259/3

View file

@ -0,0 +1,238 @@
# Blender v2.83.20 OBJ File: 'x_farming_bee.blend'
# www.blender.org
mtllib x_farming_bee.mtl
o torso_Mesh_0
v 0.164062 0.164062 0.234375
v 0.164062 -0.164062 0.234375
v 0.164062 0.164062 -0.234375
v 0.164062 -0.164062 0.234375
v 0.164062 -0.164062 -0.234375
v 0.164062 0.164062 -0.234375
v -0.164062 0.164062 -0.234375
v -0.164062 -0.164062 -0.234375
v -0.164062 0.164062 0.234375
v -0.164062 -0.164062 -0.234375
v -0.164062 -0.164062 0.234375
v -0.164062 0.164062 0.234375
v -0.164062 0.164062 -0.234375
v -0.164062 0.164062 0.234375
v 0.164062 0.164062 -0.234375
v -0.164062 0.164062 0.234375
v 0.164062 0.164062 0.234375
v 0.164062 0.164062 -0.234375
v -0.164062 -0.164062 0.234375
v -0.164062 -0.164062 -0.234375
v 0.164062 -0.164062 0.234375
v -0.164062 -0.164062 -0.234375
v 0.164062 -0.164062 -0.234375
v 0.164062 -0.164062 0.234375
v -0.164062 0.164062 0.234375
v -0.164062 -0.164062 0.234375
v 0.164062 0.164062 0.234375
v -0.164062 -0.164062 0.234375
v 0.164062 -0.164062 0.234375
v 0.164062 0.164062 0.234375
v 0.164062 0.164062 -0.234375
v 0.164062 -0.164062 -0.234375
v -0.164062 0.164062 -0.234375
v 0.164062 -0.164062 -0.234375
v -0.164062 -0.164062 -0.234375
v -0.164062 0.164062 -0.234375
v 0.070312 0.164062 -0.375000
v 0.070312 0.070312 -0.375000
v 0.070312 0.164062 -0.234375
v 0.070312 0.070312 -0.375000
v 0.070312 0.070312 -0.234375
v 0.070312 0.164062 -0.234375
v 0.000000 0.023438 0.234375
v 0.000000 -0.023438 0.234375
v 0.000000 0.023438 0.328125
v 0.000000 -0.023438 0.234375
v 0.000000 -0.023438 0.328125
v 0.000000 0.023438 0.328125
v -0.070312 0.164062 -0.234375
v -0.070312 0.070312 -0.234375
v -0.070312 0.164062 -0.375000
v -0.070312 0.070312 -0.234375
v -0.070312 0.070312 -0.375000
v -0.070312 0.164062 -0.375000
v 0.117188 -0.164062 0.093750
v 0.117188 -0.257812 0.093750
v -0.117188 -0.164062 0.093750
v 0.117188 -0.257812 0.093750
v -0.117188 -0.257812 0.093750
v -0.117188 -0.164062 0.093750
v 0.117188 -0.164062 0.000000
v 0.117188 -0.257812 0.000000
v -0.117188 -0.164062 0.000000
v 0.117188 -0.257812 0.000000
v -0.117188 -0.257812 0.000000
v -0.117188 -0.164062 0.000000
v 0.070312 -0.164062 -0.093750
v 0.070312 -0.257812 -0.093750
v -0.070312 -0.164062 -0.093750
v 0.070312 -0.257812 -0.093750
v -0.070312 -0.257812 -0.093750
v -0.070312 -0.164062 -0.093750
v 0.070312 0.164109 -0.140625
v 0.070312 0.164109 0.140625
v 0.466745 0.308399 -0.140625
v -0.466745 0.308399 -0.140625
v -0.466745 0.308399 0.140625
v -0.070312 0.164109 -0.140625
v -0.466745 0.308399 0.140625
v -0.070312 0.164109 0.140625
v -0.070312 0.164109 -0.140625
v 0.070312 0.164109 0.140625
v 0.466745 0.308399 0.140625
v 0.466745 0.308399 -0.140625
v 0.070312 0.164109 -0.140625
v 0.070312 0.164109 0.140625
v 0.466745 0.019820 -0.140625
v 0.070312 0.164109 0.140625
v 0.466745 0.019820 0.140625
v 0.466745 0.019820 -0.140625
v -0.466745 0.019820 -0.140625
v -0.466745 0.019820 0.140625
v -0.070312 0.164109 -0.140625
v -0.466745 0.019820 0.140625
v -0.070312 0.164109 0.140625
v -0.070312 0.164109 -0.140625
vt -0.000000 0.666667
vt -0.000000 0.433333
vt 0.294118 0.666667
vt -0.000000 0.433333
vt 0.294118 0.433333
vt 0.294118 0.666667
vt 0.500000 0.666667
vt 0.500000 0.433333
vt 0.794118 0.666667
vt 0.500000 0.433333
vt 0.794118 0.433333
vt 0.794118 0.666667
vt 0.500000 0.666667
vt 0.500000 1.000000
vt 0.294118 0.666667
vt 0.500000 1.000000
vt 0.294118 1.000000
vt 0.294118 0.666667
vt 0.705882 1.000000
vt 0.705882 0.666667
vt 0.500000 1.000000
vt 0.705882 0.666667
vt 0.500000 0.666667
vt 0.500000 1.000000
vt 0.794118 0.666667
vt 0.794118 0.433333
vt 1.000000 0.666667
vt 0.794118 0.433333
vt 1.000000 0.433333
vt 1.000000 0.666667
vt 0.294118 0.666667
vt 0.294118 0.433333
vt 0.500000 0.666667
vt 0.294118 0.433333
vt 0.500000 0.433333
vt 0.500000 0.666667
vt 0.176471 0.800000
vt 0.176471 0.733333
vt 0.264706 0.800000
vt 0.176471 0.733333
vt 0.264706 0.733333
vt 0.264706 0.800000
vt 0.764706 0.666667
vt 0.764706 0.700000
vt 0.823529 0.666667
vt 0.764706 0.700000
vt 0.823529 0.700000
vt 0.823529 0.666667
vt 0.058824 0.900000
vt 0.058824 0.833333
vt 0.147059 0.900000
vt 0.058824 0.833333
vt 0.147059 0.833333
vt 0.147059 0.900000
vt 0.794118 0.833333
vt 0.794118 0.766667
vt 0.941176 0.833333
vt 0.794118 0.766667
vt 0.941176 0.766667
vt 0.941176 0.833333
vt 0.794118 0.900000
vt 0.794118 0.833333
vt 0.941176 0.900000
vt 0.794118 0.833333
vt 0.941176 0.833333
vt 0.941176 0.900000
vt 0.823529 0.966667
vt 0.823529 0.900000
vt 0.911765 0.966667
vt 0.823529 0.900000
vt 0.911765 0.900000
vt 0.911765 0.966667
vt 0.441176 0.200000
vt 0.441176 0.400000
vt 0.235294 0.200000
vt 0.235294 0.200000
vt 0.235294 0.400000
vt 0.441176 0.200000
vt 0.235294 0.400000
vt 0.441176 0.400000
vt 0.441176 0.200000
vt 0.441176 0.400000
vt 0.235294 0.400000
vt 0.235294 0.200000
vt 0.441176 0.000000
vt 0.441176 0.200000
vt 0.647059 0.000000
vt 0.441176 0.200000
vt 0.647059 0.200000
vt 0.647059 0.000000
vt 0.647059 0.000000
vt 0.647059 0.200000
vt 0.441176 0.000000
vt 0.647059 0.200000
vt 0.441176 0.200000
vt 0.441176 0.000000
vn 1.0000 0.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn -0.3420 0.9397 0.0000
vn 0.3420 0.9397 0.0000
usemtl bee.png
s off
f 1/1/1 2/2/1 3/3/1
f 4/4/1 5/5/1 6/6/1
f 7/7/2 8/8/2 9/9/2
f 10/10/2 11/11/2 12/12/2
f 13/13/3 14/14/3 15/15/3
f 16/16/3 17/17/3 18/18/3
f 19/19/4 20/20/4 21/21/4
f 22/22/4 23/23/4 24/24/4
f 25/25/5 26/26/5 27/27/5
f 28/28/5 29/29/5 30/30/5
f 31/31/6 32/32/6 33/33/6
f 34/34/6 35/35/6 36/36/6
f 37/37/2 38/38/2 39/39/2
f 40/40/2 41/41/2 42/42/2
f 43/43/2 44/44/2 45/45/2
f 46/46/2 47/47/2 48/48/2
f 49/49/1 50/50/1 51/51/1
f 52/52/1 53/53/1 54/54/1
f 55/55/6 56/56/6 57/57/6
f 58/58/6 59/59/6 60/60/6
f 61/61/6 62/62/6 63/63/6
f 64/64/6 65/65/6 66/66/6
f 67/67/6 68/68/6 69/69/6
f 70/70/6 71/71/6 72/72/6
f 73/73/7 74/74/7 75/75/7
f 76/76/8 77/77/8 78/78/8
f 79/79/8 80/80/8 81/81/8
f 82/82/7 83/83/7 84/84/7
f 85/85/8 86/86/8 87/87/8
f 88/88/8 89/89/8 90/90/8
f 91/91/7 92/92/7 93/93/7
f 94/94/7 95/95/7 96/96/7

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,73 @@
# Blender v2.83.20 OBJ File: 'x_farming_candle_1.blend'
# www.blender.org
mtllib x_farming_candle_1.mtl
o Cube.002
v -0.088683 0.250000 -0.088682
v -0.088683 -0.500000 -0.088682
v 0.088682 0.250000 -0.088683
v 0.088682 -0.500000 -0.088683
v -0.088682 0.250000 0.088683
v -0.088682 -0.500000 0.088683
v 0.088683 0.250000 0.088682
v 0.088683 -0.500000 0.088682
vt 0.625000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.875000
vt 0.625000 0.875000
vt 0.250000 0.000000
vt 0.250000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.500000 0.562500
vt 0.500000 0.000000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn -0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
g Cube.002_Cube.002_candle
usemtl candle
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/9/3 7/10/3 5/11/3 6/12/3
f 6/13/4 2/14/4 4/15/4 8/16/4
f 2/17/5 1/18/5 3/6/5 4/5/5
f 6/19/6 5/20/6 1/21/6 2/22/6
o Cube.006
v -0.088683 0.250000 -0.088682
v 0.088683 0.250000 0.088682
v -0.088683 0.604730 -0.088682
v 0.088683 0.604730 0.088682
v -0.088682 0.250000 0.088683
v 0.088682 0.250000 -0.088683
v -0.088682 0.604730 0.088683
v 0.088682 0.604730 -0.088683
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.250000 0.500000
vt 0.250000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.000000
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
g Cube.006_Cube.006_flame
usemtl flame
s off
f 9/23/7 11/24/7 12/25/7 10/26/7
f 13/27/8 15/28/8 16/29/8 14/30/8

View file

@ -0,0 +1,129 @@
# Blender v2.83.20 OBJ File: 'x_farming_candle_2.blend'
# www.blender.org
mtllib x_farming_candle_2.mtl
o Cube.002
v 0.027856 0.250000 -0.031531
v 0.027856 -0.500000 -0.031531
v 0.205221 0.250000 -0.031531
v 0.205221 -0.500000 -0.031531
v 0.027856 0.250000 0.145834
v 0.027856 -0.500000 0.145834
v 0.205221 0.250000 0.145834
v 0.205221 -0.500000 0.145834
v -0.205221 0.100000 -0.145834
v -0.205221 -0.500000 -0.145834
v -0.027856 0.100000 -0.145834
v -0.027856 -0.500000 -0.145834
v -0.205221 0.100000 0.031531
v -0.205221 -0.500000 0.031531
v -0.027856 0.100000 0.031531
v -0.027856 -0.500000 0.031531
vt 0.625000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.875000
vt 0.625000 0.875000
vt 0.250000 0.000000
vt 0.250000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.500000 0.562500
vt 0.500000 0.000000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.437500
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.750000 0.437500
vt 0.750000 0.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.875000 0.750000
vt 0.750000 0.750000
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.500000 0.437500
vt 0.500000 0.000000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.750000 0.875000
vt 0.750000 0.437500
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn -0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
g Cube.002_Cube.002_candle
usemtl candle
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/9/3 7/10/3 5/11/3 6/12/3
f 6/13/4 2/14/4 4/15/4 8/16/4
f 2/17/5 1/18/5 3/6/5 4/5/5
f 6/19/6 5/20/6 1/21/6 2/22/6
f 9/23/1 13/24/1 15/25/1 11/26/1
f 12/27/2 11/28/2 15/29/2 16/30/2
f 16/31/3 15/32/3 13/33/3 14/34/3
f 14/35/4 10/36/4 12/37/4 16/38/4
f 10/39/5 9/40/5 11/41/5 12/42/5
f 14/43/6 13/44/6 9/45/6 10/46/6
o Cube.006
v 0.027856 0.250000 -0.031531
v 0.205221 0.250000 0.145834
v 0.027856 0.604730 -0.031531
v 0.205221 0.604730 0.145834
v 0.027856 0.250000 0.145834
v 0.205221 0.250000 -0.031531
v 0.027856 0.604730 0.145834
v 0.205221 0.604730 -0.031531
v -0.205221 0.100000 -0.145834
v -0.027856 0.100000 0.031531
v -0.205221 0.454730 -0.145834
v -0.027856 0.454730 0.031531
v -0.205221 0.100000 0.031531
v -0.027856 0.100000 -0.145834
v -0.205221 0.454730 0.031531
v -0.027856 0.454730 -0.145834
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.250000 0.500000
vt 0.250000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.000000
vt 0.750000 0.500000
vt 0.750000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 0.250000 0.000000
vt 0.250000 0.500000
vt 0.000000 0.500000
vt 0.000000 0.000000
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
g Cube.006_Cube.006_flame
usemtl flame
s off
f 17/47/7 19/48/7 20/49/7 18/50/7
f 21/51/8 23/52/8 24/53/8 22/54/8
f 25/55/7 27/56/7 28/57/7 26/58/7
f 29/59/8 31/60/8 32/61/8 30/62/8

View file

@ -0,0 +1,181 @@
# Blender v2.83.20 OBJ File: 'x_farming_candle_3.blend'
# www.blender.org
mtllib x_farming_candle_3.mtl
o Cube.002
v -0.085412 0.250000 -0.002180
v -0.085412 -0.500000 -0.002180
v 0.091953 0.250000 -0.002180
v 0.091953 -0.500000 -0.002180
v -0.085412 0.250000 0.175185
v -0.085412 -0.500000 0.175185
v 0.091953 0.250000 0.175185
v 0.091953 -0.500000 0.175185
v -0.318488 0.100000 -0.116482
v -0.318488 -0.500000 -0.116482
v -0.141123 0.100000 -0.116482
v -0.141123 -0.500000 -0.116482
v -0.318488 0.100000 0.060883
v -0.318488 -0.500000 0.060883
v -0.141123 0.100000 0.060883
v -0.141123 -0.500000 0.060883
v 0.141124 -0.020000 -0.175185
v 0.141124 -0.500000 -0.175185
v 0.318488 -0.020000 -0.175185
v 0.318488 -0.500000 -0.175185
v 0.141124 -0.020000 0.002180
v 0.141124 -0.500000 0.002180
v 0.318488 -0.020000 0.002180
v 0.318488 -0.500000 0.002180
vt 0.625000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.875000
vt 0.625000 0.875000
vt 0.250000 0.000000
vt 0.250000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.500000 0.562500
vt 0.500000 0.000000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.437500
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.750000 0.437500
vt 0.750000 0.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.875000 0.750000
vt 0.750000 0.750000
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.500000 0.437500
vt 0.500000 0.000000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.750000 0.875000
vt 0.750000 0.437500
vt 0.500000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.562500
vt 0.375000 0.562500
vt 0.000000 0.562500
vt 0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.562500
vt 0.250000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.875000
vt 0.250000 0.875000
vt 0.375000 0.562500
vt 0.375000 0.875000
vt 0.250000 0.875000
vt 0.250000 0.562500
vt 0.250000 0.875000
vt 0.250000 0.562500
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn -0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
g Cube.002_Cube.002_candle
usemtl candle
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/9/3 7/10/3 5/11/3 6/12/3
f 6/13/4 2/14/4 4/15/4 8/16/4
f 2/17/5 1/18/5 3/6/5 4/5/5
f 6/19/6 5/20/6 1/21/6 2/22/6
f 9/23/1 13/24/1 15/25/1 11/26/1
f 12/27/2 11/28/2 15/29/2 16/30/2
f 16/31/3 15/32/3 13/33/3 14/34/3
f 14/35/4 10/36/4 12/37/4 16/38/4
f 10/39/5 9/40/5 11/41/5 12/42/5
f 14/43/6 13/44/6 9/45/6 10/46/6
f 17/47/1 21/48/1 23/49/1 19/50/1
f 20/51/2 19/50/2 23/49/2 24/52/2
f 24/53/3 23/54/3 21/55/3 22/56/3
f 22/57/4 18/58/4 20/59/4 24/60/4
f 18/61/5 17/62/5 19/63/5 20/64/5
f 22/56/6 21/55/6 17/65/6 18/66/6
o Cube.006
v -0.085412 0.250000 -0.002180
v 0.091953 0.250000 0.175185
v -0.085412 0.604730 -0.002180
v 0.091953 0.604730 0.175185
v -0.085412 0.250000 0.175185
v 0.091953 0.250000 -0.002180
v -0.085412 0.604730 0.175185
v 0.091953 0.604730 -0.002180
v 0.141123 -0.020000 -0.175185
v 0.318488 -0.020000 0.002180
v 0.141123 0.334730 -0.175185
v 0.318488 0.334730 0.002180
v 0.141123 -0.020000 0.002180
v 0.318488 -0.020000 -0.175185
v 0.141123 0.334730 0.002180
v 0.318488 0.334730 -0.175185
v -0.318488 0.100000 -0.116482
v -0.141123 0.100000 0.060883
v -0.318488 0.454730 -0.116482
v -0.141123 0.454730 0.060883
v -0.318488 0.100000 0.060883
v -0.141123 0.100000 -0.116482
v -0.318488 0.454730 0.060883
v -0.141123 0.454730 -0.116482
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.250000 0.500000
vt 0.250000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 0.500000 0.500000
vt 0.500000 0.000000
vt 0.000000 0.500000
vt 0.000000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.500000
vt 0.750000 0.500000
vt 0.750000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 0.250000 0.000000
vt 0.250000 0.500000
vt 0.000000 0.500000
vt 0.000000 0.000000
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
g Cube.006_Cube.006_flame
usemtl flame
s off
f 25/67/7 27/68/7 28/69/7 26/70/7
f 29/71/8 31/72/8 32/73/8 30/74/8
f 33/75/7 35/76/7 36/77/7 34/78/7
f 37/79/8 39/80/8 40/81/8 38/82/8
f 41/83/7 43/84/7 44/85/7 42/86/7
f 45/87/8 47/88/8 48/89/8 46/90/8

View file

@ -0,0 +1,237 @@
# Blender v2.83.20 OBJ File: 'x_farming_candle_4.blend'
# www.blender.org
mtllib x_farming_candle_4.mtl
o Cube.002
v -0.085412 0.250000 0.082782
v -0.085412 -0.500000 0.082782
v 0.091953 0.250000 0.082782
v 0.091953 -0.500000 0.082782
v -0.085412 0.250000 0.260147
v -0.085412 -0.500000 0.260147
v 0.091953 0.250000 0.260147
v 0.091953 -0.500000 0.260147
v -0.318488 0.100000 -0.031520
v -0.318488 -0.500000 -0.031520
v -0.141123 0.100000 -0.031520
v -0.141123 -0.500000 -0.031520
v -0.318488 0.100000 0.145845
v -0.318488 -0.500000 0.145845
v -0.141123 0.100000 0.145845
v -0.141123 -0.500000 0.145845
v 0.141124 -0.020000 -0.090223
v 0.141124 -0.500000 -0.090223
v 0.318488 -0.020000 -0.090223
v 0.318488 -0.500000 -0.090223
v 0.141124 -0.020000 0.087142
v 0.141124 -0.500000 0.087142
v 0.318488 -0.020000 0.087142
v 0.318488 -0.500000 0.087142
v -0.100614 -0.260000 -0.260147
v -0.100614 -0.500000 -0.260147
v 0.076751 -0.260000 -0.260147
v 0.076751 -0.500000 -0.260147
v -0.100614 -0.260000 -0.082782
v -0.100614 -0.500000 -0.082782
v 0.076751 -0.260000 -0.082782
v 0.076751 -0.500000 -0.082782
vt 0.625000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.875000
vt 0.625000 0.875000
vt 0.250000 0.000000
vt 0.250000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.562500
vt 0.125000 0.562500
vt 0.125000 0.000000
vt 0.625000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.625000 0.875000
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.375000 0.000000
vt 0.375000 0.562500
vt 0.500000 0.562500
vt 0.500000 0.000000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.437500
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.750000 0.437500
vt 0.750000 0.000000
vt 0.750000 0.875000
vt 0.875000 0.875000
vt 0.875000 0.750000
vt 0.750000 0.750000
vt 0.625000 0.000000
vt 0.625000 0.437500
vt 0.500000 0.437500
vt 0.500000 0.000000
vt 0.625000 0.437500
vt 0.625000 0.875000
vt 0.750000 0.875000
vt 0.750000 0.437500
vt 0.500000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.562500
vt 0.375000 0.562500
vt 0.000000 0.562500
vt 0.000000 0.875000
vt 0.125000 0.875000
vt 0.125000 0.562500
vt 0.250000 1.000000
vt 0.375000 1.000000
vt 0.375000 0.875000
vt 0.250000 0.875000
vt 0.375000 0.562500
vt 0.375000 0.875000
vt 0.250000 0.875000
vt 0.250000 0.562500
vt 0.250000 0.875000
vt 0.250000 0.562500
vt 0.250000 1.000000
vt 0.125000 1.000000
vt 0.125000 0.875000
vt 0.250000 0.875000
vt 0.875000 0.000000
vt 0.875000 0.187500
vt 0.750000 0.187500
vt 0.750000 0.000000
vt 0.750000 0.562500
vt 0.750000 0.750000
vt 0.875000 0.750000
vt 0.875000 0.562500
vt 0.000000 1.000000
vt 0.125000 1.000000
vt 0.125000 0.875000
vt 0.000000 0.875000
vt 0.875000 0.375000
vt 0.875000 0.562500
vt 0.750000 0.562500
vt 0.750000 0.375000
vt 0.750000 0.187500
vt 0.750000 0.375000
vt 0.875000 0.375000
vt 0.875000 0.187500
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn -0.0000 0.0000 -1.0000
vn -1.0000 0.0000 0.0000
g Cube.002_Cube.002_candle
usemtl candle
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/9/3 7/10/3 5/11/3 6/12/3
f 6/13/4 2/14/4 4/15/4 8/16/4
f 2/17/5 1/18/5 3/6/5 4/5/5
f 6/19/6 5/20/6 1/21/6 2/22/6
f 9/23/1 13/24/1 15/25/1 11/26/1
f 12/27/2 11/28/2 15/29/2 16/30/2
f 16/31/3 15/32/3 13/33/3 14/34/3
f 14/35/4 10/36/4 12/37/4 16/38/4
f 10/39/5 9/40/5 11/41/5 12/42/5
f 14/43/6 13/44/6 9/45/6 10/46/6
f 17/47/1 21/48/1 23/49/1 19/50/1
f 20/51/2 19/50/2 23/49/2 24/52/2
f 24/53/3 23/54/3 21/55/3 22/56/3
f 22/57/4 18/58/4 20/59/4 24/60/4
f 18/61/5 17/62/5 19/63/5 20/64/5
f 22/56/6 21/55/6 17/65/6 18/66/6
f 25/67/1 29/68/1 31/69/1 27/70/1
f 28/71/2 27/72/2 31/73/2 32/74/2
f 32/75/3 31/76/3 29/77/3 30/78/3
f 30/79/4 26/80/4 28/81/4 32/82/4
f 26/83/5 25/84/5 27/85/5 28/86/5
f 30/87/6 29/88/6 25/89/6 26/90/6
o Cube.006
v -0.085412 0.250000 0.082782
v 0.091953 0.250000 0.260147
v -0.085412 0.604730 0.082782
v 0.091953 0.604730 0.260147
v -0.085412 0.250000 0.260147
v 0.091953 0.250000 0.082782
v -0.085412 0.604730 0.260147
v 0.091953 0.604730 0.082782
v 0.141123 -0.020000 -0.090223
v 0.318488 -0.020000 0.087142
v 0.141123 0.334730 -0.090223
v 0.318488 0.334730 0.087142
v 0.141123 -0.020000 0.087142
v 0.318488 -0.020000 -0.090223
v 0.141123 0.334730 0.087142
v 0.318488 0.334730 -0.090223
v -0.318488 0.100000 -0.031520
v -0.141123 0.100000 0.145845
v -0.318488 0.454730 -0.031520
v -0.141123 0.454730 0.145845
v -0.318488 0.100000 0.145845
v -0.141123 0.100000 -0.031520
v -0.318488 0.454730 0.145845
v -0.141123 0.454730 -0.031520
v -0.100614 -0.260000 -0.260147
v 0.076751 -0.260000 -0.082782
v -0.100614 0.094730 -0.260147
v 0.076751 0.094730 -0.082782
v -0.100614 -0.260000 -0.082782
v 0.076751 -0.260000 -0.260147
v -0.100614 0.094730 -0.082782
v 0.076751 0.094730 -0.260147
vt 0.500000 0.000000
vt 0.500000 0.500000
vt 0.250000 0.500000
vt 0.250000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.000000
vt 0.750000 0.000000
vt 0.750000 0.500000
vt 0.500000 0.500000
vt 0.500000 0.000000
vt 0.000000 0.500000
vt 0.000000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.500000
vt 0.750000 0.500000
vt 0.750000 1.000000
vt 0.500000 1.000000
vt 0.500000 0.500000
vt 0.250000 0.000000
vt 0.250000 0.500000
vt 0.000000 0.500000
vt 0.000000 0.000000
vt 0.500000 0.500000
vt 0.500000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.500000
vt 0.750000 0.500000
vt 0.750000 1.000000
vt 1.000000 1.000000
vt 1.000000 0.500000
vn 0.7071 0.0000 -0.7071
vn -0.7071 0.0000 -0.7071
g Cube.006_Cube.006_flame
usemtl flame
s off
f 33/91/7 35/92/7 36/93/7 34/94/7
f 37/95/8 39/96/8 40/97/8 38/98/8
f 41/99/7 43/100/7 44/101/7 42/102/7
f 45/103/8 47/104/8 48/105/8 46/106/8
f 49/107/7 51/108/7 52/109/7 50/110/7
f 53/111/8 55/112/8 56/113/8 54/114/8
f 57/115/7 59/116/7 60/117/7 58/118/7
f 61/119/8 63/120/8 64/121/8 62/122/8

View file

@ -0,0 +1,386 @@
# Blender v3.3.0 OBJ File: 'coffee_cup_2_hot.blend'
# www.blender.org
mtllib coffee_cup_2.mtl
o coffee_cup_2
v -0.030000 -0.379625 -0.330000
v 0.150000 -0.139625 -0.150000
v -0.030000 -0.139625 -0.330000
v 0.150000 -0.019625 -0.150000
v 0.150000 -0.079625 -0.150000
v -0.210000 -0.019625 -0.210000
v -0.030000 0.040375 -0.090000
v -0.030000 0.220375 -0.090000
v -0.030000 0.220375 0.030000
v -0.030000 0.340375 0.030000
v -0.030000 0.280375 -0.030000
v -0.030000 0.460375 -0.090000
v 0.210000 -0.499625 -0.210000
v -0.150000 -0.439625 -0.150000
v 0.030000 -0.439625 -0.210000
v 0.030000 -0.379625 -0.330000
v 0.030000 -0.079625 -0.390000
v -0.150000 -0.079625 0.150000
v 0.210000 -0.019625 -0.210000
v 0.030000 0.220375 -0.090000
v 0.030000 0.220375 0.030000
v 0.030000 0.220375 -0.030000
v 0.030000 0.280375 -0.030000
v 0.030000 0.340375 -0.150000
v -0.210000 -0.499625 0.210000
v 0.210000 -0.499625 0.210000
v 0.150000 -0.439625 -0.150000
v -0.150000 -0.139625 -0.150000
v 0.030000 -0.139625 -0.330000
v -0.150000 -0.019625 -0.150000
v 0.030000 0.040375 -0.030000
v 0.030000 0.340375 0.030000
v 0.030000 0.460375 -0.090000
v -0.030000 -0.379625 -0.210000
v -0.030000 -0.439625 -0.210000
v 0.030000 -0.439625 -0.390000
v 0.030000 -0.379625 -0.210000
v -0.150000 -0.019625 0.150000
v -0.030000 -0.079625 -0.210000
v 0.030000 -0.079625 -0.210000
v -0.030000 0.280375 -0.090000
v -0.030000 0.340375 -0.090000
v 0.030000 0.280375 -0.090000
v -0.030000 0.460375 -0.150000
v 0.030000 0.460375 -0.150000
v -0.210000 -0.499625 -0.210000
v -0.030000 -0.439625 -0.390000
v -0.150000 -0.139625 0.150000
v 0.150000 -0.139625 0.150000
v -0.030000 -0.139625 -0.210000
v 0.030000 -0.139625 -0.210000
v -0.030000 0.040375 -0.030000
v 0.030000 0.040375 -0.090000
v -0.030000 0.220375 -0.030000
v -0.030000 0.340375 -0.150000
v 0.030000 0.340375 -0.090000
v -0.150000 -0.439625 0.150000
v 0.150000 -0.439625 0.150000
v 0.150000 -0.079625 0.150000
v -0.150000 -0.079625 -0.150000
v -0.030000 -0.079625 -0.390000
v -0.210000 -0.019625 0.210000
v 0.210000 -0.019625 0.210000
v 0.150000 -0.019625 0.150000
vt 0.407407 0.222222
vt 0.407407 0.074074
vt 0.370370 0.222222
vt 0.888889 0.629629
vt 0.925926 0.555555
vt 0.925926 0.629629
vt 0.259259 0.592593
vt 0.518519 0.296296
vt 0.518519 0.592593
vt 0.888889 0.370370
vt 0.925926 0.333333
vt 0.888889 0.333333
vt 0.481481 0.740741
vt 0.518519 0.703704
vt 0.481481 0.703704
vt 0.851852 0.518518
vt 0.888889 0.407407
vt 0.851852 0.407407
vt 0.925926 0.370370
vt 0.888889 0.407407
vt 0.518519 0.000000
vt 0.777778 0.000000
vt 0.740741 0.037037
vt 0.925926 0.555556
vt 0.888889 0.481481
vt 0.888889 0.555556
vt 0.481481 0.888889
vt 0.444444 0.814815
vt 0.481481 0.814815
vt 0.925926 0.481481
vt 0.888889 0.407407
vt 0.925926 0.407407
vt 0.851852 0.037037
vt 0.851852 0.185185
vt 0.888889 0.222222
vt 0.370370 0.814815
vt 0.185185 0.851852
vt 0.185185 0.814815
vt 0.888889 0.407407
vt 0.851852 0.296296
vt 0.851852 0.407407
vt 0.703704 0.888889
vt 0.888889 0.703704
vt 0.703704 0.703704
vt 0.851852 0.259259
vt 0.814815 0.222222
vt 0.814815 0.296296
vt 0.481481 0.925926
vt 0.518519 0.851852
vt 0.481481 0.851852
vt 0.888889 0.222222
vt 0.925926 0.185185
vt 0.888889 0.185185
vt 0.925926 0.333333
vt 0.888889 0.222222
vt 0.888889 0.333333
vt 0.814815 0.481481
vt 0.851852 0.518518
vt 0.777778 0.518518
vt 0.925926 0.111111
vt 0.888889 0.000000
vt 0.925926 0.000000
vt 0.518519 0.000000
vt 0.259259 0.000000
vt 0.407407 0.037037
vt 0.000000 0.592593
vt 0.259259 0.296296
vt 0.185185 0.777778
vt 0.370370 0.592593
vt 0.370370 0.777778
vt 0.481481 0.592593
vt 0.518519 0.592593
vt 0.518519 0.259259
vt 0.777778 0.518519
vt 0.777778 0.259259
vt 0.370370 0.777778
vt 0.185185 0.814815
vt 0.370370 0.814815
vt 0.259259 0.296296
vt 0.407407 0.259259
vt 0.370370 0.259259
vt 0.185185 0.851852
vt 0.370370 0.888889
vt 0.370370 0.851852
vt 0.444444 0.888889
vt 0.407407 0.814815
vt 0.407407 0.888889
vt 0.000000 0.962963
vt 0.185185 0.777778
vt 0.185185 0.962963
vt 0.000000 0.000000
vt 0.000000 0.296296
vt 0.888889 0.111111
vt 0.925926 0.111111
vt 0.518519 0.888889
vt 0.703704 0.703704
vt 0.703704 0.888889
vt 0.851852 0.444444
vt 0.814815 0.296296
vt 0.851852 0.296296
vt 0.444444 0.629630
vt 0.481481 0.592593
vt 0.481481 0.814815
vt 0.555556 0.888889
vt 0.518519 0.925926
vt 0.518519 0.888889
vt 0.814815 0.444444
vt 0.777778 0.222222
vt 0.777778 0.444444
vt 0.370370 0.925926
vt 0.185185 0.888889
vt 0.370370 0.888889
vt 0.555556 0.222222
vt 0.518519 0.259259
vt 0.703704 0.518519
vt 0.518519 0.703704
vt 0.703704 0.703704
vt 0.407407 0.925926
vt 0.444444 0.888889
vt 0.407407 0.888889
vt 0.370370 0.925926
vt 0.407407 0.851852
vt 0.407407 0.925926
vt 0.703704 0.518519
vt 0.888889 0.703704
vt 0.888889 0.518519
vt 0.444444 0.925926
vt 0.481481 0.888889
vt 0.444444 0.888889
vt 0.370370 0.851852
vt 0.407407 0.814815
vt 0.370370 0.814815
vt 0.481481 0.851852
vt 0.518519 0.740741
vt 0.518519 0.851852
vt 0.000000 0.592593
vt 0.000000 0.777778
vt 0.518519 0.296296
vt 0.370370 0.074074
vt 0.888889 0.555555
vt 0.518519 0.740741
vt 0.888889 0.518518
vt 0.925926 0.407407
vt 0.777778 0.259259
vt 0.740741 0.222222
vt 0.555556 0.037037
vt 0.925926 0.481481
vt 0.444444 0.888889
vt 0.888889 0.481481
vt 0.888889 0.000000
vt 0.777778 0.000000
vt 0.777778 0.037037
vt 0.777778 0.185185
vt 0.777778 0.222222
vt 0.370370 0.851852
vt 0.888889 0.296296
vt 0.888889 0.888889
vt 0.888889 0.296296
vt 0.888889 0.259259
vt 0.851852 0.222222
vt 0.518519 0.925926
vt 0.925926 0.222222
vt 0.925926 0.222222
vt 0.777778 0.444444
vt 0.814815 0.444444
vt 0.851852 0.481481
vt 0.888889 0.111111
vt 0.370370 0.037037
vt 0.000000 0.296296
vt 0.185185 0.592593
vt 0.518519 0.518519
vt 0.185185 0.777778
vt 0.185185 0.888889
vt 0.444444 0.814815
vt 0.000000 0.777778
vt 0.518519 0.703704
vt 0.814815 0.444444
vt 0.370370 0.814815
vt 0.444444 0.777778
vt 0.370370 0.777778
vt 0.370370 0.629630
vt 0.370370 0.592593
vt 0.555556 0.925926
vt 0.814815 0.222222
vt 0.185185 0.925926
vt 0.518519 0.518519
vt 0.444444 0.925926
vt 0.703704 0.703704
vt 0.481481 0.925926
vt 0.481481 0.740741
vn 0.0000 0.0000 -1.0000
vn 0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0000 1.0000
usemtl coffee_cup_2_Material
s off
f 51/1/1 37/2/1 50/3/1
f 1/4/2 37/5/2 16/6/2
f 63/7/3 13/8/3 19/9/3
f 54/10/4 21/11/4 9/12/4
f 11/13/1 22/14/1 54/15/1
f 54/16/5 7/17/5 52/18/5
f 22/19/2 8/20/2 54/10/2
f 62/21/2 63/22/2 64/23/2
f 44/24/5 42/25/5 12/26/5
f 32/27/6 9/28/6 21/29/6
f 45/30/3 56/31/3 24/32/3
f 1/33/5 3/34/5 61/35/5
f 60/36/3 38/37/3 18/38/3
f 36/39/4 35/40/4 47/41/4
f 48/42/1 58/43/1 57/44/1
f 11/45/5 9/46/5 10/47/5
f 3/48/4 51/49/4 50/50/4
f 55/51/4 56/52/4 42/53/4
f 20/54/1 7/55/1 8/56/1
f 23/57/3 56/58/3 32/59/3
f 20/60/3 31/61/3 53/62/3
f 13/63/1 46/64/1 15/65/1
f 62/66/6 26/67/6 63/7/6
f 28/68/6 27/69/6 2/70/6
f 22/14/6 52/71/6 31/72/6
f 25/73/4 13/74/4 26/75/4
f 5/76/5 64/77/5 4/78/5
f 6/79/1 40/80/1 39/81/1
f 18/82/1 64/83/1 59/84/1
f 45/85/1 55/86/1 44/87/1
f 14/88/2 58/89/2 27/90/2
f 6/79/5 25/91/5 62/92/5
f 56/52/2 10/93/2 32/94/2
f 60/95/2 59/96/2 5/97/2
f 29/98/6 1/99/6 16/100/6
f 16/101/3 36/102/3 17/103/3
f 33/104/2 44/105/2 12/106/2
f 17/107/1 47/108/1 61/109/1
f 4/110/6 60/111/6 5/112/6
f 30/113/2 6/114/2 62/21/2
f 49/115/4 28/116/4 2/117/4
f 7/118/4 31/119/4 52/120/4
f 12/121/6 56/122/6 33/123/6
f 58/124/5 2/125/5 27/126/5
f 41/127/4 23/128/4 11/129/4
f 42/130/1 43/131/1 41/132/1
f 61/133/2 40/134/2 17/135/2
f 57/136/3 28/68/3 48/137/3
f 51/1/1 40/80/1 19/138/1
f 19/138/1 13/63/1 37/2/1
f 37/2/1 34/139/1 50/3/1
f 34/139/1 6/79/1 50/3/1
f 51/1/1 19/138/1 37/2/1
f 1/4/2 34/140/2 37/5/2
f 63/7/3 26/67/3 13/8/3
f 54/10/4 22/19/4 21/11/4
f 11/13/1 23/141/1 22/14/1
f 54/16/5 8/142/5 7/17/5
f 22/19/2 20/143/2 8/20/2
f 19/144/2 6/114/2 4/145/2
f 19/144/2 4/145/2 64/23/2
f 38/146/2 30/113/2 62/21/2
f 63/22/2 19/144/2 64/23/2
f 64/23/2 38/146/2 62/21/2
f 44/24/5 55/147/5 42/25/5
f 32/27/6 10/148/6 9/28/6
f 45/30/3 33/149/3 56/31/3
f 47/150/5 35/151/5 1/33/5
f 35/151/5 34/152/5 1/33/5
f 50/153/5 39/154/5 3/34/5
f 39/154/5 61/35/5 3/34/5
f 47/150/5 1/33/5 61/35/5
f 60/36/3 30/155/3 38/37/3
f 36/39/4 15/156/4 35/40/4
f 48/42/1 49/157/1 58/43/1
f 10/47/5 42/158/5 11/45/5
f 42/158/5 41/159/5 11/45/5
f 11/45/5 54/160/5 9/46/5
f 3/48/4 29/161/4 51/49/4
f 55/51/4 24/162/4 56/52/4
f 20/54/1 53/163/1 7/55/1
f 32/59/3 21/164/3 23/57/3
f 21/164/3 22/165/3 23/57/3
f 23/57/3 43/166/3 56/58/3
f 20/60/3 22/167/3 31/61/3
f 46/64/1 6/79/1 34/139/1
f 46/64/1 34/139/1 35/168/1
f 15/65/1 37/2/1 13/63/1
f 46/64/1 35/168/1 15/65/1
f 62/66/6 25/169/6 26/67/6
f 28/68/6 14/170/6 27/69/6
f 22/14/6 54/15/6 52/71/6
f 25/73/4 46/171/4 13/74/4
f 5/76/5 59/172/5 64/77/5
f 6/79/1 19/138/1 40/80/1
f 39/81/1 50/3/1 6/79/1
f 18/82/1 38/173/1 64/83/1
f 45/85/1 24/174/1 55/86/1
f 14/88/2 57/175/2 58/89/2
f 6/79/5 46/64/5 25/91/5
f 56/52/2 42/53/2 10/93/2
f 60/95/2 18/176/2 59/96/2
f 29/98/6 3/177/6 1/99/6
f 17/103/3 40/178/3 29/179/3
f 40/178/3 51/180/3 29/179/3
f 37/181/3 15/182/3 16/101/3
f 15/182/3 36/102/3 16/101/3
f 17/103/3 29/179/3 16/101/3
f 33/104/2 45/183/2 44/105/2
f 17/107/1 36/184/1 47/108/1
f 4/110/6 30/185/6 60/111/6
f 30/113/2 4/145/2 6/114/2
f 49/115/4 48/186/4 28/116/4
f 7/118/4 53/187/4 31/119/4
f 12/121/6 42/130/6 56/122/6
f 58/124/5 49/188/5 2/125/5
f 41/127/4 43/189/4 23/128/4
f 42/130/1 56/122/1 43/131/1
f 61/133/2 39/190/2 40/134/2
f 57/136/3 14/170/3 28/68/3

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,815 @@
# Blender v3.3.1 OBJ File: 'crate-empty.blend'
# www.blender.org
mtllib crate-empty.vox.mtl
o crate-empty.vox
v -0.500000 -0.500000 0.500000
v 0.375000 -0.500000 -0.375000
v -0.500000 -0.250000 0.375000
v 0.375000 -0.250000 0.375000
v 0.375000 -0.125000 -0.375000
v -0.500000 -0.125000 -0.375000
v -0.500000 0.000000 0.375000
v -0.500000 0.000000 -0.375000
v 0.375000 0.000000 -0.500000
v -0.500000 0.125000 -0.375000
v 0.375000 0.125000 -0.500000
v -0.500000 0.125000 0.375000
v -0.500000 0.250000 0.375000
v -0.500000 0.250000 -0.375000
v 0.375000 0.250000 -0.500000
v -0.500000 0.375000 -0.375000
v 0.375000 0.375000 -0.500000
v -0.375000 -0.437500 0.375000
v -0.375000 -0.500000 -0.375000
v 0.500000 -0.500000 -0.500000
v -0.375000 -0.250000 -0.375000
v 0.500000 -0.250000 -0.375000
v -0.375000 -0.250000 -0.500000
v -0.375000 -0.125000 0.500000
v 0.500000 -0.125000 -0.375000
v -0.375000 -0.125000 -0.500000
v -0.375000 0.000000 0.375000
v -0.375000 0.000000 0.500000
v -0.375000 0.000000 -0.500000
v -0.375000 0.125000 0.500000
v -0.375000 0.125000 -0.375000
v -0.375000 0.125000 -0.500000
v 0.500000 0.125000 -0.375000
v -0.375000 0.250000 0.500000
v -0.375000 0.250000 -0.500000
v 0.500000 0.375000 0.375000
v 0.500000 0.500000 -0.500000
v 0.187500 -0.500000 0.500000
v -0.375000 -0.375000 -0.375000
v -0.375000 -0.250000 0.500000
v 0.375000 -0.250000 0.500000
v 0.375000 -0.250000 -0.375000
v -0.375000 -0.125000 -0.375000
v 0.375000 -0.125000 0.500000
v 0.375000 0.000000 0.500000
v 0.375000 0.000000 -0.375000
v 0.375000 0.125000 0.500000
v 0.375000 0.250000 0.500000
v 0.500000 0.250000 -0.375000
v 0.375000 0.375000 0.500000
v -0.375000 0.375000 -0.375000
v 0.500000 0.375000 -0.375000
v -0.500000 0.500000 0.500000
v -0.375000 0.500000 -0.375000
v 0.375000 -0.437500 0.375000
v -0.500000 -0.500000 -0.500000
v -0.375000 -0.375000 0.375000
v 0.375000 -0.375000 0.375000
v 0.375000 -0.250000 -0.500000
v 0.375000 0.000000 0.375000
v 0.500000 0.125000 0.375000
v 0.375000 0.125000 0.375000
v -0.375000 0.250000 0.375000
v 0.500000 0.250000 0.375000
v -0.500000 0.375000 0.375000
v -0.375000 0.375000 -0.500000
v 0.500000 -0.500000 0.500000
v -0.375000 -0.500000 0.375000
v 0.375000 -0.500000 0.375000
v -0.375000 -0.437500 -0.375000
v 0.375000 -0.437500 -0.375000
v 0.375000 -0.125000 0.375000
v -0.500000 -0.125000 0.375000
v -0.375000 -0.125000 0.375000
v 0.500000 -0.125000 0.375000
v 0.375000 -0.125000 -0.500000
v -0.375000 0.125000 0.375000
v 0.375000 0.125000 -0.375000
v -0.375000 0.375000 0.500000
v -0.375000 0.375000 0.375000
v 0.375000 0.375000 0.375000
v 0.375000 0.375000 -0.375000
v 0.375000 -0.375000 -0.375000
v -0.375000 -0.250000 0.375000
v 0.500000 -0.250000 0.375000
v -0.500000 -0.250000 -0.375000
v 0.500000 0.000000 0.375000
v -0.375000 0.000000 -0.375000
v 0.500000 0.000000 -0.375000
v -0.187500 0.250000 0.500000
v 0.375000 0.250000 0.375000
v 0.375000 0.250000 -0.375000
v -0.375000 0.250000 -0.375000
v 0.500000 0.500000 0.500000
v 0.375000 0.500000 0.375000
v -0.375000 0.500000 0.375000
v 0.375000 0.500000 -0.375000
v -0.500000 0.500000 -0.500000
v 0.375000 -0.062500 -0.375000
v -0.375000 -0.062500 -0.375000
v 0.375000 -0.062500 0.375000
v -0.375000 -0.062500 0.375000
v 0.375000 0.187500 -0.375000
v -0.375000 0.187500 -0.375000
v 0.375000 0.187500 0.375000
v -0.375000 0.187500 0.375000
v 0.375000 0.437500 -0.375000
v -0.375000 0.437500 -0.375000
v 0.375000 0.437500 0.375000
v -0.375000 0.437500 0.375000
vt 0.181818 0.877193
vt 0.000000 0.842105
vt 0.000000 0.877193
vt 0.545455 0.964912
vt 0.727273 0.947368
vt 0.727273 0.964912
vt 0.000000 0.280702
vt 0.030303 0.350877
vt 0.212121 0.350877
vt 0.818182 0.070175
vt 0.787879 0.035088
vt 0.787879 0.070175
vt 0.181818 0.982456
vt 0.363636 0.947368
vt 0.363636 0.982456
vt 0.606061 0.771930
vt 0.636364 0.561404
vt 0.606061 0.561404
vt 0.666667 0.491228
vt 0.696970 0.280702
vt 0.696970 0.491228
vt 0.757576 0.771930
vt 0.787879 0.736842
vt 0.787879 0.771930
vt 0.272727 0.456140
vt 0.318182 0.491228
vt 0.272727 0.491228
vt 0.545455 0.912281
vt 0.363636 0.877193
vt 0.363636 0.912281
vt 0.545455 0.912281
vt 0.727273 0.877193
vt 0.727273 0.912281
vt 0.727273 0.631579
vt 0.757576 0.421053
vt 0.727273 0.421053
vt 0.606061 0.771930
vt 0.787879 0.807018
vt 0.606061 0.807018
vt 0.727273 0.912281
vt 0.757576 0.877193
vt 0.727273 0.877193
vt 0.424242 0.771930
vt 0.242424 0.561404
vt 0.242424 0.771930
vt 0.030303 0.140351
vt 0.030303 0.175439
vt 0.000000 0.280702
vt 0.424242 0.807018
vt 0.242424 0.842105
vt 0.424242 0.842105
vt 0.000000 0.561404
vt 0.242424 0.561404
vt 0.030303 0.526316
vt 0.757576 0.631579
vt 0.727273 0.666667
vt 0.757576 0.666667
vt 0.757576 0.842105
vt 0.727273 0.877193
vt 0.757576 0.877193
vt 0.666667 0.543860
vt 0.484848 0.526316
vt 0.484848 0.543860
vt 0.484848 0.526316
vt 0.666667 0.491228
vt 0.484848 0.491228
vt 0.181818 0.947368
vt 0.363636 0.912281
vt 0.363636 0.947368
vt 0.818182 0.315789
vt 0.787879 0.350877
vt 0.787879 0.315789
vt 0.545455 0.877193
vt 0.363636 0.842105
vt 0.363636 0.877193
vt 0.666667 0.491228
vt 0.484848 0.280702
vt 0.666667 0.280702
vt 0.181818 0.982456
vt 0.000000 0.947368
vt 0.000000 0.982456
vt 0.696970 0.701754
vt 0.727273 0.491228
vt 0.696970 0.491228
vt 0.787879 0.912281
vt 0.757576 0.877193
vt 0.787879 0.877193
vt 0.409091 0.280702
vt 0.454545 0.350877
vt 0.272727 0.350877
vt 0.212121 0.701754
vt 0.242424 0.561404
vt 0.212121 0.666667
vt 0.545455 0.912281
vt 0.363636 0.947368
vt 0.545455 0.947368
vt 0.242424 0.280702
vt 0.454545 0.245614
vt 0.272727 0.245614
vt 0.787879 0.140351
vt 0.818182 0.175439
vt 0.787879 0.175439
vt 0.212121 0.245614
vt 0.242424 0.280702
vt 0.757576 0.701754
vt 0.727273 0.666667
vt 0.727273 0.701754
vt 0.787879 0.631579
vt 0.757576 0.421053
vt 0.787879 0.421053
vt 0.696970 0.491228
vt 0.666667 0.701754
vt 0.696970 0.701754
vt 0.545455 0.947368
vt 0.727273 0.912281
vt 0.545455 0.912281
vt 0.787879 0.877193
vt 0.757576 0.842105
vt 0.757576 0.877193
vt 0.424242 0.771930
vt 0.606061 0.807018
vt 0.424242 0.807018
vt 0.818182 0.035088
vt 0.787879 0.000000
vt 0.787879 0.035088
vt 0.848485 0.719298
vt 0.666667 0.736842
vt 0.666667 0.719298
vt 0.484848 0.561404
vt 0.242424 0.561404
vt 0.454545 0.526316
vt 0.000000 0.912281
vt 0.000000 0.877193
vt 0.045455 0.877193
vt 0.818182 0.385965
vt 0.787879 0.350877
vt 0.787879 0.385965
vt 0.787879 0.701754
vt 0.757576 0.666667
vt 0.757576 0.701754
vt 0.727273 0.210526
vt 0.757576 0.421053
vt 0.757576 0.210526
vt 0.606061 0.736842
vt 0.424242 0.771930
vt 0.606061 0.771930
vt 0.787879 0.210526
vt 0.818182 0.175439
vt 0.818182 0.210526
vt 0.787879 0.315789
vt 0.818182 0.280702
vt 0.818182 0.315789
vt 0.787879 0.105263
vt 0.818182 0.140351
vt 0.787879 0.140351
vt 0.424242 0.701754
vt 0.606061 0.736842
vt 0.424242 0.736842
vt 0.424242 0.596491
vt 0.606061 0.631579
vt 0.606061 0.596491
vt 0.606061 0.842105
vt 0.787879 0.807018
vt 0.787879 0.842105
vt 0.727273 0.736842
vt 0.757576 0.771930
vt 0.727273 0.771930
vt 0.606061 0.842105
vt 0.424242 0.807018
vt 0.606061 0.807018
vt 0.666667 0.719298
vt 0.848485 0.701754
vt 0.666667 0.701754
vt 0.424242 0.701754
vt 0.606061 0.666667
vt 0.606061 0.701754
vt 0.818182 0.421053
vt 0.787879 0.385965
vt 0.787879 0.421053
vt 0.606061 0.631579
vt 0.424242 0.666667
vt 0.606061 0.666667
vt 0.787879 0.421053
vt 0.757576 0.210526
vt 0.787879 0.210526
vt 0.727273 0.000000
vt 0.696970 0.035088
vt 0.484848 0.000000
vt 0.181818 0.842105
vt 0.363636 0.877193
vt 0.363636 0.842105
vt 0.696970 0.771930
vt 0.727273 0.736842
vt 0.727273 0.771930
vt 0.545455 0.982456
vt 0.363636 0.947368
vt 0.545455 0.947368
vt 0.787879 0.210526
vt 0.818182 0.245614
vt 0.787879 0.245614
vt 0.696970 0.771930
vt 0.666667 0.736842
vt 0.696970 0.736842
vt 0.727273 0.842105
vt 0.545455 0.877193
vt 0.727273 0.877193
vt 0.757576 0.666667
vt 0.787879 0.631579
vt 0.787879 0.666667
vt 0.757576 0.000000
vt 0.787879 0.210526
vt 0.757576 0.210526
vt 0.757576 0.000000
vt 0.727273 0.210526
vt 0.757576 0.210526
vt 0.484848 0.280702
vt 0.515152 0.245614
vt 0.727273 0.280702
vt 0.181818 0.877193
vt 0.363636 0.912281
vt 0.181818 0.912281
vt 0.818182 0.280702
vt 0.787879 0.245614
vt 0.787879 0.280702
vt 0.424242 0.596491
vt 0.606061 0.561404
vt 0.606061 0.596491
vt 0.454545 0.035088
vt 0.484848 0.280702
vt 0.484848 0.000000
vt 0.666667 0.771930
vt 0.636364 0.561404
vt 0.666667 0.561404
vt 0.818182 0.105263
vt 0.787879 0.070175
vt 0.787879 0.105263
vt 0.030303 0.736842
vt 0.000000 0.842105
vt 0.030303 0.771930
vt 0.242424 0.771930
vt 0.424242 0.807018
vt 0.242424 0.807018
vt 0.696970 0.491228
vt 0.727273 0.280702
vt 0.727273 0.491228
vt 0.181818 0.947368
vt 0.000000 0.912281
vt 0.000000 0.947368
vt 0.272727 0.526316
vt 0.454545 0.491228
vt 0.454545 0.526316
vt 0.454545 0.421053
vt 0.272727 0.456140
vt 0.272727 0.421053
vt 0.454545 0.350877
vt 0.272727 0.385965
vt 0.272727 0.350877
vt 0.212121 0.210526
vt 0.030303 0.245614
vt 0.030303 0.210526
vt 0.030303 0.175439
vt 0.212121 0.140351
vt 0.212121 0.175439
vt 0.030303 0.105263
vt 0.212121 0.070175
vt 0.212121 0.105263
vt 0.030303 0.666667
vt 0.212121 0.631579
vt 0.212121 0.666667
vt 0.030303 0.736842
vt 0.212121 0.701754
vt 0.212121 0.736842
vt 0.212121 0.771930
vt 0.030303 0.807018
vt 0.030303 0.771930
vt 0.030303 0.385965
vt 0.212121 0.350877
vt 0.212121 0.385965
vt 0.030303 0.456140
vt 0.212121 0.421053
vt 0.212121 0.456140
vt 0.212121 0.491228
vt 0.030303 0.526316
vt 0.030303 0.491228
vt 1.000000 0.421053
vt 0.818182 0.210526
vt 1.000000 0.210526
vt 1.000000 0.210526
vt 0.818182 0.000000
vt 1.000000 0.000000
vt 0.696970 0.245614
vt 0.515152 0.035088
vt 0.696970 0.035088
vt 0.181818 0.842105
vt 0.545455 0.947368
vt 0.212121 0.456140
vt 0.030303 0.456140
vt 0.030303 0.491228
vt 0.212121 0.491228
vt 0.030303 0.385965
vt 0.030303 0.421053
vt 0.212121 0.421053
vt 0.212121 0.526316
vt 0.212121 0.385965
vt 0.818182 0.035088
vt 0.181818 0.947368
vt 0.636364 0.771930
vt 0.666667 0.280702
vt 0.757576 0.736842
vt 0.242424 0.280702
vt 0.272727 0.421053
vt 0.545455 0.877193
vt 0.545455 0.877193
vt 0.757576 0.631579
vt 0.787879 0.771930
vt 0.757576 0.912281
vt 0.424242 0.561404
vt 0.000000 0.000000
vt 0.030303 0.070175
vt 0.030303 0.105263
vt 0.212121 0.105263
vt 0.212121 0.210526
vt 0.030303 0.210526
vt 0.242424 0.807018
vt 0.727273 0.631579
vt 0.727273 0.842105
vt 0.666667 0.526316
vt 0.666667 0.526316
vt 0.181818 0.912281
vt 0.818182 0.350877
vt 0.545455 0.842105
vt 0.484848 0.491228
vt 0.181818 0.947368
vt 0.727273 0.701754
vt 0.757576 0.912281
vt 0.484848 0.280702
vt 0.212121 0.736842
vt 0.242424 0.842105
vt 0.212121 0.771930
vt 0.212121 0.807018
vt 0.030303 0.807018
vt 0.000000 0.561404
vt 0.212121 0.631579
vt 0.030303 0.666667
vt 0.363636 0.912281
vt 0.272727 0.035088
vt 0.242424 0.000000
vt 0.818182 0.140351
vt 0.212121 0.175439
vt 0.212121 0.140351
vt 0.242424 0.000000
vt 0.212121 0.070175
vt 0.030303 0.245614
vt 0.757576 0.666667
vt 0.757576 0.631579
vt 0.666667 0.491228
vt 0.727273 0.947368
vt 0.787879 0.842105
vt 0.606061 0.771930
vt 0.818182 0.000000
vt 0.848485 0.736842
vt 0.272727 0.385965
vt 0.454545 0.456140
vt 0.454545 0.491228
vt 0.454545 0.421053
vt 0.454545 0.385965
vt 0.272727 0.526316
vt 0.181818 0.877193
vt 0.181818 0.912281
vt 0.818182 0.350877
vt 0.787879 0.666667
vt 0.727273 0.421053
vt 0.424242 0.736842
vt 0.787879 0.175439
vt 0.787879 0.280702
vt 0.818182 0.105263
vt 0.606061 0.701754
vt 0.424242 0.631579
vt 0.606061 0.807018
vt 0.757576 0.736842
vt 0.424242 0.842105
vt 0.848485 0.719298
vt 0.424242 0.666667
vt 0.818182 0.385965
vt 0.424242 0.631579
vt 0.757576 0.421053
vt 0.696970 0.245614
vt 0.515152 0.035088
vt 0.181818 0.877193
vt 0.696970 0.736842
vt 0.363636 0.982456
vt 0.818182 0.210526
vt 0.666667 0.771930
vt 0.545455 0.842105
vt 0.757576 0.631579
vt 0.787879 0.000000
vt 0.727273 0.000000
vt 0.363636 0.877193
vt 0.818182 0.245614
vt 0.424242 0.561404
vt 0.409091 0.000000
vt 0.636364 0.771930
vt 0.818182 0.070175
vt 0.030303 0.701754
vt 0.030303 0.631579
vt 0.424242 0.771930
vt 0.696970 0.280702
vt 0.181818 0.912281
vt 0.272727 0.491228
vt 0.454545 0.456140
vt 0.454545 0.385965
vt 0.212121 0.245614
vt 0.030303 0.140351
vt 0.030303 0.070175
vt 0.030303 0.631579
vt 0.030303 0.701754
vt 0.212121 0.807018
vt 0.030303 0.350877
vt 0.030303 0.421053
vt 0.212121 0.526316
vt 0.818182 0.421053
vt 0.818182 0.210526
vt 0.515152 0.245614
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
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
usemtl crate-empty.vox_Material
s off
f 42/1/1 58/2/1 4/3/1
f 70/4/2 2/5/2 71/6/2
f 1/7/1 3/8/1 86/9/1
f 80/10/3 13/11/3 65/12/3
f 29/13/4 46/14/4 9/15/4
f 6/16/5 74/17/5 73/18/5
f 86/19/4 84/20/4 21/21/4
f 43/22/6 23/23/6 26/24/6
f 30/25/2 90/26/2 34/27/2
f 60/28/3 74/29/3 27/30/3
f 84/31/4 41/32/4 4/33/4
f 82/34/5 36/35/5 81/36/5
f 28/37/4 60/38/4 27/39/4
f 5/40/1 59/41/1 42/42/1
f 71/43/5 18/44/5 70/45/5
f 87/46/6 61/47/6 94/48/6
f 58/49/3 84/50/3 4/51/3
f 53/52/1 98/53/1 65/54/1
f 4/55/1 44/56/1 72/57/1
f 60/58/1 47/59/1 62/60/1
f 71/61/1 69/62/1 55/63/1
f 96/64/3 81/65/3 80/66/3
f 23/67/4 42/68/4 59/69/4
f 35/70/6 51/71/6 93/72/6
f 46/73/1 72/74/1 60/75/1
f 83/76/4 57/77/4 58/78/4
f 17/79/5 51/80/5 66/81/5
f 10/82/5 77/83/5 12/84/5
f 25/85/2 42/86/2 22/87/2
f 38/88/2 41/89/2 40/90/2
f 9/91/3 20/92/3 76/93/3
f 5/94/5 26/95/5 76/96/5
f 56/97/5 2/98/5 19/99/5
f 88/100/6 32/101/6 31/102/6
f 52/103/6 37/104/6 94/48/6
f 74/105/3 3/106/3 73/107/3
f 49/108/4 91/109/4 64/110/4
f 80/111/5 16/112/5 51/113/5
f 32/114/5 78/115/5 31/116/5
f 75/117/3 4/118/3 72/119/3
f 39/120/2 42/121/2 21/122/2
f 81/123/1 48/124/1 50/125/1
f 19/126/6 18/127/6 68/128/6
f 94/129/2 53/130/2 50/131/2
f 63/132/4 34/133/4 90/134/4
f 36/135/3 91/136/3 81/137/3
f 77/138/3 7/139/3 12/140/3
f 62/141/5 33/142/5 61/143/5
f 62/144/3 63/145/3 91/146/3
f 79/147/6 63/148/6 80/149/6
f 82/150/2 49/151/2 52/152/2
f 46/153/2 33/154/2 78/155/2
f 80/156/6 54/157/6 96/158/6
f 62/159/1 92/160/1 78/161/1
f 27/162/6 43/163/6 88/164/6
f 8/165/2 31/166/2 10/167/2
f 21/168/6 57/169/6 39/170/6
f 18/171/3 69/172/3 68/173/3
f 63/174/6 31/175/6 93/176/6
f 17/177/1 92/178/1 82/179/1
f 82/180/1 95/181/1 97/182/1
f 89/183/4 60/184/4 87/185/4
f 94/186/4 95/187/4 53/188/4
f 30/189/5 62/190/5 47/191/5
f 6/192/2 21/193/2 43/194/2
f 15/195/4 93/196/4 92/197/4
f 14/198/2 51/199/2 16/200/2
f 74/201/6 40/202/6 84/203/6
f 44/204/5 74/205/5 72/206/5
f 30/207/6 27/208/6 77/209/6
f 4/210/4 22/211/4 42/212/4
f 75/213/5 5/214/5 25/215/5
f 98/216/4 54/217/4 37/218/4
f 43/219/2 46/220/2 88/221/2
f 11/222/1 46/223/1 78/224/1
f 54/225/2 82/226/2 97/227/2
f 69/228/5 20/229/5 67/230/5
f 93/231/4 13/232/4 63/233/4
f 61/234/3 60/235/3 62/236/3
f 32/237/3 98/238/3 35/239/3
f 31/240/2 92/241/2 93/242/2
f 8/243/4 27/244/4 88/245/4
f 81/246/5 79/247/5 80/248/5
f 91/249/2 80/250/2 63/251/2
f 60/252/2 77/253/2 27/254/2
f 4/255/2 74/256/2 84/257/2
f 91/258/1 82/259/1 92/260/1
f 46/261/6 62/262/6 60/263/6
f 42/264/6 72/265/6 4/266/6
f 42/267/2 43/268/2 21/269/2
f 46/270/2 31/271/2 88/272/2
f 92/273/2 51/274/2 93/275/2
f 21/276/6 74/277/6 84/278/6
f 88/279/6 77/280/6 27/281/6
f 93/282/6 80/283/6 63/284/6
f 101/285/4 100/286/4 102/287/4
f 105/288/4 104/289/4 106/290/4
f 109/291/4 108/292/4 110/293/4
f 42/1/1 83/294/1 58/2/1
f 70/4/2 19/295/2 2/5/2
f 10/296/1 12/297/1 13/298/1
f 10/296/1 13/298/1 14/299/1
f 73/300/1 7/301/1 8/302/1
f 10/296/1 14/299/1 98/53/1
f 14/299/1 16/303/1 98/53/1
f 10/296/1 98/53/1 8/302/1
f 6/304/1 73/300/1 8/302/1
f 8/302/1 98/53/1 56/97/1
f 86/9/1 6/304/1 56/97/1
f 6/304/1 8/302/1 56/97/1
f 16/303/1 65/54/1 98/53/1
f 56/97/1 1/7/1 86/9/1
f 80/10/3 63/305/3 13/11/3
f 29/13/4 88/306/4 46/14/4
f 6/16/5 43/307/5 74/17/5
f 86/19/4 3/308/4 84/20/4
f 43/22/6 21/309/6 23/23/6
f 34/27/2 53/130/2 30/25/2
f 53/130/2 1/310/2 28/311/2
f 30/25/2 53/130/2 28/311/2
f 60/28/3 72/312/3 74/29/3
f 84/31/4 40/313/4 41/32/4
f 82/34/5 52/314/5 36/35/5
f 28/37/4 45/315/4 60/38/4
f 5/40/1 76/316/1 59/41/1
f 71/43/5 55/317/5 18/44/5
f 94/48/6 67/318/6 87/46/6
f 67/318/6 85/319/6 75/320/6
f 75/320/6 25/321/6 87/46/6
f 67/318/6 75/320/6 87/46/6
f 61/47/6 49/322/6 64/323/6
f 61/47/6 64/323/6 94/48/6
f 58/49/3 57/324/3 84/50/3
f 65/54/1 13/298/1 53/52/1
f 13/298/1 12/297/1 53/52/1
f 53/52/1 12/297/1 7/301/1
f 7/301/1 73/300/1 1/7/1
f 73/300/1 3/8/1 1/7/1
f 53/52/1 7/301/1 1/7/1
f 4/55/1 41/325/1 44/56/1
f 60/58/1 45/326/1 47/59/1
f 71/61/1 2/327/1 69/62/1
f 96/64/3 95/328/3 81/65/3
f 23/67/4 21/329/4 42/68/4
f 35/70/6 66/330/6 51/71/6
f 46/73/1 5/331/1 72/74/1
f 83/76/4 39/332/4 57/77/4
f 17/79/5 82/333/5 51/80/5
f 10/82/5 31/334/5 77/83/5
f 25/85/2 5/335/2 42/86/2
f 38/88/2 67/336/2 41/89/2
f 9/91/3 11/337/3 37/338/3
f 11/337/3 15/339/3 37/338/3
f 9/91/3 37/338/3 20/92/3
f 17/340/3 66/341/3 37/338/3
f 15/339/3 17/340/3 37/338/3
f 20/92/3 56/342/3 59/343/3
f 76/93/3 26/344/3 9/91/3
f 20/92/3 59/343/3 76/93/3
f 5/94/5 43/345/5 26/95/5
f 68/346/5 1/347/5 56/97/5
f 56/97/5 20/229/5 2/98/5
f 19/99/5 68/346/5 56/97/5
f 88/100/6 29/348/6 32/101/6
f 49/322/6 61/47/6 33/349/6
f 89/350/6 87/46/6 25/321/6
f 52/103/6 49/322/6 37/104/6
f 49/322/6 33/349/6 37/104/6
f 37/104/6 33/349/6 89/350/6
f 89/350/6 25/321/6 20/351/6
f 25/321/6 22/352/6 20/351/6
f 37/104/6 89/350/6 20/351/6
f 22/352/6 85/319/6 67/318/6
f 22/352/6 67/318/6 20/351/6
f 94/48/6 64/323/6 36/353/6
f 94/48/6 36/353/6 52/103/6
f 74/105/3 84/354/3 3/106/3
f 49/108/4 92/355/4 91/109/4
f 80/111/5 65/356/5 16/112/5
f 32/114/5 11/357/5 78/115/5
f 75/117/3 85/358/3 4/118/3
f 39/120/2 83/359/2 42/121/2
f 81/123/1 91/360/1 48/124/1
f 19/126/6 70/361/6 18/127/6
f 1/310/2 38/88/2 40/90/2
f 1/310/2 40/90/2 24/362/2
f 90/26/2 30/25/2 47/363/2
f 48/364/2 90/26/2 47/363/2
f 48/364/2 47/363/2 94/129/2
f 47/363/2 45/365/2 94/129/2
f 50/131/2 48/364/2 94/129/2
f 28/311/2 1/310/2 24/362/2
f 44/366/2 41/89/2 67/336/2
f 28/311/2 24/362/2 44/366/2
f 45/365/2 28/311/2 44/366/2
f 44/366/2 67/336/2 45/365/2
f 67/336/2 94/129/2 45/365/2
f 53/130/2 34/27/2 79/367/2
f 53/130/2 79/367/2 50/131/2
f 48/368/4 91/369/4 90/134/4
f 91/369/4 63/132/4 90/134/4
f 36/135/3 64/370/3 91/136/3
f 77/138/3 27/371/3 7/139/3
f 62/141/5 78/372/5 33/142/5
f 62/144/3 77/373/3 63/145/3
f 79/147/6 34/374/6 63/148/6
f 82/150/2 92/375/2 49/151/2
f 46/153/2 89/376/2 33/154/2
f 80/156/6 51/377/6 54/157/6
f 62/159/1 91/378/1 92/160/1
f 27/162/6 74/379/6 43/163/6
f 8/165/2 88/380/2 31/166/2
f 21/168/6 84/381/6 57/169/6
f 18/171/3 55/382/3 69/172/3
f 63/174/6 77/383/6 31/175/6
f 17/177/1 15/384/1 92/178/1
f 82/180/1 81/385/1 95/181/1
f 89/183/4 46/386/4 60/184/4
f 94/186/4 37/218/4 97/387/4
f 95/187/4 96/388/4 53/188/4
f 94/186/4 97/387/4 95/187/4
f 30/189/5 77/389/5 62/190/5
f 6/192/2 86/390/2 21/193/2
f 15/195/4 35/391/4 93/196/4
f 14/198/2 93/392/2 51/199/2
f 74/201/6 24/393/6 40/202/6
f 44/204/5 24/394/5 74/205/5
f 30/207/6 28/395/6 27/208/6
f 4/210/4 85/396/4 22/211/4
f 75/213/5 72/397/5 5/214/5
f 98/216/4 53/188/4 96/388/4
f 54/217/4 97/387/4 37/218/4
f 98/216/4 96/388/4 54/217/4
f 43/219/2 5/398/2 46/220/2
f 11/222/1 9/399/1 46/223/1
f 54/225/2 51/400/2 82/226/2
f 69/228/5 2/98/5 20/229/5
f 67/230/5 38/401/5 69/228/5
f 38/401/5 1/347/5 68/346/5
f 69/228/5 38/401/5 68/346/5
f 93/231/4 14/402/4 13/232/4
f 61/234/3 87/403/3 60/235/3
f 29/404/3 9/91/3 26/344/3
f 23/405/3 59/343/3 56/342/3
f 32/237/3 29/404/3 98/238/3
f 29/404/3 26/344/3 56/342/3
f 98/238/3 29/404/3 56/342/3
f 26/344/3 23/405/3 56/342/3
f 98/238/3 37/338/3 66/341/3
f 35/239/3 15/339/3 11/337/3
f 98/238/3 66/341/3 35/239/3
f 35/239/3 11/337/3 32/237/3
f 31/240/2 78/406/2 92/241/2
f 8/243/4 7/407/4 27/244/4
f 81/246/5 50/408/5 79/247/5
f 91/249/2 81/409/2 80/250/2
f 60/252/2 62/410/2 77/253/2
f 4/255/2 72/411/2 74/256/2
f 91/258/1 81/412/1 82/259/1
f 46/261/6 78/413/6 62/262/6
f 42/264/6 5/414/6 72/265/6
f 42/267/2 5/415/2 43/268/2
f 46/270/2 78/416/2 31/271/2
f 92/273/2 82/417/2 51/274/2
f 21/276/6 43/418/6 74/277/6
f 88/279/6 31/419/6 77/280/6
f 93/282/6 51/420/6 80/283/6
f 101/285/4 99/421/4 100/286/4
f 105/288/4 103/422/4 104/289/4
f 109/291/4 107/423/4 108/292/4

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,640 @@
# Blender v2.83.20 OBJ File: 'x_farming_french_potatoes_2--clean.blend'
# www.blender.org
mtllib x_farming_french_potatoes.mtl
o french_potatoes_french_potatos.vox.002
v 0.520000 -0.500000 -0.390000
v -0.520000 -0.500000 0.390000
v 0.520000 -0.500000 0.390000
v -0.520000 -0.500000 -0.390000
v -0.520000 -0.435000 -0.390000
v 0.520000 -0.435000 -0.390000
v 0.520000 -0.435000 0.390000
v -0.390000 -0.435000 0.325000
v 0.390000 -0.435000 0.325000
v -0.520000 -0.435000 0.390000
v -0.390000 -0.435000 -0.325000
v 0.390000 -0.435000 -0.325000
v -0.390000 -0.435000 0.390000
v 0.390000 -0.435000 -0.390000
v -0.455000 -0.240000 0.390000
v -0.455000 -0.175000 0.390000
v -0.455000 -0.240000 0.130000
v -0.520000 -0.175000 0.130000
v -0.520000 -0.175000 -0.130000
v -0.520000 -0.240000 -0.130000
v -0.455000 -0.240000 -0.130000
v -0.455000 -0.240000 -0.390000
v 0.390000 -0.240000 0.325000
v 0.455000 -0.240000 0.130000
v 0.455000 -0.175000 0.130000
v 0.520000 -0.175000 -0.130000
v 0.455000 -0.240000 -0.130000
v 0.455000 -0.175000 -0.130000
v 0.455000 -0.240000 -0.390000
v 0.520000 -0.240000 -0.130000
v -0.390000 -0.240000 0.325000
v 0.455000 -0.240000 0.390000
v -0.520000 -0.240000 0.130000
v 0.520000 -0.240000 0.130000
v -0.390000 -0.240000 -0.325000
v 0.390000 -0.240000 -0.325000
v 0.390000 -0.435000 0.325000
v 0.390000 -0.435000 -0.325000
v 0.455000 -0.175000 0.390000
v -0.390000 -0.175000 0.325000
v 0.390000 -0.175000 0.325000
v -0.455000 -0.175000 0.130000
v 0.520000 -0.175000 0.130000
v -0.455000 -0.175000 -0.130000
v -0.390000 -0.175000 -0.325000
v -0.455000 -0.175000 -0.390000
v 0.455000 -0.175000 -0.390000
v -0.390000 -0.435000 0.325000
v -0.390000 -0.240000 0.390000
v -0.390000 -0.175000 0.390000
v -0.390000 -0.435000 -0.325000
v 0.390000 -0.175000 -0.390000
v 0.390000 -0.240000 -0.390000
v 0.390000 -0.175000 -0.325000
v -0.260000 -0.175000 0.195000
v -0.260000 -0.110000 0.195000
v -0.325000 -0.110000 -0.130000
v -0.260000 -0.175000 -0.130000
v -0.260000 -0.110000 -0.130000
v -0.260000 -0.110000 -0.195000
v 0.000000 -0.175000 0.195000
v 0.000000 -0.110000 0.195000
v 0.000000 -0.110000 0.260000
v 0.325000 -0.110000 0.130000
v 0.325000 -0.175000 0.000000
v 0.260000 -0.175000 0.000000
v 0.260000 -0.110000 0.000000
v 0.260000 -0.175000 -0.195000
v 0.195000 -0.175000 -0.260000
v 0.195000 -0.110000 -0.260000
v -0.195000 -0.175000 0.260000
v -0.195000 -0.175000 0.195000
v 0.260000 -0.175000 0.130000
v -0.325000 -0.175000 0.000000
v -0.260000 -0.175000 0.000000
v -0.260000 -0.110000 0.000000
v -0.325000 -0.110000 0.000000
v 0.325000 -0.110000 0.000000
v -0.065000 -0.110000 -0.195000
v -0.065000 -0.175000 -0.195000
v 0.195000 -0.175000 -0.195000
v 0.260000 -0.110000 -0.195000
v -0.390000 -0.175000 0.325000
v 0.000000 -0.175000 0.260000
v 0.390000 -0.175000 0.325000
v 0.260000 -0.175000 0.195000
v 0.325000 -0.175000 0.130000
v -0.325000 -0.175000 -0.130000
v -0.260000 -0.175000 -0.195000
v -0.390000 -0.175000 -0.325000
v -0.065000 -0.175000 -0.260000
v 0.390000 -0.175000 -0.325000
v -0.195000 -0.110000 0.260000
v -0.195000 -0.110000 0.195000
v 0.260000 -0.110000 0.195000
v 0.260000 -0.110000 0.130000
v -0.065000 -0.110000 -0.260000
v 0.195000 -0.110000 -0.195000
v -0.195000 -0.175000 -0.325000
v 0.195000 -0.435000 0.325000
v 0.195000 -0.435000 -0.325000
v -0.195000 -0.175000 0.325000
v 0.195000 -0.175000 0.325000
v 0.195000 -0.175000 -0.325000
v -0.195000 -0.435000 -0.325000
v -0.195000 -0.435000 0.325000
v 0.390000 -0.175000 0.130000
v -0.390000 -0.175000 -0.130000
v 0.195000 -0.175000 -0.195000
v 0.195000 -0.175000 0.195000
v 0.195000 -0.110000 0.195000
v 0.195000 -0.110000 -0.195000
v 0.000000 -0.435000 0.325000
v 0.000000 -0.435000 -0.325000
v 0.000000 -0.175000 0.325000
v 0.000000 -0.175000 -0.325000
v 0.000000 -0.175000 -0.260000
v 0.000000 -0.175000 0.195000
v 0.000000 -0.110000 0.195000
v 0.000000 -0.110000 -0.260000
v -0.195000 -0.175000 -0.195000
v -0.195000 -0.175000 0.195000
v -0.195000 -0.110000 0.195000
v -0.195000 -0.110000 -0.195000
vt 0.437500 0.953125
vt 0.500000 0.937500
vt 0.000000 0.937500
vt 0.500000 0.750000
vt 0.000000 0.562500
vt 0.000000 0.750000
vt 0.062500 0.968750
vt 0.000000 0.953125
vt 0.500000 0.953125
vt 0.375000 0.968750
vt 0.000000 0.984375
vt 0.375000 0.984375
vt 0.375000 0.984375
vt 0.000000 1.000000
vt 0.000000 0.984375
vt 0.062500 0.750000
vt 0.500000 0.750000
vt 0.437500 0.765625
vt 0.062500 0.921875
vt 0.437500 0.937500
vt 0.000000 0.937500
vt 0.812500 0.343750
vt 0.500000 0.328125
vt 0.812500 0.328125
vt 0.500000 0.406250
vt 0.812500 0.390625
vt 0.500000 0.390625
vt 0.125000 0.421875
vt 0.000000 0.437500
vt 0.000000 0.421875
vt 0.437500 0.375000
vt 0.031250 0.390625
vt 0.437500 0.390625
vt 0.500000 0.218750
vt 0.875000 0.265625
vt 0.875000 0.218750
vt 0.250000 0.421875
vt 0.125000 0.437500
vt 0.125000 0.421875
vt 0.500000 0.265625
vt 0.875000 0.281250
vt 0.500000 0.281250
vt 0.875000 0.203125
vt 0.500000 0.218750
vt 0.500000 0.203125
vt 0.125000 0.468750
vt 0.000000 0.453125
vt 0.000000 0.468750
vt 0.500000 0.000000
vt 0.875000 0.156250
vt 0.875000 0.000000
vt 0.156250 0.468750
vt 0.187500 0.453125
vt 0.156250 0.453125
vt 0.125000 0.484375
vt 0.000000 0.468750
vt 0.000000 0.484375
vt 0.875000 0.156250
vt 0.500000 0.156250
vt 0.062500 0.390625
vt 0.468750 0.406250
vt 0.062500 0.406250
vt 0.156250 0.406250
vt 0.125000 0.421875
vt 0.125000 0.406250
vt 0.125000 0.406250
vt 0.000000 0.421875
vt 0.000000 0.406250
vt 0.812500 0.343750
vt 0.500000 0.343750
vt 0.250000 0.484375
vt 0.125000 0.468750
vt 0.125000 0.484375
vt 0.500000 0.281250
vt 0.812500 0.281250
vt 0.156250 0.421875
vt 0.187500 0.406250
vt 0.156250 0.406250
vt 0.156250 0.453125
vt 0.125000 0.468750
vt 0.125000 0.453125
vt 0.062500 0.171875
vt 0.031250 0.187500
vt 0.031250 0.125000
vt 0.437500 0.015625
vt 0.468750 0.000000
vt 0.468750 0.062500
vt 0.031250 0.375000
vt 0.062500 0.359375
vt 0.468750 0.187500
vt 0.062500 0.187500
vt 0.437500 0.203125
vt 0.000000 0.953125
vt 0.500000 0.953125
vt 0.500000 0.562500
vt 0.500000 0.968750
vt 0.000000 0.968750
vt 0.000000 0.968750
vt 0.375000 1.000000
vt 0.500000 0.937500
vt 0.437500 0.921875
vt 0.062500 0.765625
vt 0.000000 0.750000
vt 0.500000 0.343750
vt 0.812500 0.406250
vt 0.125000 0.437500
vt 0.468750 0.390625
vt 0.468750 0.375000
vt 0.250000 0.437500
vt 0.875000 0.218750
vt 0.125000 0.453125
vt 0.500000 0.156250
vt 0.187500 0.468750
vt 0.125000 0.468750
vt 0.031250 0.406250
vt 0.031250 0.390625
vt 0.468750 0.390625
vt 0.156250 0.421875
vt 0.125000 0.421875
vt 0.250000 0.468750
vt 0.187500 0.421875
vt 0.156250 0.468750
vt 0.031250 0.062500
vt 0.031250 0.000000
vt 0.062500 0.015625
vt 0.062500 0.000000
vt 0.000000 0.125000
vt 0.000000 0.062500
vt 0.437500 0.171875
vt 0.437500 0.187500
vt 0.500000 0.062500
vt 0.500000 0.125000
vt 0.468750 0.125000
vt 0.468750 0.187500
vt 0.062500 0.203125
vt 0.031250 0.250000
vt 0.031250 0.187500
vt 0.000000 0.250000
vt 0.000000 0.312500
vt 0.031250 0.312500
vt 0.437500 0.359375
vt 0.468750 0.312500
vt 0.500000 0.312500
vt 0.500000 0.250000
vt 0.468750 0.250000
vt 0.250000 0.843750
vt 0.000000 0.875000
vt 0.250000 0.875000
vt 0.187500 0.937500
vt 0.000000 0.906250
vt 0.000000 0.937500
vt 0.250000 0.875000
vt 0.000000 0.906250
vt 0.000000 0.875000
vt 0.375000 0.937500
vt 0.312500 0.968750
vt 0.312500 0.937500
vt 0.375000 0.843750
vt 0.312500 0.875000
vt 0.312500 0.843750
vt 0.375000 0.906250
vt 0.187500 0.937500
vt 0.187500 0.906250
vt 0.312500 0.875000
vt 0.250000 0.906250
vt 0.250000 0.875000
vt 0.125000 0.843750
vt 0.187500 0.812500
vt 0.125000 0.812500
vt 0.187500 0.843750
vt 0.250000 0.812500
vt 0.187500 0.812500
vt 0.312500 0.968750
vt 0.187500 0.937500
vt 0.312500 0.937500
vt 0.312500 1.000000
vt 0.187500 0.968750
vt 0.187500 1.000000
vt 0.062500 0.812500
vt 0.000000 0.843750
vt 0.000000 0.812500
vt 0.375000 0.968750
vt 0.437500 0.937500
vt 0.375000 0.937500
vt 0.312500 1.000000
vt 0.375000 0.968750
vt 0.312500 0.968750
vt 0.312500 0.281250
vt 0.375000 0.093750
vt 0.625000 0.187500
vt 0.437500 0.968750
vt 0.375000 1.000000
vt 0.375000 0.968750
vt 0.250000 0.875000
vt 0.312500 0.843750
vt 0.250000 0.843750
vt 0.187500 0.968750
vt 0.000000 0.937500
vt 0.000000 0.968750
vt 0.312500 0.906250
vt 0.375000 0.875000
vt 0.312500 0.875000
vt 0.187500 0.968750
vt 0.000000 1.000000
vt 0.000000 0.968750
vt 0.125000 0.812500
vt 0.062500 0.843750
vt 0.062500 0.812500
vt 0.000000 0.343750
vt 0.125000 0.468750
vt 0.500000 0.468750
vt 0.000000 0.500000
vt 0.125000 0.625000
vt 0.500000 0.625000
vt 0.187500 0.062500
vt 0.125000 0.093750
vt 0.000000 0.031250
vt 0.312500 0.312500
vt 0.562500 0.312500
vt 0.750000 0.343750
vt 0.125000 0.656250
vt 0.500000 0.656250
vt 0.000000 0.656250
vt 0.000000 0.781250
vt 0.125000 0.781250
vt 0.562500 0.781250
vt 0.125000 0.812500
vt 0.562500 0.812500
vt 0.125000 0.500000
vt 0.500000 0.500000
vt 0.000000 0.843750
vt 0.187500 0.906250
vt 0.250000 0.906250
vt 0.375000 0.968750
vt 0.375000 0.875000
vt 0.375000 0.937500
vt 0.312500 0.906250
vt 0.187500 0.843750
vt 0.250000 0.843750
vt 0.187500 0.968750
vt 0.312500 0.968750
vt 0.062500 0.843750
vt 0.437500 0.968750
vt 0.375000 1.000000
vt 0.125000 0.281250
vt 0.125000 0.250000
vt 0.062500 0.250000
vt 0.062500 0.187500
vt 0.125000 0.187500
vt 0.125000 0.093750
vt 0.187500 0.093750
vt 0.562500 0.312500
vt 0.312500 0.312500
vt 0.187500 0.062500
vt 0.375000 0.062500
vt 0.562500 0.281250
vt 0.625000 0.281250
vt 0.687500 0.125000
vt 0.687500 0.187500
vt 0.625000 0.093750
vt 0.625000 0.125000
vt 0.437500 1.000000
vt 0.312500 0.875000
vt 0.187500 0.937500
vt 0.375000 0.906250
vt 0.187500 1.000000
vt 0.125000 0.843750
vt 0.625000 0.468750
vt 0.625000 0.343750
vt 0.000000 0.468750
vt 0.625000 0.625000
vt 0.625000 0.500000
vt 0.000000 0.625000
vt 0.062500 0.187500
vt 0.062500 0.250000
vt 0.000000 0.250000
vt 0.750000 0.031250
vt 0.750000 0.125000
vt 0.625000 0.093750
vt 0.687500 0.125000
vt 0.625000 0.125000
vt 0.375000 0.093750
vt 0.375000 0.062500
vt 0.187500 0.093750
vt 0.125000 0.187500
vt 0.125000 0.281250
vt 0.312500 0.281250
vt 0.562500 0.281250
vt 0.625000 0.281250
vt 0.625000 0.187500
vt 0.687500 0.187500
vt 0.000000 0.343750
vt 0.125000 0.250000
vt 0.625000 0.781250
vt 0.625000 0.656250
vn 0.0000 0.0000 -1.0000
vn 0.0000 -1.0000 0.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
g french_potatoes_french_potatos.vox.002_french-potatoes
usemtl french-potatoes
s off
f 14/1/1 1/2/1 4/3/1
f 1/4/2 2/5/2 4/6/2
f 13/7/3 2/8/3 3/9/3
f 4/10/4 10/11/4 5/12/4
f 1/13/5 7/14/5 3/15/5
f 13/16/6 7/17/6 9/18/6
f 11/19/6 14/20/6 5/21/6
f 45/22/5 31/23/5 35/24/5
f 41/25/4 36/26/4 23/27/4
f 24/28/5 39/29/5 32/30/5
f 53/31/1 46/32/1 52/33/1
f 51/34/1 36/35/1 38/36/1
f 29/37/5 28/38/5 27/39/5
f 35/40/3 54/41/3 45/42/3
f 23/43/3 40/44/3 31/45/3
f 42/46/4 15/47/4 16/48/4
f 48/49/2 38/50/2 37/51/2
f 19/52/1 21/53/1 20/54/1
f 19/55/4 33/56/4 18/57/4
f 37/58/3 31/45/3 48/59/3
f 49/60/3 39/61/3 50/62/3
f 34/63/3 25/64/3 24/65/3
f 30/66/5 43/67/5 34/68/5
f 38/69/5 23/27/5 37/70/5
f 46/71/4 21/72/4 44/73/4
f 48/74/4 35/24/4 51/75/4
f 28/76/1 30/77/1 27/78/1
f 17/79/3 18/80/3 33/81/3
f 45/82/6 46/83/6 44/84/6
f 41/85/6 39/86/6 25/87/6
f 22/88/2 53/31/2 35/89/2
f 32/90/2 49/91/2 23/92/2
f 4/3/1 5/93/1 14/1/1
f 14/1/1 6/94/1 1/2/1
f 1/4/2 3/95/2 2/5/2
f 3/9/3 7/96/3 13/7/3
f 13/7/3 10/97/3 2/8/3
f 4/10/4 2/98/4 10/11/4
f 1/13/5 6/99/5 7/14/5
f 7/17/6 6/100/6 12/101/6
f 6/100/6 14/20/6 12/101/6
f 12/101/6 9/18/6 7/17/6
f 8/102/6 13/16/6 9/18/6
f 11/19/6 12/101/6 14/20/6
f 5/21/6 10/103/6 8/102/6
f 10/103/6 13/16/6 8/102/6
f 8/102/6 11/19/6 5/21/6
f 45/22/5 40/104/5 31/23/5
f 41/25/4 54/105/4 36/26/4
f 24/28/5 25/106/5 39/29/5
f 52/33/1 47/107/1 29/108/1
f 53/31/1 22/88/1 46/32/1
f 52/33/1 29/108/1 53/31/1
f 51/34/1 35/40/1 36/35/1
f 29/37/5 47/109/5 28/38/5
f 35/40/3 36/35/3 54/41/3
f 23/43/3 41/110/3 40/44/3
f 42/46/4 17/111/4 15/47/4
f 48/49/2 51/112/2 38/50/2
f 19/52/1 44/113/1 21/53/1
f 19/55/4 20/114/4 33/56/4
f 37/58/3 23/43/3 31/45/3
f 16/115/3 15/116/3 49/60/3
f 49/60/3 32/117/3 39/61/3
f 50/62/3 16/115/3 49/60/3
f 34/63/3 43/118/3 25/64/3
f 30/66/5 26/119/5 43/67/5
f 38/69/5 36/26/5 23/27/5
f 46/71/4 22/120/4 21/72/4
f 48/74/4 31/23/4 35/24/4
f 28/76/1 26/121/1 30/77/1
f 17/79/3 42/122/3 18/80/3
f 42/123/6 16/124/6 40/125/6
f 16/124/6 50/126/6 40/125/6
f 40/125/6 45/82/6 42/123/6
f 19/127/6 18/128/6 42/123/6
f 45/82/6 54/129/6 52/130/6
f 44/84/6 19/127/6 42/123/6
f 45/82/6 52/130/6 46/83/6
f 44/84/6 42/123/6 45/82/6
f 25/87/6 43/131/6 26/132/6
f 28/133/6 47/134/6 54/129/6
f 47/134/6 52/130/6 54/129/6
f 25/87/6 26/132/6 28/133/6
f 40/125/6 50/126/6 41/85/6
f 50/126/6 39/86/6 41/85/6
f 54/129/6 41/85/6 25/87/6
f 25/87/6 28/133/6 54/129/6
f 35/89/2 31/135/2 17/136/2
f 31/135/2 49/91/2 15/137/2
f 17/136/2 31/135/2 15/137/2
f 17/136/2 33/138/2 20/139/2
f 17/136/2 20/139/2 21/140/2
f 53/31/2 36/141/2 35/89/2
f 17/136/2 21/140/2 35/89/2
f 21/140/2 22/88/2 35/89/2
f 23/92/2 36/141/2 27/142/2
f 36/141/2 53/31/2 29/108/2
f 27/142/2 36/141/2 29/108/2
f 27/142/2 30/143/2 34/144/2
f 27/142/2 34/144/2 24/145/2
f 49/91/2 31/135/2 23/92/2
f 27/142/2 24/145/2 23/92/2
f 24/145/2 32/90/2 23/92/2
g french_potatoes_french_potatos.vox.002_just_potatoes
usemtl just_potatoes
f 69/146/1 97/147/1 70/148/1
f 79/149/1 89/150/1 60/151/1
f 86/152/3 62/153/3 61/154/3
f 72/155/3 56/156/3 55/157/3
f 73/158/5 95/159/5 86/160/5
f 84/161/3 93/162/3 71/163/3
f 75/164/3 77/165/3 74/166/3
f 79/167/4 91/168/4 80/169/4
f 67/170/1 65/171/1 66/172/1
f 78/173/5 87/174/5 65/175/5
f 57/176/4 74/177/4 77/178/4
f 61/179/5 63/180/5 84/181/5
f 93/182/4 72/183/4 71/184/4
f 98/185/1 68/186/1 81/187/1
f 79/188/6 62/189/6 67/190/6
f 69/191/5 98/192/5 81/193/5
f 59/194/4 89/195/4 58/196/4
f 76/197/4 55/198/4 56/199/4
f 57/200/1 58/201/1 88/202/1
f 68/203/5 67/204/5 66/205/5
f 87/206/3 96/207/3 73/208/3
f 106/209/4 122/210/4 121/211/4
f 100/212/4 110/213/4 109/214/4
f 71/215/6 55/216/6 83/217/6
f 91/218/6 69/219/6 92/220/6
f 109/214/4 111/221/4 112/222/4
f 113/223/4 115/224/4 118/225/4
f 117/226/4 119/227/4 120/228/4
f 121/211/4 123/229/4 124/230/4
f 69/146/1 91/231/1 97/147/1
f 79/149/1 80/232/1 89/150/1
f 86/152/3 95/233/3 62/153/3
f 72/155/3 94/234/3 56/156/3
f 73/158/5 96/235/5 95/159/5
f 84/161/3 63/236/3 93/162/3
f 75/164/3 76/237/3 77/165/3
f 79/167/4 97/238/4 91/168/4
f 67/170/1 78/239/1 65/171/1
f 78/173/5 64/240/5 87/174/5
f 57/176/4 88/241/4 74/177/4
f 61/179/5 62/242/5 63/180/5
f 93/182/4 94/243/4 72/183/4
f 98/185/1 82/244/1 68/186/1
f 79/188/6 60/245/6 59/246/6
f 59/246/6 57/247/6 77/248/6
f 76/249/6 56/250/6 94/251/6
f 59/246/6 77/248/6 76/249/6
f 70/252/6 97/253/6 79/188/6
f 79/188/6 59/246/6 76/249/6
f 94/251/6 93/254/6 63/255/6
f 79/188/6 76/249/6 62/189/6
f 76/249/6 94/251/6 62/189/6
f 98/256/6 70/252/6 79/188/6
f 67/190/6 82/257/6 98/256/6
f 64/258/6 78/259/6 67/190/6
f 62/189/6 95/260/6 96/261/6
f 96/261/6 64/258/6 67/190/6
f 67/190/6 98/256/6 79/188/6
f 94/251/6 63/255/6 62/189/6
f 62/189/6 96/261/6 67/190/6
f 69/191/5 70/262/5 98/192/5
f 59/194/4 60/263/4 89/195/4
f 76/197/4 75/264/4 55/198/4
f 57/200/1 59/265/1 58/201/1
f 68/203/5 82/266/5 67/204/5
f 87/206/3 64/267/3 96/207/3
f 99/268/4 105/269/4 121/211/4
f 105/269/4 106/209/4 121/211/4
f 106/209/4 102/270/4 122/210/4
f 104/271/4 101/272/4 109/214/4
f 101/272/4 100/212/4 109/214/4
f 100/212/4 103/273/4 110/213/4
f 74/274/6 88/275/6 108/276/6
f 85/277/6 107/278/6 86/279/6
f 107/278/6 87/280/6 86/279/6
f 87/280/6 73/281/6 86/279/6
f 86/279/6 61/282/6 84/283/6
f 71/215/6 72/284/6 55/216/6
f 55/216/6 75/285/6 74/274/6
f 74/274/6 108/276/6 83/217/6
f 85/277/6 86/279/6 84/283/6
f 55/216/6 74/274/6 83/217/6
f 85/277/6 84/283/6 83/217/6
f 84/283/6 71/215/6 83/217/6
f 89/286/6 80/287/6 91/218/6
f 69/219/6 81/288/6 68/289/6
f 68/289/6 66/290/6 65/291/6
f 65/291/6 87/280/6 107/278/6
f 90/292/6 108/276/6 89/286/6
f 108/276/6 88/275/6 89/286/6
f 88/275/6 58/293/6 89/286/6
f 65/291/6 107/278/6 92/220/6
f 68/289/6 65/291/6 92/220/6
f 90/292/6 89/286/6 91/218/6
f 69/219/6 68/289/6 92/220/6
f 90/292/6 91/218/6 92/220/6
f 109/214/4 110/213/4 111/221/4
f 116/294/4 114/295/4 117/226/4
f 114/295/4 113/223/4 118/225/4
f 117/226/4 114/295/4 118/225/4
f 117/226/4 118/225/4 119/227/4
f 121/211/4 122/210/4 123/229/4

View file

@ -0,0 +1,888 @@
# Blender v3.3.0 OBJ File: 'fries.blend'
# www.blender.org
mtllib fries.mtl
o fries
v 0.200000 -0.459000 0.060000
v 0.080000 -0.459000 0.060000
v 0.000000 -0.459000 0.060000
v -0.040000 -0.459000 0.060000
v 0.240000 -0.459000 0.100000
v 0.080000 -0.459000 -0.060000
v -0.000000 -0.459000 -0.020000
v -0.240000 -0.459000 0.100000
v -0.200000 -0.219000 0.020000
v -0.200000 -0.219000 -0.060000
v 0.200000 -0.219000 0.060000
v -0.120000 -0.059000 0.060000
v 0.080000 -0.019000 -0.020000
v 0.040000 -0.019000 0.060000
v -0.040000 -0.059000 0.020000
v 0.160000 0.021000 0.060000
v 0.080000 0.021000 0.060000
v 0.200000 -0.499000 -0.060000
v 0.120000 -0.459000 -0.060000
v -0.200000 -0.499000 -0.060000
v -0.160000 -0.459000 -0.060000
v 0.160000 -0.459000 -0.020000
v -0.080000 -0.459000 -0.020000
v -0.120000 -0.459000 0.060000
v 0.160000 -0.259000 -0.100000
v -0.160000 -0.259000 -0.100000
v 0.080000 -0.259000 -0.060000
v -0.120000 -0.219000 0.060000
v -0.080000 -0.219000 0.060000
v -0.240000 -0.219000 -0.100000
v 0.040000 -0.139000 -0.020000
v 0.160000 -0.059000 0.020000
v 0.000000 -0.019000 0.020000
v -0.080000 -0.019000 -0.020000
v -0.160000 -0.019000 -0.060000
v 0.160000 0.021000 0.020000
v 0.120000 0.021000 0.020000
v 0.200000 -0.499000 0.060000
v -0.000000 -0.459000 -0.060000
v -0.120000 -0.459000 -0.020000
v -0.120000 -0.459000 -0.060000
v -0.200000 -0.459000 0.060000
v 0.120000 -0.259000 -0.060000
v 0.240000 -0.219000 0.100000
v 0.240000 -0.219000 -0.100000
v -0.000000 -0.259000 -0.060000
v -0.160000 -0.259000 -0.060000
v -0.160000 -0.219000 -0.100000
v 0.200000 -0.219000 -0.060000
v 0.040000 -0.219000 0.060000
v 0.080000 -0.139000 -0.020000
v 0.040000 -0.139000 0.020000
v 0.200000 -0.059000 -0.060000
v 0.120000 -0.059000 0.020000
v -0.040000 -0.059000 0.060000
v -0.120000 -0.059000 0.020000
v 0.120000 -0.019000 -0.060000
v 0.040000 -0.019000 0.020000
v -0.000000 -0.019000 -0.060000
v -0.000000 -0.019000 -0.020000
v -0.040000 -0.019000 -0.020000
v 0.200000 0.021000 0.060000
v 0.120000 0.021000 0.060000
v -0.160000 0.021000 -0.020000
v -0.200000 -0.499000 0.060000
v -0.200000 -0.459000 -0.060000
v 0.160000 -0.459000 0.060000
v 0.120000 -0.459000 0.020000
v 0.120000 -0.459000 -0.020000
v 0.080000 -0.459000 0.020000
v 0.040000 -0.459000 -0.020000
v 0.000000 -0.459000 0.020000
v -0.160000 -0.459000 0.020000
v -0.160000 -0.459000 -0.020000
v -0.240000 -0.459000 -0.100000
v 0.200000 -0.219000 0.020000
v 0.160000 -0.219000 0.060000
v 0.160000 -0.219000 -0.060000
v 0.160000 -0.259000 -0.060000
v 0.000000 -0.219000 0.060000
v -0.240000 -0.219000 0.100000
v 0.080000 -0.219000 0.060000
v 0.080000 -0.139000 0.020000
v 0.160000 -0.059000 -0.060000
v -0.080000 -0.059000 0.060000
v -0.160000 -0.059000 0.060000
v -0.160000 -0.059000 0.020000
v -0.080000 -0.059000 0.020000
v 0.200000 -0.459000 0.020000
v 0.200000 -0.459000 -0.020000
v 0.200000 -0.459000 -0.060000
v 0.240000 -0.459000 -0.100000
v 0.120000 -0.459000 0.060000
v 0.160000 -0.459000 -0.060000
v 0.040000 -0.459000 0.060000
v -0.040000 -0.459000 -0.060000
v -0.080000 -0.459000 0.060000
v -0.160000 -0.459000 0.060000
v -0.200000 -0.459000 0.020000
v -0.200000 -0.459000 -0.020000
v 0.160000 -0.459000 0.020000
v 0.080000 -0.459000 -0.020000
v 0.040000 -0.459000 0.020000
v -0.040000 -0.459000 -0.020000
v -0.120000 -0.459000 0.020000
v -0.040000 -0.259000 -0.060000
v -0.120000 -0.259000 -0.060000
v 0.200000 -0.219000 -0.020000
v 0.160000 -0.219000 -0.100000
v 0.120000 -0.219000 0.060000
v -0.040000 -0.219000 0.060000
v -0.160000 -0.219000 0.060000
v -0.200000 -0.219000 0.060000
v -0.160000 -0.219000 -0.060000
v -0.200000 -0.219000 -0.020000
v 0.200000 -0.059000 -0.020000
v 0.160000 -0.059000 -0.020000
v 0.120000 -0.059000 -0.020000
v 0.120000 -0.019000 -0.020000
v 0.080000 -0.019000 -0.060000
v 0.000000 -0.019000 0.060000
v -0.040000 -0.019000 -0.060000
v -0.040000 -0.019000 0.020000
v -0.080000 -0.019000 0.020000
v -0.120000 -0.019000 -0.020000
v -0.120000 -0.019000 -0.060000
v -0.160000 -0.019000 -0.020000
v 0.200000 0.021000 0.020000
v 0.080000 0.021000 0.020000
v -0.160000 0.021000 0.020000
v -0.200000 0.021000 -0.020000
v -0.200000 0.021000 0.020000
vt 0.837838 0.297297
vt 0.864865 0.000000
vt 0.837838 0.000000
vt 0.243243 0.810811
vt 0.216216 0.837838
vt 0.216216 0.810811
vt 0.567568 0.324324
vt 0.540541 0.162162
vt 0.540541 0.324324
vt 0.702703 0.594595
vt 0.675676 0.621622
vt 0.675676 0.594595
vt 0.891892 0.000000
vt 0.891892 0.162162
vt 0.108108 0.702703
vt 0.108108 0.486486
vt 0.135135 0.486486
vt 0.189189 0.810811
vt 0.162162 0.837838
vt 0.162162 0.810811
vt 0.432432 0.729730
vt 0.405405 0.513513
vt 0.432432 0.513513
vt 0.648649 0.594595
vt 0.621622 0.621622
vt 0.621622 0.594595
vt 0.270270 0.027027
vt 0.243243 0.162162
vt 0.270270 0.189189
vt 0.081081 0.810811
vt 0.054054 0.810811
vt 0.054054 0.756757
vt 0.000000 0.972973
vt 0.027027 0.810811
vt 0.027027 0.972973
vt 0.810811 0.621622
vt 0.783784 0.621622
vt 0.783784 0.594595
vt 0.270270 0.702703
vt 0.297297 0.486486
vt 0.297297 0.702703
vt 0.405405 0.324324
vt 0.540541 0.162162
vt 0.540541 0.324324
vt 0.243243 0.189189
vt 0.243243 0.324324
vt 0.216216 0.324324
vt 0.891892 0.162162
vt 0.918919 0.000000
vt 0.918919 0.216216
vt 0.081081 0.486486
vt 0.081081 0.702703
vt 0.216216 0.648649
vt 0.216216 0.621621
vt 0.189189 0.756757
vt 0.891892 0.891892
vt 0.918919 0.594595
vt 0.918919 0.891892
vt 0.783784 0.297297
vt 0.810811 0.297297
vt 0.810811 0.162162
vt 0.513513 0.513513
vt 0.540541 0.351351
vt 0.540541 0.513513
vt 0.648649 0.837838
vt 0.675676 0.675676
vt 0.675676 0.837838
vt 0.945946 0.756757
vt 0.918919 0.594595
vt 0.918919 0.756757
vt 0.810811 0.324324
vt 0.891892 0.594595
vt 0.891892 0.324324
vt 0.810811 0.864865
vt 0.783784 0.837838
vt 0.783784 0.783784
vt 0.027027 0.027027
vt 0.000000 0.000000
vt 0.054054 0.027027
vt 0.405405 0.810811
vt 0.378378 0.837838
vt 0.378378 0.810811
vt 0.513513 0.351351
vt 0.594595 0.324324
vt 0.486486 0.351351
vt 0.351351 0.783784
vt 0.378378 0.513513
vt 0.378378 0.783784
vt 0.702703 0.378378
vt 0.675676 0.405405
vt 0.675676 0.378378
vt 0.135135 0.810811
vt 0.162162 0.810811
vt 0.162162 0.756757
vt 0.081081 0.162162
vt 0.135135 0.027027
vt 0.081081 0.027027
vt 0.351351 0.513513
vt 0.378378 0.351351
vt 0.378378 0.513513
vt 0.378378 0.810811
vt 0.351351 0.837838
vt 0.351351 0.810811
vt 0.405405 0.729730
vt 0.324324 0.810811
vt 0.297297 0.837838
vt 0.297297 0.810811
vt 0.675676 0.540541
vt 0.675676 0.567568
vt 0.648649 0.567568
vt 0.729730 0.324324
vt 0.594595 0.324324
vt 0.675676 0.351351
vt 0.216216 0.027027
vt 0.162162 0.162162
vt 0.216216 0.162162
vt 0.270270 0.810811
vt 0.243243 0.837838
vt 0.243243 0.810811
vt 0.972973 0.162162
vt 0.945946 0.000000
vt 0.972973 0.000000
vt 0.459459 0.810811
vt 0.432432 0.837838
vt 0.432432 0.810811
vt 0.675676 0.486486
vt 0.648649 0.486486
vt 0.675676 0.459459
vt 0.756757 0.648649
vt 0.729730 0.675676
vt 0.702703 0.675676
vt 0.594595 0.000000
vt 0.270270 0.162162
vt 0.594595 0.162162
vt 0.918919 0.459459
vt 0.918919 0.594595
vt 0.945946 0.594595
vt 0.945946 0.918919
vt 0.918919 0.756757
vt 0.918919 0.918919
vt 0.162162 0.918919
vt 0.135135 0.810811
vt 0.135135 0.918919
vt 0.351351 0.513513
vt 0.324324 0.675676
vt 0.027027 0.756757
vt 0.054054 0.486486
vt 0.027027 0.486486
vt 0.297297 0.810811
vt 0.270270 0.837838
vt 0.270270 0.810811
vt 0.027027 0.162162
vt 0.486486 0.810811
vt 0.513513 0.810811
vt 0.513513 0.648649
vt 0.756757 0.810811
vt 0.756757 0.648649
vt 0.783784 0.648649
vt 0.675676 0.648649
vt 0.594595 0.648649
vt 0.621622 0.675676
vt 0.270270 0.162162
vt 0.405405 0.324324
vt 0.405405 0.162162
vt 0.837838 0.135135
vt 0.810811 0.135135
vt 0.270270 0.459459
vt 0.054054 0.459459
vt 0.324324 0.324324
vt 0.918919 0.432432
vt 0.918919 0.594595
vt 0.891892 0.594595
vt 0.648649 0.378378
vt 0.648649 0.351351
vt 0.513514 0.783784
vt 0.540541 0.513513
vt 0.540541 0.783784
vt 0.756757 0.270270
vt 0.783784 0.000000
vt 0.594595 0.837838
vt 0.621622 0.837838
vt 0.081081 0.918919
vt 0.108108 0.810811
vt 0.081081 0.810811
vt 0.459459 0.513513
vt 0.486486 0.513513
vt 0.594595 0.324324
vt 0.567567 0.162162
vt 0.594595 0.162162
vt 0.594595 0.810811
vt 0.567567 0.837838
vt 0.567567 0.810811
vt 0.810811 0.756757
vt 0.837838 0.864865
vt 0.864865 0.891892
vt 0.162162 0.864865
vt 0.189189 0.837838
vt 0.162162 0.837838
vt 0.729730 0.486486
vt 0.756757 0.324324
vt 0.756757 0.594595
vt 0.432432 0.675676
vt 0.432432 0.513513
vt 0.486486 0.513513
vt 0.864865 0.594595
vt 0.864865 0.891892
vt 0.567567 0.513513
vt 0.594595 0.648649
vt 0.567567 0.810811
vt 0.621622 0.405405
vt 0.621622 0.378378
vt 0.594595 0.513513
vt 0.567568 0.351351
vt 0.594595 0.351351
vt 0.162162 0.486486
vt 0.189189 0.486486
vt 0.027027 0.945946
vt 0.054054 0.810811
vt 0.027027 0.810811
vt 0.351351 0.810811
vt 0.324324 0.837838
vt 0.324324 0.810811
vt 0.945946 0.000000
vt 0.270270 0.486486
vt 0.243243 0.486486
vt 0.243243 0.648649
vt 0.729730 0.648649
vt 0.702703 0.621622
vt 0.216216 0.810811
vt 0.189189 0.837838
vt 0.189189 0.810811
vt 0.783784 0.324324
vt 0.000000 0.810811
vt 0.000000 0.648649
vt 0.432432 0.810811
vt 0.405405 0.837838
vt 0.405405 0.810811
vt 0.567568 0.675676
vt 0.081081 0.918919
vt 0.054054 0.810811
vt 0.081081 0.810811
vt 0.405405 0.513513
vt 0.432432 0.351351
vt 0.432432 0.513513
vt 0.594595 0.000000
vt 0.729730 0.000000
vt 0.675676 0.027027
vt 0.513514 0.810811
vt 0.486486 0.837838
vt 0.486486 0.810811
vt 0.324324 0.621621
vt 0.324324 0.486486
vt 0.135135 0.918919
vt 0.108108 0.810811
vt 0.135135 0.810811
vt 0.648649 0.432432
vt 0.621622 0.459459
vt 0.621622 0.432432
vt 0.486487 0.810811
vt 0.459459 0.837838
vt 0.459459 0.810811
vt 0.756757 0.000000
vt 0.729730 0.162162
vt 0.729730 0.837838
vt 0.702703 0.837838
vt 0.864865 0.297297
vt 0.243243 0.837838
vt 0.567568 0.162162
vt 0.891892 0.324324
vt 0.864865 0.324324
vt 0.135135 0.783784
vt 0.108108 0.783784
vt 0.189189 0.837838
vt 0.648649 0.621622
vt 0.243243 0.027027
vt 0.000000 0.810811
vt 0.810811 0.459459
vt 0.810811 0.324324
vt 0.405405 0.162162
vt 0.918919 0.297297
vt 0.891892 0.297297
vt 0.891892 0.000000
vt 0.243243 0.648649
vt 0.243243 0.621621
vt 0.216216 0.486486
vt 0.216216 0.756757
vt 0.891892 0.594595
vt 0.810811 0.000000
vt 0.648649 0.675676
vt 0.945946 0.594595
vt 0.810811 0.594595
vt 0.783784 0.702703
vt 0.783784 0.675676
vt 0.810811 0.648649
vt 0.783784 0.648649
vt 0.783784 0.756757
vt 0.783784 0.864865
vt 0.270270 0.000000
vt 0.162162 0.027027
vt 0.000000 0.027027
vt 0.405405 0.837838
vt 0.324324 0.351351
vt 0.351351 0.351351
vt 0.324324 0.324324
vt 0.405405 0.351351
vt 0.459459 0.351351
vt 0.702703 0.405405
vt 0.135135 0.648649
vt 0.135135 0.486486
vt 0.135135 0.162162
vt 0.378378 0.837838
vt 0.378378 0.810811
vt 0.405405 0.810811
vt 0.324324 0.837838
vt 0.621622 0.567568
vt 0.621622 0.540541
vt 0.675676 0.513514
vt 0.702703 0.513514
vt 0.702703 0.567568
vt 0.621622 0.486486
vt 0.702703 0.432432
vt 0.702703 0.486486
vt 0.702703 0.351351
vt 0.621622 0.351351
vt 0.270270 0.837838
vt 0.945946 0.162162
vt 0.459459 0.837838
vt 0.621622 0.513514
vt 0.648649 0.459459
vt 0.675676 0.432432
vt 0.675676 0.675676
vt 0.675676 0.648649
vt 0.756757 0.675676
vt 0.270270 0.000000
vt 0.945946 0.297297
vt 0.918919 0.297297
vt 0.945946 0.756757
vt 0.162162 0.810811
vt 0.324324 0.513513
vt 0.324324 0.783784
vt 0.297297 0.837838
vt 0.054054 0.162162
vt 0.513513 0.513513
vt 0.783784 0.918919
vt 0.756757 0.918919
vt 0.594595 0.675676
vt 0.270270 0.324324
vt 0.837838 0.162162
vt 0.054054 0.486486
vt 0.000000 0.486486
vt 0.000000 0.324324
vt 0.324324 0.486486
vt 0.270270 0.486486
vt 0.891892 0.297297
vt 0.918919 0.297297
vt 0.513514 0.513513
vt 0.783784 0.324324
vt 0.756757 0.324324
vt 0.108108 0.918919
vt 0.567567 0.324324
vt 0.594595 0.837838
vt 0.864865 0.594595
vt 0.810811 0.594595
vt 0.810811 0.864865
vt 0.837838 0.891892
vt 0.189189 0.864865
vt 0.756757 0.648649
vt 0.729730 0.648649
vt 0.729730 0.324324
vt 0.459459 0.810811
vt 0.459459 0.783784
vt 0.432432 0.783784
vt 0.594595 0.513513
vt 0.594595 0.810811
vt 0.648649 0.405405
vt 0.567568 0.513513
vt 0.054054 0.945946
vt 0.351351 0.837838
vt 0.945946 0.216216
vt 0.243243 0.810811
vt 0.270270 0.810811
vt 0.594595 0.648649
vt 0.216216 0.837838
vt 0.000000 0.486486
vt 0.027027 0.810811
vt 0.432432 0.837838
vt 0.540541 0.837838
vt 0.567568 0.513513
vt 0.054054 0.918919
vt 0.621622 0.189189
vt 0.621622 0.216216
vt 0.594595 0.324324
vt 0.621622 0.243243
vt 0.621622 0.162162
vt 0.621622 0.270270
vt 0.621622 0.297297
vt 0.621622 0.135135
vt 0.621622 0.081081
vt 0.621622 0.108108
vt 0.621622 0.027027
vt 0.621622 0.054054
vt 0.648649 0.027027
vt 0.702703 0.027027
vt 0.648649 0.297297
vt 0.675676 0.297297
vt 0.729730 0.324324
vt 0.702703 0.297297
vt 0.702703 0.270270
vt 0.729730 0.270270
vt 0.729730 0.054054
vt 0.702703 0.054054
vt 0.513514 0.837838
vt 0.297297 0.783784
vt 0.324324 0.783784
vt 0.108108 0.918919
vt 0.486487 0.837838
vt 0.729730 0.000000
vt 0.729730 0.270270
vn 0.0000 0.0000 1.0000
vn 0.0000 1.0000 0.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
usemtl fries_Material
s off
f 125/1/1 74/2/1 40/3/1
f 56/4/2 86/5/2 12/6/2
f 17/7/1 110/8/1 63/9/1
f 21/10/2 100/11/2 74/12/2
f 74/2/3 100/13/3 115/14/3
f 52/15/3 103/16/3 72/17/3
f 59/18/2 61/19/2 60/20/2
f 31/21/3 102/22/3 71/23/3
f 73/24/2 42/25/2 98/26/2
f 66/27/1 47/28/1 10/29/1
f 129/30/3 37/31/3 54/32/3
f 57/33/3 27/34/3 120/35/3
f 57/36/4 119/37/4 118/38/4
f 83/39/4 102/40/4 51/41/4
f 44/42/4 92/43/4 45/44/4
f 114/45/3 35/46/3 126/47/3
f 50/48/4 103/49/4 52/50/4
f 52/15/1 70/51/1 83/52/1
f 78/53/5 79/54/5 117/55/5
f 61/56/3 23/57/3 34/58/3
f 127/59/5 35/60/5 114/61/5
f 29/62/3 24/63/3 28/64/3
f 115/65/4 66/66/4 10/67/4
f 131/68/5 9/69/5 132/70/5
f 38/71/6 20/72/6 18/73/6
f 26/74/2 107/75/2 106/76/2
f 94/77/3 18/78/3 19/79/3
f 117/80/2 54/81/2 32/82/2
f 97/83/1 65/84/1 4/85/1
f 117/86/3 69/87/3 118/88/3
f 94/89/2 69/90/2 22/91/2
f 16/92/5 36/93/5 32/94/5
f 27/95/1 39/96/1 6/97/1
f 77/98/3 93/99/3 110/100/3
f 37/101/2 17/102/2 63/103/2
f 51/104/1 69/87/1 118/88/1
f 51/105/2 52/106/2 83/107/2
f 23/108/2 40/109/2 105/110/2
f 92/111/6 5/112/6 90/113/6
f 41/114/1 106/115/1 107/116/1
f 57/117/2 13/118/2 119/119/2
f 122/120/3 46/121/3 106/122/3
f 61/123/2 124/124/2 123/125/2
f 7/126/2 72/127/2 71/128/2
f 18/129/4 90/130/4 89/131/4
f 8/132/1 44/133/1 81/134/1
f 80/135/5 121/136/5 33/137/5
f 16/138/1 11/139/1 62/140/1
f 85/141/1 111/142/1 55/143/1
f 22/144/1 108/145/1 117/86/1
f 32/146/1 68/147/1 101/148/1
f 53/149/2 117/150/2 116/151/2
f 79/152/1 19/79/1 94/77/1
f 61/153/5 122/154/5 106/155/5
f 28/156/4 24/157/4 105/158/4
f 20/159/5 65/160/5 99/161/5
f 8/162/5 30/163/5 75/164/5
f 26/165/4 114/61/4 47/166/4
f 26/167/3 25/168/3 75/169/3
f 107/170/4 126/171/4 125/172/4
f 90/113/2 101/173/2 89/174/2
f 56/175/3 73/176/3 87/177/3
f 87/178/4 74/179/4 127/59/4
f 113/180/4 99/161/4 9/181/4
f 12/182/1 112/183/1 28/184/1
f 80/185/3 4/85/3 111/186/3
f 128/187/4 11/188/4 76/189/4
f 64/190/2 132/191/2 130/192/2
f 29/193/5 88/194/5 34/195/5
f 123/196/1 88/197/1 15/198/1
f 110/199/4 68/200/4 54/201/4
f 111/202/4 4/203/4 104/204/4
f 61/56/1 7/205/1 60/206/1
f 7/207/4 46/208/4 60/209/4
f 101/173/2 93/210/2 67/211/2
f 113/212/3 98/213/3 42/214/3
f 117/55/4 101/215/4 22/216/4
f 14/217/1 80/218/1 50/219/1
f 69/220/2 70/221/2 68/222/2
f 52/50/5 71/223/5 103/49/5
f 70/224/5 2/225/5 82/226/5
f 75/227/6 21/10/6 66/228/6
f 126/229/2 127/230/2 125/231/2
f 54/201/5 69/232/5 68/200/5
f 32/146/3 128/233/3 76/234/3
f 128/235/2 16/236/2 62/237/2
f 9/238/1 73/176/1 87/177/1
f 53/239/4 108/240/4 49/241/4
f 82/242/3 95/243/3 50/244/3
f 44/245/2 45/246/2 108/247/2
f 58/248/2 121/249/2 14/250/2
f 27/251/5 6/252/5 102/40/5
f 84/253/3 49/254/3 78/255/3
f 70/256/2 95/257/2 2/258/2
f 15/259/2 85/260/2 55/261/2
f 73/262/5 112/263/5 87/178/5
f 108/264/5 89/131/5 76/265/5
f 125/1/1 127/266/1 74/2/1
f 56/4/2 87/267/2 86/5/2
f 17/7/1 82/268/1 110/8/1
f 21/10/2 66/228/2 100/11/2
f 115/14/3 131/269/3 127/266/3
f 131/269/3 64/270/3 127/266/3
f 127/266/3 74/2/3 115/14/3
f 72/17/3 33/271/3 52/15/3
f 33/271/3 58/272/3 52/15/3
f 59/18/2 122/273/2 61/19/2
f 31/21/3 51/104/3 102/22/3
f 73/24/2 99/274/2 42/25/2
f 21/275/1 47/28/1 66/27/1
f 47/28/1 114/45/1 10/29/1
f 54/32/3 68/147/3 83/52/3
f 68/147/3 70/51/3 83/52/3
f 83/52/3 129/30/3 54/32/3
f 57/33/3 43/276/3 27/34/3
f 118/38/4 69/232/4 43/277/4
f 69/232/4 19/278/4 43/277/4
f 43/277/4 57/36/4 118/38/4
f 83/39/4 70/224/4 102/40/4
f 44/42/4 5/279/4 92/43/4
f 126/47/3 107/116/3 114/45/3
f 107/116/3 47/28/3 114/45/3
f 58/280/4 14/281/4 52/50/4
f 14/281/4 50/48/4 52/50/4
f 50/48/4 95/282/4 103/49/4
f 52/15/1 103/16/1 70/51/1
f 78/53/5 109/283/5 25/284/5
f 79/54/5 94/285/5 22/216/5
f 78/53/5 25/284/5 79/54/5
f 117/55/5 84/286/5 78/53/5
f 79/54/5 22/216/5 117/55/5
f 61/56/3 104/287/3 23/57/3
f 114/61/5 47/166/5 127/59/5
f 47/166/5 21/288/5 74/179/5
f 127/59/5 47/166/5 74/179/5
f 29/62/3 97/83/3 24/63/3
f 115/65/4 100/289/4 66/66/4
f 131/68/5 115/290/5 9/69/5
f 38/71/6 65/291/6 20/72/6
f 27/292/2 43/293/2 25/294/2
f 43/293/2 79/295/2 25/294/2
f 27/292/2 25/294/2 46/296/2
f 25/294/2 26/74/2 46/296/2
f 26/74/2 47/297/2 107/75/2
f 106/76/2 46/296/2 26/74/2
f 66/27/3 21/275/3 20/298/3
f 21/275/3 41/114/3 20/298/3
f 96/299/3 39/96/3 20/298/3
f 39/96/3 6/97/3 18/78/3
f 20/298/3 39/96/3 18/78/3
f 6/97/3 19/79/3 18/78/3
f 20/298/3 41/114/3 96/299/3
f 91/300/3 18/78/3 94/77/3
f 117/80/2 118/301/2 54/81/2
f 1/302/1 67/303/1 38/304/1
f 67/303/1 93/99/1 38/304/1
f 2/305/1 95/243/1 38/304/1
f 95/243/1 3/306/1 38/304/1
f 3/306/1 4/85/1 65/84/1
f 38/304/1 3/306/1 65/84/1
f 38/304/1 93/99/1 2/305/1
f 42/214/1 65/84/1 98/213/1
f 98/213/1 65/84/1 24/63/1
f 97/83/1 24/63/1 65/84/1
f 117/86/3 22/144/3 69/87/3
f 94/89/2 19/307/2 69/90/2
f 32/94/5 101/215/5 77/308/5
f 101/215/5 67/309/5 77/308/5
f 77/308/5 16/92/5 32/94/5
f 27/95/1 46/310/1 39/96/1
f 77/98/3 67/303/3 93/99/3
f 37/101/2 129/311/2 17/102/2
f 119/312/1 13/313/1 118/88/1
f 13/313/1 51/104/1 118/88/1
f 51/104/1 102/22/1 69/87/1
f 51/105/2 31/314/2 52/106/2
f 24/315/2 97/316/2 105/110/2
f 97/316/2 23/108/2 105/110/2
f 23/108/2 104/317/2 96/318/2
f 96/318/2 41/319/2 23/108/2
f 41/319/2 40/109/2 23/108/2
f 40/109/2 74/12/2 73/24/2
f 40/109/2 73/24/2 105/110/2
f 5/112/6 3/320/6 95/257/6
f 2/258/6 93/210/6 5/112/6
f 93/210/6 67/211/6 5/112/6
f 5/112/6 95/257/6 2/258/6
f 6/321/6 39/322/6 92/111/6
f 91/323/6 94/89/6 92/111/6
f 94/89/6 19/307/6 92/111/6
f 19/307/6 6/321/6 92/111/6
f 1/324/6 89/174/6 5/112/6
f 89/174/6 90/113/6 5/112/6
f 5/112/6 67/211/6 1/324/6
f 90/113/6 91/323/6 92/111/6
f 41/114/1 96/299/1 106/115/1
f 57/117/2 120/325/2 13/118/2
f 122/120/3 59/326/3 46/121/3
f 61/123/2 34/327/2 124/124/2
f 104/317/2 4/328/2 72/127/2
f 4/328/2 3/320/2 72/127/2
f 72/127/2 103/329/2 71/128/2
f 6/321/2 39/322/2 71/128/2
f 39/322/2 7/126/2 71/128/2
f 7/126/2 104/317/2 72/127/2
f 71/128/2 102/330/2 6/321/2
f 1/331/4 38/332/4 89/131/4
f 38/332/4 18/129/4 89/131/4
f 18/129/4 91/333/4 90/130/4
f 8/132/1 5/334/1 44/133/1
f 33/137/5 72/335/5 80/135/5
f 72/335/5 3/336/5 80/135/5
f 16/138/1 77/337/1 11/139/1
f 85/141/1 29/338/1 111/142/1
f 90/339/1 108/145/1 22/144/1
f 108/145/1 116/340/1 117/86/1
f 32/146/1 54/32/1 68/147/1
f 53/149/2 84/341/2 117/150/2
f 79/152/1 43/342/1 19/79/1
f 96/343/5 104/204/5 106/155/5
f 104/204/5 61/153/5 106/155/5
f 105/158/4 56/344/4 28/156/4
f 56/344/4 12/345/4 28/156/4
f 42/346/5 99/161/5 65/160/5
f 99/161/5 100/289/5 20/159/5
f 100/289/5 66/66/5 20/159/5
f 8/162/5 81/347/5 30/163/5
f 26/165/4 48/348/4 114/61/4
f 25/168/3 109/349/3 45/350/3
f 45/350/3 92/351/3 25/168/3
f 92/351/3 75/169/3 25/168/3
f 75/169/3 30/352/3 26/167/3
f 30/352/3 48/353/3 26/167/3
f 125/172/4 40/354/4 107/170/4
f 40/354/4 41/355/4 107/170/4
f 90/113/2 22/91/2 101/173/2
f 56/175/3 105/356/3 73/176/3
f 64/357/4 130/358/4 127/59/4
f 130/358/4 87/178/4 127/59/4
f 87/178/4 73/262/4 74/179/4
f 113/180/4 42/346/4 99/161/4
f 12/182/1 86/359/1 112/183/1
f 80/185/3 3/306/3 4/85/3
f 128/187/4 62/360/4 11/188/4
f 64/190/2 131/361/2 132/191/2
f 34/195/5 23/362/5 29/193/5
f 23/362/5 97/363/5 29/193/5
f 29/193/5 85/364/5 88/194/5
f 88/194/5 124/365/5 34/195/5
f 123/196/1 124/366/1 88/197/1
f 37/367/4 63/368/4 54/201/4
f 63/368/4 110/199/4 54/201/4
f 110/199/4 93/369/4 68/200/4
f 104/204/4 61/153/4 111/202/4
f 61/153/4 123/370/4 15/371/4
f 15/371/4 55/372/4 111/202/4
f 61/153/4 15/371/4 111/202/4
f 61/56/1 104/287/1 7/205/1
f 39/373/4 46/208/4 7/207/4
f 46/208/4 59/374/4 60/209/4
f 101/173/2 68/375/2 93/210/2
f 113/212/3 112/376/3 98/213/3
f 117/55/4 32/94/4 101/215/4
f 14/217/1 121/377/1 80/218/1
f 69/220/2 102/378/2 70/221/2
f 52/50/5 31/379/5 71/223/5
f 82/226/5 17/380/5 83/39/5
f 17/380/5 129/381/5 83/39/5
f 83/39/5 70/224/5 82/226/5
f 42/25/6 98/26/6 8/382/6
f 98/26/6 24/315/6 8/382/6
f 97/316/6 4/328/6 8/382/6
f 4/328/6 3/320/6 8/382/6
f 8/382/6 3/320/6 5/112/6
f 24/315/6 97/316/6 8/382/6
f 75/227/6 92/111/6 39/322/6
f 96/318/6 41/319/6 75/227/6
f 41/319/6 21/10/6 75/227/6
f 75/227/6 39/322/6 96/318/6
f 100/11/6 99/274/6 75/227/6
f 99/274/6 42/25/6 8/382/6
f 75/227/6 99/274/6 8/382/6
f 66/228/6 100/11/6 75/227/6
f 126/229/2 35/383/2 127/230/2
f 54/201/5 118/38/5 69/232/5
f 89/384/3 101/148/3 76/234/3
f 101/148/3 32/146/3 76/234/3
f 32/146/3 36/385/3 128/233/3
f 128/235/2 36/386/2 16/236/2
f 130/387/1 132/191/1 87/177/1
f 132/191/1 9/238/1 87/177/1
f 9/238/1 99/388/1 73/176/1
f 53/239/4 116/389/4 108/240/4
f 82/242/3 2/305/3 95/243/3
f 111/390/2 29/391/2 81/392/2
f 29/391/2 28/393/2 81/392/2
f 111/390/2 81/392/2 80/394/2
f 28/393/2 112/395/2 81/392/2
f 112/395/2 113/396/2 81/392/2
f 50/397/2 80/394/2 44/245/2
f 44/245/2 80/394/2 81/392/2
f 110/398/2 82/399/2 44/245/2
f 82/399/2 50/397/2 44/245/2
f 11/400/2 77/401/2 44/245/2
f 77/401/2 110/398/2 44/245/2
f 108/247/2 76/402/2 44/245/2
f 76/402/2 11/400/2 44/245/2
f 49/403/2 108/247/2 45/246/2
f 113/396/2 9/404/2 81/392/2
f 9/404/2 115/405/2 30/406/2
f 9/404/2 30/406/2 81/392/2
f 115/405/2 10/407/2 30/406/2
f 10/407/2 114/408/2 48/409/2
f 45/246/2 109/410/2 49/403/2
f 109/410/2 78/411/2 49/403/2
f 10/407/2 48/409/2 30/406/2
f 58/248/2 33/412/2 121/249/2
f 102/40/5 51/41/5 27/251/5
f 51/41/5 13/413/5 120/414/5
f 27/251/5 51/41/5 120/414/5
f 84/253/3 53/415/3 49/254/3
f 70/256/2 103/329/2 95/257/2
f 15/259/2 88/416/2 85/260/2
f 98/417/5 112/263/5 73/262/5
f 112/263/5 86/418/5 87/178/5
f 108/264/5 90/130/5 89/131/5

View file

@ -0,0 +1,81 @@
# Blender v2.83.20 OBJ File: 'x_farming_honey_block.blend'
# www.blender.org
mtllib x_farming_honey.mtl
o Cube
v 0.499000 0.499000 -0.499000
v 0.499000 -0.499000 -0.499000
v 0.499000 0.499000 0.499000
v 0.499000 -0.499000 0.499000
v -0.499000 0.499000 -0.499000
v -0.499000 -0.499000 -0.499000
v -0.499000 0.499000 0.499000
v -0.499000 -0.499000 0.499000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 0.500000
vt 1.000000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt 1.000000 1.000000
vt 1.000000 0.500000
vt -0.000000 1.000000
vt 1.000000 1.000000
vt 1.000000 0.500000
vt -0.000000 1.000000
vt -0.000000 0.500000
vt -0.000000 0.500000
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
usemtl Material
s off
f 1/1/1 5/2/1 7/3/1 3/4/1
f 4/5/2 3/6/2 7/7/2 8/8/2
f 8/8/3 7/7/3 5/9/3 6/10/3
f 6/11/4 2/12/4 4/5/4 8/8/4
f 2/13/5 1/1/5 3/14/5 4/15/5
f 6/16/6 5/2/6 1/1/6 2/13/6
o Cube.001
v 0.400000 0.400000 -0.400000
v 0.400000 -0.400000 -0.400000
v 0.400000 0.400000 0.400000
v 0.400000 -0.400000 0.400000
v -0.400000 0.400000 -0.400000
v -0.400000 -0.400000 -0.400000
v -0.400000 0.400000 0.400000
v -0.400000 -0.400000 0.400000
vt 0.937500 0.468750
vt 0.062500 0.468750
vt 0.062500 0.031250
vt 0.937500 0.031250
vt 0.937500 0.031250
vt 0.937500 0.468750
vt 0.062500 0.468750
vt 0.062500 0.031250
vt 0.937500 0.468750
vt 0.937500 0.031250
vt 0.062500 0.468750
vt 0.937500 0.468750
vt 0.937500 0.031250
vt 0.062500 0.468750
vt 0.062500 0.031250
vt 0.062500 0.031250
vn 0.0000 1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn -1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 0.0000 -1.0000
usemtl Material
s off
f 9/17/7 13/18/7 15/19/7 11/20/7
f 12/21/8 11/22/8 15/23/8 16/24/8
f 16/24/9 15/23/9 13/25/9 14/26/9
f 14/27/10 10/28/10 12/21/10 16/24/10
f 10/29/11 9/17/11 11/30/11 12/31/11
f 14/32/12 13/18/12 9/17/12 10/29/12

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,278 @@
# Blender v2.83.20 OBJ File: 'x_farming_melon_slush.blend'
# www.blender.org
mtllib x_farming_melon_slush.mtl
o jar_x_farming_melon_slush.vox.003
v -0.390000 -0.499000 0.390000
v -0.390000 -0.499000 -0.390000
v 0.390000 0.151000 0.390000
v 0.390000 -0.499000 0.390000
v 0.390000 -0.499000 -0.390000
v -0.390000 0.151000 -0.390000
v 0.260000 -0.369000 0.260000
v -0.260000 -0.369000 0.260000
v -0.260000 -0.369000 -0.260000
v 0.260000 -0.369000 -0.260000
v 0.260000 0.151000 -0.260000
v -0.260000 0.151000 -0.260000
v 0.390000 0.151000 -0.390000
v 0.260000 0.151000 0.260000
v -0.260000 0.151000 0.260000
v -0.390000 0.151000 0.390000
v 0.390000 0.151000 -0.260000
v -0.260000 0.151000 0.390000
v -0.257400 0.281650 -0.257400
v -0.257400 0.281650 0.257400
v 0.257400 0.281650 0.257400
v 0.257400 0.281650 -0.257400
v -0.257400 -0.368350 0.257400
v -0.257400 -0.368350 -0.257400
v 0.257400 -0.368350 -0.257400
v 0.257400 -0.368350 0.257400
v 0.057082 -0.365285 -0.065000
v 0.172156 -0.305188 -0.065000
v 0.172156 -0.305188 0.065000
v 0.057082 -0.365285 0.065000
v -0.300270 0.376413 0.065000
v -0.185196 0.436511 0.065000
v -0.300270 0.376413 -0.065000
v -0.185196 0.436511 -0.065000
v 0.257400 0.151650 -0.257400
v 0.257400 -0.043350 -0.257400
v 0.257400 -0.173350 -0.257400
v 0.257400 -0.173350 0.257400
v 0.257400 -0.043350 0.257400
v 0.257400 0.151650 0.257400
v -0.257400 -0.173350 0.257400
v -0.257400 -0.043350 0.257400
v -0.257400 0.151650 0.257400
v -0.257400 -0.173350 -0.257400
v -0.257400 -0.043350 -0.257400
v -0.257400 0.151650 -0.257400
vt 0.375000 1.000000
vt 0.750000 0.812500
vt 0.375000 0.812500
vt 0.375000 0.531250
vt 0.000000 0.375000
vt 0.000000 0.531250
vt 0.000000 0.843750
vt 0.375000 0.687500
vt 0.375000 0.843750
vt 0.375000 0.687500
vt 0.000000 0.531250
vt 0.375000 0.531250
vt 0.000000 1.000000
vt 0.375000 0.843750
vt 0.000000 0.843750
vt 0.875000 0.500000
vt 0.625000 0.375000
vt 0.625000 0.500000
vt 0.375000 0.625000
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.625000 0.625000
vt 0.875000 0.500000
vt 0.875000 0.625000
vt 0.375000 0.500000
vt 0.625000 0.375000
vt 0.625000 0.500000
vt 0.750000 0.781250
vt 0.687500 0.781250
vt 0.687500 0.656250
vt 0.437500 0.781250
vt 0.375000 0.812500
vt 0.625000 0.375000
vt 0.375000 0.250000
vt 0.625000 0.250000
vt 0.062500 0.125000
vt 0.000000 0.375000
vt 0.062500 0.375000
vt 0.250000 0.125000
vt 0.187500 0.375000
vt 0.250000 0.375000
vt 0.062500 0.375000
vt 0.125000 0.125000
vt 0.125000 0.375000
vt 0.187500 0.375000
vt 0.250000 0.343750
vt 0.312500 0.375000
vt 0.250000 0.343750
vt 0.312500 0.312500
vt 0.250000 0.312500
vt 0.750000 1.000000
vt 0.375000 0.375000
vt 0.000000 0.687500
vt 0.000000 0.687500
vt 0.375000 1.000000
vt 0.875000 0.375000
vt 0.625000 0.625000
vt 0.625000 0.500000
vt 0.375000 0.375000
vt 0.437500 0.656250
vt 0.437500 0.625000
vt 0.750000 0.625000
vt 0.375000 0.625000
vt 0.750000 0.812500
vt 0.375000 0.375000
vt 0.000000 0.125000
vt 0.187500 0.125000
vt 0.062500 0.125000
vt 0.187500 0.125000
vt 0.312500 0.343750
vt 0.312500 0.343750
vt 0.500000 0.375000
vt 0.250000 0.625000
vt 0.250000 0.375000
vt 0.500000 0.375000
vt 0.750000 0.625000
vt 0.500000 0.625000
vt 0.250000 0.875000
vt 0.500000 0.625000
vt 0.250000 0.625000
vt 0.250000 0.531250
vt 0.000000 0.625000
vt 0.250000 0.625000
vt 0.250000 0.468750
vt 0.000000 0.531250
vt 0.000000 0.375000
vt 0.250000 0.375000
vt 0.250000 0.312500
vt 0.000000 0.375000
vt 0.250000 0.375000
vt 0.250000 0.218750
vt 0.000000 0.312500
vt 0.250000 0.156250
vt 0.000000 0.218750
vt 0.000000 0.062500
vt 0.250000 0.062500
vt 0.250000 0.312500
vt 0.250000 0.218750
vt 0.500000 0.312500
vt 0.250000 0.156250
vt 0.500000 0.218750
vt 0.500000 0.062500
vt 0.250000 0.062500
vt 0.000000 0.937500
vt 0.250000 1.000000
vt 0.000000 1.000000
vt 0.000000 0.843750
vt 0.250000 0.937500
vt 0.000000 0.781250
vt 0.250000 0.843750
vt 0.250000 0.687500
vt 0.000000 0.687500
vt 0.500000 0.625000
vt 0.750000 0.875000
vt 0.500000 0.875000
vt 0.500000 0.125000
vt 0.750000 0.375000
vt 0.500000 0.375000
vt 0.000000 0.687500
vt 0.250000 0.687500
vt 0.500000 0.625000
vt 0.750000 0.375000
vt 0.500000 0.875000
vt 0.000000 0.468750
vt 0.000000 0.156250
vt 0.500000 0.156250
vt 0.250000 0.781250
vt 0.750000 0.625000
vt 0.750000 0.125000
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 1.0000 0.0000
vn -0.9009 -0.4341 0.0000
vn 0.9009 0.4341 0.0000
vn -0.4629 0.8864 0.0000
vn 0.4629 -0.8864 0.0000
g jar_x_farming_melon_slush.vox.003_glass_with_straw
usemtl glass_with_straw
s off
f 2/1/1 4/2/1 1/3/1
f 13/4/2 2/5/2 6/6/2
f 16/7/3 4/8/3 3/9/3
f 13/10/4 4/11/4 5/12/4
f 16/13/5 2/14/5 1/15/5
f 14/16/2 8/17/2 15/18/2
f 14/19/5 10/20/5 7/21/5
f 12/22/3 10/23/3 11/24/3
f 15/25/4 9/26/4 12/27/4
f 17/28/6 11/29/6 14/30/6
f 12/31/6 11/29/6 6/32/6
f 10/33/6 8/34/6 7/35/6
f 28/36/2 33/37/2 34/38/2
f 27/39/7 31/40/7 33/41/7
f 31/42/3 29/43/3 32/44/3
f 29/43/8 34/45/8 32/44/8
f 31/46/9 34/47/9 33/41/9
f 27/48/10 29/49/10 30/50/10
f 2/1/1 5/51/1 4/2/1
f 13/4/2 5/52/2 2/5/2
f 16/7/3 1/53/3 4/8/3
f 13/10/4 3/54/4 4/11/4
f 16/13/5 6/55/5 2/14/5
f 14/16/2 7/56/2 8/17/2
f 14/19/5 11/57/5 10/20/5
f 12/22/3 9/58/3 10/23/3
f 15/25/4 8/59/4 9/26/4
f 15/60/6 18/61/6 14/30/6
f 18/61/6 3/62/6 14/30/6
f 3/62/6 17/28/6 14/30/6
f 6/32/6 16/63/6 15/60/6
f 16/63/6 18/61/6 15/60/6
f 15/60/6 12/31/6 6/32/6
f 17/28/6 13/64/6 11/29/6
f 13/64/6 6/32/6 11/29/6
f 10/33/6 9/65/6 8/34/6
f 28/36/2 27/66/2 33/37/2
f 27/39/7 30/67/7 31/40/7
f 31/42/3 30/68/3 29/43/3
f 29/43/8 28/69/8 34/45/8
f 31/46/9 32/70/9 34/47/9
f 27/48/10 28/71/10 29/49/10
g jar_x_farming_melon_slush.vox.003_bites
usemtl bites
f 21/72/6 19/73/6 20/74/6
f 36/75/6 42/76/6 39/77/6
f 24/78/1 26/79/1 23/80/1
f 36/81/2 46/82/2 35/83/2
f 37/84/2 45/85/2 36/81/2
f 24/86/2 37/84/2 25/87/2
f 46/88/5 20/89/5 19/90/5
f 45/91/5 43/92/5 46/88/5
f 44/93/5 42/94/5 45/91/5
f 23/95/5 44/93/5 24/96/5
f 43/97/3 21/72/3 20/74/3
f 42/98/3 40/99/3 43/97/3
f 41/100/3 39/101/3 42/98/3
f 26/102/3 41/100/3 23/103/3
f 40/104/4 22/105/4 21/106/4
f 39/107/4 35/108/4 40/104/4
f 38/109/4 36/110/4 39/107/4
f 25/111/4 38/109/4 26/112/4
f 35/113/6 43/114/6 40/115/6
f 37/116/6 41/117/6 38/118/6
f 35/83/2 19/119/2 22/120/2
f 21/72/6 22/121/6 19/73/6
f 36/75/6 45/122/6 42/76/6
f 24/78/1 25/123/1 26/79/1
f 36/81/2 45/85/2 46/82/2
f 37/84/2 44/124/2 45/85/2
f 24/86/2 44/124/2 37/84/2
f 46/88/5 43/92/5 20/89/5
f 45/91/5 42/94/5 43/92/5
f 44/93/5 41/125/5 42/94/5
f 23/95/5 41/125/5 44/93/5
f 43/97/3 40/99/3 21/72/3
f 42/98/3 39/101/3 40/99/3
f 41/100/3 38/126/3 39/101/3
f 26/102/3 38/126/3 41/100/3
f 40/104/4 35/108/4 22/105/4
f 39/107/4 36/110/4 35/108/4
f 38/109/4 37/127/4 36/110/4
f 25/111/4 37/127/4 38/109/4
f 35/113/6 46/128/6 43/114/6
f 37/116/6 44/129/6 41/117/6
f 35/83/2 46/82/2 19/119/2

View file

@ -0,0 +1,299 @@
# Blender v2.83.20 OBJ File: 'x_farming_cake.blend'
# www.blender.org
mtllib x_farming_pie.mtl
o x_farming_pie
v -0.375000 -0.500000 0.375000
v -0.375000 -0.250000 -0.375000
v -0.125000 -0.250000 0.125000
v -0.125000 -0.187500 0.000000
v -0.125000 -0.187500 -0.125000
v 0.375000 -0.500000 -0.375000
v 0.375000 -0.250000 0.000000
v 0.375000 -0.250000 -0.375000
v 0.125000 -0.187500 0.125000
v 0.125000 -0.250000 0.000000
v 0.125000 -0.187500 0.000000
v 0.375000 -0.500000 0.375000
v -0.375000 -0.250000 0.375000
v 0.000000 -0.250000 0.375000
v -0.125000 -0.187500 0.125000
v 0.125000 -0.250000 0.125000
v -0.125000 -0.250000 -0.125000
v 0.000000 -0.187500 -0.125000
v 0.000000 -0.250000 -0.125000
v 0.125000 -0.187500 -0.125000
v -0.375000 -0.500000 -0.375000
v 0.000000 -0.500000 -0.375000
v 0.375000 -0.250000 0.375000
v 0.000000 -0.250000 0.125000
v -0.125000 -0.250000 0.000000
v -0.375000 -0.250000 0.000000
v 0.125000 -0.250000 -0.125000
v 0.000000 -0.250000 -0.375000
v 0.000000 -0.187500 0.125000
v 0.125000 -0.250000 0.000000
v 0.125000 -0.250000 0.000000
v 0.125000 -0.250000 0.000000
v 0.125000 -0.187500 0.000000
v 0.125000 -0.187500 0.000000
v 0.125000 -0.187500 0.000000
v 0.000000 -0.187500 -0.125000
v 0.000000 -0.187500 -0.125000
v 0.000000 -0.187500 -0.125000
v 0.000000 -0.250000 -0.125000
v 0.000000 -0.250000 -0.125000
v 0.000000 -0.250000 -0.125000
v 0.000000 -0.250000 -0.125000
v -0.375000 -0.500000 0.375000
v -0.375000 -0.500000 0.375000
v -0.375000 -0.500000 0.000000
v -0.375000 -0.500000 0.000000
v -0.375000 -0.500000 -0.375000
v -0.375000 -0.500000 -0.375000
v -0.375000 -0.250000 -0.375000
v -0.375000 -0.250000 -0.375000
v -0.375000 -0.250000 0.375000
v -0.375000 -0.250000 0.375000
v -0.375000 -0.250000 0.000000
v -0.375000 -0.250000 0.000000
v -0.125000 -0.250000 0.125000
v -0.125000 -0.250000 0.125000
v -0.125000 -0.250000 0.125000
v -0.125000 -0.187500 0.125000
v -0.125000 -0.187500 0.125000
v -0.125000 -0.187500 0.000000
v -0.125000 -0.187500 0.000000
v -0.125000 -0.187500 0.000000
v -0.125000 -0.250000 0.000000
v -0.125000 -0.250000 0.000000
v -0.125000 -0.250000 0.000000
v -0.125000 -0.250000 -0.125000
v -0.125000 -0.250000 -0.125000
v -0.125000 -0.250000 -0.125000
v -0.125000 -0.187500 -0.125000
v -0.125000 -0.187500 -0.125000
v 0.375000 -0.500000 0.375000
v 0.375000 -0.500000 0.375000
v 0.375000 -0.500000 0.000000
v 0.375000 -0.500000 0.000000
v 0.375000 -0.500000 -0.375000
v 0.375000 -0.500000 -0.375000
v 0.375000 -0.250000 -0.375000
v 0.375000 -0.250000 -0.375000
v 0.375000 -0.250000 0.375000
v 0.375000 -0.250000 0.375000
v 0.375000 -0.250000 0.000000
v 0.375000 -0.250000 0.000000
v 0.125000 -0.250000 0.125000
v 0.125000 -0.250000 0.125000
v 0.125000 -0.250000 0.125000
v 0.125000 -0.187500 0.125000
v 0.125000 -0.187500 0.125000
v 0.125000 -0.250000 -0.125000
v 0.125000 -0.250000 -0.125000
v 0.125000 -0.250000 -0.125000
v 0.125000 -0.187500 -0.125000
v 0.125000 -0.187500 -0.125000
v 0.000000 -0.500000 0.375000
v 0.000000 -0.500000 0.375000
v 0.000000 -0.250000 0.375000
v 0.000000 -0.250000 0.375000
v 0.000000 -0.250000 0.375000
v 0.000000 -0.187500 0.125000
v 0.000000 -0.187500 0.125000
v 0.000000 -0.187500 0.125000
v 0.000000 -0.250000 0.125000
v 0.000000 -0.250000 0.125000
v 0.000000 -0.250000 0.125000
v 0.000000 -0.250000 0.125000
v 0.000000 -0.500000 -0.375000
v 0.000000 -0.250000 -0.375000
v 0.000000 -0.250000 -0.375000
v 0.000000 -0.250000 -0.375000
vt -0.000000 0.187500
vt 0.062500 0.156250
vt 0.062500 0.187500
vt 0.062500 0.218750
vt -0.000000 0.250000
vt 0.062500 0.250000
vt 0.562500 1.000000
vt 0.750000 0.875000
vt 0.562500 0.875000
vt 0.562500 0.875000
vt 0.375000 0.875000
vt 0.375000 0.750000
vt 0.062500 0.218750
vt 0.125000 0.187500
vt 0.125000 0.218750
vt 0.125000 0.125000
vt 0.062500 0.156250
vt 0.125000 0.156250
vt 0.562500 0.625000
vt 0.750000 0.750000
vt 0.562500 0.750000
vt 0.062500 0.187500
vt 0.125000 0.156250
vt 0.125000 0.187500
vt -0.000000 0.218750
vt 0.062500 0.187500
vt 0.062500 0.218750
vt 0.062500 0.000000
vt 0.125000 0.062500
vt 0.062500 0.125000
vt 0.375000 0.250000
vt 0.000000 0.625000
vt 0.375000 0.625000
vt 0.062500 0.125000
vt -0.000000 0.156250
vt 0.062500 0.156250
vt 0.562500 0.625000
vt 0.750000 0.500000
vt 0.562500 0.500000
vt 0.187500 1.000000
vt 0.187500 0.875000
vt 0.250000 0.875000
vt 0.125000 0.875000
vt 0.187500 0.875000
vt 0.187500 1.000000
vt 0.125000 0.218750
vt 0.062500 0.250000
vt 0.125000 0.250000
vt 0.375000 0.187500
vt 0.500000 0.312500
vt 0.625000 0.312500
vt 0.375000 0.343750
vt 0.500000 0.468750
vt 0.625000 0.468750
vt 0.125000 0.750000
vt 0.250000 0.875000
vt 0.125000 0.875000
vt -0.000000 0.156250
vt -0.000000 0.218750
vt 0.375000 0.875000
vt 0.375000 1.000000
vt 0.750000 1.000000
vt 0.562500 0.750000
vt 0.750000 0.750000
vt 0.750000 0.875000
vt 0.062500 0.187500
vt 0.062500 0.125000
vt 0.375000 0.750000
vt 0.375000 0.625000
vt 0.750000 0.625000
vt 0.062500 0.156250
vt -0.000000 0.187500
vt -0.000000 0.125000
vt -0.000000 0.062500
vt -0.000000 0.000000
vt 0.125000 0.000000
vt 0.125000 0.125000
vt 0.000000 0.250000
vt -0.000000 0.125000
vt 0.375000 0.500000
vt 0.375000 0.625000
vt 0.750000 0.625000
vt 0.250000 0.812500
vt 0.375000 0.812500
vt 0.250000 0.750000
vt 0.187500 0.750000
vt 0.187500 0.625000
vt 0.375000 0.625000
vt 0.375000 1.000000
vt -0.000000 1.000000
vt -0.000000 0.812500
vt -0.000000 0.625000
vt 0.125000 0.750000
vt 0.187500 0.625000
vt 0.187500 0.750000
vt 0.125000 0.812500
vt 0.062500 0.218750
vt 0.750000 0.312500
vt 0.750000 0.187500
vt 0.375000 0.312500
vt 0.500000 0.343750
vt 0.625000 0.343750
vt 0.750000 0.468750
vt 0.750000 0.343750
vt 0.375000 0.468750
vt 0.500000 0.500000
vt 0.625000 0.500000
vt 0.250000 0.750000
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.0000 -1.0000
vn 0.0000 1.0000 0.0000
vn 0.0000 -1.0000 0.0000
g x_farming_pie_x_farming_pie_pie
usemtl pie
s off
f 101/1/1 58/2/1 55/3/1
f 59/4/2 63/5/2 56/6/2
f 53/7/2 47/8/2 45/9/2
f 95/10/1 52/11/1 44/12/1
f 88/13/3 34/14/3 31/15/3
f 38/16/4 89/17/4 40/18/4
f 73/19/3 77/20/3 81/21/3
f 83/22/1 99/23/1 102/24/1
f 30/25/3 87/26/3 84/27/3
f 37/28/5 62/29/5 29/30/5
f 48/31/6 12/32/6 1/33/6
f 70/34/4 39/35/4 67/36/4
f 106/37/4 6/38/4 22/39/4
f 14/40/5 104/41/5 3/42/5
f 16/43/5 103/44/5 96/45/5
f 61/46/2 17/47/2 64/48/2
f 46/49/4 25/50/4 32/51/4
f 94/52/2 24/53/2 42/54/2
f 90/55/5 57/56/5 85/57/5
f 101/1/1 98/58/1 58/2/1
f 59/4/2 60/59/2 63/5/2
f 45/9/2 43/60/2 51/61/2
f 53/7/2 49/62/2 47/8/2
f 45/9/2 51/61/2 53/7/2
f 44/12/1 93/63/1 95/10/1
f 93/63/1 72/64/1 95/10/1
f 72/64/1 79/65/1 95/10/1
f 88/13/3 91/66/3 34/14/3
f 38/16/4 92/67/4 89/17/4
f 80/68/3 71/69/3 73/19/3
f 73/19/3 75/70/3 77/20/3
f 81/21/3 80/68/3 73/19/3
f 83/22/1 86/71/1 99/23/1
f 30/25/3 33/72/3 87/26/3
f 9/73/5 11/74/5 29/30/5
f 11/74/5 20/75/5 37/28/5
f 37/28/5 69/76/5 62/29/5
f 11/74/5 37/28/5 29/30/5
f 62/29/5 15/77/5 29/30/5
f 48/31/6 76/78/6 12/32/6
f 70/34/4 36/79/4 39/35/4
f 22/39/4 21/80/4 50/81/4
f 106/37/4 78/82/4 6/38/4
f 22/39/4 50/81/4 106/37/4
f 3/42/5 65/83/5 26/84/5
f 65/83/5 66/85/5 26/84/5
f 66/85/5 19/86/5 28/87/5
f 28/87/5 2/88/5 66/85/5
f 2/88/5 26/84/5 66/85/5
f 26/84/5 13/89/5 3/42/5
f 13/89/5 14/40/5 3/42/5
f 23/90/5 7/91/5 16/43/5
f 7/91/5 8/92/5 27/93/5
f 23/90/5 16/43/5 96/45/5
f 8/92/5 107/94/5 27/93/5
f 107/94/5 41/95/5 27/93/5
f 27/93/5 10/96/5 7/91/5
f 10/96/5 16/43/5 7/91/5
f 61/46/2 5/97/2 17/47/2
f 82/98/4 74/99/4 32/51/4
f 74/99/4 46/49/4 32/51/4
f 46/49/4 54/100/4 25/50/4
f 25/50/4 4/101/4 35/102/4
f 25/50/4 35/102/4 32/51/4
f 108/103/2 105/104/2 42/54/2
f 105/104/2 94/52/2 42/54/2
f 94/52/2 97/105/2 24/53/2
f 24/53/2 100/106/2 18/107/2
f 24/53/2 18/107/2 42/54/2
f 90/55/5 68/108/5 57/56/5

View file

@ -0,0 +1,416 @@
# Blender v3.3.0 OBJ File: 'pumpkin_pie.blend'
# www.blender.org
mtllib punpkin_pie.mtl
o punpkin_pie
v -0.015000 -0.499000 0.195000
v -0.045000 -0.499000 0.165000
v -0.105000 -0.499000 0.075000
v -0.105000 -0.499000 0.015000
v -0.135000 -0.499000 -0.045000
v -0.165000 -0.499000 -0.045000
v -0.195000 -0.499000 -0.105000
v -0.045000 -0.319000 0.105000
v -0.075000 -0.319000 0.105000
v -0.105000 -0.319000 0.075000
v -0.135000 -0.319000 -0.045000
v -0.165000 -0.319000 -0.045000
v -0.195000 -0.319000 -0.105000
v -0.225000 -0.289000 -0.195000
v 0.045000 -0.499000 0.165000
v 0.075000 -0.499000 0.105000
v 0.105000 -0.499000 0.075000
v 0.135000 -0.499000 0.015000
v 0.195000 -0.499000 -0.105000
v 0.105000 -0.319000 0.015000
v 0.195000 -0.319000 -0.165000
v 0.195000 -0.289000 -0.165000
v -0.015000 -0.499000 0.165000
v -0.045000 -0.499000 0.105000
v 0.135000 -0.499000 -0.045000
v 0.165000 -0.499000 -0.045000
v -0.165000 -0.499000 -0.105000
v 0.015000 -0.319000 0.195000
v -0.045000 -0.319000 0.165000
v 0.015000 -0.319000 0.165000
v 0.075000 -0.319000 0.105000
v 0.045000 -0.319000 0.105000
v 0.105000 -0.319000 0.075000
v 0.075000 -0.319000 0.075000
v -0.135000 -0.319000 0.015000
v 0.135000 -0.319000 0.015000
v 0.165000 -0.319000 -0.045000
v 0.135000 -0.319000 -0.045000
v 0.195000 -0.319000 -0.105000
v 0.165000 -0.319000 -0.105000
v 0.225000 -0.289000 -0.195000
v 0.195000 -0.289000 -0.195000
v -0.225000 -0.499000 -0.225000
v 0.015000 -0.499000 0.195000
v 0.015000 -0.499000 0.165000
v -0.075000 -0.499000 0.105000
v 0.045000 -0.499000 0.105000
v -0.075000 -0.499000 0.075000
v 0.075000 -0.499000 0.075000
v -0.135000 -0.499000 0.015000
v 0.105000 -0.499000 0.015000
v 0.165000 -0.499000 -0.105000
v 0.195000 -0.499000 -0.195000
v -0.225000 -0.499000 -0.195000
v -0.195000 -0.499000 -0.195000
v 0.225000 -0.499000 -0.225000
v 0.225000 -0.499000 -0.195000
v -0.015000 -0.319000 0.195000
v -0.015000 -0.319000 0.165000
v 0.045000 -0.319000 0.165000
v -0.075000 -0.319000 0.075000
v -0.105000 -0.319000 0.015000
v -0.165000 -0.319000 -0.105000
v -0.195000 -0.319000 -0.165000
v -0.195000 -0.289000 -0.165000
v -0.225000 -0.289000 -0.225000
v -0.195000 -0.289000 -0.195000
v 0.225000 -0.289000 -0.225000
vt 0.200000 0.500000
vt 0.233333 0.500000
vt 0.266667 0.566667
vt 0.733333 0.933333
vt 0.766667 0.733333
vt 0.766667 0.933333
vt 0.900000 0.233333
vt 0.933333 0.000000
vt 0.933333 0.233333
vt 0.600000 0.233333
vt 0.566667 0.233333
vt 0.566667 0.200000
vt 0.666667 0.200000
vt 0.733333 0.400000
vt 0.666667 0.400000
vt 0.500000 0.933333
vt 0.533333 0.733333
vt 0.533333 0.933333
vt 0.800000 0.200000
vt 0.866667 0.400000
vt 0.866667 0.200000
vt 0.866667 0.466667
vt 0.900000 0.233333
vt 0.866667 0.233333
vt 0.866667 0.733333
vt 0.433333 0.700000
vt 0.866667 0.700000
vt 0.933333 0.800000
vt 0.966667 0.600000
vt 0.966667 0.800000
vt 0.866667 0.933333
vt 0.833333 0.733333
vt 0.866667 0.733333
vt 0.600000 0.233333
vt 0.666667 0.433333
vt 0.600000 0.433333
vt 0.633333 0.933333
vt 0.666667 0.733333
vt 0.666667 0.933333
vt 0.566667 0.433333
vt 0.600000 0.466667
vt 0.600000 0.233333
vt 0.900000 0.466667
vt 0.933333 0.233333
vt 0.933333 0.466667
vt 0.500000 0.466667
vt 0.466667 0.433333
vt 0.033333 0.433333
vt 0.766667 0.933333
vt 0.800000 0.733333
vt 0.800000 0.933333
vt 0.733333 0.200000
vt 0.800000 0.000000
vt 0.800000 0.200000
vt 0.733333 0.200000
vt 0.666667 0.000000
vt 0.666667 0.200000
vt 0.666667 0.933333
vt 0.700000 0.733333
vt 0.700000 0.933333
vt 0.000000 0.933333
vt 0.033333 0.900000
vt 0.466667 0.900000
vt 0.900000 0.900000
vt 0.866667 0.700000
vt 0.900000 0.700000
vt 0.933333 0.466667
vt 0.433333 0.700000
vt 0.933333 0.700000
vt 0.566667 0.933333
vt 0.600000 0.733333
vt 0.600000 0.933333
vt 0.933333 0.400000
vt 0.966667 0.200000
vt 0.966667 0.400000
vt 0.566667 0.933333
vt 0.533333 0.733333
vt 0.533333 0.933333
vt 0.600000 0.933333
vt 0.633333 0.733333
vt 0.633333 0.933333
vt 0.700000 0.933333
vt 0.733333 0.733333
vt 0.733333 0.933333
vt 0.800000 0.400000
vt 0.733333 0.200000
vt 0.733333 0.400000
vt 0.833333 0.933333
vt 0.800000 0.733333
vt 0.833333 0.733333
vt 0.900000 0.900000
vt 0.933333 0.700000
vt 0.933333 0.900000
vt 0.900000 0.233333
vt 0.866667 0.000000
vt 0.900000 0.000000
vt 0.933333 0.200000
vt 0.966667 0.000000
vt 0.966667 0.200000
vt 0.800000 0.200000
vt 0.866667 0.000000
vt 0.866667 0.200000
vt 0.600000 0.200000
vt 0.666667 0.000000
vt 0.600000 0.000000
vt 0.933333 0.600000
vt 0.966667 0.400000
vt 0.933333 0.400000
vt 0.366667 0.733333
vt 0.400000 0.733333
vt 0.400000 0.800000
vt 0.433333 0.800000
vt 0.433333 0.866667
vt 0.000000 0.866667
vt 0.033333 0.800000
vt 0.000000 0.800000
vt 0.033333 0.733333
vt 0.066667 0.733333
vt 0.066667 0.666667
vt 0.100000 0.666667
vt 0.333333 0.666667
vt 0.366667 0.666667
vt 0.100000 0.600000
vt 0.133333 0.600000
vt 0.300000 0.600000
vt 0.333333 0.600000
vt 0.133333 0.566667
vt 0.166667 0.566667
vt 0.300000 0.566667
vt 0.166667 0.500000
vt 0.266667 0.500000
vt 0.200000 0.466667
vt 0.233333 0.466667
vt 0.733333 0.733333
vt 0.900000 0.000000
vt 0.500000 0.200000
vt 0.500000 0.000000
vt 0.600000 0.000000
vt 0.733333 0.200000
vt 0.500000 0.733333
vt 0.800000 0.400000
vt 0.900000 0.466667
vt 0.433333 0.733333
vt 0.933333 0.600000
vt 0.833333 0.933333
vt 0.666667 0.233333
vt 0.633333 0.733333
vt 0.500000 0.233333
vt 0.500000 0.433333
vt 0.566667 0.466667
vt 0.900000 0.233333
vt 0.300000 0.100000
vt 0.300000 0.033333
vt 0.266667 0.033333
vt 0.266667 0.000000
vt 0.233333 0.000000
vt 0.233333 0.033333
vt 0.200000 0.033333
vt 0.200000 0.100000
vt 0.333333 0.133333
vt 0.333333 0.100000
vt 0.166667 0.100000
vt 0.166667 0.133333
vt 0.366667 0.200000
vt 0.366667 0.133333
vt 0.133333 0.133333
vt 0.133333 0.200000
vt 0.400000 0.266667
vt 0.400000 0.200000
vt 0.100000 0.200000
vt 0.100000 0.266667
vt 0.433333 0.333333
vt 0.433333 0.266667
vt 0.066667 0.266667
vt 0.066667 0.333333
vt 0.466667 0.333333
vt 0.033333 0.333333
vt 0.500000 0.433333
vt 0.000000 0.433333
vt 0.000000 0.466667
vt 0.766667 0.733333
vt 0.733333 0.000000
vt 0.733333 0.000000
vt 0.666667 0.733333
vt 0.500000 0.900000
vt 0.500000 0.933333
vt 0.000000 0.900000
vt 0.033333 0.866667
vt 0.466667 0.866667
vt 0.866667 0.900000
vt 0.433333 0.466667
vt 0.566667 0.733333
vt 0.933333 0.200000
vt 0.566667 0.733333
vt 0.600000 0.733333
vt 0.700000 0.733333
vt 0.800000 0.200000
vt 0.800000 0.933333
vt 0.900000 0.700000
vt 0.866667 0.233333
vt 0.933333 0.000000
vt 0.800000 0.000000
vt 0.666667 0.200000
vt 0.966667 0.600000
vn 0.0000 1.0000 0.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.0000 -1.0000
usemtl punpkin_pie_Material
s off
f 59/1/1 30/2/1 32/3/1
f 32/4/2 16/5/2 31/6/2
f 14/7/2 55/8/2 67/9/2
f 42/10/3 22/11/3 21/12/3
f 26/13/3 40/14/3 37/15/3
f 58/16/2 44/17/2 28/18/2
f 50/19/4 11/20/4 5/21/4
f 14/22/4 43/23/4 54/24/4
f 22/25/2 64/26/2 21/27/2
f 28/28/3 45/29/3 30/30/3
f 11/31/2 6/32/2 5/33/2
f 15/34/3 32/35/3 60/36/3
f 10/37/2 48/38/2 61/39/2
f 64/40/4 67/41/4 55/42/4
f 42/43/2 57/44/2 41/45/2
f 56/46/5 53/47/5 55/48/5
f 34/49/2 17/50/2 33/51/2
f 33/52/3 51/53/3 20/54/3
f 8/55/4 2/56/4 29/57/4
f 29/58/2 23/59/2 59/60/2
f 66/61/1 67/62/1 42/63/1
f 39/64/2 52/65/2 19/66/2
f 56/67/6 66/68/6 68/69/6
f 31/70/3 49/71/3 34/72/3
f 38/73/2 26/74/2 37/75/2
f 61/76/4 46/77/4 9/78/4
f 35/79/2 4/80/2 62/81/2
f 20/82/2 18/83/2 36/84/2
f 62/85/4 3/86/4 10/87/4
f 8/88/2 46/89/2 24/90/2
f 30/91/2 15/92/2 60/93/2
f 68/94/3 57/95/3 56/96/3
f 13/97/2 27/98/2 63/99/2
f 36/100/3 25/101/3 38/102/3
f 12/103/4 27/104/4 6/105/4
f 58/106/4 23/107/4 1/108/4
f 38/109/1 37/110/1 40/111/1
f 40/111/1 39/112/1 21/113/1
f 21/113/1 64/114/1 63/115/1
f 64/114/1 13/116/1 63/115/1
f 63/115/1 12/117/1 11/118/1
f 40/111/1 21/113/1 63/115/1
f 11/118/1 35/119/1 62/120/1
f 40/111/1 63/115/1 11/118/1
f 20/121/1 36/122/1 38/109/1
f 38/109/1 40/111/1 11/118/1
f 62/120/1 10/123/1 61/124/1
f 38/109/1 11/118/1 62/120/1
f 34/125/1 33/126/1 20/121/1
f 20/121/1 38/109/1 62/120/1
f 61/124/1 9/127/1 8/128/1
f 20/121/1 62/120/1 61/124/1
f 32/3/1 31/129/1 34/125/1
f 34/125/1 20/121/1 61/124/1
f 8/128/1 29/130/1 59/1/1
f 34/125/1 61/124/1 8/128/1
f 30/2/1 60/131/1 32/3/1
f 32/3/1 34/125/1 8/128/1
f 59/1/1 58/132/1 28/133/1
f 32/3/1 8/128/1 59/1/1
f 59/1/1 28/133/1 30/2/1
f 32/4/2 47/134/2 16/5/2
f 14/7/2 54/135/2 55/8/2
f 39/136/3 19/137/3 21/12/3
f 19/137/3 53/138/3 21/12/3
f 53/138/3 42/10/3 21/12/3
f 26/13/3 52/139/3 40/14/3
f 58/16/2 1/140/2 44/17/2
f 50/19/4 35/141/4 11/20/4
f 14/22/4 66/142/4 43/23/4
f 22/25/2 65/143/2 64/26/2
f 28/28/3 44/144/3 45/29/3
f 11/31/2 12/145/2 6/32/2
f 15/34/3 47/146/3 32/35/3
f 10/37/2 3/147/2 48/38/2
f 55/42/4 7/148/4 64/40/4
f 7/148/4 13/149/4 64/40/4
f 64/40/4 65/150/4 67/41/4
f 42/43/2 53/151/2 57/44/2
f 47/152/5 15/153/5 45/154/5
f 45/154/5 44/155/5 1/156/5
f 23/157/5 2/158/5 24/159/5
f 45/154/5 1/156/5 23/157/5
f 49/160/5 16/161/5 47/152/5
f 47/152/5 45/154/5 23/157/5
f 24/159/5 46/162/5 48/163/5
f 47/152/5 23/157/5 24/159/5
f 51/164/5 17/165/5 49/160/5
f 49/160/5 47/152/5 24/159/5
f 48/163/5 3/166/5 4/167/5
f 49/160/5 24/159/5 48/163/5
f 25/168/5 18/169/5 51/164/5
f 51/164/5 49/160/5 48/163/5
f 4/167/5 50/170/5 5/171/5
f 51/164/5 48/163/5 4/167/5
f 52/172/5 26/173/5 25/168/5
f 25/168/5 51/164/5 4/167/5
f 5/171/5 6/174/5 27/175/5
f 25/168/5 4/167/5 5/171/5
f 53/47/5 19/176/5 52/172/5
f 52/172/5 25/168/5 5/171/5
f 27/175/5 7/177/5 55/48/5
f 52/172/5 5/171/5 27/175/5
f 56/46/5 57/178/5 53/47/5
f 53/47/5 52/172/5 27/175/5
f 55/48/5 54/179/5 43/180/5
f 53/47/5 27/175/5 55/48/5
f 43/180/5 56/46/5 55/48/5
f 34/49/2 49/181/2 17/50/2
f 33/52/3 17/182/3 51/53/3
f 8/55/4 24/183/4 2/56/4
f 29/58/2 2/184/2 23/59/2
f 41/185/1 68/186/1 42/63/1
f 68/186/1 66/61/1 42/63/1
f 66/61/1 14/187/1 67/62/1
f 67/62/1 65/188/1 22/189/1
f 67/62/1 22/189/1 42/63/1
f 39/64/2 40/190/2 52/65/2
f 56/67/6 43/191/6 66/68/6
f 31/70/3 16/192/3 49/71/3
f 38/73/2 25/193/2 26/74/2
f 61/76/4 48/194/4 46/77/4
f 35/79/2 50/195/2 4/80/2
f 20/82/2 51/196/2 18/83/2
f 62/85/4 4/197/4 3/86/4
f 8/88/2 9/198/2 46/89/2
f 30/91/2 45/199/2 15/92/2
f 68/94/3 41/200/3 57/95/3
f 13/97/2 7/201/2 27/98/2
f 36/100/3 18/202/3 25/101/3
f 12/103/4 63/203/4 27/104/4
f 58/106/4 59/204/4 23/107/4

View file

@ -0,0 +1,474 @@
# Blender v2.83.20 OBJ File: 'x_farming_scarecrow.blend'
# www.blender.org
mtllib x_farming_scarecrow.mtl
o Player_Cube
v -0.262500 0.299939 0.130750
v -0.262500 0.277061 -0.130751
v -0.262500 1.084442 0.062115
v -0.262500 1.061564 -0.199386
v -0.227059 1.107274 -0.227333
v -0.227059 1.079820 0.086468
v -0.262500 1.140186 0.180629
v -0.262500 1.004306 -0.326482
v -0.262500 1.647297 0.044749
v -0.262500 1.511417 -0.462362
v 0.262500 0.277061 -0.130751
v 0.262500 0.299939 0.130750
v 0.262500 1.038276 -0.199704
v 0.262500 1.106216 0.053851
v 0.226889 1.112990 -0.228590
v 0.226889 1.085536 0.085212
v 0.522892 1.192862 0.094601
v 0.522892 1.220316 -0.219200
v 0.262500 1.004306 -0.326482
v 0.262500 1.140186 0.180629
v 0.262500 1.511417 -0.462362
v 0.262500 1.647297 0.044749
v -0.287500 1.122509 0.211247
v -0.287500 0.973688 -0.344160
v -0.287500 1.677916 0.062426
v -0.287500 1.529095 -0.492981
v 0.287500 0.973688 -0.344160
v 0.287500 1.122509 0.211247
v 0.287500 1.529095 -0.492981
v 0.287500 1.677916 0.062426
v 0.262500 1.061564 -0.199386
v 0.262500 1.061564 -0.199386
v 0.262500 1.084442 0.062115
v 0.262500 1.084442 0.062115
v 0.262500 0.299939 0.130750
v 0.262500 0.299939 0.130750
v 0.262500 0.277061 -0.130751
v 0.262500 0.277061 -0.130751
v -0.262500 1.084442 0.062115
v -0.262500 1.106216 0.053851
v -0.262500 0.299939 0.130750
v -0.262500 0.299939 0.130750
v -0.262500 1.061564 -0.199386
v -0.262500 1.038276 -0.199704
v -0.262500 0.277061 -0.130751
v -0.262500 0.277061 -0.130751
v -0.523063 1.187146 0.095858
v -0.523063 1.214600 -0.217943
v -0.227059 1.107274 -0.227333
v -0.227059 1.079820 0.086468
v -0.523063 1.214600 -0.217943
v -0.523063 1.187146 0.095858
v -0.523063 1.214600 -0.217943
v -0.227059 1.107274 -0.227333
v 0.262500 1.511417 -0.462362
v 0.262500 1.511417 -0.462362
v 0.262500 1.647297 0.044749
v 0.262500 1.647297 0.044749
v 0.262500 1.140186 0.180629
v 0.262500 1.140186 0.180629
v 0.262500 1.004306 -0.326482
v 0.262500 1.004306 -0.326482
v -0.262500 1.647297 0.044749
v -0.262500 1.647297 0.044749
v -0.262500 1.140186 0.180629
v -0.262500 1.140186 0.180629
v -0.262500 1.511417 -0.462362
v -0.262500 1.511417 -0.462362
v -0.262500 1.004306 -0.326482
v -0.262500 1.004306 -0.326482
v 0.226889 1.112990 -0.228590
v 0.226889 1.085536 0.085212
v 0.522892 1.192862 0.094601
v 0.522892 1.220316 -0.219200
v 0.287500 1.529095 -0.492981
v 0.287500 1.529095 -0.492981
v 0.287500 1.677916 0.062426
v 0.287500 1.677916 0.062426
v 0.287500 1.122509 0.211247
v 0.287500 1.122509 0.211247
v 0.287500 0.973688 -0.344160
v 0.287500 0.973688 -0.344160
v -0.287500 1.677916 0.062426
v -0.287500 1.677916 0.062426
v -0.287500 1.122509 0.211247
v -0.287500 1.122509 0.211247
v -0.287500 1.529095 -0.492981
v -0.287500 1.529095 -0.492981
v -0.287500 0.973688 -0.344160
v -0.287500 0.973688 -0.344160
v -0.396111 0.450058 0.031371
v -0.799911 0.596470 0.044181
v -0.799911 0.623923 -0.269621
v 0.667453 0.796893 0.060015
v 0.667300 0.824767 -0.253750
v 0.371576 0.716676 -0.263206
v 0.371729 0.688802 0.050558
v -0.450010 0.502053 -0.337860
v -0.667566 0.819091 -0.252546
v -0.667566 0.791637 0.061255
v -0.371563 0.684311 0.051866
v -0.371563 0.711765 -0.261936
v -0.062500 0.293947 0.062262
v 0.062500 0.293947 0.062262
v -0.062500 0.283053 -0.062262
v 0.062500 0.283053 -0.062262
v -0.062500 -0.499000 -0.062500
v -0.062500 -0.499000 0.062500
v 0.062500 -0.499000 0.062500
v 0.062500 -0.499000 -0.062500
v 0.262500 0.136500 0.270527
v 0.262500 0.091832 -0.240023
v -0.262500 0.136500 0.270527
v -0.387500 0.102727 -0.115498
v 0.262500 0.299939 0.130750
v 0.262500 0.299939 0.130750
v 0.262500 0.277061 -0.130751
v 0.262500 0.277061 -0.130751
v -0.262500 0.299939 0.130750
v -0.262500 0.299939 0.130750
v -0.262500 0.277061 -0.130751
v -0.262500 0.277061 -0.130751
v 0.387500 0.125605 0.146003
v 0.387500 0.102727 -0.115498
v -0.387500 0.125605 0.146003
v -0.262500 0.091832 -0.240023
v 0.107423 1.575702 -0.319040
v 0.107423 1.631309 -0.111514
v -0.107423 1.631309 -0.111514
v -0.107423 1.575702 -0.319040
v 0.107423 1.684369 -0.348157
v 0.107423 1.739976 -0.140631
v -0.107423 1.739976 -0.140631
v -0.107423 1.684369 -0.348157
v -0.667566 0.791637 0.061255
v -0.613668 0.799548 -0.254256
v -0.371563 0.711765 -0.261936
v -0.667566 0.814092 -0.195406
v -0.667566 0.819091 -0.252546
v -0.613668 0.772094 0.059546
v -0.667566 0.796636 0.004116
v -0.425461 0.703853 0.053575
v -0.371563 0.689310 -0.005274
v -0.371563 0.711765 -0.261936
v -0.667566 0.819091 -0.252546
v -0.425461 0.731308 -0.260226
v -0.371563 0.706766 -0.204796
v -0.371563 0.684311 0.051866
v -0.450010 0.464601 0.090220
v -0.746013 0.609380 -0.328470
v -0.746013 0.571928 0.099610
v -0.396111 0.477512 -0.282430
v 0.799852 0.601431 0.044615
v 0.396051 0.455019 0.031805
v 0.396052 0.482473 -0.281996
v 0.745953 0.614341 -0.328036
v 0.425402 0.736269 -0.259792
v 0.371503 0.711727 -0.204362
v 0.425402 0.708815 0.054010
v 0.371503 0.694271 -0.004840
v 0.613608 0.777056 0.059980
v 0.667507 0.801598 0.004550
v 0.613608 0.804510 -0.253821
v 0.667507 0.819054 -0.194972
v 0.745953 0.576889 0.100044
v 0.449950 0.507015 -0.337426
v 0.449950 0.469563 0.090654
v 0.799852 0.628885 -0.269187
v -0.227059 1.079820 0.086468
v -0.523063 1.187146 0.095858
v -0.371563 0.684311 0.051866
v -0.667566 0.791637 0.061255
vt 0.625000 0.375000
vt 0.500000 0.375000
vt 0.500000 0.000000
vt 0.625000 0.000000
vt 0.500000 0.375000
vt 0.437500 0.375000
vt 0.437500 0.000000
vt 0.500000 0.000000
vt 0.437500 0.375000
vt 0.312500 0.375000
vt 0.312500 0.000000
vt 0.437500 0.000000
vt 0.531250 0.406250
vt 0.437500 0.406250
vt 0.437500 0.500000
vt 0.531250 0.500000
vt 0.437500 0.375000
vt 0.437500 0.500000
vt 0.312500 0.500000
vt 0.312500 0.375000
vt 0.500000 0.750000
vt 0.375000 0.750000
vt 0.375000 0.500000
vt 0.500000 0.500000
vt 0.375000 0.750000
vt 0.250000 0.750000
vt 0.250000 0.500000
vt 0.375000 0.500000
vt 0.250000 0.750000
vt 0.125000 0.750000
vt 0.125000 0.500000
vt 0.250000 0.500000
vt 0.375000 0.750000
vt 0.375000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.750000
vt 0.250000 0.750000
vt 0.250000 1.000000
vt 0.125000 1.000000
vt 0.125000 0.750000
vt 0.687500 0.500000
vt 0.687500 0.375000
vt 0.750000 0.375000
vt 0.750000 0.500000
vt 0.250000 0.375000
vt 0.250000 0.000000
vt 0.312500 0.000000
vt 0.312500 0.375000
vt 0.000000 0.750000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.687500 0.500000
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.687500 0.375000
vt 1.000000 0.750000
vt 0.875000 0.750000
vt 0.875000 0.500000
vt 1.000000 0.500000
vt 0.875000 0.750000
vt 0.750000 0.750000
vt 0.750000 0.500000
vt 0.875000 0.500000
vt 0.750000 0.750000
vt 0.625000 0.750000
vt 0.625000 0.500000
vt 0.750000 0.500000
vt 0.875000 0.750000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.750000
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.500000 0.750000
vt 0.500000 0.500000
vt 0.625000 0.500000
vt 0.625000 0.750000
vt 0.625000 0.375000
vt 0.687500 0.375000
vt 0.687500 0.187500
vt 0.625000 0.187500
vt 0.687500 0.375000
vt 0.750000 0.375000
vt 0.750000 0.187500
vt 0.687500 0.187500
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.187500
vt 0.750000 0.187500
vt 0.687500 0.375000
vt 0.687500 0.187500
vt 0.750000 0.187500
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.187500
vt 0.875000 0.187500
vt 0.875000 0.375000
vt 0.625000 0.375000
vt 0.625000 0.187500
vt 0.843750 0.093750
vt 0.789062 0.093750
vt 0.789062 0.015625
vt 0.843750 0.015625
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.500000
vt 0.812500 0.500000
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.789062 0.093750
vt 0.734375 0.093750
vt 0.734375 0.015625
vt 0.789062 0.015625
vt 0.734375 0.093750
vt 0.679688 0.093750
vt 0.679688 0.015625
vt 0.734375 0.015625
vt 0.062500 0.171875
vt 0.062500 0.203125
vt 0.078125 0.203125
vt 0.078125 0.171875
vt 0.078125 0.203125
vt 0.062500 0.203125
vt 0.062500 0.171875
vt 0.078125 0.171875
vt 0.046875 -0.000000
vt 0.062500 -0.000000
vt 0.062500 0.203125
vt 0.046875 0.203125
vt 0.015625 -0.000000
vt 0.031250 -0.000000
vt 0.031250 0.203125
vt 0.015625 0.203125
vt -0.000000 -0.000000
vt 0.000000 0.203125
vt 0.234375 0.375000
vt 0.187500 0.375000
vt 0.187500 0.296875
vt 0.234375 0.296875
vt 0.187500 0.375000
vt 0.093750 0.375000
vt 0.093750 0.296875
vt 0.187500 0.296875
vt 0.234375 0.281250
vt 0.187500 0.281250
vt 0.187500 0.203125
vt 0.234375 0.203125
vt 0.187500 0.281250
vt 0.093750 0.281250
vt 0.093750 0.203125
vt 0.187500 0.203125
vt 0.664147 0.828294
vt 0.664147 0.921706
vt 0.625000 1.000000
vt 0.625000 0.750000
vt 0.710853 0.921706
vt 0.750000 1.000000
vt 0.710853 0.828294
vt 0.750000 0.750000
vt 0.046875 0.750000
vt 0.046875 0.843750
vt 0.000000 0.843750
vt 0.000000 0.750000
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.679688 0.093750
vt 0.625000 0.093750
vt 0.625000 0.015625
vt 0.679688 0.015625
vt 0.843750 0.187500
vt 0.789062 0.187500
vt 0.789062 0.109375
vt 0.843750 0.109375
vt 0.789062 0.187500
vt 0.734375 0.187500
vt 0.734375 0.109375
vt 0.789062 0.109375
vt 0.734375 0.187500
vt 0.679688 0.187500
vt 0.679688 0.109375
vt 0.734375 0.109375
vt 0.679688 0.187500
vt 0.625000 0.187500
vt 0.625000 0.109375
vt 0.679688 0.109375
vt 0.812500 0.375000
vt 0.875000 0.375000
vt 0.875000 0.187500
vt 0.812500 0.187500
vn -0.0000 0.0872 0.9962
vn -1.0000 0.0000 0.0000
vn 0.0000 -0.0872 -0.9962
vn 0.0000 0.9962 -0.0872
vn 0.0000 0.9659 -0.2588
vn 0.0000 0.2588 0.9659
vn 0.0000 -0.2588 -0.9659
vn 0.0000 -0.9659 0.2588
vn -0.3420 0.9361 0.0819
vn 1.0000 0.0000 0.0000
vn 0.3420 0.9361 0.0819
vn 0.9397 -0.3407 -0.0298
vn 0.0000 -0.0872 0.9962
vn -0.9397 0.3407 0.0298
vn 0.0000 0.0870 -0.9962
vn -0.0000 -0.0870 0.9962
vn 0.9398 0.3405 0.0298
vn -0.9398 -0.3405 -0.0298
vn 0.1530 0.4967 -0.8543
vn 0.3445 -0.9351 -0.0832
vn 0.1530 0.3408 0.9276
vn 0.9934 0.1140 0.0100
vn 0.0000 -0.9962 0.0872
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.0003 1.0000
vn 0.0000 -0.0003 -1.0000
vn 0.8137 0.5790 -0.0507
vn 0.0000 0.5081 -0.8613
vn -0.8137 0.5790 -0.0507
vn -0.0000 0.6499 0.7600
vn -0.6874 0.7235 0.0633
vn -0.1530 0.4967 -0.8543
vn -0.1530 0.3408 0.9276
vn 0.6874 0.7235 0.0633
vn -0.9934 0.1140 0.0100
vn -0.0000 0.0872 -0.9962
usemtl Character
s off
f 33/1/1 3/2/1 1/3/1 12/4/1
f 39/5/2 4/6/2 2/7/2 41/8/2
f 43/9/3 31/10/3 37/11/3 45/12/3
f 117/13/4 121/14/4 119/15/4 115/16/4
f 44/17/5 40/18/5 14/19/5 13/20/5
f 57/21/6 9/22/6 7/23/6 20/24/6
f 63/25/2 10/26/2 8/27/2 65/28/2
f 67/29/7 55/30/7 61/31/7 69/32/7
f 19/33/8 59/34/8 66/35/8 70/36/8
f 68/37/5 64/38/5 22/39/5 21/40/5
f 18/41/9 15/42/9 16/43/9 17/44/9
f 34/45/10 36/46/10 38/47/10 32/48/10
f 58/49/10 60/50/10 62/51/10 56/52/10
f 48/53/11 52/54/11 50/55/11 54/56/11
f 77/57/6 25/58/6 23/59/6 28/60/6
f 83/61/2 26/62/2 24/63/2 85/64/2
f 87/65/7 75/66/7 81/67/7 89/68/7
f 27/69/8 79/70/8 86/71/8 90/72/8
f 130/73/2 129/74/2 133/75/2 134/76/2
f 78/77/10 80/78/10 82/79/10 76/80/10
f 51/81/12 47/82/12 135/83/12 139/84/12
f 5/85/13 53/86/13 145/87/13 137/88/13
f 6/89/14 49/90/14 144/91/14 148/92/14
f 74/93/15 95/94/15 96/95/15 71/96/15
f 72/97/16 97/98/16 94/99/16 73/100/16
f 73/101/17 94/102/17 95/94/17 74/93/17
f 71/96/18 96/95/18 97/98/18 72/97/18
f 138/103/19 147/104/19 98/105/19 150/106/19
f 95/107/20 94/108/20 97/109/20 96/110/20
f 102/111/11 99/112/11 100/113/11 101/114/11
f 143/115/21 141/116/21 151/117/21 149/118/21
f 146/119/22 142/120/22 91/121/22 152/122/22
f 103/123/23 105/124/23 106/125/23 104/126/23
f 108/127/24 109/128/24 110/129/24 107/130/24
f 104/131/2 106/132/2 110/133/2 109/134/2
f 105/135/10 103/136/10 108/137/10 107/138/10
f 106/139/25 105/135/25 107/138/25 110/140/25
f 103/136/26 104/131/26 109/134/26 108/137/26
f 118/141/27 116/142/27 123/143/27 124/144/27
f 122/145/28 11/146/28 112/147/28 126/148/28
f 120/149/29 46/150/29 114/151/29 125/152/29
f 35/153/30 42/154/30 113/155/30 111/156/30
f 127/157/5 128/158/5 30/159/5 29/160/5
f 128/158/5 129/161/5 84/162/5 30/159/5
f 129/161/5 130/163/5 88/164/5 84/162/5
f 130/163/5 127/157/5 29/160/5 88/164/5
f 134/165/5 133/166/5 132/167/5 131/168/5
f 128/169/10 127/170/10 131/171/10 132/172/10
f 127/173/7 130/174/7 134/175/7 131/176/7
f 129/177/6 128/178/6 132/179/6 133/180/6
f 140/181/31 136/182/31 93/183/31 92/184/31
f 158/185/32 164/186/32 156/187/32 166/188/32
f 162/189/33 160/190/33 167/191/33 165/192/33
f 163/193/34 161/194/34 153/195/34 168/196/34
f 159/197/35 157/198/35 155/199/35 154/200/35
f 170/201/36 169/202/36 171/203/36 172/204/36

View file

@ -0,0 +1,473 @@
# Blender v2.83.20 OBJ File: 'x_farming_scarecrow_2.blend'
# www.blender.org
mtllib x_farming_scarecrow_2.mtl
o Player_Cube
v -0.262500 0.279731 0.130165
v -0.262500 0.302609 -0.131336
v -0.262500 1.064234 0.198800
v -0.262500 1.087112 -0.062701
v -0.227059 1.271579 0.014867
v -0.227059 0.964867 0.086650
v -0.262500 1.098551 0.325193
v -0.262500 1.052794 -0.197810
v -0.262500 1.621554 0.279436
v -0.262500 1.575797 -0.243566
v 0.262500 0.302609 -0.131336
v 0.262500 0.279731 0.130165
v 0.262500 1.064234 -0.067059
v 0.262500 1.087112 0.194442
v 0.226889 1.274556 0.019906
v 0.226889 0.967844 0.091689
v 0.522892 0.992395 0.196590
v 0.522892 1.299107 0.124807
v 0.262500 1.052794 -0.197810
v 0.262500 1.098551 0.325193
v 0.262500 1.575797 -0.243566
v 0.262500 1.621554 0.279436
v -0.287500 1.075826 0.352276
v -0.287500 1.025711 -0.220535
v -0.287500 1.648638 0.302162
v -0.287500 1.598523 -0.270650
v 0.287500 1.025711 -0.220535
v 0.287500 1.075826 0.352276
v 0.287500 1.598523 -0.270650
v 0.287500 1.648638 0.302162
v 0.262500 1.087112 -0.062701
v 0.262500 1.087112 -0.062701
v 0.262500 1.064234 0.198800
v 0.262500 1.064234 0.198800
v 0.262500 0.279731 0.130165
v 0.262500 0.279731 0.130165
v 0.262500 0.302609 -0.131336
v 0.262500 0.302609 -0.131336
v -0.262500 1.064234 0.198800
v -0.262500 1.087112 0.194442
v -0.262500 0.279731 0.130165
v -0.262500 0.279731 0.130165
v -0.262500 1.087112 -0.062701
v -0.262500 1.064234 -0.067059
v -0.262500 0.302609 -0.131336
v -0.262500 0.302609 -0.131336
v -0.523063 0.989419 0.191551
v -0.523063 1.296130 0.119768
v -0.227060 1.271579 0.014867
v -0.227059 0.964867 0.086650
v -0.523063 1.296130 0.119768
v -0.523063 0.989419 0.191551
v -0.523063 1.296130 0.119768
v -0.227059 1.271579 0.014867
v 0.262500 1.575797 -0.243566
v 0.262500 1.575797 -0.243566
v 0.262500 1.621554 0.279436
v 0.262500 1.621554 0.279436
v 0.262500 1.098551 0.325193
v 0.262500 1.098551 0.325193
v 0.262500 1.052794 -0.197810
v 0.262500 1.052794 -0.197810
v -0.262500 1.621554 0.279436
v -0.262500 1.621554 0.279436
v -0.262500 1.098551 0.325193
v -0.262500 1.098551 0.325193
v -0.262500 1.575797 -0.243566
v -0.262500 1.575797 -0.243566
v -0.262500 1.052794 -0.197810
v -0.262500 1.052794 -0.197810
v 0.226889 1.274556 0.019906
v 0.226889 0.967844 0.091689
v 0.522892 0.992395 0.196590
v 0.522892 1.299107 0.124807
v 0.287500 1.598523 -0.270650
v 0.287500 1.598523 -0.270650
v 0.287500 1.648638 0.302162
v 0.287500 1.648638 0.302162
v 0.287500 1.075826 0.352276
v 0.287500 1.075826 0.352276
v 0.287500 1.025711 -0.220535
v 0.287500 1.025711 -0.220535
v -0.287500 1.648638 0.302162
v -0.287500 1.648638 0.302162
v -0.287500 1.075826 0.352276
v -0.287500 1.075826 0.352276
v -0.287500 1.598523 -0.270650
v -0.287500 1.598523 -0.270650
v -0.287500 1.025711 -0.220535
v -0.287500 1.025711 -0.220535
v -0.396111 0.820807 -0.528885
v -0.799911 0.854299 -0.385781
v -0.799911 1.161011 -0.457564
v 0.667453 0.901763 -0.190415
v 0.667300 1.208570 -0.261788
v 0.371576 1.183844 -0.367437
v 0.371729 0.877036 -0.296064
v -0.450009 1.187837 -0.594638
v -0.667566 1.205656 -0.266806
v -0.667566 0.898944 -0.195022
v -0.371563 0.874393 -0.299924
v -0.371563 1.181105 -0.371707
v -0.062500 0.293947 0.062262
v 0.062500 0.293947 0.062262
v -0.062500 0.283053 -0.062262
v 0.062500 0.283053 -0.062262
v -0.062500 -0.499000 -0.062500
v -0.062500 -0.499000 0.062500
v 0.062500 -0.499000 0.062500
v 0.062500 -0.499000 -0.062500
v 0.262500 0.094502 0.239437
v 0.262500 0.139170 -0.271113
v -0.262500 0.094502 0.239437
v -0.387500 0.128275 -0.146589
v 0.262500 0.279731 0.130165
v 0.262500 0.279731 0.130165
v 0.262500 0.302609 -0.131336
v 0.262500 0.302609 -0.131336
v -0.262500 0.279731 0.130165
v -0.262500 0.279731 0.130165
v -0.262500 0.302609 -0.131336
v -0.262500 0.302609 -0.131336
v 0.387500 0.105397 0.114913
v 0.387500 0.128275 -0.146589
v -0.387500 0.105397 0.114912
v -0.262500 0.139170 -0.271113
v 0.107423 1.614218 -0.091259
v 0.107423 1.632943 0.122770
v -0.107423 1.632943 0.122770
v -0.107423 1.614218 -0.091259
v 0.107423 1.726290 -0.101064
v 0.107423 1.745015 0.112965
v -0.107423 1.745015 0.112965
v -0.107423 1.726290 -0.101064
v -0.667566 0.898944 -0.195022
v -0.613667 1.201186 -0.285907
v -0.371563 1.181105 -0.371707
v -0.667566 1.149808 -0.253735
v -0.667566 1.205656 -0.266806
v -0.613667 0.894474 -0.214124
v -0.667566 0.954793 -0.208093
v -0.425461 0.878864 -0.280823
v -0.371563 0.930241 -0.312995
v -0.371563 1.181105 -0.371707
v -0.667566 1.205656 -0.266806
v -0.425461 1.185575 -0.352606
v -0.371563 1.125256 -0.358636
v -0.371563 0.874393 -0.299924
v -0.450009 0.769429 -0.496713
v -0.746013 1.212389 -0.489736
v -0.746012 0.793980 -0.391811
v -0.396111 1.127518 -0.600668
v 0.799852 0.855434 -0.380931
v 0.396051 0.821942 -0.524035
v 0.396051 1.128654 -0.595819
v 0.745953 1.213524 -0.484887
v 0.425402 1.186710 -0.347756
v 0.371503 1.126391 -0.353787
v 0.425402 0.879999 -0.275973
v 0.371503 0.931377 -0.308145
v 0.613608 0.895609 -0.209274
v 0.667507 0.955928 -0.203244
v 0.613608 1.202321 -0.281057
v 0.667507 1.150943 -0.248885
v 0.745953 0.795115 -0.386962
v 0.449950 1.188972 -0.589788
v 0.449950 0.770564 -0.491863
v 0.799852 1.162146 -0.452714
v -0.227059 0.964867 0.086650
v -0.523063 0.989419 0.191551
v -0.371563 0.874393 -0.299924
v -0.667566 0.898944 -0.195022
vt 0.625000 0.375000
vt 0.500000 0.375000
vt 0.500000 0.000000
vt 0.625000 0.000000
vt 0.500000 0.375000
vt 0.437500 0.375000
vt 0.437500 0.000000
vt 0.500000 0.000000
vt 0.437500 0.375000
vt 0.312500 0.375000
vt 0.312500 0.000000
vt 0.437500 0.000000
vt 0.531250 0.406250
vt 0.437500 0.406250
vt 0.437500 0.500000
vt 0.531250 0.500000
vt 0.437500 0.375000
vt 0.437500 0.500000
vt 0.312500 0.500000
vt 0.312500 0.375000
vt 0.500000 0.750000
vt 0.375000 0.750000
vt 0.375000 0.500000
vt 0.500000 0.500000
vt 0.375000 0.750000
vt 0.250000 0.750000
vt 0.250000 0.500000
vt 0.375000 0.500000
vt 0.250000 0.750000
vt 0.125000 0.750000
vt 0.125000 0.500000
vt 0.250000 0.500000
vt 0.375000 0.750000
vt 0.375000 1.000000
vt 0.250000 1.000000
vt 0.250000 0.750000
vt 0.250000 0.750000
vt 0.250000 1.000000
vt 0.125000 1.000000
vt 0.125000 0.750000
vt 0.687500 0.500000
vt 0.687500 0.375000
vt 0.750000 0.375000
vt 0.750000 0.500000
vt 0.250000 0.375000
vt 0.250000 0.000000
vt 0.312500 0.000000
vt 0.312500 0.375000
vt 0.000000 0.750000
vt 0.000000 0.500000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.687500 0.500000
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.687500 0.375000
vt 1.000000 0.750000
vt 0.875000 0.750000
vt 0.875000 0.500000
vt 1.000000 0.500000
vt 0.875000 0.750000
vt 0.750000 0.750000
vt 0.750000 0.500000
vt 0.875000 0.500000
vt 0.750000 0.750000
vt 0.625000 0.750000
vt 0.625000 0.500000
vt 0.750000 0.500000
vt 0.875000 0.750000
vt 0.875000 1.000000
vt 0.750000 1.000000
vt 0.750000 0.750000
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.500000 0.750000
vt 0.500000 0.500000
vt 0.625000 0.500000
vt 0.625000 0.750000
vt 0.625000 0.375000
vt 0.687500 0.375000
vt 0.687500 0.187500
vt 0.625000 0.187500
vt 0.687500 0.375000
vt 0.750000 0.375000
vt 0.750000 0.187500
vt 0.687500 0.187500
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.187500
vt 0.750000 0.187500
vt 0.687500 0.375000
vt 0.687500 0.187500
vt 0.750000 0.187500
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.187500
vt 0.875000 0.187500
vt 0.875000 0.375000
vt 0.625000 0.375000
vt 0.625000 0.187500
vt 0.843750 0.093750
vt 0.789062 0.093750
vt 0.789062 0.015625
vt 0.843750 0.015625
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.812500 0.500000
vt 0.812500 0.500000
vt 0.750000 0.500000
vt 0.750000 0.375000
vt 0.812500 0.375000
vt 0.789062 0.093750
vt 0.734375 0.093750
vt 0.734375 0.015625
vt 0.789062 0.015625
vt 0.734375 0.093750
vt 0.679688 0.093750
vt 0.679688 0.015625
vt 0.734375 0.015625
vt 0.062500 0.171875
vt 0.062500 0.203125
vt 0.078125 0.203125
vt 0.078125 0.171875
vt 0.078125 0.203125
vt 0.062500 0.203125
vt 0.062500 0.171875
vt 0.078125 0.171875
vt 0.046875 -0.000000
vt 0.062500 -0.000000
vt 0.062500 0.203125
vt 0.046875 0.203125
vt 0.015625 -0.000000
vt 0.031250 -0.000000
vt 0.031250 0.203125
vt 0.015625 0.203125
vt -0.000000 -0.000000
vt 0.000000 0.203125
vt 0.234375 0.375000
vt 0.187500 0.375000
vt 0.187500 0.296875
vt 0.234375 0.296875
vt 0.187500 0.375000
vt 0.093750 0.375000
vt 0.093750 0.296875
vt 0.187500 0.296875
vt 0.234375 0.281250
vt 0.187500 0.281250
vt 0.187500 0.203125
vt 0.234375 0.203125
vt 0.187500 0.281250
vt 0.093750 0.281250
vt 0.093750 0.203125
vt 0.187500 0.203125
vt 0.664147 0.828294
vt 0.664147 0.921706
vt 0.625000 1.000000
vt 0.625000 0.750000
vt 0.710853 0.921706
vt 0.750000 1.000000
vt 0.710853 0.828294
vt 0.750000 0.750000
vt 0.046875 0.750000
vt 0.046875 0.843750
vt 0.000000 0.843750
vt 0.000000 0.750000
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.046875 0.750000
vt 0.109375 0.750000
vt 0.109375 0.812500
vt 0.046875 0.812500
vt 0.679688 0.093750
vt 0.625000 0.093750
vt 0.625000 0.015625
vt 0.679688 0.015625
vt 0.843750 0.187500
vt 0.789062 0.187500
vt 0.789062 0.109375
vt 0.843750 0.109375
vt 0.789062 0.187500
vt 0.734375 0.187500
vt 0.734375 0.109375
vt 0.789062 0.109375
vt 0.734375 0.187500
vt 0.679688 0.187500
vt 0.679688 0.109375
vt 0.734375 0.109375
vt 0.679688 0.187500
vt 0.625000 0.187500
vt 0.625000 0.109375
vt 0.679688 0.109375
vt 0.812500 0.375000
vt 0.875000 0.375000
vt 0.875000 0.187500
vt 0.812500 0.187500
vn -0.0000 -0.0872 0.9962
vn -1.0000 0.0000 0.0000
vn 0.0000 0.0872 -0.9962
vn 0.0000 0.9962 0.0872
vn 0.0000 0.9962 -0.0872
vn 0.0000 0.0872 0.9962
vn 0.0000 -0.0872 -0.9962
vn 0.0000 -0.9962 0.0872
vn -0.3420 0.2141 0.9150
vn 1.0000 0.0000 0.0000
vn 0.3420 0.2141 0.9150
vn 0.9397 -0.0779 -0.3330
vn -0.0000 -0.9737 0.2279
vn -0.9397 0.0779 0.3330
vn 0.0000 0.9737 -0.2280
vn -0.0000 -0.9737 0.2280
vn 0.9398 0.0779 0.3328
vn -0.9398 -0.0779 -0.3328
vn 0.1530 0.9666 0.2055
vn 0.3445 -0.2126 -0.9144
vn 0.1530 -0.7751 0.6131
vn 0.9934 0.0261 0.1114
vn 0.0000 1.0000 0.0000
vn 0.0000 -0.0003 1.0000
vn 0.0000 -0.0003 -1.0000
vn 0.8137 0.5790 0.0507
vn 0.0000 0.6499 -0.7600
vn -0.8137 0.5790 0.0507
vn 0.0000 0.5081 0.8613
vn -0.6874 0.1655 0.7071
vn -0.1530 0.9666 0.2055
vn -0.1530 -0.7751 0.6131
vn 0.6874 0.1655 0.7071
vn -0.9934 0.0261 0.1114
vn 0.0000 0.9737 -0.2279
usemtl Character
s off
f 33/1/1 3/2/1 1/3/1 12/4/1
f 39/5/2 4/6/2 2/7/2 41/8/2
f 43/9/3 31/10/3 37/11/3 45/12/3
f 117/13/4 121/14/4 119/15/4 115/16/4
f 44/17/5 40/18/5 14/19/5 13/20/5
f 57/21/6 9/22/6 7/23/6 20/24/6
f 63/25/2 10/26/2 8/27/2 65/28/2
f 67/29/7 55/30/7 61/31/7 69/32/7
f 19/33/8 59/34/8 66/35/8 70/36/8
f 68/37/5 64/38/5 22/39/5 21/40/5
f 18/41/9 15/42/9 16/43/9 17/44/9
f 34/45/10 36/46/10 38/47/10 32/48/10
f 58/49/10 60/50/10 62/51/10 56/52/10
f 48/53/11 52/54/11 50/55/11 54/56/11
f 77/57/6 25/58/6 23/59/6 28/60/6
f 83/61/2 26/62/2 24/63/2 85/64/2
f 87/65/7 75/66/7 81/67/7 89/68/7
f 27/69/8 79/70/8 86/71/8 90/72/8
f 130/73/2 129/74/2 133/75/2 134/76/2
f 78/77/10 80/78/10 82/79/10 76/80/10
f 51/81/12 47/82/12 135/83/12 139/84/12
f 5/85/13 53/86/13 145/87/13 137/88/13
f 6/89/14 49/90/14 144/91/14 148/92/14
f 74/93/15 95/94/15 96/95/15 71/96/15
f 72/97/16 97/98/16 94/99/16 73/100/16
f 73/101/17 94/102/17 95/94/17 74/93/17
f 71/96/18 96/95/18 97/98/18 72/97/18
f 138/103/19 147/104/19 98/105/19 150/106/19
f 95/107/20 94/108/20 97/109/20 96/110/20
f 102/111/11 99/112/11 100/113/11 101/114/11
f 143/115/21 141/116/21 151/117/21 149/118/21
f 146/119/22 142/120/22 91/121/22 152/122/22
f 103/123/8 105/124/8 106/125/8 104/126/8
f 108/127/23 109/128/23 110/129/23 107/130/23
f 104/131/2 106/132/2 110/133/2 109/134/2
f 105/135/10 103/136/10 108/137/10 107/138/10
f 106/139/24 105/135/24 107/138/24 110/140/24
f 103/136/25 104/131/25 109/134/25 108/137/25
f 118/141/26 116/142/26 123/143/26 124/144/26
f 122/145/27 11/146/27 112/147/27 126/148/27
f 120/149/28 46/150/28 114/151/28 125/152/28
f 35/153/29 42/154/29 113/155/29 111/156/29
f 127/157/5 128/158/5 30/159/5 29/160/5
f 128/158/5 129/161/5 84/162/5 30/159/5
f 129/161/5 130/163/5 88/164/5 84/162/5
f 130/163/5 127/157/5 29/160/5 88/164/5
f 134/165/5 133/166/5 132/167/5 131/168/5
f 128/169/10 127/170/10 131/171/10 132/172/10
f 127/173/7 130/174/7 134/175/7 131/176/7
f 129/177/6 128/178/6 132/179/6 133/180/6
f 140/181/30 136/182/30 93/183/30 92/184/30
f 158/185/31 164/186/31 156/187/31 166/188/31
f 162/189/32 160/190/32 167/191/32 165/192/32
f 163/193/33 161/194/33 153/195/33 168/196/33
f 159/197/34 157/198/34 155/199/34 154/200/34
f 170/201/35 169/202/35 171/203/35 172/204/35

Binary file not shown.

1474
mods/x_farming/nodes.lua Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,465 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local minlight = 0
local maxlight = 14
-- OBSIDIAN WART
x_farming.register_plant('x_farming:obsidian_wart', {
description = S('Obsidian Wart Seed') .. '\n' .. S('Plant on Obsidian') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Obsidian Wart Seed'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_obsidian_wart_seed.png',
steps = 6,
minlight = minlight,
maxlight = maxlight,
fertility = { 'underground' },
groups = { flammable = 4 },
place_param2 = 3
})
-- needed
minetest.override_item('x_farming:obsidian_wart', {
description = S('Obsidian Wart') .. '\n' .. S('Compost chance') .. ': 65%',
short_description = S('Obsidian Wart'),
groups = {
-- X Farming
compost = 65,
-- MCL
compostability = 65
},
})
if minetest.get_modpath('default') then
-- default obsidian
minetest.override_item('default:obsidian', {
groups = {
-- MTG
cracky = 1,
level = 2,
soil = 1,
underground = 1
},
soil = {
base = 'default:obsidian',
dry = 'x_farming:obsidian_soil',
wet = 'x_farming:obsidian_soil_wet'
},
})
-- obsidian - soil
minetest.register_node('x_farming:obsidian_soil', {
description = S('Obsidian Soil'),
short_description = S('Obsidian Soil'),
drop = 'default:obsidian',
tiles = { 'x_farming_obsidian_soil.png', 'default_obsidian.png' },
groups = { cracky = 1, level = 2, soil = 2, underground = 1, field = 1, not_in_creative_inventory = 1 },
sounds = x_farming.node_sound_stone_defaults(),
soil = {
base = 'default:obsidian',
dry = 'x_farming:obsidian_soil',
wet = 'x_farming:obsidian_soil_wet'
}
})
-- obsidian - soil - wet
minetest.register_node('x_farming:obsidian_soil_wet', {
description = S('Wet Obsidian Soil'),
short_description = S('Wet Obsidian Soil'),
drop = 'default:obsidian',
tiles = { 'x_farming_obsidian_soil_wet.png', 'default_obsidian.png^x_farming_soil_wet_side.png' },
groups = { cracky = 1, level = 2, soil = 3, wet = 1, underground = 1, field = 1, not_in_creative_inventory = 1 },
sounds = x_farming.node_sound_stone_defaults(),
soil = {
base = 'default:obsidian',
dry = 'x_farming:obsidian_soil',
wet = 'x_farming:obsidian_soil_wet'
}
})
elseif minetest.get_modpath('mcl_core') then
-- mcl_core obsidian
minetest.override_item('mcl_core:obsidian', {
groups = {
pickaxey = 5,
building_block = 1,
material_stone = 1,
soil = 1,
underground = 1,
},
soil = {
base = 'default:obsidian',
dry = 'x_farming:mcl_obsidian_soil',
wet = 'x_farming:mcl_obsidian_soil_wet'
},
_mcl_blast_resistance = 1200,
_mcl_hardness = 50,
})
-- mcl_core obsidian - soil
minetest.register_node('x_farming:mcl_obsidian_soil', {
description = S('Obsidian Soil'),
short_description = S('Obsidian Soil'),
drop = 'mcl_core:obsidian',
tiles = { 'x_farming_obsidian_soil.png', 'default_obsidian.png' },
groups = {
pickaxey = 5,
building_block = 1,
material_stone = 1,
soil = 2,
field = 1,
not_in_creative_inventory = 1,
underground = 1
},
sounds = x_farming.node_sound_stone_defaults(),
soil = {
base = 'mcl_core:obsidian',
dry = 'x_farming:mcl_obsidian_soil',
wet = 'x_farming:mcl_obsidian_soil_wet'
},
_mcl_blast_resistance = 1200,
_mcl_hardness = 50,
})
-- mcl_core obsidian - soil - wet
minetest.register_node('x_farming:mcl_obsidian_soil_wet', {
description = S('Wet Obsidian Soil'),
short_description = S('Wet Obsidian Soil'),
drop = 'mcl_core:obsidian',
tiles = { 'x_farming_obsidian_soil_wet.png', 'default_obsidian.png^x_farming_soil_wet_side.png' },
groups = {
pickaxey = 5,
building_block = 1,
material_stone = 1,
soil = 3,
wet = 1,
field = 1,
not_in_creative_inventory = 1,
underground = 1
},
sounds = x_farming.node_sound_stone_defaults(),
soil = {
base = 'mcl_core:obsidian',
dry = 'x_farming:mcl_obsidian_soil',
wet = 'x_farming:mcl_obsidian_soil_wet'
},
_mcl_blast_resistance = 1200,
_mcl_hardness = 50,
})
end
--
-- Nodes
--
minetest.register_node('x_farming:wart_block', {
description = S('Wart Block') .. '\n' .. S('Compost chance') .. ': 85%',
short_description = S('Wart Block'),
tiles = { 'x_farming_wart_block.png' },
groups = {
-- MTG
cracky = 3,
compost = 85,
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
},
sounds = x_farming.node_sound_stone_defaults(),
_mcl_blast_resistance = 0.8,
_mcl_hardness = 0.8,
})
minetest.register_node('x_farming:wartrack', {
description = S('Wartrack'),
short_description = S('Wartrack'),
tiles = { 'x_farming_wartrack.png' },
groups = {
-- MTG
cracky = 3,
-- MCL
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
-- ALL
stone = 1
},
sounds = x_farming.node_sound_stone_defaults(),
_mcl_blast_resistance = 0.8,
_mcl_hardness = 0.8,
})
minetest.register_node('x_farming:wart_brick_block', {
description = S('Wart Brick Block'),
short_description = S('Wart Brick Block'),
tiles = { 'x_farming_wart_brick_block.png' },
groups = {
-- MTG
cracky = 2,
-- MCL
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
-- ALL
stone = 1
},
sounds = x_farming.node_sound_stone_defaults(),
_mcl_blast_resistance = 0.8,
_mcl_hardness = 0.8,
})
minetest.register_node('x_farming:wart_red_brick_block', {
description = S('Wart Red Brick Block'),
short_description = S('Wart Red Brick Block'),
tiles = { 'x_farming_wart_red_brick_block.png' },
groups = {
-- MTG
cracky = 2,
-- MCL
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
-- ALL
stone = 1
},
sounds = x_farming.node_sound_stone_defaults(),
_mcl_blast_resistance = 0.8,
_mcl_hardness = 0.8,
})
--
-- Register Wart stairs and slabs
--
if minetest.get_modpath('stairs') then
stairs.register_stair_and_slab(
'wart_block',
'x_farming:wart_block',
{ cracky = 3 },
{ 'x_farming_wart_block.png' },
S('Wart Block Stair'),
S('Wart Block Slab'),
x_farming.node_sound_stone_defaults()
)
stairs.register_stair_and_slab(
'wart_brick_block',
'x_farming:wart_brick_block',
{ cracky = 2 },
{ 'x_farming_wart_brick_block.png' },
S('Wart Brick Stair'),
S('Wart Brick Slab'),
x_farming.node_sound_stone_defaults()
)
stairs.register_stair_and_slab(
'wart_red_brick_block',
'x_farming:wart_red_brick_block',
{ cracky = 2 },
{ 'x_farming_wart_red_brick_block.png' },
S('Wart Red Brick Stair'),
S('Wart Red Brick Slab'),
x_farming.node_sound_stone_defaults()
)
stairs.register_stair_and_slab(
'wartrack',
'x_farming:wartrack',
{ cracky = 3 },
{ 'x_farming_wartrack.png' },
S('Wartrack Stair'),
S('Wartrack Slab'),
x_farming.node_sound_stone_defaults()
)
end
if minetest.get_modpath('mcl_stairs') then
mcl_stairs.register_stair_and_slab(
'x_farming_wart_block',
'x_farming:wart_block',
{
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
},
{ 'x_farming_wart_block.png' },
S('Wart Block Stair'),
S('Wart Block Slab'),
x_farming.node_sound_stone_defaults(),
6,
2,
S('Double Wart Block Slab'),
nil
)
mcl_stairs.register_stair_and_slab(
'x_farming_wart_brick_block',
'x_farming:wart_brick_block',
{
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
},
{ 'x_farming_wart_brick_block.png' },
S('Wart Brick Stair'),
S('Wart Brick Slab'),
x_farming.node_sound_stone_defaults(),
6,
2,
S('Double Wart Brick Slab'),
nil
)
mcl_stairs.register_stair_and_slab(
'x_farming_wart_red_brick_block',
'x_farming:wart_red_brick_block',
{
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
},
{ 'x_farming_wart_red_brick_block.png' },
S('Wart Red Brick Stair'),
S('Wart Red Brick Slab'),
x_farming.node_sound_stone_defaults(),
6,
2,
S('Double Wart Red Brick Slab'),
nil
)
mcl_stairs.register_stair_and_slab(
'x_farming_wartrack',
'x_farming:wartrack',
{
-- MCL
pickaxey = 1,
sandstone = 1,
normal_sandstone = 1,
building_block = 1,
material_stone = 1,
},
{ 'x_farming_wartrack.png' },
S('Wartrack Stair'),
S('Wartrack Slab'),
x_farming.node_sound_stone_defaults(),
6,
2,
S('Double Wartrack Slab'),
nil
)
end
minetest.register_craftitem('x_farming:wart_brick', {
description = S('Wart Brick'),
inventory_image = 'x_farming_wart_brick.png',
groups = { craftitem = 1 },
})
minetest.register_node('x_farming:obsidian_wart_decor', {
description = S('Obsidian Wart'),
short_description = S('Obsidian Wart'),
drawtype = 'plantlike_rooted',
paramtype = 'light',
tiles = { 'default_obsidian.png' },
special_tiles = { { name = 'x_farming_obsidian_wart_6.png', tileable_vertical = true } },
inventory_image = 'x_farming_obsidian_wart_6.png',
groups = {
-- MTG
snappy = 3,
not_in_creative_inventory = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
light_source = 4,
glow = 0,
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
},
},
node_dig_prediction = 'default:obsidian',
node_placement_prediction = '',
-- MCL
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_stone_defaults({
dig = { name = 'default_dig_snappy', gain = 0.2 },
dug = { name = 'default_grass_footstep', gain = 0.25 },
}),
drop = {
items = {
{ items = { 'x_farming:obsidian_wart' }, rarity = 1 },
{ items = { 'x_farming:obsidian_wart' }, rarity = 2 },
{ items = { 'x_farming:seed_obsidian_wart' }, rarity = 1 },
{ items = { 'x_farming:seed_obsidian_wart' }, rarity = 2 }
}
},
after_destruct = function(pos, oldnode)
minetest.set_node(pos, { name = 'default:obsidian' })
end,
})
---crate
x_farming.register_crate('crate_obsidian_wart_3', {
description = S('Obsidian Wart Crate'),
short_description = S('Obsidian Wart Crate'),
tiles = { 'x_farming_crate_obsidian_wart_3.png' },
_custom = {
crate_item = 'x_farming:obsidian_wart'
}
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:obsidian"},
biomes = {"fiery","fiery_below"},
sidelen = 8,
fill_ratio = 0.1,
y_max = 31000,
y_min = -31000,
place_offset_y = -1,
flags = "force_placement",
decoration = "x_farming:obsidian_wart_decor",
})

495
mods/x_farming/pine_nut.lua Normal file
View file

@ -0,0 +1,495 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- Minetest Game compatibility
if minetest.get_modpath("default") then
-- Aliases
minetest.register_alias("x_farming:pine_nut_tree","default:pine_tree")
minetest.register_alias("x_farming:pine_nut_leaves","default:pine_needles")
minetest.register_alias("x_farming:pine_nut_sapling","default:pine_sapling")
minetest.register_alias("x_farming:pine_nut_wood","default:pine_wood")
minetest.register_alias("stairs:stair_pine_nut_wood","stairs:stair_pine_wood")
minetest.register_alias("stairs:stair_inner_pine_nut_wood","stairs:stair_inner_pine_wood")
minetest.register_alias("stairs:stair_outer_pine_nut_wood","stairs:stair_outer_pine_wood")
minetest.register_alias("stairs:slab_pine_nut_wood","slab:stair_pine_wood")
else
-- trunk
minetest.register_node('x_farming:pine_nut_tree', {
description = S('Pine Nut Tree'),
short_description = S('Pine Nut Tree'),
tiles = { 'x_farming_pine_nut_tree_top.png', 'x_farming_pine_nut_tree_top.png', 'x_farming_pine_nut_tree.png' },
paramtype2 = 'facedir',
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 5,
-- ALL
tree = 1,
flammable = 2,
},
_mcl_blast_resistance = 2,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
-- leaves
minetest.register_node('x_farming:pine_nut_leaves', {
description = S('Pine Nut Needles') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Pine Nut Needles'),
drawtype = 'allfaces_optional',
waving = 1,
tiles = { 'x_farming_pine_nut_leaves.png' },
special_tiles = { 'x_farming_pine_nut_leaves.png' },
paramtype = 'light',
is_ground_content = false,
groups = {
-- MTG
snappy = 3,
leafdecay = 3,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1,
dig_by_piston = 1,
fire_encouragement = 30,
fire_flammability = 60,
deco_block = 1,
compostability = 30,
-- ALL
flammable = 2,
leaves = 1,
},
_mcl_shears_drop = true,
_mcl_blast_resistance = 0.2,
_mcl_hardness = 0.2,
_mcl_silk_touch_drop = true,
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
items = { 'x_farming:pine_nut_sapling' },
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
items = { 'x_farming:pine_nut_leaves' },
}
}
},
sounds = x_farming.node_sound_leaves_defaults(),
after_place_node = x_farming.after_place_leaves,
})
-- sapling
minetest.register_node('x_farming:pine_nut_sapling', {
description = S('Pine Nut Sapling') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Pine Nut Sapling'),
drawtype = 'plantlike',
tiles = { 'x_farming_pine_nut_sapling.png' },
inventory_image = 'x_farming_pine_nut_sapling.png',
wield_image = 'x_farming_pine_nut_sapling.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
on_timer = x_farming.grow_pine_nut_tree,
selection_box = {
type = 'fixed',
fixed = { -4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16 }
},
groups = {
-- MTG
snappy = 2,
flammable = 2,
-- MCL
plant = 1,
non_mycelium_plant = 1,
deco_block = 1,
dig_by_water = 1,
dig_by_piston = 1,
destroy_by_lava_flow = 1,
compostability = 30,
-- ALL
dig_immediate = 3,
attached_node = 1,
sapling = 1,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(300, 1500))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = x_farming.sapling_on_place(itemstack, placer, pointed_thing,
'x_farming:pine_nut_sapling',
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{ x = -2, y = 1, z = -2 },
{ x = 2, y = 8, z = 2 },
-- maximum interval of interior volume check
4)
return itemstack
end,
})
if minetest.global_exists('stairs') and minetest.get_modpath('stairs') then
stairs.register_stair_and_slab(
'pine_nut_wood',
'x_farming:pine_nut_wood',
{ choppy = 2, oddly_breakable_by_hand = 2, flammable = 2 },
{ 'x_farming_pine_nut_wood.png' },
S('Pine Nut Wooden Stair'),
S('Pine Nut Wooden Slab'),
x_farming.node_sound_wood_defaults(),
false
)
end
if minetest.get_modpath('mcl_stairs') then
mcl_stairs.register_stair_and_slab(
'pine_nut_wood',
'x_farming:pine_nut_wood',
{ handy = 1, axey = 1, building_block = 1, material_wood = 1, fire_encouragement = 5, fire_flammability = 20, flammable = 3, wood = 1, },
{ 'x_farming_pine_nut_wood.png' },
S('Pine Nut Wooden Stair'),
S('Pine Nut Wooden Slab'),
x_farming.node_sound_wood_defaults(),
6,
2,
S('Double Pine Nut Wooden Slab'),
nil
)
end
-- planks
minetest.register_node('x_farming:pine_nut_wood', {
description = S('Pine Nut Wood Planks'),
short_description = S('Pine Nut Wood Planks'),
paramtype2 = 'facedir',
place_param2 = 0,
tiles = { 'x_farming_pine_nut_wood.png' },
is_ground_content = false,
groups = {
-- MTG
choppy = 2,
oddly_breakable_by_hand = 2,
-- Everness
everness_wood = 1,
-- MCL
handy = 1,
axey = 1,
building_block = 1,
material_wood = 1,
fire_encouragement = 5,
fire_flammability = 20,
-- ALL
flammable = 3,
wood = 1,
},
_mcl_blast_resistance = 3,
_mcl_hardness = 2,
sounds = x_farming.node_sound_wood_defaults(),
})
end
-- Ethereal compatibility
if minetest.get_modpath("ethereal") then
minetest.override_item("default:pine_needles",{
drop = {
max_items = 1,
items = {
{items = {"default:pine_sapling"}, rarity = 20},
{items = {"default:pine_needles"}}
}
},
})
minetest.register_alias_force("ethereal:pine_nuts","x_farming:pine_nut")
end
-- fruit
local pine_nut_def = {
description = S('Pine Nut') .. '\n' .. S('Compost chance') .. ': 65%',
short_description = S('Pine Nut'),
drawtype = 'plantlike',
tiles = { 'x_farming_pine_nut.png' },
inventory_image = 'x_farming_pine_nut_item.png',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = 'fixed',
fixed = {
-4 / 16,
-5 / 16,
-4 / 16,
4 / 16,
7 / 16,
4 / 16
}
},
groups = {
-- MTG
fleshy = 3,
dig_immediate = 3,
leafdecay = 3,
leafdecay_drop = 1,
compost = 65,
-- MCL
handy = 1,
shearsy = 1,
non_mycelium_plant = 1,
fire_encouragement = 60,
fire_flammability = 100,
dig_by_water = 1,
destroy_by_lava_flow = 1,
compostability = 65,
-- ALL
flammable = 2,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
minetest.set_node(pos, { name = 'x_farming:pine_nut', param2 = 1 })
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.param2 == 0 then
minetest.set_node(pos, { name = 'x_farming:pine_nut_mark' })
minetest.get_node_timer(pos):start(math.random(300, 1500))
end
end,
}
minetest.register_node('x_farming:pine_nut', pine_nut_def)
local pine_nut_roasted_def = {
description = S('Pine Nut Roasted') .. '\n' .. S('Compost chance') .. ': 85%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
short_description = S('Pine Nut Roasted'),
inventory_image = 'x_farming_pine_nut_roasted.png',
groups = {
-- MTG
fleshy = 3,
dig_immediate = 3,
compost = 85,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
non_mycelium_plant = 1,
fire_encouragement = 60,
fire_flammability = 100,
dig_by_water = 1,
destroy_by_lava_flow = 1,
compostability = 85,
food = 2,
eatable = 1,
-- ALL
flammable = 2,
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
}
if minetest.get_modpath('farming') then
pine_nut_roasted_def.on_use = minetest.item_eat(2)
end
if minetest.get_modpath('mcl_farming') then
pine_nut_roasted_def.on_place = minetest.item_eat(2)
pine_nut_roasted_def.on_secondary_use = minetest.item_eat(2)
end
minetest.register_craftitem('x_farming:pine_nut_roasted', pine_nut_roasted_def)
minetest.register_node('x_farming:pine_nut_mark', {
description = S('Pine Nut Marker'),
short_description = S('Pine Nut Marker'),
inventory_image = 'x_farming:pine_nut.png^x_farming_invisible_node_overlay.png',
wield_image = 'x_farming:pine_nut.png^x_farming_invisible_node_overlay.png',
drawtype = 'airlike',
paramtype = 'light',
sunlight_propagates = true,
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
drop = '',
groups = { not_in_creative_inventory = 1 },
on_timer = function(pos, elapsed)
if not minetest.find_node_near(pos, 1, {'x_farming:pine_nut_leaves',"default:pine_needles"}) then
minetest.remove_node(pos)
elseif minetest.get_node_light(pos) < 11 then
minetest.get_node_timer(pos):start(200)
else
minetest.set_node(pos, { name = 'x_farming:pine_nut' })
end
end
})
-- leafdecay
-- this doesnt do anything since christmas tree is loaded adterwards
-- and is overriding it due to the same trunk
-- x_farming.register_leafdecay({
-- trunks = { 'x_farming:pine_nut_tree' },
-- leaves = {
-- 'x_farming:pine_nut',
-- 'x_farming:pine_nut_leaves'
-- },
-- radius = 3,
-- })
---crate
x_farming.register_crate('crate_pine_nut_3', {
description = S('Pine Nut Crate'),
short_description = S('Pine Nut Crate'),
tiles = { 'x_farming_crate_pine_nut_3.png' },
_custom = {
crate_item = 'x_farming:pine_nut'
}
})
--[[minetest.register_decoration(asuna.features.crops.pine_nut.inject_decoration({
deco_type = "schematic",
sidelen = 16,
noise_params = {
offset = -0.010,
scale = 0.005,
spread = { x = 100, y = 100, z = 100 },
seed = 2,
octaves = 3,
persist = 0.66
},
y_max = 31000,
y_min = 4,
schematic = minetest.get_modpath("x_farming") .. '/schematics/x_farming_pine_nut_tree.mts',
flags = 'place_center_x, place_center_z'
}))]]
-- Mapgen
local c_pine_nut = minetest.get_content_id("x_farming:pine_nut")
local c_pine_tree = {}
for _,tree in ipairs({
"default:pine_tree",
"naturalbiomes:alppine1_trunk",
"naturalbiomes:alppine2_trunk",
}) do
c_pine_tree[minetest.get_content_id(tree)] = true
end
local c_pine_needles = {}
for _,needles in ipairs({
"default:pine_needles",
"naturalbiomes:alppine1_leaves",
"naturalbiomes:alppine2_leaves",
}) do
c_pine_needles[minetest.get_content_id(needles)] = true
end
abdecor.register_advanced_decoration("x_farming_pine_nut",{
target = {
place_on = {
"default:dirt_with_coniferous_litter",
"default:dirt_with_snow",
"naturalbiomes:alpine_litter",
},
spawn_by = {
"default:pine_tree",
"naturalbiomes:alppine1_trunk",
"naturalbiomes:alppine2_trunk",
},
num_spawn_by = 1,
fill_ratio = 0.0275,
biomes = asuna.features.crops.pine_nut,
y_min = 5,
y_max = 31000,
sidelen = 80,
},
fn = function(mapgen)
-- Get provided values
local pos = mapgen.pos
local va = mapgen.voxelarea
local vdata = mapgen.data
-- Get stride values and adjust position
local ystride = va.ystride
local zstride = va.zstride
pos = va:index(pos.x,pos.y + 1,pos.z)
-- Align pos with center of tree if possible
local tpos
for x = -1, 1, 1 do
for z = -zstride, zstride, zstride do
tpos = pos + x + z
if c_pine_tree[vdata[tpos]] then
pos = tpos
break
end
end
end
-- Scan nodes for pine nut placement
local pnpos
local place = {}
for x = -2, 2, 1 do
for z = -2 * zstride, 2 * zstride, zstride do
for y = 0, 11 * ystride, ystride do
pnpos = pos + x + z + y
if vdata[pnpos] == minetest.CONTENT_AIR and c_pine_needles[vdata[pnpos + ystride]] then
table.insert(place,pnpos)
y = y + ystride
end
end
end
end
-- Ensure that placement locations exist
local p = #place
if p == 0 then
return
end
-- Place pine nuts at random placement locations
local pcgr = PcgRandom(mapgen.seed)
for i = 1, pcgr:next(1,math.ceil(p / 7)) do
vdata[place[pcgr:next(1,p)]] = c_pine_nut
end
end,
})

170
mods/x_farming/potato.lua Normal file
View file

@ -0,0 +1,170 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local minlight = 13
local maxlight = 14
-- POTATO
x_farming.register_plant('x_farming:potato', {
description = S('Planting Potato') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Planting Potato'),
paramtype2 = 'meshoptions',
inventory_image = 'x_farming_potato_seed.png',
steps = 8,
minlight = minlight,
maxlight = maxlight,
fertility = { 'grassland' },
groups = { flammable = 4 },
place_param2 = 3
})
-- needed
local potato_def = {
description = S('Potato') .. '\n' .. S('Compost chance') .. ': 65%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 2'),
short_description = S('Potato'),
groups = {
-- X Farming
compost = 65,
-- MCL
food = 2,
eatable = 1,
compostability = 65,
smoker_cookable = 1
},
_mcl_saturation = 0.6
}
if minetest.get_modpath('farming') then
potato_def.on_use = minetest.item_eat(2)
end
if minetest.get_modpath('mcl_farming') then
potato_def.on_place = minetest.item_eat(2)
potato_def.on_secondary_use = minetest.item_eat(2)
end
minetest.override_item('x_farming:potato', potato_def)
-- add poisonous potato to drops
minetest.override_item('x_farming:potato_8', {
drop = {
items = {
{ items = { 'x_farming:potato' }, rarity = 1 },
{ items = { 'x_farming:potato' }, rarity = 2 },
{ items = { 'x_farming:poisonouspotato' }, rarity = 5 },
{ items = { 'x_farming:seed_potato' }, rarity = 1 },
{ items = { 'x_farming:seed_potato' }, rarity = 2 },
}
}
})
-- Baked Potato
local baked_potato_def = {
description = S('Baked Potato') .. '\n' .. S('Compost chance') .. ': 85%\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': 6'),
short_description = S('Baked Potato'),
groups = {
-- X Farming
compost = 85,
-- MCL
food = 2,
eatable = 5,
compostability = 85
},
inventory_image = 'x_farming_potato_baked.png',
_mcl_saturation = 6.0,
}
if minetest.get_modpath('farming') then
baked_potato_def.on_use = minetest.item_eat(6)
end
if minetest.get_modpath('mcl_farming') then
baked_potato_def.on_place = minetest.item_eat(6)
baked_potato_def.on_secondary_use = minetest.item_eat(6)
end
minetest.register_craftitem('x_farming:bakedpotato', baked_potato_def)
-- Poisonouos Potato
local poisonouspotato_def = {
description = S('Poisonous Potato') .. '\n'
.. minetest.colorize(x_farming.colors.brown, S('Hunger') .. ': -6'),
inventory_image = 'x_farming_potato_poisonous.png',
groups = { food = 2, eatable = 2 },
_mcl_saturation = 1.2,
}
if x_farming.hbhunger ~= nil or x_farming.hunger_ng ~= nil then
poisonouspotato_def.description = poisonouspotato_def.description .. '\n'
.. minetest.colorize(x_farming.colors.green, S('Poison') .. ': 5')
end
if minetest.get_modpath('farming') then
poisonouspotato_def.on_use = minetest.item_eat(-6)
end
if minetest.get_modpath('mcl_farming') then
poisonouspotato_def.on_place = minetest.item_eat(-6)
poisonouspotato_def.on_secondary_use = minetest.item_eat(-6)
minetest.register_on_item_eat(function(hp_change, replace_with_item, itemstack, user, pointed_thing)
-- 60% chance of poisoning with poisonous potato
if itemstack:get_name() == 'x_farming:poisonouspotato' then
if math.random(1, 10) >= 6 then
mcl_potions.poison_func(user, 1, 5)
end
end
end)
end
minetest.register_craftitem('x_farming:poisonouspotato', poisonouspotato_def)
---crate
x_farming.register_crate('crate_potato_3', {
description = S('Potato Crate'),
short_description = S('Potato Crate'),
tiles = { 'x_farming_crate_potato_3.png' },
_custom = {
crate_item = 'x_farming:potato'
}
})
minetest.register_decoration(asuna.features.crops.potato.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1109,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:potato_5",
"x_farming:potato_6",
"x_farming:potato_7",
"x_farming:potato_8",
},
}))

216
mods/x_farming/pumpkin.lua Normal file
View file

@ -0,0 +1,216 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- PUMPKIN
x_farming.register_plant('x_farming:pumpkin', {
description = S('Pumpkin Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Pumpkin Seed'),
inventory_image = 'x_farming_pumpkin_seed.png',
steps = 8,
minlight = 13,
maxlight = 14,
fertility = { 'grassland', 'desert' },
groups = { flammable = 4 },
place_param2 = 3,
})
-- PUMPKIN FRUIT - HARVEST
local pumpkin_fruit_def = {
description = S('Pumpkin'),
short_description = S('Pumpkin'),
tiles = {
'x_farming_pumpkin_fruit_top.png',
'x_farming_pumpkin_fruit_bottom.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png'
},
paramtype2 = 'facedir',
sounds = x_farming.node_sound_wood_defaults(),
is_ground_content = false,
groups = {
-- X Farming
pumpkin = 1,
-- MTG
snappy = 3,
flammable = 4,
fall_damage_add_percent = -30,
-- MCL
handy = 1,
axey = 1,
plant = 1,
dig_by_piston = 1,
},
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
drop = {
max_items = 4, -- Maximum number of items to drop.
items = { -- Choose max_items randomly from this list.
{
items = { 'x_farming:pumpkin' }, -- Items to drop.
rarity = 1, -- Probability of dropping is 1 / rarity.
},
{
items = { 'x_farming:pumpkin' }, -- Items to drop.
rarity = 2, -- Probability of dropping is 1 / rarity.
}
},
},
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local parent = oldmetadata.fields.parent
local parent_pos_from_child = minetest.string_to_pos(parent)
local parent_node = nil
-- make sure we have position
if parent_pos_from_child
and parent_pos_from_child ~= nil then
parent_node = minetest.get_node(parent_pos_from_child)
end
-- tick parent if parent stem still exists
if parent_node
and parent_node ~= nil
and parent_node.name == 'x_farming:pumpkin_8' then
x_farming.tick_block(parent_pos_from_child)
end
end
}
minetest.register_node('x_farming:pumpkin_fruit', pumpkin_fruit_def)
-- PUMPKIN BLOCK - HARVEST from crops
minetest.register_node('x_farming:pumpkin_block', {
description = S('Pumpkin Block') .. '\n' .. S('Compost chance') .. ': 65%',
short_description = S('Pumpkin Block'),
tiles = {
'x_farming_pumpkin_fruit_top.png',
'x_farming_pumpkin_fruit_bottom.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side_off.png'
},
paramtype2 = 'facedir',
sounds = x_farming.node_sound_wood_defaults(),
is_ground_content = false,
groups = {
-- X Farming
pumpkin = 1,
-- MTG
snappy = 3,
flammable = 4,
fall_damage_add_percent = -30,
compost = 65,
-- MCL
handy = 1,
axey = 1,
plant = 1,
dig_by_piston = 1,
building_block = 1,
enderman_takable = 1,
compostability = 65
},
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
})
-- PUMPKIN LANTERN -- from recipe
minetest.register_node('x_farming:pumpkin_lantern', {
description = S('Pumpkin Lantern'),
short_description = S('Pumpkin Lantern'),
tiles = {
'x_farming_pumpkin_fruit_top.png',
'x_farming_pumpkin_fruit_bottom.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side.png',
'x_farming_pumpkin_fruit_side_on.png'
},
paramtype = 'light',
paramtype2 = 'facedir',
sounds = x_farming.node_sound_wood_defaults(),
is_ground_content = false,
light_source = 12,
drop = 'x_farming:pumpkin_lantern',
groups = {
-- MTG
snappy = 3,
flammable = 4,
fall_damage_add_percent = -30,
-- MCL
handy = 1,
axey = 1,
},
_mcl_blast_resistance = 1,
_mcl_hardness = 1,
})
-- drop blocks instead of items
minetest.register_alias_force('x_farming:pumpkin', 'x_farming:pumpkin_fruit')
-- take over the growth from minetest_game farming from here
minetest.override_item('x_farming:pumpkin_8', {
next_plant = 'x_farming:pumpkin_fruit',
on_timer = x_farming.grow_block
})
-- replacement LBM for pre-nodetimer plants
minetest.register_lbm({
name = 'x_farming:start_nodetimer_pumpkin',
nodenames = { 'x_farming:pumpkin_8' },
action = function(pos, node)
x_farming.tick_block_short(pos)
end,
})
---crate
x_farming.register_crate('crate_pumpkin_block_3', {
description = S('Pumpkin Crate'),
short_description = S('Pumpkin Crate'),
tiles = { 'x_farming_crate_pumpkin_block_3.png' },
_custom = {
crate_item = 'x_farming:pumpkin_block'
}
})
minetest.register_decoration(asuna.features.crops.pumpkin.inject_decoration({
deco_type = "simple",
sidelen = 8,
noise_params = {
offset = -0.4125,
scale = 0.3575,
spread = {x = 14, y = 14, z = 14},
seed = 1110,
octaves = 2,
persist = 0.62,
lacunarity = 0.675,
},
y_max = 31000,
y_min = 5,
decoration = {
"x_farming:pumpkin_5",
"x_farming:pumpkin_6",
"x_farming:pumpkin_7",
"x_farming:pumpkin_fruit",
},
}))

273
mods/x_farming/rice.lua Normal file
View file

@ -0,0 +1,273 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
x_farming.register_plant('x_farming:rice', {
description = S('Rice Seed') .. '\n' .. S('Compost chance') .. ': 30%',
short_description = S('Rice Seed'),
tiles = { 'x_farming_silt_loam_soil.png' },
inventory_image = 'x_farming_rice_seed_inv.png',
steps = 8,
minlight = 13,
maxlight = 14,
fertility = { 'grassland' },
drawtype = 'plantlike_rooted',
paramtype2 = 'none',
visual_scale = 3.0,
special_tiles = 'x_farming_rice_seed.png',
node_dig_prediction = 'x_farming:silt_loam_soil',
groups = { attached_node = 0 },
node_placement_prediction = '',
buildable_to = false,
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
},
},
selection_box_1 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
},
},
selection_box_2 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 1.5, 4 / 16 },
},
},
selection_box_3 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 2, 4 / 16 },
},
},
selection_box_4 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 2.5, 4 / 16 },
},
},
selection_box_5 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 2.5, 4 / 16 },
},
},
selection_box_6 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 3, 4 / 16 },
},
},
selection_box_7 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 3, 4 / 16 },
},
},
selection_box_8 = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
{ -4 / 16, 0.5, -4 / 16, 4 / 16, 3, 4 / 16 },
},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= 'node' or not placer then
return itemstack
end
local player_name = placer:get_player_name()
local pos_under = pointed_thing.under
local pos_above = pointed_thing.above
local node_under = minetest.get_node(pos_under)
local def_under = minetest.registered_nodes[node_under.name]
if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then
return def_under.on_rightclick(pos_under, node_under, placer, itemstack, pointed_thing) or itemstack
end
local water_above = minetest.find_nodes_in_area(
vector.new(pos_above),
vector.new(pos_above.x, pos_above.y + 2, pos_above.z),
{ 'default:water_source' }
)
if node_under.name ~= 'x_farming:silt_loam_soil'
or minetest.get_node(pos_above).name ~= 'default:water_source'
or #water_above ~= 1
then
return itemstack
end
if minetest.is_protected(pos_under, player_name)
or minetest.is_protected(pos_above, player_name)
then
minetest.record_protection_violation(pos_under, player_name)
return itemstack
end
node_under.name = itemstack:get_name()
minetest.set_node(pos_under, node_under)
x_farming.tick(pos_under)
if not minetest.is_creative_enabled(player_name) then
itemstack:take_item()
end
return itemstack
end,
after_destruct = function(pos, oldnode)
minetest.set_node(pos, { name = 'x_farming:silt_loam_soil' })
end,
on_timer = function(pos, elapsed)
local node = minetest.get_node(pos)
local name = node.name
local def = minetest.registered_nodes[name]
if not def.next_plant then
-- disable timer for fully grown plant
return
end
-- grow seed
if minetest.get_item_group(node.name, 'seed') and def.fertility then
local water_above = minetest.find_nodes_in_area(
vector.new(pos),
vector.new(pos.x, pos.y + 2, pos.z),
{ 'default:water_source' }
)
if #water_above ~= 1 then
x_farming.tick_again(pos)
return
end
-- omitted is a check for light, we assume seeds can germinate in the dark.
local placenode = { name = def.next_plant }
if def.place_param2 then
placenode.param2 = def.place_param2
end
minetest.swap_node(pos, placenode)
if minetest.registered_nodes[def.next_plant].next_plant then
x_farming.tick(pos)
return
end
return
end
-- check if emerged in water
local water_above = minetest.find_nodes_in_area(
vector.new(pos),
vector.new(pos.x, pos.y + 2, pos.z),
{ 'default:water_source' }
)
local air_above = minetest.find_nodes_in_area(
vector.new(pos),
vector.new(pos.x, pos.y + 3, pos.z),
{ 'air' }
)
if #water_above ~= 1 or #air_above ~= 2 then
x_farming.tick_again(pos)
return
end
-- check light
local light = minetest.get_node_light(pos)
if not light or light < def.minlight or light > def.maxlight then
x_farming.tick_again(pos)
return
end
-- grow
local placenode = { name = def.next_plant }
if def.place_param2 then
placenode.param2 = def.place_param2
end
minetest.swap_node(pos, placenode)
-- new timer needed?
if minetest.registered_nodes[def.next_plant].next_plant then
x_farming.tick(pos)
end
end
})
-- Registered before the stairs so the stairs get fuel recipes.
minetest.register_craft({
type = 'fuel',
recipe = 'x_farming:rice_stack',
burntime = 3,
})
if minetest.get_modpath('stairs') then
do
local recipe = 'x_farming:rice'
local groups = { snappy = 3, flammable = 4 }
local images = { 'x_farming_rice_stack_side.png' }
local sounds = x_farming.node_sound_leaves_defaults()
stairs.register_stair('rice_stack', recipe, groups, images, S('Rice Stack Stair'),
sounds, true)
stairs.register_stair_inner('rice_stack', recipe, groups, images, '',
sounds, true, S('Inner Rice Stack Stair'))
stairs.register_stair_outer('rice_stack', recipe, groups, images, '',
sounds, true, S('Outer Rice Stack Stair'))
stairs.register_slab('rice_stack', recipe, groups, images, S('Rice Stack Slab'),
sounds, true)
end
end
-- crate
x_farming.register_crate('crate_rice_3', {
description = S('Rice Crate'),
short_description = S('Rice Crate'),
tiles = { 'x_farming_crate_rice_3.png' },
_custom = {
crate_item = 'x_farming:rice'
}
})
-- bag
x_farming.register_bag('bag_rice_grains', {
description = S('Rice Grain') .. ' Bag',
short_description = S('Rice Grain') .. ' Bag',
tiles = { 'x_farming_bag_rice_grains.png' },
_custom = {
bag_item = 'x_farming:rice_grains'
}
})

259
mods/x_farming/ropes.lua Normal file
View file

@ -0,0 +1,259 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
local function place_rope(pos, itemstack)
local next_node = minetest.get_node(pos)
local stack_name = itemstack:get_name()
while next_node.name == 'air' and not itemstack:is_empty() do
minetest.set_node(pos, { name = stack_name, param1 = 0 })
itemstack:take_item()
pos.y = pos.y - 1
next_node = minetest.get_node(pos)
end
return itemstack
end
minetest.register_node('x_farming:rope', {
description = S('Rope\n') .. '. ' .. minetest.colorize('#d0ffd0',S('Place on rope to extend down')),
drawtype = 'plantlike',
walkable = false,
paramtype = 'light',
sunlight_propagates = true,
climbable = true,
wield_scale = { x = 2, y = 2, z = 1 },
groups = {
-- MTG
snappy = 3,
flammable = 3,
rope = 1,
},
tiles = { 'x_farming_rope.png' },
inventory_image = 'x_farming_rope_item.png',
wield_image = 'x_farming_rope_item.png',
selection_box = {
type = 'fixed',
fixed = { -2 / 16, -0.5, -2 / 16, 2 / 16, 0.5, 2 / 16 }
},
sounds = x_farming.node_sound_rope_defaults(),
on_place = function(itemstack, placer, pointed_thing)
local control = placer:get_player_control()
local pt_pos = minetest.get_pointed_thing_position(pointed_thing)
if pt_pos and pointed_thing.type == 'node' then
local pt_node = minetest.get_node(pt_pos)
if minetest.is_protected(pt_pos, placer:get_player_name()) then
return itemstack
end
local pt_node_def = minetest.registered_nodes[pt_node.name]
-- check if we have to use default on_place first
if pt_node_def.on_rightclick then
return pt_node_def.on_rightclick(pt_pos, pt_node, placer, itemstack, pointed_thing)
end
end
-- placing rope on rope
if pt_pos and not control.sneak then
local pt_node = minetest.get_node(pt_pos)
if minetest.get_item_group(pt_node.name, 'rope') > 0 then
-- add to rope
local _pos = vector.new(pt_pos)
local next_node = minetest.get_node(_pos)
while minetest.get_item_group(next_node.name, 'rope') > 0 do
_pos.y = _pos.y - 1
next_node = minetest.get_node(_pos)
end
return place_rope(_pos, itemstack)
end
end
if pointed_thing.type == 'node' then
local pos = pointed_thing.above
if minetest.is_protected(pos, placer:get_player_name()) then
return itemstack
end
return place_rope(pos, itemstack)
end
return itemstack
end,
on_punch = function(pos, node, puncher, pointed_thing)
if minetest.is_protected(pos, puncher:get_player_name()) then
return
end
local count = 0
local below = vector.new(pos)
local node_below = minetest.get_node(below)
while minetest.get_item_group(node_below.name, 'rope') > 0 do
minetest.remove_node(below)
below.y = below.y - 1
count = count + 1
node_below = minetest.get_node(below)
end
if count == 0 then
return
end
local stacks = {}
local node_stack = ItemStack({ name = node.name })
local stack_max = node_stack:get_stack_max()
local stack_count = count
if stack_count > stack_max then
while stack_count > 0 do
if stack_count > stack_max then
stack_count = stack_count - stack_max
table.insert(stacks, ItemStack({ name = node.name, count = stack_max }))
else
table.insert(stacks, ItemStack({ name = node.name, count = stack_count }))
stack_count = 0
end
end
else
table.insert(stacks, ItemStack({ name = node.name, count = count }))
end
local inv = puncher:get_inventory()
for _, stack in ipairs(stacks) do
if inv and inv:room_for_item('main', stack) then
inv:add_item('main', stack)
else
-- drop on the ground
minetest.add_item(puncher:get_pos(), stack)
end
end
return true
end,
})
minetest.register_node('x_farming:safety_net', {
description = S('Safety Net. No fall damage when landing on this net.'),
drawtype = 'nodebox',
node_box = {
type = 'fixed',
fixed = { -8 / 16, -8 / 16, -8 / 16, 8 / 16, -7 / 16, 8 / 16 },
},
selection_box = {
type = 'fixed',
fixed = { -8 / 16, -8 / 16, -8 / 16, 8 / 16, -6 / 16, 8 / 16 }
},
tiles = {
'x_farming_safety_net.png',
'x_farming_safety_net.png',
'x_farming_safety_net_side.png',
},
use_texture_alpha = 'clip',
wield_image = 'x_farming_safety_net.png',
inventory_image = 'x_farming_safety_net.png',
paramtype = 'light',
sunlight_propagates = true,
wield_scale = { x = 2, y = 2, z = 1 },
groups = {
-- MTG
snappy = 3,
flammable = 3,
bouncy = 33,
fall_damage_add_percent = -100,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1
},
_mcl_hardness = 0.2,
sounds = x_farming.node_sound_rope_defaults()
})
minetest.register_node('x_farming:rope_fence', {
description = S('Rope') .. ' ' .. S('Fence'),
drawtype = 'nodebox',
paramtype = 'light',
climbable = true,
wield_scale = { x = 2, y = 2, z = 1 },
node_box = {
type = 'connected',
fixed = { -1 / 16, -1 / 2, -1 / 16, 1 / 16, 1 / 2, 1 / 16 },
-- connect_top =
-- connect_bottom =
connect_front = {
{ 0, -8 / 16, -8 / 16, 0, 7 / 16, -1 / 16 }
},
connect_left = {
{ -1 / 2, -1 / 2, 0, -1 / 16, 7 / 16, 0 }
},
connect_back = {
{ 0, -8 / 16, 1 / 16, 0, 7 / 16, 1 / 2 }
},
connect_right = {
{ 1 / 16, -1 / 2, 0, 1 / 2, 7 / 16, 0 }
}
},
collision_box = {
type = 'connected',
fixed = { -1 / 8, -1 / 2, -1 / 8, 1 / 8, 1 / 2, 1 / 8 },
-- connect_top =
-- connect_bottom =
connect_front = { -1 / 8, -1 / 2, -1 / 2, 1 / 8, 1 / 2, -1 / 8 },
connect_left = { -1 / 2, -1 / 2, -1 / 8, -1 / 8, 1 / 2, 1 / 8 },
connect_back = { -1 / 8, -1 / 2, 1 / 8, 1 / 8, 1 / 2, 1 / 2 },
connect_right = { 1 / 8, -1 / 2, -1 / 8, 1 / 2, 1 / 2, 1 / 8 }
},
connects_to = {
-- MTG
'group:fence',
'group:wood',
'group:tree',
'group:wall',
'group:stone',
},
inventory_image = 'x_farming_rope_fence_item.png',
wield_image = 'x_farming_rope_fence_item.png',
tiles = { 'x_farming_rope_fence.png' },
use_texture_alpha = 'clip',
sunlight_propagates = true,
is_ground_content = false,
groups = {
-- MTG
fence = 1,
snappy = 3,
flammable = 2,
-- MCL
handy = 1,
hoey = 1,
shearsy = 1,
swordy = 1
},
_mcl_hardness = 0.2,
sounds = x_farming.node_sound_rope_defaults()
})

741
mods/x_farming/salt.lua Normal file
View file

@ -0,0 +1,741 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
local S = minetest.get_translator(minetest.get_current_modname())
-- how often a growth failure tick is retried (e.g. too dark)
local function tick_again(pos)
minetest.get_node_timer(pos):start(math.random(80, 160))
end
-- SALT
minetest.register_craftitem('x_farming:salt', {
description = S('Salt'),
short_description = S('Salt'),
tiles = { 'x_farming_salt.png' },
inventory_image = 'x_farming_salt.png',
wield_image = 'x_farming_salt.png'
})
minetest.register_node('x_farming:seed_salt', {
description = S('Salty Water (plant soil)'),
short_description = S('Salty Water (plant soil)'),
inventory_image = 'x_farming_salt_water.png',
wield_image = 'x_farming_salt_water.png',
fertility = { 'grassland' },
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_1_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png'
},
use_texture_alpha = 'clip',
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
seed = 1,
snappy = 3,
flammable = 2,
plant = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_1',
on_timer = x_farming.grow_plant,
on_place = function(itemstack, placer, pointed_thing)
local under = pointed_thing.under
local node = minetest.get_node(under)
local udef = minetest.registered_nodes[node.name]
if udef and udef.on_rightclick
and not (placer and placer:is_player()
and placer:get_player_control().sneak)
then
return udef.on_rightclick(under, node, placer, itemstack, pointed_thing) or itemstack
end
return x_farming.place_seed(itemstack, placer, pointed_thing, 'x_farming:seed_salt')
end,
})
-- 1
minetest.register_node('x_farming:salt_1', {
description = S('Salt') .. ' 1',
short_description = S('Salt') .. ' 1',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_1_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 8 },
{ items = { 'x_farming:seed_salt' }, rarity = 8 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_2',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 2
minetest.register_node('x_farming:salt_2', {
description = S('Salt') .. ' 2',
short_description = S('Salt') .. ' 2',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_2_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png',
'x_farming_salt_1_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 7 },
{ items = { 'x_farming:seed_salt' }, rarity = 7 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_3',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 3
minetest.register_node('x_farming:salt_3', {
description = S('Salt') .. ' 3',
short_description = S('Salt') .. ' 3',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_2_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 6 },
{ items = { 'x_farming:seed_salt' }, rarity = 6 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
{ -0.0625, -0.5, -0.0625, 0.0625, -0.25, 0.0625 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_4',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 4
minetest.register_node('x_farming:salt_4', {
description = S('Salt') .. ' 4',
short_description = S('Salt') .. ' 4',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_3_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png',
'x_farming_salt_2_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 5 },
{ items = { 'x_farming:seed_salt' }, rarity = 5 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
{ -0.0625, -0.5, -0.0625, 0.0625, -0.25, 0.0625 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_5',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 5
minetest.register_node('x_farming:salt_5', {
description = S('Salt') .. ' 5',
short_description = S('Salt') .. ' 5',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_3_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 4 },
{ items = { 'x_farming:seed_salt' }, rarity = 4 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
{ -0.1875, -0.375, -0.1875, 0.1875, -0.25, 0.1875 },
{ -0.0625, -0.25, -0.0625, 0.0625, -0.125, 0.0625 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_6',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 6
minetest.register_node('x_farming:salt_6', {
description = S('Salt') .. ' 6',
short_description = S('Salt') .. ' 6',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_4_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png',
'x_farming_salt_3_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 3 },
{ items = { 'x_farming:seed_salt' }, rarity = 3 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
{ -0.1875, -0.375, -0.1875, 0.1875, -0.25, 0.1875 },
{ -0.0625, -0.25, -0.0625, 0.0625, -0.125, 0.0625 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
next_plant = 'x_farming:salt_7',
on_timer = x_farming.grow_plant,
minlight = 13,
maxlight = 15
})
-- 7
minetest.register_node('x_farming:salt_7', {
description = S('Salt') .. ' 7',
short_description = S('Salt') .. ' 7',
drawtype = 'nodebox',
tiles = {
{
name = "x_farming_salt_4_top.png",
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
'x_farming_salt_1_bottom.png',
'x_farming_salt_4_side.png',
'x_farming_salt_4_side.png',
'x_farming_salt_4_side.png',
'x_farming_salt_4_side.png'
},
use_texture_alpha = 'clip',
paramtype = 'light',
sunlight_propagates = true,
on_rotate = function(pos, node, user, mode, new_param2)
return false
end,
is_ground_content = false,
walkable = false,
buildable_to = true,
drop = {
items = {
{ items = { 'x_farming:salt' }, rarity = 1 },
{ items = { 'x_farming:salt' }, rarity = 2 },
{ items = { 'x_farming:seed_salt' }, rarity = 1 },
{ items = { 'x_farming:seed_salt' }, rarity = 2 },
}
},
node_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
{ -0.3125, -0.5, -0.3125, 0.3125, -0.25, 0.3125 },
{ -0.1875, -0.5, -0.1875, 0.1875, -0.125, 0.1875 },
{ -0.0625, -0.5, -0.0625, 0.0625, 0, 0.0625 },
}
},
collision_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
selection_box = {
type = 'fixed',
fixed = {
{ -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 },
},
},
groups = {
-- MTG
snappy = 3,
flammable = 2,
plant = 1,
not_in_creative_inventory = 1,
attached_node = 1,
-- MCL
handy = 1,
shearsy = 1,
deco_block = 1,
dig_by_water = 1,
destroy_by_lava_flow = 1,
dig_by_piston = 1
},
_mcl_blast_resistance = 0,
_mcl_hardness = 0,
sounds = x_farming.node_sound_leaves_defaults(),
minlight = 13,
maxlight = 15
})
-- replacement LBM for pre-nodetimer plants
minetest.register_lbm({
name = 'x_farming:start_nodetimer_salt',
nodenames = {
'x_farming:seed_salt',
'x_farming:salt_1',
'x_farming:salt_2',
'x_farming:salt_3',
'x_farming:salt_4',
'x_farming:salt_5',
'x_farming:salt_6',
},
action = function(pos, node)
tick_again(pos)
end,
})
---bag
x_farming.register_bag('bag_salt', {
description = S('Salt') .. ' Bag',
short_description = S('Salt') .. ' Bag',
tiles = { 'x_farming_bag_salt.png' },
_custom = {
bag_item = 'x_farming:salt'
}
})
minetest.register_on_mods_loaded(function()
local deco_place_on = {}
local deco_biomes = {}
-- MTG
if minetest.get_modpath('default') then
table.insert(deco_place_on, 'default:dirt')
table.insert(deco_place_on, 'default:dry_dirt')
table.insert(deco_biomes, 'rainforest_swamp')
table.insert(deco_biomes, 'savanna_shore')
end
-- MCL
if minetest.get_modpath('mcl_core') then
table.insert(deco_place_on, 'mcl_core:sand')
table.insert(deco_biomes, 'Savanna_beach')
end
if next(deco_place_on) and next(deco_biomes) then
minetest.register_decoration({
name = 'x_farming:salt',
deco_type = 'schematic',
place_on = deco_place_on,
sidelen = 16,
noise_params = {
offset = -0.3,
scale = 0.7,
spread = { x = 200, y = 200, z = 200 },
seed = 354,
octaves = 3,
persist = 0.7
},
biomes = deco_biomes,
y_max = 0,
y_min = 0,
schematic = minetest.get_modpath('x_farming') .. '/schematics/x_farming_salt_decor.mts',
})
end
end)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

35
mods/x_farming/seeds.lua Normal file
View file

@ -0,0 +1,35 @@
--[[
X Farming. Extends Minetest farming mod with new plants, crops and ice fishing.
Copyright (C) 2024 SaKeL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to juraj.vajda@gmail.com
--]]
-- Register farming items as dungeon loot
if minetest.global_exists('dungeon_loot') then
dungeon_loot.register({
{ name = 'x_farming:seed_obsidian_wart', chance = 0.3, count = { 1, 2 } },
{ name = 'x_farming:seed_pumpkin', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_beetroot', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_carrot', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_potato', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_coffee', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_corn', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:seed_melon', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:cocoa_bean', chance = 0.4, count = { 1, 4 } },
{ name = 'x_farming:large_cactus_with_fruit_seedling', chance = 0.4, count = { 1, 1 } },
{ name = 'x_farming:kiwi_sapling', chance = 0.4, count = { 1, 1 } },
{ name = 'x_farming:seed_strawberry', chance = 0.4, count = { 1, 4 } },
})
end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more