mods that hopefully work for a TechAge-based pack
This commit is contained in:
1 parent
4e6b08d194
commit
c27db2a537
6234 files changed
+375578
No files matched your search
@@ -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
|
||||
|
||||
core.place_schematic(
|
||||
{ x = pos.x - 19, y = pos.y, z = pos.z - 19 },
|
||||
core.get_modpath('mymod') .. '/schematics/mymod_mytree_from_sapling.mts',
|
||||
'random',
|
||||
nil,
|
||||
false
|
||||
)
|
||||
|
||||
return true
|
||||
end
|
||||
}
|
||||
})
|
||||
```
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,438 @@
|
||||
# X Farming [x_farming]
|
||||
|
||||
Farming with new plants, crops and ice fishing.
|
||||
|
||||

|
||||
|
||||
## 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 
|
||||
|
||||
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 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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)** 
|
||||
|
||||
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 
|
||||
|
||||
When farmed, corn will take 10 stages to grow.
|
||||
Corn cannot be eaten but is used for crafting popped corn.
|
||||
|
||||
**Popped Corn** 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
Wart brick can be obtained by cooking obsidian wart in a furnace.
|
||||
Wart brick is used for furhter crafting.
|
||||
|
||||
**Wart Block** 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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** 
|
||||
|
||||
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
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,27 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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(core.settings:get('default_stack_max')) or 99
|
||||
})
|
||||
@@ -0,0 +1,134 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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,
|
||||
}
|
||||
|
||||
core.override_item('x_farming:barley', override_def)
|
||||
|
||||
-- Registered before the stairs so the stairs get fuel recipes.
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:barley_stack',
|
||||
burntime = 3,
|
||||
})
|
||||
|
||||
if core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'savanna')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'everness:baobab_savanna')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Savanna')
|
||||
table.insert(deco_biomes, 'SavannaM')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:barley',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:barley_5',
|
||||
'x_farming:barley_6',
|
||||
'x_farming:barley_7',
|
||||
'x_farming:barley_8'
|
||||
},
|
||||
param2 = 11,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,624 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
local rand = PcgRandom(tonumber(tostring(os.time()):reverse():sub(1, 9)))
|
||||
|
||||
local function update_hive_infotext(pos)
|
||||
local meta = core.get_meta(pos)
|
||||
local data = core.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)
|
||||
core.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 = core.get_meta(pos)
|
||||
local data = core.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)
|
||||
core.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)
|
||||
core.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 = core.get_node(pos)
|
||||
|
||||
if not hive_node then
|
||||
return false
|
||||
end
|
||||
|
||||
if not ommit_node_group_check then
|
||||
if core.get_item_group(hive_node.name, 'bee_hive') == 0 then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
local meta_hive = core.get_meta(pos)
|
||||
local data_hive = core.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 = core.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
|
||||
core.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 = core.get_meta(pos)
|
||||
local data_hive = core.deserialize(meta_hive:get_string('x_farming'))
|
||||
local node = core.get_node(pos)
|
||||
|
||||
if data_hive.occupancy == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local flower_positions = core.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 = core.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), core.facedir_to_dir(node.param2))
|
||||
|
||||
-- Send bee out
|
||||
data_hive.occupancy = data_hive.occupancy - 1
|
||||
|
||||
core.swap_node(pos_bee, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
|
||||
tick_bee(pos_bee)
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos_bee,
|
||||
})
|
||||
|
||||
bee_particles(pos_bee)
|
||||
bee_particles(pos_hive_front)
|
||||
|
||||
-- Bee data
|
||||
local meta_bee = core.get_meta(pos_bee)
|
||||
local data_bee = {
|
||||
pos_hive = vector.new(pos):to_string()
|
||||
}
|
||||
|
||||
meta_bee:set_string('x_farming', core.serialize(data_bee))
|
||||
meta_hive:set_string('x_farming', core.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 = core.get_meta(pos)
|
||||
local data = {
|
||||
occupancy = 0,
|
||||
saturation = 0
|
||||
}
|
||||
|
||||
meta:set_string('x_farming', core.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 = core.get_meta(pos)
|
||||
local data = core.deserialize(meta:get_string('x_farming'))
|
||||
|
||||
if not data then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if data.occupancy == 3 then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if core.get_item_group(itemstack:get_name(), 'bee') > 0 then
|
||||
data.occupancy = data.occupancy + 1
|
||||
meta:set_string('x_farming', core.serialize(data))
|
||||
update_hive_infotext(pos)
|
||||
itemstack:take_item()
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
end
|
||||
|
||||
if data.occupancy > 0 and not core.get_node_timer(pos):is_started() then
|
||||
tick_hive(pos)
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local data = core.deserialize(oldmetadata.fields.x_farming)
|
||||
local positions = core.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)
|
||||
core.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
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos_bee,
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Hive saturrated
|
||||
core.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 = core.get_meta(pos)
|
||||
local data = core.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), core.facedir_to_dir(node.param2))
|
||||
|
||||
core.add_item(
|
||||
pos_hive_front,
|
||||
ItemStack({ name = 'x_farming:bottle_honey' })
|
||||
)
|
||||
|
||||
core.swap_node(pos, { name = 'x_farming:bee_hive', param2 = node.param2 })
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
|
||||
bee_particles(pos_hive_front)
|
||||
|
||||
data.saturation = 0
|
||||
meta:set_string('x_farming', core.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), core.facedir_to_dir(node.param2))
|
||||
|
||||
core.add_item(
|
||||
pos_hive_front,
|
||||
ItemStack({ name = 'x_farming:honeycomb' })
|
||||
)
|
||||
|
||||
core.swap_node(pos, { name = 'x_farming:bee_hive', param2 = node.param2 })
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
|
||||
bee_particles(pos_hive_front)
|
||||
|
||||
data.saturation = 0
|
||||
meta:set_string('x_farming', core.serialize(data))
|
||||
update_hive_infotext(pos)
|
||||
|
||||
tick_hive(pos)
|
||||
end
|
||||
|
||||
return stack
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
local data = core.deserialize(oldmetadata.fields.x_farming)
|
||||
local positions = core.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)
|
||||
core.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
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
-- Bee
|
||||
core.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 = core.get_meta(pos)
|
||||
local data_bee = core.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
|
||||
core.remove_node(pos)
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
|
||||
bee_particles(pos)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local meta_hive = core.get_meta(pos_hive)
|
||||
local data_hive = core.deserialize(meta_hive:get_string('x_farming'))
|
||||
local node_hive = core.get_node(pos_hive)
|
||||
|
||||
-- Bee go home
|
||||
data_hive.occupancy = data_hive.occupancy + 1
|
||||
|
||||
local flower_node = core.get_node(vector.new(pos.x, pos.y - 1, pos.z))
|
||||
|
||||
if flower_node then
|
||||
if core.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
|
||||
core.swap_node(pos_hive, { name = 'x_farming:bee_hive_saturated', param2 = node_hive.param2 })
|
||||
end
|
||||
end
|
||||
|
||||
meta_hive:set_string('x_farming', core.serialize(data_hive))
|
||||
core.remove_node(pos)
|
||||
update_hive_infotext(pos_hive)
|
||||
|
||||
core.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), core.facedir_to_dir(node_hive.param2))
|
||||
|
||||
bee_particles(pos)
|
||||
bee_particles(pos_hive_front)
|
||||
|
||||
if not core.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)
|
||||
|
||||
core.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()
|
||||
core.remove_node(pos)
|
||||
core.add_item(vector.new(pos.x, pos.y + 0.3, pos.z), ItemStack({ name = 'x_farming:jar_with_bee' }))
|
||||
|
||||
core.sound_play('x_farming_bee', {
|
||||
pos = pos,
|
||||
})
|
||||
|
||||
bee_particles(pos)
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
-- Spawn bees on flowers
|
||||
-- local bee_spawn_timer = 0
|
||||
core.register_globalstep(function(dtime)
|
||||
-- bee_spawn_timer = bee_spawn_timer + dtime
|
||||
|
||||
-- if bee_spawn_timer > rand:next(90, 150) then
|
||||
local abr = core.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 = core.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 = core.find_node_near(spawnpos, abr * 16 * 1.1, { 'group:bee' }) or {}
|
||||
|
||||
if #bees > 1 then
|
||||
return
|
||||
end
|
||||
|
||||
local flower_positions = core.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)
|
||||
|
||||
core.swap_node(bee_pos, { name = 'x_farming:bee', param2 = rand:next(0, 3) })
|
||||
tick_bee(bee_pos)
|
||||
|
||||
core.log('action', '[x_farming] Added Bee at ' .. core.pos_to_string(bee_pos))
|
||||
end
|
||||
end
|
||||
|
||||
-- bee_spawn_timer = 0
|
||||
-- end
|
||||
end)
|
||||
@@ -0,0 +1,122 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
beetroot_def.on_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
beetroot_def.on_place = core.item_eat(3)
|
||||
beetroot_def.on_secondary_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:silver_sand')
|
||||
table.insert(deco_biomes, 'cold_desert')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:forsaken_desert_sand')
|
||||
table.insert(deco_biomes, 'everness:forsaken_desert')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_colorblocks:hardened_clay')
|
||||
table.insert(deco_biomes, 'Mesa')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:beetroot',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:beetroot_5',
|
||||
'x_farming:beetroot_6',
|
||||
'x_farming:beetroot_7',
|
||||
'x_farming:beetroot_8',
|
||||
},
|
||||
param2 = 0,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,58 @@
|
||||
--[[
|
||||
X Farming Bonemeal. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
--- Register craftitem definition - added to core.registered_items[name]
|
||||
core.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
|
||||
--
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:bonemeal 4',
|
||||
recipe = {
|
||||
{ 'bones:bones' }
|
||||
}
|
||||
})
|
||||
|
||||
if core.get_modpath('default') then
|
||||
core.register_craft({
|
||||
output = 'x_farming:bonemeal 4',
|
||||
recipe = {
|
||||
{ 'default:coral_skeleton' }
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
if core.get_modpath('everness') then
|
||||
core.register_craft({
|
||||
output = 'x_farming:bonemeal 4',
|
||||
recipe = {
|
||||
{ 'everness:coral_skeleton' }
|
||||
}
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,334 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- Large cactus
|
||||
|
||||
core.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 = core.rotate_node,
|
||||
})
|
||||
|
||||
core.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
|
||||
core.set_node(pos, { name = 'x_farming:cactus_fruit_mark' })
|
||||
core.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
core.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 = core.get_node({ x = pos.x, y = pos.y - 1, z = pos.z })
|
||||
|
||||
if n.name ~= 'x_farming:cactus' then
|
||||
core.remove_node(pos)
|
||||
elseif core.get_node_light(pos) < 11 then
|
||||
core.get_node_timer(pos):start(200)
|
||||
else
|
||||
core.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'
|
||||
.. core.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 = core.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)
|
||||
core.set_node(pos, { name = 'x_farming:cactus_fruit' })
|
||||
end,
|
||||
}
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
cactus_fruit_item_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
|
||||
core.register_node('x_farming:cactus_fruit_item', cactus_fruit_item_def)
|
||||
|
||||
core.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.
|
||||
core.get_node_timer(pos):start(math.random(1859, 3719))
|
||||
end,
|
||||
|
||||
on_timer = function(pos, elapsed)
|
||||
local node_under = core.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
|
||||
core.get_node_timer(pos):start(300)
|
||||
return
|
||||
end
|
||||
|
||||
if core.get_item_group(node_under.name, 'sand') == 0 then
|
||||
-- Seedling dies
|
||||
core.remove_node(pos)
|
||||
return
|
||||
end
|
||||
|
||||
local light_level = core.get_node_light(pos)
|
||||
if not light_level or light_level < 13 then
|
||||
-- Too dark for growth, try later in case it's night
|
||||
core.get_node_timer(pos):start(300)
|
||||
return
|
||||
end
|
||||
|
||||
core.log('action', 'A large cactus seedling grows into a large' ..
|
||||
'cactus at ' .. core.pos_to_string(pos))
|
||||
x_farming.grow_large_cactus(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
x_farming.register_leafdecay({
|
||||
trunks = { 'x_farming:cactus' },
|
||||
leaves = { 'x_farming:cactus_fruit' },
|
||||
radius = 1,
|
||||
})
|
||||
|
||||
core.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', '' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:large_cactus_with_fruit_seedling',
|
||||
burntime = 5,
|
||||
})
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:desert_sand')
|
||||
table.insert(deco_biomes, 'desert')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:forsaken_desert_sand')
|
||||
table.insert(deco_biomes, 'everness:forsaken_desert')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:sand')
|
||||
table.insert(deco_biomes, 'Desert')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:large_cactus',
|
||||
deco_type = 'schematic',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.0003,
|
||||
scale = 0.0009,
|
||||
spread = { x = 200, y = 200, z = 200 },
|
||||
seed = 230,
|
||||
octaves = 3,
|
||||
persist = 0.6
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 4,
|
||||
schematic = core.get_modpath('x_farming') .. '/schematics/x_farming_large_cactus.mts',
|
||||
flags = 'place_center_x, place_center_z',
|
||||
rotation = 'random',
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,151 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
carrot_def.on_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
carrot_def.on_place = core.item_eat(3)
|
||||
carrot_def.on_secondary_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
core.override_item('x_farming:carrot', carrot_def)
|
||||
|
||||
-- Golden carrot
|
||||
local golden_carrot_def = {
|
||||
description = S('Golden Carrot') .. '\n' .. core.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' .. core.colorize(x_farming.colors.red, S('Heal') .. ': 10')
|
||||
end
|
||||
|
||||
if core.get_modpath('farming') then
|
||||
golden_carrot_def.on_use = core.item_eat(10)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
golden_carrot_def.on_place = core.item_eat(10)
|
||||
golden_carrot_def.on_secondary_use = core.item_eat(10)
|
||||
end
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'grassland')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dirt_with_coral_grass')
|
||||
table.insert(deco_biomes, 'everness:coral_forest')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Plains')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:carrot',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:carrot_5',
|
||||
'x_farming:carrot_6',
|
||||
'x_farming:carrot_7',
|
||||
'x_farming:carrot_8',
|
||||
},
|
||||
param2 = 3,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,163 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
core.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)
|
||||
core.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
|
||||
core.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
|
||||
core.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,
|
||||
})
|
||||
@@ -0,0 +1,687 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- how often node timers for plants will tick, +/- some random value
|
||||
local function tick(pos)
|
||||
core.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)
|
||||
core.get_node_timer(pos):start(math.random(80, 160))
|
||||
end
|
||||
|
||||
function x_farming.grow_cocoa_plant(pos, elapsed)
|
||||
local node = core.get_node(pos)
|
||||
local name = node.name
|
||||
local def = core.registered_nodes[name]
|
||||
|
||||
if not def.next_plant then
|
||||
-- disable timer for fully grown plant
|
||||
return
|
||||
end
|
||||
|
||||
-- check if on jungletree
|
||||
local direction = core.facedir_to_dir(node.param2)
|
||||
local below_pos = vector.add(pos, direction)
|
||||
local below = core.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 = core.get_node_light(pos)
|
||||
if not light or light < def.minlight or light > def.maxlight then
|
||||
tick_again(pos)
|
||||
return
|
||||
end
|
||||
|
||||
-- grow
|
||||
core.swap_node(pos, { name = def.next_plant, param2 = node.param2 })
|
||||
|
||||
-- new timer needed?
|
||||
if core.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 = core.get_node(pt.under)
|
||||
local above = core.get_node(pt.above)
|
||||
|
||||
local udef = core.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 core.is_protected(pt.under, player_name) then
|
||||
core.record_protection_violation(pt.under, player_name)
|
||||
return
|
||||
end
|
||||
|
||||
if core.is_protected(pt.above, player_name) then
|
||||
core.record_protection_violation(pt.above, player_name)
|
||||
return
|
||||
end
|
||||
|
||||
-- return if any of the nodes is not registered
|
||||
if not core.registered_nodes[under.name] then
|
||||
return itemstack
|
||||
end
|
||||
if not core.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 core.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 = core.dir_to_facedir(direction)
|
||||
|
||||
-- add the node and remove 1 item from the itemstack
|
||||
core.set_node(pt.above, { name = 'x_farming:cocoa_1', param2 = new_param2 })
|
||||
|
||||
tick(pt.above)
|
||||
if not core.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- COCOA
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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,
|
||||
})
|
||||
|
||||
core.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)
|
||||
core.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
|
||||
core.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 = core.rotate_node
|
||||
})
|
||||
|
||||
-- leaves
|
||||
core.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:cocoa_3',
|
||||
'x_farming:jungle_leaves'
|
||||
},
|
||||
radius = 2,
|
||||
})
|
||||
|
||||
-- planks
|
||||
core.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(),
|
||||
})
|
||||
|
||||
-- Cookie
|
||||
local cookie_def = {
|
||||
description = S('Cookie') .. '\n' .. S('Compost chance') .. ': 85%\n'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
cookie_def.on_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
cookie_def.on_place = core.item_eat(2)
|
||||
cookie_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:cookie', cookie_def)
|
||||
|
||||
-- Chocolate
|
||||
local chocolate_def = {
|
||||
description = S('Chocolate') .. '\n' .. S('Compost chance') .. ': 65%\n'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
chocolate_def.on_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
chocolate_def.on_place = core.item_eat(3)
|
||||
chocolate_def.on_secondary_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:chocolate', chocolate_def)
|
||||
|
||||
-- Stairs
|
||||
if core.global_exists('stairs') and core.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
|
||||
|
||||
if core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
local deco_fill_ratio = 0.025
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dirt_with_rainforest_litter')
|
||||
table.insert(deco_biomes, 'rainforest')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dirt_with_grass_1')
|
||||
table.insert(deco_biomes, 'everness:bamboo_forest')
|
||||
deco_fill_ratio = deco_fill_ratio / 20
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Jungle')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:jungle_tree',
|
||||
deco_type = 'schematic',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 80,
|
||||
fill_ratio = deco_fill_ratio,
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
schematic = core.get_modpath('x_farming') .. '/schematics/x_farming_jungle_tree_with_cocoa.mts',
|
||||
flags = 'place_center_x, place_center_z',
|
||||
rotation = '0',
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,169 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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
|
||||
core.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,
|
||||
}
|
||||
})
|
||||
|
||||
core.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'
|
||||
.. core.colorize(x_farming.colors.brown, S('Hunger') .. ': 6'),
|
||||
short_description = S('Hot Cup of Coffee') .. '\n'
|
||||
.. core.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 = core.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' .. core.colorize(x_farming.colors.red, S('Heal') .. ': 4')
|
||||
coffee_cup_hot_def.short_description = coffee_cup_hot_def.short_description .. '\n' .. core.colorize(x_farming.colors.red, S('Heal') .. ': 4')
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
coffee_cup_hot_def.on_secondary_use = core.item_eat(6)
|
||||
end
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'savanna')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'everness:baobab_savanna')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Savanna')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:coffee',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:coffee_3',
|
||||
'x_farming:coffee_4',
|
||||
'x_farming:coffee_5',
|
||||
},
|
||||
param2 = 3,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,238 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
local function particle_effect(pos)
|
||||
core.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 core.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 core.get_item_group(wield_stack_name, 'compost') > 0 then
|
||||
-- defined in groups, e.g. `{ compost = 10 }`
|
||||
chance = core.get_item_group(wield_stack_name, 'compost')
|
||||
elseif core.get_item_group(wield_stack_name, 'food_bread') == 1
|
||||
or core.get_item_group(wield_stack_name, 'wool') == 1
|
||||
or node.name == 'farming:straw'
|
||||
then
|
||||
chance = 85
|
||||
elseif core.get_item_group(wield_stack_name, 'flora') == 1
|
||||
or core.get_item_group(wield_stack_name, 'food_apple') == 1
|
||||
or core.get_item_group(wield_stack_name, 'fern') == 1
|
||||
or core.get_item_group(wield_stack_name, 'food_wheat') == 1
|
||||
or core.get_item_group(wield_stack_name, 'food_flour') == 1
|
||||
or core.get_item_group(wield_stack_name, 'mushroom') == 1
|
||||
or core.get_item_group(wield_stack_name, 'flower') == 1
|
||||
then
|
||||
chance = 65
|
||||
elseif core.get_item_group(wield_stack_name, 'marram_grass') == 1
|
||||
or core.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 core.get_item_group(wield_stack_name, 'leaves') == 1
|
||||
or core.get_item_group(wield_stack_name, 'seed') == 1
|
||||
or core.get_item_group(wield_stack_name, 'grass') == 1
|
||||
or core.get_item_group(wield_stack_name, 'snappy') == 3
|
||||
or core.get_item_group(wield_stack_name, 'sapling') == 1
|
||||
or core.get_item_group(wield_stack_name, 'food_blueberries') == 1
|
||||
or core.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 = core.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 = core.registered_nodes[node.name]
|
||||
|
||||
if math.fmod(status, 50) == 0 and node_def._next_state then
|
||||
local placenode = { name = node_def._next_state }
|
||||
|
||||
core.swap_node(pos, placenode)
|
||||
particle_effect(pos)
|
||||
|
||||
if i == 3 then
|
||||
-- placed nr 4
|
||||
core.get_node_timer(pos):start(math.random(1, 2))
|
||||
end
|
||||
elseif i == 1 then
|
||||
-- convert to visual 1st level
|
||||
core.swap_node(pos, { name = 'x_farming:composter_2' })
|
||||
particle_effect(pos)
|
||||
end
|
||||
end
|
||||
|
||||
core.sound_play('x_farming_dirt_hit', { gain = 0.3, pos = pos, max_hear_distance = 10 }, true)
|
||||
|
||||
if not core.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)
|
||||
core.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 core.is_protected(pos, p_name) then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local meta = core.get_meta(pos)
|
||||
local above = vector.new(pos.x, pos.y + 0.5, pos.z)
|
||||
local drop_pos = core.find_node_near(above, 0.5, { 'air' }) or above
|
||||
|
||||
core.sound_play('x_farming_dirt_hit', { gain = 0.3, pos = pos, max_hear_distance = 10 }, true)
|
||||
-- drop bonemeal
|
||||
core.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
|
||||
core.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
|
||||
|
||||
core.register_node(def.name, def)
|
||||
end
|
||||
@@ -0,0 +1,228 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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,
|
||||
},
|
||||
}
|
||||
|
||||
core.override_item('x_farming:corn', corn_def)
|
||||
|
||||
core.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 }
|
||||
}
|
||||
})
|
||||
|
||||
core.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 }
|
||||
}
|
||||
})
|
||||
|
||||
core.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 }
|
||||
}
|
||||
})
|
||||
|
||||
core.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 }
|
||||
}
|
||||
})
|
||||
|
||||
core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
popperd_corn_def.on_use = core.item_eat(1)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
popperd_corn_def.on_place = core.item_eat(1)
|
||||
popperd_corn_def.on_secondary_use = core.item_eat(1)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:corn_pop', popperd_corn_def)
|
||||
|
||||
-- Popcorn
|
||||
local popcorn_def = {
|
||||
description = S('Popcorn') .. '\n' .. S('Compost chance') .. ': 65%\n'
|
||||
.. core.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 = core.item_eat(5),
|
||||
sunlight_propagates = true,
|
||||
_mcl_saturation = 0.6,
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
}
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
popcorn_def.on_secondary_use = core.item_eat(5)
|
||||
end
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:sand')
|
||||
table.insert(deco_biomes, 'sandstone_desert')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:forsaken_desert_sand')
|
||||
table.insert(deco_biomes, 'everness:forsaken_desert')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:sand')
|
||||
table.insert(deco_biomes, 'Desert')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:corn',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:corn_6',
|
||||
'x_farming:corn_7',
|
||||
'x_farming:corn_8',
|
||||
'x_farming:corn_9',
|
||||
'x_farming:corn_10',
|
||||
},
|
||||
param2 = 3,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,107 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- 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,
|
||||
}
|
||||
}
|
||||
|
||||
core.override_item('x_farming:cotton', cotton_def)
|
||||
|
||||
-- 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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'savanna')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'everness:baobab_savanna')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Savanna')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:cotton',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:cotton_5',
|
||||
'x_farming:cotton_6',
|
||||
'x_farming:cotton_7',
|
||||
'x_farming:cotton_8'
|
||||
},
|
||||
param2 = 42,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,999 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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
|
||||
--]]
|
||||
|
||||
--
|
||||
-- Crafting recipes
|
||||
--
|
||||
|
||||
-- Cocoa
|
||||
core.register_craft({
|
||||
output = 'dye:brown',
|
||||
recipe = {
|
||||
{ 'x_farming:cocoa_bean' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:cookie 8',
|
||||
recipe = { 'x_farming:barley', 'x_farming:cocoa_bean', 'x_farming:flour', 'x_farming:bottle_soymilk', 'x_farming:sugar' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:chocolate',
|
||||
recipe = {
|
||||
{ '', '', 'x_farming:cocoa_bean' },
|
||||
{ '', 'x_farming:cocoa_bean', '' },
|
||||
{ 'default:paper', '', '' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:jungle_wood 4',
|
||||
recipe = {
|
||||
{ 'x_farming:jungle_tree' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:jungle_tree',
|
||||
burntime = 38,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:jungle_wood',
|
||||
burntime = 9,
|
||||
})
|
||||
|
||||
-- Soup Bowl
|
||||
core.register_craft({
|
||||
output = 'x_farming:bowl 3',
|
||||
recipe = {
|
||||
{ 'group:wood', '', 'group:wood' },
|
||||
{ '', 'group:wood', '' }
|
||||
}
|
||||
})
|
||||
|
||||
-- fish stew
|
||||
core.register_craft({
|
||||
output = 'x_farming:fish_stew',
|
||||
recipe = {
|
||||
{ '', 'group:fish', '' },
|
||||
{ 'x_farming:carrot', 'x_farming:bakedpotato', 'x_farming:salt' },
|
||||
{ '', 'x_farming:bowl', '' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:beetroot_soup',
|
||||
recipe = {
|
||||
{ 'x_farming:beetroot', 'x_farming:beetroot', 'x_farming:beetroot' },
|
||||
{ 'x_farming:beetroot', 'x_farming:beetroot', 'x_farming:beetroot' },
|
||||
{ '', 'x_farming:bowl', '' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Carrot
|
||||
core.register_craft({
|
||||
output = 'x_farming:carrot_golden',
|
||||
recipe = {
|
||||
{ 'default:gold_lump', 'default:gold_lump', 'default:gold_lump' },
|
||||
{ 'default:gold_lump', 'x_farming:carrot', 'default:gold_lump' },
|
||||
{ 'default:gold_lump', 'default:gold_lump', 'default:gold_lump' }
|
||||
},
|
||||
})
|
||||
|
||||
-- Coffee
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:bottle_coffee',
|
||||
recipe = { 'x_farming:coffee', 'x_farming:bottle_water' }
|
||||
})
|
||||
|
||||
if x_farming.vessels then
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 7,
|
||||
output = 'x_farming:coffee_cup_hot',
|
||||
recipe = 'x_farming:bottle_coffee',
|
||||
replacements = { { 'x_farming:bottle_coffee', 'vessels:glass_bottle' } }
|
||||
})
|
||||
else
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 7,
|
||||
output = 'x_farming:coffee_cup_hot',
|
||||
recipe = 'x_farming:bottle_coffee',
|
||||
replacements = { { 'x_farming:bottle_coffee', 'x_farming:glass_bottle' } }
|
||||
})
|
||||
end
|
||||
|
||||
-- Corn
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 10,
|
||||
output = 'x_farming:corn_pop',
|
||||
recipe = 'x_farming:corn'
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:corn_popcorn',
|
||||
recipe = {
|
||||
{ 'x_farming:corn_pop', 'x_farming:corn_pop', 'x_farming:corn_pop' },
|
||||
{ 'default:paper', 'x_farming:salt', 'default:paper' },
|
||||
{ 'default:paper', 'default:paper', 'default:paper' },
|
||||
}
|
||||
})
|
||||
|
||||
-- Melon
|
||||
core.register_craft({
|
||||
output = 'x_farming:golden_melon',
|
||||
recipe = {
|
||||
{ 'default:gold_lump', 'default:gold_lump', 'default:gold_lump' },
|
||||
{ 'default:gold_lump', 'x_farming:melon', 'default:gold_lump' },
|
||||
{ 'default:gold_lump', 'default:gold_lump', 'default:gold_lump' }
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:melon_block',
|
||||
recipe = {
|
||||
{ 'x_farming:melon', 'x_farming:melon', 'x_farming:melon' },
|
||||
{ 'x_farming:melon', 'x_farming:melon', 'x_farming:melon' },
|
||||
{ 'x_farming:melon', 'x_farming:melon', 'x_farming:melon' }
|
||||
},
|
||||
})
|
||||
|
||||
-- Obsidian Wart
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 10,
|
||||
output = 'x_farming:wart_brick',
|
||||
recipe = 'x_farming:obsidian_wart'
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:wart_block',
|
||||
groups = { compost = 85 },
|
||||
recipe = {
|
||||
{ 'x_farming:obsidian_wart', 'x_farming:obsidian_wart', 'x_farming:obsidian_wart' },
|
||||
{ 'x_farming:obsidian_wart', 'x_farming:obsidian_wart', 'x_farming:obsidian_wart' },
|
||||
{ 'x_farming:obsidian_wart', 'x_farming:obsidian_wart', 'x_farming:obsidian_wart' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:wart_brick_block',
|
||||
recipe = {
|
||||
{ 'x_farming:wart_brick', 'x_farming:wart_brick', '' },
|
||||
{ 'x_farming:wart_brick', 'x_farming:wart_brick', '' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:wart_red_brick_block',
|
||||
recipe = {
|
||||
{ 'x_farming:obsidian_wart', 'x_farming:wart_brick', '' },
|
||||
{ 'x_farming:wart_brick', 'x_farming:obsidian_wart', '' }
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:wartrack 4',
|
||||
recipe = {
|
||||
{ 'x_farming:wart_block', 'x_farming:wart_block', '' },
|
||||
{ 'x_farming:wart_block', 'x_farming:wart_block', '' }
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 10,
|
||||
output = 'x_farming:bakedpotato',
|
||||
recipe = 'x_farming:potato'
|
||||
})
|
||||
|
||||
-- Pumpkin
|
||||
-- pumpkin lantern recipe
|
||||
core.register_craft({
|
||||
output = 'x_farming:pumpkin_lantern',
|
||||
recipe = {
|
||||
{ '', '', '' },
|
||||
{ '', 'x_farming:bottle_soymilk', '' },
|
||||
{ '', 'group:torch', '' }
|
||||
},
|
||||
})
|
||||
|
||||
-- pumpkin pie crafting recipe
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:pumpkin_pie',
|
||||
recipe = { 'x_farming:pumpkin_block', 'x_farming:flour', 'x_farming:bottle_soymilk', 'x_farming:sugar' }
|
||||
})
|
||||
|
||||
--- FUELS
|
||||
|
||||
-- pumpkin as fuel (better than cactus)
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:pumpkin_block',
|
||||
burntime = 20,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:pumpkin_lantern',
|
||||
burntime = 20,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:string',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:barley',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:rice',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:cotton',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:hoe_wood',
|
||||
burntime = 5,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'group:pillow',
|
||||
burntime = 5,
|
||||
})
|
||||
|
||||
-- Bottle Water
|
||||
if x_farming.vessels then
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:bottle_water 5',
|
||||
recipe = {
|
||||
'vessels:glass_bottle', 'vessels:glass_bottle', 'vessels:glass_bottle',
|
||||
'vessels:glass_bottle', 'vessels:glass_bottle', 'bucket:bucket_water'
|
||||
},
|
||||
replacements = { { 'bucket:water_bucket', 'bucket:bucket_empty' } },
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:bottle_water 5',
|
||||
recipe = {
|
||||
'vessels:glass_bottle', 'vessels:glass_bottle', 'vessels:glass_bottle',
|
||||
'vessels:glass_bottle', 'vessels:glass_bottle', 'x_farming:seed_salt'
|
||||
},
|
||||
replacements = { { 'x_farming:seed_salt', 'x_farming:seed_salt' } },
|
||||
})
|
||||
else
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:bottle_water 5',
|
||||
recipe = {
|
||||
'x_farming:glass_bottle', 'x_farming:glass_bottle', 'x_farming:glass_bottle',
|
||||
'x_farming:glass_bottle', 'x_farming:glass_bottle', 'bucket:bucket_water'
|
||||
},
|
||||
replacements = { { 'bucket:water_bucket', 'bucket:bucket_empty' } },
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:bottle_water 5',
|
||||
recipe = {
|
||||
'x_farming:glass_bottle', 'x_farming:glass_bottle', 'x_farming:glass_bottle',
|
||||
'x_farming:glass_bottle', 'x_farming:glass_bottle', 'x_farming:seed_salt'
|
||||
},
|
||||
replacements = { { 'x_farming:seed_salt', 'x_farming:seed_salt' } },
|
||||
})
|
||||
end
|
||||
|
||||
-- Donuts
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:donut',
|
||||
recipe = { 'x_farming:bottle_soymilk', 'x_farming:sugar', 'x_farming:flour' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:donut_chocolate',
|
||||
recipe = { 'x_farming:bottle_soymilk', 'x_farming:sugar', 'x_farming:flour', 'x_farming:cocoa_bean' }
|
||||
})
|
||||
|
||||
-- Fries
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:fries',
|
||||
recipe = {
|
||||
{ '', '', 'x_farming:salt' },
|
||||
{ '', 'x_farming:bakedpotato', '' },
|
||||
{ 'default:paper', '', '' }
|
||||
},
|
||||
})
|
||||
|
||||
-- Ice Fishing
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:seed_icefishing',
|
||||
recipe = {
|
||||
{ 'group:pillow', 'x_farming:string', 'group:stick' },
|
||||
{ '', 'x_farming:string', 'group:stick' },
|
||||
{ '', 'x_farming:string', 'group:stick' }
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:black 4',
|
||||
recipe = {
|
||||
{ 'x_farming:black_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:blue 4',
|
||||
recipe = {
|
||||
{ 'x_farming:blue_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:brown 4',
|
||||
recipe = {
|
||||
{ 'x_farming:brown_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:cyan 4',
|
||||
recipe = {
|
||||
{ 'x_farming:cyan_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:dark_grey 4',
|
||||
recipe = {
|
||||
{ 'x_farming:gray_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:grey 4',
|
||||
recipe = {
|
||||
{ 'x_farming:light_gray_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:dark_green 4',
|
||||
recipe = {
|
||||
{ 'x_farming:green_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:green 4',
|
||||
recipe = {
|
||||
{ 'x_farming:lime_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:magenta 4',
|
||||
recipe = {
|
||||
{ 'x_farming:magenta_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:orange 4',
|
||||
recipe = {
|
||||
{ 'x_farming:orange_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:pink 4',
|
||||
recipe = {
|
||||
{ 'x_farming:pink_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:violet 4',
|
||||
recipe = {
|
||||
{ 'x_farming:purple_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:red 4',
|
||||
recipe = {
|
||||
{ 'x_farming:red_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:white 4',
|
||||
recipe = {
|
||||
{ 'x_farming:white_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'dye:yellow 4',
|
||||
recipe = {
|
||||
{ 'x_farming:yellow_seashroom' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'default:diamond',
|
||||
recipe = {
|
||||
{ 'x_farming:diamond_angler' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'default:gold_lump',
|
||||
recipe = {
|
||||
{ 'x_farming:goldfish' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'default:gold_ingot',
|
||||
recipe = {
|
||||
{ 'x_farming:true_goldfish' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'default:iron_lump',
|
||||
recipe = {
|
||||
{ 'x_farming:ironfish' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:seed_pumpkin',
|
||||
recipe = {
|
||||
{ 'x_farming:pumpkinseed' }
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
-- crates and bags
|
||||
core.register_craft({
|
||||
output = 'x_farming:crate_empty',
|
||||
recipe = {
|
||||
{ 'group:wood', 'group:stick', 'group:wood' },
|
||||
{ 'group:wood', 'group:stick', 'group:wood' },
|
||||
{ 'group:wood', 'group:wood', 'group:wood' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:bag_empty',
|
||||
recipe = {
|
||||
{ 'x_farming:barley_stack', '', 'x_farming:barley_stack' },
|
||||
{ 'x_farming:barley_stack', '', 'x_farming:barley_stack' },
|
||||
{ 'x_farming:barley_stack', 'x_farming:barley_stack', 'x_farming:barley_stack' }
|
||||
}
|
||||
})
|
||||
|
||||
-- composter
|
||||
core.register_craft({
|
||||
output = 'x_farming:composter_1',
|
||||
recipe = {
|
||||
{ 'group:wood', 'group:fence', 'group:wood' },
|
||||
{ 'group:wood', 'group:fence', 'group:wood' },
|
||||
{ 'group:wood', 'group:wood', 'group:wood' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Cactus brick
|
||||
core.register_craft({
|
||||
output = 'x_farming:cactus_brick',
|
||||
recipe = {
|
||||
{ 'x_farming:cactus_fruit_item', 'x_farming:cactus_fruit_item' },
|
||||
{ 'x_farming:cactus_fruit_item', 'x_farming:cactus_fruit_item' },
|
||||
}
|
||||
})
|
||||
|
||||
-- Scarecrow
|
||||
core.register_craft({
|
||||
output = 'x_farming:scarecrow',
|
||||
recipe = {
|
||||
{ '', 'x_farming:pumpkin_block', '' },
|
||||
{ 'x_farming:barley_stack', 'group:pillow', 'x_farming:barley_stack' },
|
||||
{ '', 'group:wood', '' },
|
||||
}
|
||||
})
|
||||
|
||||
-- Pine wood
|
||||
core.register_craft({
|
||||
output = 'x_farming:pine_nut_wood 4',
|
||||
recipe = {
|
||||
{ 'x_farming:pine_nut_tree' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:pine_nut_wood',
|
||||
burntime = 6,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:pine_nut_tree',
|
||||
burntime = 26,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 7,
|
||||
output = 'x_farming:pine_nut_roasted',
|
||||
recipe = 'x_farming:pine_nut'
|
||||
})
|
||||
|
||||
-- Kiwi
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:kiwi_wood 4',
|
||||
recipe = {
|
||||
{ 'x_farming:kiwi_tree' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:kiwi_wood',
|
||||
burntime = 8,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:kiwi_tree',
|
||||
burntime = 22,
|
||||
})
|
||||
|
||||
-- Christmas tree
|
||||
core.register_craft({
|
||||
output = 'x_farming:christmas_tree_sapling',
|
||||
recipe = {
|
||||
{ 'default:goldblock', 'default:meselamp', 'default:goldblock' },
|
||||
{ 'x_farming:pillow_green', 'default:pine_sapling', 'x_farming:pillow_blue' },
|
||||
{ 'x_farming:pillow_yellow', 'default:pine_sapling', 'x_farming:pillow_red' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Barley
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:barley_stack 3',
|
||||
recipe = {
|
||||
{ 'x_farming:barley', 'x_farming:barley', 'x_farming:barley' },
|
||||
{ 'x_farming:barley', 'x_farming:barley', 'x_farming:barley' },
|
||||
{ 'x_farming:barley', 'x_farming:barley', 'x_farming:barley' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:barley 3',
|
||||
recipe = {
|
||||
{ 'x_farming:barley_stack' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:flour',
|
||||
recipe = { 'x_farming:barley', 'x_farming:barley', 'x_farming:barley', 'x_farming:barley' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
cooktime = 15,
|
||||
output = 'x_farming:bread',
|
||||
recipe = 'x_farming:flour'
|
||||
})
|
||||
|
||||
-- Cotton
|
||||
core.register_craft({
|
||||
output = 'x_farming:pillow_white',
|
||||
recipe = {
|
||||
{ 'x_farming:cotton', 'x_farming:cotton' },
|
||||
{ 'x_farming:cotton', 'x_farming:cotton' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:string 2',
|
||||
recipe = {
|
||||
{ 'x_farming:cotton' },
|
||||
{ 'x_farming:cotton' },
|
||||
}
|
||||
})
|
||||
|
||||
-- Soybean
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
output = 'x_farming:bottle_soymilk',
|
||||
recipe = 'x_farming:bottle_soymilk_raw',
|
||||
cooktime = 15,
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:soybean',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
-- Stevia
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:sugar',
|
||||
recipe = { 'x_farming:stevia', 'x_farming:stevia', 'x_farming:stevia', 'x_farming:stevia' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:stevia',
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
-- Empty Jar
|
||||
core.register_craft({
|
||||
output = 'x_farming:jar_empty',
|
||||
recipe = {
|
||||
{ 'x_farming:glass_bottle', 'x_farming:glass_bottle' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:jar_empty',
|
||||
recipe = {
|
||||
{ 'vessels:glass_bottle', 'vessels:glass_bottle' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Hive
|
||||
core.register_craft({
|
||||
output = 'x_farming:bee_hive',
|
||||
recipe = {
|
||||
{ 'group:wood', 'group:wood', 'group:wood' },
|
||||
{ 'x_farming:honeycomb', 'x_farming:honeycomb', 'x_farming:honeycomb' },
|
||||
{ 'group:wood', 'group:wood', 'group:wood' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:honeycomb',
|
||||
recipe = { 'x_farming:jar_with_bee', 'x_farming:jar_with_bee', 'x_farming:jar_with_bee' }
|
||||
})
|
||||
|
||||
-- Honeycomb saw
|
||||
core.register_craft({
|
||||
output = 'x_farming:honeycomb_saw',
|
||||
recipe = {
|
||||
{ '', 'x_farming:honeycomb', 'default:steel_ingot' },
|
||||
{ 'x_farming:honeycomb', 'default:steel_ingot', '' },
|
||||
{ 'group:stick', '', '' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:honeycomb_block',
|
||||
recipe = {
|
||||
{ 'x_farming:honeycomb', 'x_farming:honeycomb' },
|
||||
{ 'x_farming:honeycomb', 'x_farming:honeycomb' },
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:honey_block',
|
||||
recipe = {
|
||||
{ 'x_farming:bottle_honey', 'x_farming:bottle_honey' },
|
||||
{ 'x_farming:bottle_honey', 'x_farming:bottle_honey' },
|
||||
},
|
||||
replacements = {
|
||||
{ 'x_farming:bottle_honey', 'x_farming:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'x_farming:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'x_farming:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'x_farming:glass_bottle' },
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:honey_block',
|
||||
recipe = {
|
||||
{ 'x_farming:bottle_honey', 'x_farming:bottle_honey' },
|
||||
{ 'x_farming:bottle_honey', 'x_farming:bottle_honey' },
|
||||
},
|
||||
replacements = {
|
||||
{ 'x_farming:bottle_honey', 'vessels:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'vessels:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'vessels:glass_bottle' },
|
||||
{ 'x_farming:bottle_honey', 'vessels:glass_bottle' },
|
||||
},
|
||||
})
|
||||
|
||||
-- Candles
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:candle_off_1',
|
||||
recipe = {
|
||||
{ 'x_farming:string' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:candle_off_1',
|
||||
recipe = {
|
||||
{ 'farming:string' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
},
|
||||
})
|
||||
|
||||
-- Rope
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:rope',
|
||||
recipe = {
|
||||
{ '', 'x_farming:barley', '' },
|
||||
{ '', 'x_farming:barley', '' },
|
||||
{ '', 'x_farming:barley', '' }
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:rope_fence 4',
|
||||
recipe = {
|
||||
{ 'x_farming:rope', 'x_farming:rope', 'x_farming:rope' },
|
||||
{ 'x_farming:rope', 'x_farming:rope', 'x_farming:rope' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:safety_net',
|
||||
recipe = {
|
||||
{ 'x_farming:rope', 'x_farming:rope' },
|
||||
{ 'x_farming:rope', 'x_farming:rope' },
|
||||
}
|
||||
})
|
||||
|
||||
-- Rice
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'default:clay', 'group:sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'default:clay', 'group:everness_sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'group:hardenedclay', 'group:sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'group:hardenedclay', 'group:everness_sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'group:hardenedclay_smooth', 'group:sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:silt_loam_soil',
|
||||
recipe = { 'group:soil', 'group:hardenedclay_smooth', 'group:everness_sand' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
output = 'x_farming:rice_grains',
|
||||
recipe = 'x_farming:rice'
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:rice_stack 3',
|
||||
recipe = {
|
||||
{ 'x_farming:rice', 'x_farming:rice', 'x_farming:rice' },
|
||||
{ 'x_farming:rice', 'x_farming:rice', 'x_farming:rice' },
|
||||
{ 'x_farming:rice', 'x_farming:rice', 'x_farming:rice' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:rice 3',
|
||||
recipe = {
|
||||
{ 'x_farming:rice_stack' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:silt_loam_brick_block',
|
||||
recipe = {
|
||||
{ 'x_farming:silt_loam_brick', 'x_farming:silt_loam_brick' },
|
||||
{ 'x_farming:silt_loam_brick', 'x_farming:silt_loam_brick' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:silt_loam_brick 4',
|
||||
recipe = {
|
||||
{ 'x_farming:silt_loam_brick_block' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'cooking',
|
||||
output = 'x_farming:silt_loam_brick',
|
||||
recipe = 'x_farming:silt_loam_soil',
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:stove',
|
||||
recipe = {
|
||||
{ 'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot' },
|
||||
{ 'x_farming:silt_loam_brick_block', '', 'x_farming:silt_loam_brick_block' },
|
||||
{ 'x_farming:silt_loam_brick_block', 'default:furnace', 'x_farming:silt_loam_brick_block' }
|
||||
}
|
||||
})
|
||||
|
||||
-- Sushi
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:sushi_maki',
|
||||
recipe = { 'x_farming:rice_grains', 'default:sand_with_kelp', 'group:fish' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:sushi_nigiri',
|
||||
recipe = { 'x_farming:rice_grains', 'group:fish' }
|
||||
})
|
||||
|
||||
-- Feasts
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:french_potatoes_1',
|
||||
recipe = {
|
||||
{ 'x_farming:bakedpotato', 'x_farming:bottle_soymilk', 'x_farming:bakedpotato' },
|
||||
{ 'x_farming:bakedpotato', 'x_farming:corn', 'x_farming:bakedpotato' },
|
||||
{ 'x_farming:salt', 'x_farming:bowl', 'x_farming:salt' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:baked_fish_1',
|
||||
recipe = {
|
||||
{ 'x_farming:beetroot', 'x_farming:rice_grains', 'x_farming:beetroot' },
|
||||
{ 'x_farming:carrot', 'group:fish', 'x_farming:carrot' },
|
||||
{ 'x_farming:salt', 'x_farming:bowl', 'x_farming:salt' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:melon_slush_1',
|
||||
recipe = {
|
||||
{ 'x_farming:sugar', 'x_farming:melon_block', 'x_farming:sugar' },
|
||||
{ 'default:ice', 'x_farming:melon_block', 'default:ice' },
|
||||
{ 'default:ice', 'default:glass', 'default:ice' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:french_potatoes_1',
|
||||
recipe = { 'x_farming:bowl_french_potatoes', 'x_farming:bowl_french_potatoes', 'x_farming:bowl_french_potatoes', 'x_farming:bowl_french_potatoes' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:baked_fish_1',
|
||||
recipe = { 'x_farming:bowl_baked_fish', 'x_farming:bowl_baked_fish', 'x_farming:bowl_baked_fish', 'x_farming:bowl_baked_fish' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:melon_slush_1',
|
||||
recipe = { 'x_farming:bowl_melon_slush', 'x_farming:bowl_melon_slush', 'x_farming:bowl_melon_slush', 'x_farming:bowl_melon_slush' }
|
||||
})
|
||||
|
||||
-- Pies
|
||||
core.register_craft({
|
||||
output = 'x_farming:strawberry_pie_1',
|
||||
recipe = {
|
||||
{ 'x_farming:barley', 'x_farming:barley', 'x_farming:barley' },
|
||||
{ 'x_farming:strawberry', 'x_farming:strawberry', 'x_farming:strawberry' },
|
||||
{ 'x_farming:sugar', 'x_farming:flour', 'x_farming:sugar' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:chocolate_pie_1',
|
||||
recipe = {
|
||||
{ 'x_farming:chocolate', 'x_farming:chocolate', 'x_farming:chocolate' },
|
||||
{ 'x_farming:bottle_soymilk', 'x_farming:bottle_soymilk', 'x_farming:bottle_soymilk' },
|
||||
{ 'x_farming:sugar', 'x_farming:flour', 'x_farming:sugar' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'x_farming:honey_kiwi_pie_1',
|
||||
recipe = {
|
||||
{ 'x_farming:bottle_honey', 'x_farming:bottle_honey', 'x_farming:bottle_honey' },
|
||||
{ 'x_farming:kiwi_fruit', 'x_farming:kiwi_fruit', 'x_farming:kiwi_fruit' },
|
||||
{ 'x_farming:bottle_soymilk', 'x_farming:flour', 'x_farming:bottle_soymilk' },
|
||||
}
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:strawberry_pie_1',
|
||||
recipe = { 'x_farming:slice_strawberry_pie', 'x_farming:slice_strawberry_pie', 'x_farming:slice_strawberry_pie', 'x_farming:slice_strawberry_pie' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:chocolate_pie_1',
|
||||
recipe = { 'x_farming:slice_chocolate_pie', 'x_farming:slice_chocolate_pie', 'x_farming:slice_chocolate_pie', 'x_farming:slice_chocolate_pie' }
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
type = 'shapeless',
|
||||
output = 'x_farming:honey_kiwi_pie_1',
|
||||
recipe = { 'x_farming:slice_honey_kiwi_pie', 'x_farming:slice_honey_kiwi_pie', 'x_farming:slice_honey_kiwi_pie', 'x_farming:slice_honey_kiwi_pie' }
|
||||
})
|
||||
@@ -0,0 +1,202 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- Flour
|
||||
|
||||
core.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 core.get_modpath('farming') then
|
||||
bread_def.on_use = core.item_eat(5)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
bread_def.on_place = core.item_eat(5)
|
||||
bread_def.on_secondary_use = core.item_eat(5)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:bread', bread_def)
|
||||
|
||||
-- String
|
||||
core.register_craftitem('x_farming:string', {
|
||||
description = S('Cotton String'),
|
||||
inventory_image = 'x_farming_string.png',
|
||||
groups = { flammable = 2 },
|
||||
})
|
||||
|
||||
-- Soup Bowl
|
||||
core.register_craftitem('x_farming:bowl', {
|
||||
description = S('Empty Soup Bowl'),
|
||||
inventory_image = 'x_farming_bowl.png',
|
||||
})
|
||||
|
||||
-- Bottle Water
|
||||
core.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 },
|
||||
})
|
||||
|
||||
-- Bottle Honey
|
||||
local bottle_honey_def = {
|
||||
description = S('Honey Bottle') .. '\n' .. core.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 core.get_modpath('farming') then
|
||||
if x_farming.vessels then
|
||||
bottle_honey_def.on_use = core.item_eat(6, 'vessels:glass_bottle')
|
||||
else
|
||||
bottle_honey_def.on_use = core.item_eat(6, 'x_farming:glass_bottle')
|
||||
end
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
if x_farming.vessels then
|
||||
bottle_honey_def.on_place = core.item_eat(6, 'x_farming:glass_bottle')
|
||||
bottle_honey_def.on_secondary_use = core.item_eat(6, 'x_farming:glass_bottle')
|
||||
else
|
||||
bottle_honey_def.on_place = core.item_eat(6, 'x_farming:glass_bottle')
|
||||
bottle_honey_def.on_secondary_use = core.item_eat(6, 'x_farming:glass_bottle')
|
||||
end
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:bottle_honey', bottle_honey_def)
|
||||
|
||||
-- Honeycomb
|
||||
core.register_craftitem('x_farming:honeycomb', {
|
||||
description = S('Honeycomb'),
|
||||
inventory_image = 'x_farming_honeycomb.png',
|
||||
})
|
||||
|
||||
-- Jar empty
|
||||
core.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
|
||||
core.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
|
||||
core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
sushi_maki_def.on_use = core.item_eat(5)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
sushi_maki_def.on_place = core.item_eat(5)
|
||||
sushi_maki_def.on_secondary_use = core.item_eat(5)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:sushi_maki', sushi_maki_def)
|
||||
|
||||
local sushi_nigiri_def = {
|
||||
description = S('Sushi Nigiri') .. '\n' .. S('Compost chance') .. ': 85%\n'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
sushi_nigiri_def.on_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
sushi_nigiri_def.on_place = core.item_eat(3)
|
||||
sushi_nigiri_def.on_secondary_use = core.item_eat(3)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:sushi_nigiri', sushi_nigiri_def)
|
||||
|
||||
-- Brick
|
||||
core.register_craftitem('x_farming:silt_loam_brick', {
|
||||
description = S('Silt Loam Brick'),
|
||||
inventory_image = 'x_farming_silt_loam_brick.png',
|
||||
})
|
||||
@@ -0,0 +1,61 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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(core.settings:get('default_stack_max')) or 99
|
||||
})
|
||||
|
||||
if core.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'
|
||||
}
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,47 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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)
|
||||
core.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 = core.get_node_timer(pos)
|
||||
|
||||
if not timer:is_started() then
|
||||
core.get_node_timer(pos):start(1)
|
||||
end
|
||||
end
|
||||
})
|
||||
@@ -0,0 +1,56 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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 core.get_modpath('farming') then
|
||||
core.override_item('farming:hoe_wood', hoe_wood_def)
|
||||
core.override_item('farming:hoe_stone', hoe_stone_def)
|
||||
core.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
@@ -0,0 +1,109 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_us_time()
|
||||
local path = core.get_modpath('x_farming')
|
||||
|
||||
-- Legacy backwards compatibility
|
||||
core.register_alias('x_farming:hog_stew', 'x_farming:fish_stew')
|
||||
|
||||
-- MineClone2 support
|
||||
if core.get_modpath('mcl_core') and core.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
|
||||
core.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 core.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 core.get_modpath('candles_3d') then
|
||||
dofile(path .. '/mod_support_candles_3d.lua')
|
||||
end
|
||||
|
||||
local mod_end_time = (core.get_us_time() - mod_start_time) / 1000000
|
||||
|
||||
print('[Mod] x_farming loaded.. [' .. mod_end_time .. 's]')
|
||||
@@ -0,0 +1,419 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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
|
||||
core.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 = core.rotate_node
|
||||
})
|
||||
|
||||
-- leaves
|
||||
core.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
|
||||
core.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)
|
||||
core.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
|
||||
core.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
|
||||
core.set_node(pos, { name = 'x_farming:kiwi_mark' })
|
||||
core.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
core.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 core.find_node_near(pos, 1, 'x_farming:kiwi_leaves') then
|
||||
core.remove_node(pos)
|
||||
elseif core.get_node_light(pos) < 11 then
|
||||
core.get_node_timer(pos):start(200)
|
||||
else
|
||||
core.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'
|
||||
.. core.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 = core.item_eat(2),
|
||||
sunlight_propagates = true
|
||||
}
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
kiwi_fruit_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
core.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
|
||||
core.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 core.global_exists('stairs') and core.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 core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dry_dirt_with_dry_grass')
|
||||
table.insert(deco_biomes, 'savanna')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dirt_with_coral_grass')
|
||||
table.insert(deco_biomes, 'everness:dry_dirt_with_dry_grass')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Savanna')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:kiwi_tree',
|
||||
deco_type = 'schematic',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.001,
|
||||
spread = { x = 250, y = 250, z = 250 },
|
||||
seed = 2,
|
||||
octaves = 3,
|
||||
persist = 0.66
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
schematic = core.get_modpath('x_farming') .. '/schematics/x_farming_kiwi_tree.mts',
|
||||
flags = 'place_center_x, place_center_z',
|
||||
rotation = 'random',
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -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=
|
||||
@@ -0,0 +1,276 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
melon_def.on_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
melon_def.on_place = core.item_eat(2)
|
||||
melon_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
core.override_item('x_farming:melon', melon_def)
|
||||
|
||||
-- MELON FRUIT - HARVEST
|
||||
core.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 = core.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 = core.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
|
||||
core.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
|
||||
core.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' .. core.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' .. core.colorize(x_farming.colors.red, S('Heal') .. ': 10')
|
||||
end
|
||||
|
||||
if core.get_modpath('farming') then
|
||||
golden_melon_def.on_use = core.item_eat(10)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
golden_melon_def.on_place = core.item_eat(10)
|
||||
golden_melon_def.on_secondary_use = core.item_eat(10)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:golden_melon', golden_melon_def)
|
||||
|
||||
-- replacement LBM for pre-nodetimer plants
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'grassland')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:dirt_with_coral_grass')
|
||||
table.insert(deco_biomes, 'everness:coral_forest')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:dirt_with_grass')
|
||||
table.insert(deco_biomes, 'Plains')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:melon',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:melon_5',
|
||||
'x_farming:melon_6',
|
||||
'x_farming:melon_7',
|
||||
'x_farming:melon_8',
|
||||
},
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -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
|
||||
supported_games =
|
||||
min_minetest_version = 5.4
|
||||
@@ -0,0 +1,36 @@
|
||||
--[[
|
||||
Copyright (C) 2025 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
|
||||
|
||||
core.register_craft({
|
||||
output = 'candles_3d:unlit_orange_1',
|
||||
recipe = {
|
||||
{ 'x_farming:string' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
},
|
||||
})
|
||||
|
||||
core.register_craft({
|
||||
output = 'candles_3d:unlit_orange_1',
|
||||
recipe = {
|
||||
{ 'farming:string' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
{ 'x_farming:honeycomb' },
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,196 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 core.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 = core.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)
|
||||
@@ -0,0 +1,95 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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)
|
||||
@@ -0,0 +1,90 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 })
|
||||
@@ -0,0 +1,168 @@
|
||||
--[[
|
||||
Copyright (C) 2025 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
|
||||
--]]
|
||||
|
||||
core.register_alias('default:water_source', 'mcl_core:water_source')
|
||||
core.register_alias('default:dirt', 'mcl_core:dirt')
|
||||
core.register_alias('default:dirt_with_rainforest_litter', 'mcl_core:dirt_with_grass')
|
||||
core.register_alias('default:dirt_with_snow', 'mcl_core:dirt_with_grass_snow')
|
||||
core.register_alias('default:dirt_with_coniferous_litter', 'mcl_core:podzol')
|
||||
core.register_alias('default:dirt_with_grass', 'mcl_core:dirt_with_grass')
|
||||
core.register_alias('default:stick', 'mcl_core:stick')
|
||||
core.register_alias('default:paper', 'mcl_core:paper')
|
||||
core.register_alias('default:book', 'mcl_books:book')
|
||||
core.register_alias('default:skeleton_key', 'mcl_core:gold_nugget')
|
||||
core.register_alias('default:flint', 'mcl_core:flint')
|
||||
core.register_alias('default:obsidian_shard', 'mcl_core:prismarine_shard')
|
||||
core.register_alias('default:clay_brick', 'mcl_core:brick')
|
||||
core.register_alias('default:mese_crystal_fragment', 'mcl_amethyst:amethyst_shard')
|
||||
-- Ingots
|
||||
core.register_alias('default:gold_ingot', 'mcl_core:gold_ingot')
|
||||
core.register_alias('default:bronze_ingot', 'mcl_copper:copper_ingot')
|
||||
core.register_alias('default:tin_ingot', 'mcl_core:iron_ingot')
|
||||
core.register_alias('default:copper_ingot', 'mcl_copper:copper_ingot')
|
||||
core.register_alias('default:steel_ingot', 'mcl_core:iron_ingot')
|
||||
core.register_alias('default:coal_lump', 'mcl_core:coal_lump')
|
||||
core.register_alias('default:gold_lump', 'mcl_core:gold_nugget')
|
||||
|
||||
-- Tools
|
||||
core.register_alias('default:pick_stone', 'mcl_tools:pick_stone')
|
||||
core.register_alias('default:pick_bronze', 'mcl_tools:pick_gold')
|
||||
core.register_alias('default:pick_steel', 'mcl_tools:pick_iron')
|
||||
core.register_alias('default:shovel_stone', 'mcl_tools:shovel_stone')
|
||||
core.register_alias('default:shovel_bronze', 'mcl_tools:shovel_gold')
|
||||
core.register_alias('default:shovel_steel', 'mcl_tools:shovel_iron')
|
||||
core.register_alias('default:axe_stone', 'mcl_tools:axe_stone')
|
||||
core.register_alias('default:axe_bronze', 'mcl_tools:axe_gold')
|
||||
core.register_alias('default:axe_steel', 'mcl_tools:axe_iron')
|
||||
core.register_alias('default:sword_stone', 'mcl_tools:sword_stone')
|
||||
core.register_alias('default:sword_bronze', 'mcl_tools:sword_gold')
|
||||
core.register_alias('default:sword_steel', 'mcl_tools:sword_iron')
|
||||
-- Items / Nodes
|
||||
core.register_alias('default:bookshelf', 'mcl_books:bookshelf')
|
||||
core.register_alias('default:sign_wall_wood', 'mcl_signs:wall_sign')
|
||||
core.register_alias('default:ladder_wood', 'mcl_core:ladder')
|
||||
core.register_alias('default:ladder_steel', 'mcl_core:ladder')
|
||||
core.register_alias('default:glass', 'mcl_core:glass')
|
||||
core.register_alias('default:obsidian_glass', 'mcl_core:glass')
|
||||
-- Trees
|
||||
core.register_alias('default:tree', 'mcl_core:tree')
|
||||
core.register_alias('default:jungletree', 'mcl_core:jungletree')
|
||||
core.register_alias('default:pine_tree', 'mcl_core:sprucetree')
|
||||
core.register_alias('default:cactus', 'mcl_core:cactus')
|
||||
core.register_alias('default:large_cactus_seedling', 'mcl_core:cactus')
|
||||
core.register_alias('default:papyrus', 'mcl_core:reeds')
|
||||
core.register_alias('default:junglegrass', 'mcl_flowers:double_grass')
|
||||
core.register_alias('default:blueberry_bush_sapling', 'mcl_flowers:rose_bush')
|
||||
core.register_alias('default:sapling', 'mcl_core:sapling')
|
||||
core.register_alias('default:junglesapling', 'mcl_core:junglesapling')
|
||||
core.register_alias('default:pine_sapling', 'mcl_core:sprucesapling')
|
||||
core.register_alias('default:acacia_sapling', 'mcl_core:acaciasapling')
|
||||
core.register_alias('default:aspen_sapling', 'mcl_core:birchsapling')
|
||||
|
||||
core.register_alias('default:clay_lump', 'mcl_core:clay_lump')
|
||||
core.register_alias('default:tin_lump', 'mcl_raw_ores:raw_gold')
|
||||
core.register_alias('default:copper_lump', 'mcl_copper:raw_copper')
|
||||
core.register_alias('default:iron_lump', 'mcl_raw_ores:raw_iron')
|
||||
core.register_alias('default:coalblock', 'mcl_core:coalblock')
|
||||
core.register_alias('default:steelblock', 'mcl_core:ironblock')
|
||||
core.register_alias('default:copperblock', 'mcl_copper:block')
|
||||
core.register_alias('default:tinblock', 'mcl_core:goldblock')
|
||||
core.register_alias('default:bronzeblock', 'mcl_copper:block')
|
||||
core.register_alias('default:mese', 'mesecons_torch:redstoneblock')
|
||||
core.register_alias('default:meselamp', 'mesecons_lightstone:lightstone_off')
|
||||
core.register_alias('default:obsidian', 'mcl_core:obsidian')
|
||||
core.register_alias('default:mese_crystal', 'mcl_ocean:prismarine_crystals')
|
||||
core.register_alias('default:diamond', 'mcl_core:diamond')
|
||||
core.register_alias('default:pick_mese', 'mcl_tools:pick_diamond')
|
||||
core.register_alias('default:shovel_mese', 'mcl_tools:shovel_diamond')
|
||||
core.register_alias('default:axe_mese', 'mcl_tools:axe_diamond')
|
||||
core.register_alias('default:sword_mese', 'mcl_tools:sword_diamond')
|
||||
|
||||
core.register_alias('default:snowblock', 'mcl_core:snowblock')
|
||||
core.register_alias('default:ice', 'mcl_core:ice')
|
||||
core.register_alias('default:torch', 'mcl_torches:torch')
|
||||
core.register_alias('default:cobble', 'mcl_core:cobble')
|
||||
core.register_alias('default:chest', 'mcl_chests:chest')
|
||||
core.register_alias('default:snow', 'mcl_core:snow')
|
||||
core.register_alias('default:stone', 'mcl_core:stone')
|
||||
core.register_alias('default:sand', 'mcl_core:sand')
|
||||
core.register_alias('default:gravel', 'mcl_core:gravel')
|
||||
core.register_alias('default:stone_with_coal', 'mcl_core:stone_with_coal')
|
||||
core.register_alias('default:stone_with_iron', 'mcl_core:stone_with_iron')
|
||||
core.register_alias('default:stone_with_tin', 'mcl_core:stone_with_copper')
|
||||
core.register_alias('default:stone_with_gold', 'mcl_core:stone_with_gold')
|
||||
core.register_alias('default:stone_with_mese', 'mcl_core:stone_with_redstone')
|
||||
core.register_alias('default:stone_with_diamond', 'mcl_core:stone_with_diamond')
|
||||
core.register_alias('default:lava_source', 'mcl_core:lava_source')
|
||||
core.register_alias('default:mossycobble', 'mcl_core:mossycobble')
|
||||
core.register_alias('default:clay', 'mcl_colorblocks:hardened_clay')
|
||||
core.register_alias('default:dry_dirt_with_dry_grass', 'mcl_core:dirt_with_grass')
|
||||
core.register_alias('default:dry_dirt', 'mcl_core:coarse_dirt')
|
||||
core.register_alias('default:coral_skeleton', 'mcl_core:bone_block')
|
||||
core.register_alias('default:coral_orange', 'mcl_ocean:tube_coral_block')
|
||||
core.register_alias('default:coral_brown', 'mcl_ocean:brain_coral_block')
|
||||
core.register_alias('default:lava_flowing', 'mcl_core:lava_flowing')
|
||||
core.register_alias('stairs:slab_cursed_brick_with_growth', 'mcl_stairs:slab_cursed_brick_with_growth')
|
||||
core.register_alias('default:fence_wood', 'mcl_fences:fence')
|
||||
core.register_alias('default:torch_wall', 'mcl_torches:torch_wall')
|
||||
core.register_alias('default:wood', 'mcl_core:wood')
|
||||
core.register_alias('default:junglewood', 'mcl_core:junglewood')
|
||||
core.register_alias('default:pine_wood', 'mcl_core:sprucewood')
|
||||
core.register_alias('default:mese_post_light_pine_wood', 'mcl_torches:torch')
|
||||
core.register_alias_force('default:acacia_tree', 'mcl_core:acaciatree')
|
||||
core.register_alias('default:dry_grass_4', 'mcl_core:deadbush')
|
||||
core.register_alias('default:dry_grass_2', 'mcl_core:deadbush')
|
||||
core.register_alias('default:dry_shrub', 'mcl_core:deadbush')
|
||||
core.register_alias('default:stonebrick', 'mcl_core:stonebrick')
|
||||
core.register_alias('default:jungleleaves', 'mcl_core:jungleleaves')
|
||||
core.register_alias('default:torch_ceiling', 'mcl_torches:torch_wall')
|
||||
core.register_alias('default:goldblock', 'mcl_core:goldblock')
|
||||
core.register_alias('stairs:stair_junglewood', 'mcl_stairs:stair_junglewood')
|
||||
core.register_alias('stairs:slab_junglewood', 'mcl_stairs:slab_junglewood')
|
||||
core.register_alias('stairs:slab_dry_wood', 'mcl_stairs:slab_dry_wood')
|
||||
core.register_alias('stairs:stair_dry_wood', 'mcl_stairs:stair_dry_wood')
|
||||
core.register_alias('stairs:stair_wood', 'mcl_stairs:stair_wood')
|
||||
core.register_alias('stairs:slab_stonebrick', 'mcl_stairs:slab_stonebrick')
|
||||
core.register_alias('stairs:stair_inner_wood', 'mcl_stairs:stair_wood_inner')
|
||||
core.register_alias('stairs:stair_outer_stonebrick', 'mcl_stairs:stair_stonebrick_outer')
|
||||
core.register_alias('stairs:stair_stonebrick', 'mcl_stairs:stair_stonebrick')
|
||||
core.register_alias('stairs:stair_mossycobble', 'mcl_stairs:stair_mossycobble')
|
||||
|
||||
core.register_alias('walls:cobble', 'mcl_walls:cobble')
|
||||
core.register_alias('xpanes:trapdoor_steel_bar', 'mcl_doors:iron_trapdoor')
|
||||
core.register_alias('doors:trapdoor_open', 'mcl_doors:trapdoor_open')
|
||||
core.register_alias('doors:trapdoor', 'mcl_doors:trapdoor')
|
||||
core.register_alias('doors:door_wood_a', 'mcl_doors:wooden_door')
|
||||
core.register_alias('doors:hidden', 'air')
|
||||
|
||||
-- Dye
|
||||
core.register_alias('dye:brown', 'mcl_dye:brown')
|
||||
core.register_alias('dye:black', 'mcl:dye:black')
|
||||
core.register_alias('dye:blue', 'mcl:dye:blue')
|
||||
core.register_alias('dye:cyan', 'mcl:dye:cyan')
|
||||
core.register_alias('dye:dark_grey', 'mcl:dye:dark_grey')
|
||||
core.register_alias('dye:grey', 'mcl:dye:grey')
|
||||
core.register_alias('dye:dark_green', 'mcl:dye:dark_green')
|
||||
core.register_alias('dye:green', 'mcl:dye:green')
|
||||
core.register_alias('dye:magenta', 'mcl:dye:magenta')
|
||||
core.register_alias('dye:orange', 'mcl:dye:orange')
|
||||
core.register_alias('dye:pink', 'mcl:dye:pink')
|
||||
core.register_alias('dye:violet', 'mcl:dye:violet')
|
||||
core.register_alias('dye:red', 'mcl:dye:red')
|
||||
core.register_alias('dye:white', 'mcl:dye:white')
|
||||
core.register_alias('dye:yellow', 'mcl:dye:yellow')
|
||||
core.register_alias('default:sand_with_kelp', 'mcl_ocean:kelp')
|
||||
File diff suppressed because it is too large.
Load diff
@@ -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
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,474 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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
|
||||
core.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 core.get_modpath('default') then
|
||||
-- default obsidian
|
||||
core.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
|
||||
core.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
|
||||
core.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 core.get_modpath('mcl_core') then
|
||||
-- mcl_core obsidian
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
--
|
||||
core.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,
|
||||
})
|
||||
|
||||
core.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,
|
||||
})
|
||||
|
||||
core.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,
|
||||
})
|
||||
|
||||
core.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 core.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 core.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
|
||||
|
||||
core.register_craftitem('x_farming:wart_brick', {
|
||||
description = S('Wart Brick'),
|
||||
inventory_image = 'x_farming_wart_brick.png',
|
||||
groups = { craftitem = 1 },
|
||||
})
|
||||
|
||||
core.register_node('x_farming:obsidian_wart_decor', {
|
||||
description = S('Obsidian Wart'),
|
||||
short_description = S('Obsidian Wart'),
|
||||
drawtype = 'plantlike_rooted',
|
||||
waving = 1,
|
||||
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,
|
||||
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)
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
core.register_decoration({
|
||||
name = 'x_farming:obsidian_wart_decor',
|
||||
deco_type = 'simple',
|
||||
place_offset_y = -1,
|
||||
place_on = { 'default:stone' },
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
y_max = -1000,
|
||||
y_min = -31000,
|
||||
flags = 'force_placement, all_floors',
|
||||
decoration = { 'x_farming:obsidian_wart_decor' },
|
||||
})
|
||||
end)
|
||||
@@ -0,0 +1,403 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- trunk
|
||||
core.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 = core.rotate_node
|
||||
})
|
||||
|
||||
-- leaves
|
||||
core.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
|
||||
core.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)
|
||||
core.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,
|
||||
})
|
||||
|
||||
-- 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.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,
|
||||
attached_node = 1,
|
||||
},
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
sounds = x_farming.node_sound_leaves_defaults(),
|
||||
|
||||
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
||||
core.set_node(pos, { name = 'x_farming:pine_nut', param2 = 1 })
|
||||
end,
|
||||
|
||||
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
if oldnode.param2 == 0 then
|
||||
core.set_node(pos, { name = 'x_farming:pine_nut_mark' })
|
||||
core.get_node_timer(pos):start(math.random(300, 1500))
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
core.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'
|
||||
.. core.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,
|
||||
attached_node = 1,
|
||||
},
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
}
|
||||
|
||||
if core.get_modpath('farming') then
|
||||
pine_nut_roasted_def.on_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
pine_nut_roasted_def.on_place = core.item_eat(2)
|
||||
pine_nut_roasted_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:pine_nut_roasted', pine_nut_roasted_def)
|
||||
|
||||
core.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 core.find_node_near(pos, 1, 'x_farming:pine_nut_leaves') then
|
||||
core.remove_node(pos)
|
||||
elseif core.get_node_light(pos) < 11 then
|
||||
core.get_node_timer(pos):start(200)
|
||||
else
|
||||
core.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,
|
||||
-- })
|
||||
|
||||
-- planks
|
||||
core.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(),
|
||||
})
|
||||
|
||||
if core.global_exists('stairs') and core.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 core.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
|
||||
|
||||
---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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:dirt_with_snow')
|
||||
table.insert(deco_place_on, 'default:dirt_with_coniferous_litter')
|
||||
table.insert(deco_biomes, 'taiga')
|
||||
table.insert(deco_biomes, 'coniferous_forest')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:podzol')
|
||||
table.insert(deco_biomes, 'MegaSpruceTaiga')
|
||||
table.insert(deco_biomes, 'MegaTaiga')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:pine_nut_tree',
|
||||
deco_type = 'schematic',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = 0.010,
|
||||
scale = 0.005,
|
||||
spread = { x = 100, y = 100, z = 100 },
|
||||
seed = 2,
|
||||
octaves = 3,
|
||||
persist = 0.66
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 4,
|
||||
schematic = core.get_modpath('x_farming') .. '/schematics/x_farming_pine_nut_tree.mts',
|
||||
flags = 'place_center_x, place_center_z'
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,198 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
potato_def.on_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
potato_def.on_place = core.item_eat(2)
|
||||
potato_def.on_secondary_use = core.item_eat(2)
|
||||
end
|
||||
|
||||
core.override_item('x_farming:potato', potato_def)
|
||||
|
||||
-- add poisonous potato to drops
|
||||
core.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'
|
||||
.. core.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 core.get_modpath('farming') then
|
||||
baked_potato_def.on_use = core.item_eat(6)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
baked_potato_def.on_place = core.item_eat(6)
|
||||
baked_potato_def.on_secondary_use = core.item_eat(6)
|
||||
end
|
||||
|
||||
core.register_craftitem('x_farming:bakedpotato', baked_potato_def)
|
||||
|
||||
-- Poisonouos Potato
|
||||
local poisonouspotato_def = {
|
||||
description = S('Poisonous Potato') .. '\n'
|
||||
.. core.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'
|
||||
.. core.colorize(x_farming.colors.green, S('Poison') .. ': 5')
|
||||
end
|
||||
|
||||
if core.get_modpath('farming') then
|
||||
poisonouspotato_def.on_use = core.item_eat(-6)
|
||||
end
|
||||
|
||||
if core.get_modpath('mcl_farming') then
|
||||
poisonouspotato_def.on_place = core.item_eat(-6)
|
||||
poisonouspotato_def.on_secondary_use = core.item_eat(-6)
|
||||
|
||||
core.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
|
||||
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:silver_sand')
|
||||
table.insert(deco_biomes, 'cold_desert')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:forsaken_desert_sand')
|
||||
table.insert(deco_biomes, 'everness:forsaken_desert')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:sand')
|
||||
table.insert(deco_biomes, 'Desert')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:potato',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:potato_5',
|
||||
'x_farming:potato_6',
|
||||
'x_farming:potato_7',
|
||||
'x_farming:potato_8',
|
||||
},
|
||||
param2 = 3,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,241 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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 Fruit'),
|
||||
short_description = S('Pumpkin Fruit'),
|
||||
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 = {
|
||||
-- MTG
|
||||
snappy = 3,
|
||||
flammable = 4,
|
||||
fall_damage_add_percent = -30,
|
||||
not_in_creative_inventory = 1,
|
||||
-- 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 = core.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 = core.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
|
||||
}
|
||||
|
||||
core.register_node('x_farming:pumpkin_fruit', pumpkin_fruit_def)
|
||||
|
||||
-- PUMPKIN BLOCK - HARVEST from crops
|
||||
core.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 = {
|
||||
-- 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
|
||||
core.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
|
||||
core.register_alias_force('x_farming:pumpkin', 'x_farming:pumpkin_block')
|
||||
|
||||
-- take over the growth from minetest_game farming from here
|
||||
core.override_item('x_farming:pumpkin_8', {
|
||||
next_plant = 'x_farming:pumpkin_fruit',
|
||||
on_timer = x_farming.grow_block
|
||||
})
|
||||
|
||||
-- replacement LBM for pre-nodetimer plants
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.get_modpath('default') then
|
||||
table.insert(deco_place_on, 'default:sand')
|
||||
table.insert(deco_biomes, 'sandstone_desert')
|
||||
end
|
||||
|
||||
-- Everness
|
||||
if core.get_modpath('everness') then
|
||||
table.insert(deco_place_on, 'everness:forsaken_desert_sand')
|
||||
table.insert(deco_biomes, 'everness:forsaken_desert')
|
||||
end
|
||||
|
||||
-- MCL
|
||||
if core.get_modpath('mcl_core') then
|
||||
table.insert(deco_place_on, 'mcl_core:sand')
|
||||
table.insert(deco_biomes, 'Desert')
|
||||
end
|
||||
|
||||
if next(deco_place_on) and next(deco_biomes) then
|
||||
core.register_decoration({
|
||||
name = 'x_farming:pumpkin',
|
||||
deco_type = 'simple',
|
||||
place_on = deco_place_on,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.1,
|
||||
scale = 0.1,
|
||||
spread = { x = 50, y = 50, z = 50 },
|
||||
seed = 4242,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = deco_biomes,
|
||||
y_max = 31000,
|
||||
y_min = 1,
|
||||
decoration = {
|
||||
'x_farming:pumpkin_5',
|
||||
'x_farming:pumpkin_6',
|
||||
'x_farming:pumpkin_7',
|
||||
'x_farming:pumpkin_8',
|
||||
},
|
||||
param2 = 3,
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,331 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.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 = {
|
||||
-- MTG
|
||||
attached_node = 0,
|
||||
-- VL
|
||||
plant = 1,
|
||||
dig_by_water = 0,
|
||||
destroy_by_lava_flow = 1,
|
||||
dig_by_piston = 1,
|
||||
compostability = 30,
|
||||
-- X Farming
|
||||
compost = 30,
|
||||
},
|
||||
node_placement_prediction = '',
|
||||
buildable_to = false,
|
||||
floodable = 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 = core.get_node(pos_under)
|
||||
local def_under = core.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 = core.find_nodes_in_area(
|
||||
vector.new(pos_above),
|
||||
vector.new(pos_above.x, pos_above.y + 2, pos_above.z),
|
||||
{ 'group:water' }
|
||||
)
|
||||
|
||||
if node_under.name ~= 'x_farming:silt_loam_soil'
|
||||
or core.get_item_group(core.get_node(pos_above).name, 'water') == 0
|
||||
or #water_above ~= 1
|
||||
then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if core.is_protected(pos_under, player_name)
|
||||
or core.is_protected(pos_above, player_name)
|
||||
then
|
||||
core.record_protection_violation(pos_under, player_name)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
node_under.name = itemstack:get_name()
|
||||
core.set_node(pos_under, node_under)
|
||||
x_farming.tick(pos_under)
|
||||
|
||||
if not core.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
after_destruct = function(pos, oldnode)
|
||||
core.set_node(pos, { name = 'x_farming:silt_loam_soil' })
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
local node = core.get_node(pos)
|
||||
local name = node.name
|
||||
local def = core.registered_nodes[name]
|
||||
|
||||
if not def.next_plant then
|
||||
-- disable timer for fully grown plant
|
||||
return
|
||||
end
|
||||
|
||||
-- grow seed
|
||||
if core.get_item_group(node.name, 'seed') and def.fertility then
|
||||
local water_above = core.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
|
||||
|
||||
core.swap_node(pos, placenode)
|
||||
|
||||
if core.registered_nodes[def.next_plant].next_plant then
|
||||
x_farming.tick(pos)
|
||||
return
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
-- check if emerged in water
|
||||
local water_above = core.find_nodes_in_area(
|
||||
vector.new(pos),
|
||||
vector.new(pos.x, pos.y + 2, pos.z),
|
||||
{ 'default:water_source' }
|
||||
)
|
||||
|
||||
local air_above = core.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 = core.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
|
||||
|
||||
core.swap_node(pos, placenode)
|
||||
|
||||
-- new timer needed?
|
||||
if core.registered_nodes[def.next_plant].next_plant then
|
||||
x_farming.tick(pos)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Registered before the stairs so the stairs get fuel recipes.
|
||||
core.register_craft({
|
||||
type = 'fuel',
|
||||
recipe = 'x_farming:rice_stack',
|
||||
burntime = 3,
|
||||
})
|
||||
|
||||
if core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.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 core.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
|
||||
core.register_decoration({
|
||||
name = 'x_farming:rice',
|
||||
deco_type = 'simple',
|
||||
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 = -1,
|
||||
y_min = -1,
|
||||
decoration = {
|
||||
'x_farming:rice_5',
|
||||
'x_farming:rice_6',
|
||||
'x_farming:rice_7',
|
||||
'x_farming:rice_8'
|
||||
},
|
||||
flags = 'force_placement'
|
||||
})
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,259 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
local function place_rope(pos, itemstack)
|
||||
local next_node = core.get_node(pos)
|
||||
local stack_name = itemstack:get_name()
|
||||
|
||||
while next_node.name == 'air' and not itemstack:is_empty() do
|
||||
core.set_node(pos, { name = stack_name, param1 = 0 })
|
||||
itemstack:take_item()
|
||||
pos.y = pos.y - 1
|
||||
next_node = core.get_node(pos)
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
|
||||
core.register_node('x_farming:rope', {
|
||||
description = S('Rope') .. '. ' .. S('Placing rope on rope will prelong the rope downwards.'),
|
||||
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 = core.get_pointed_thing_position(pointed_thing)
|
||||
|
||||
if pt_pos and pointed_thing.type == 'node' then
|
||||
local pt_node = core.get_node(pt_pos)
|
||||
|
||||
if core.is_protected(pt_pos, placer:get_player_name()) then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local pt_node_def = core.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 = core.get_node(pt_pos)
|
||||
|
||||
if core.get_item_group(pt_node.name, 'rope') > 0 then
|
||||
-- add to rope
|
||||
local _pos = vector.new(pt_pos)
|
||||
local next_node = core.get_node(_pos)
|
||||
|
||||
while core.get_item_group(next_node.name, 'rope') > 0 do
|
||||
_pos.y = _pos.y - 1
|
||||
next_node = core.get_node(_pos)
|
||||
end
|
||||
|
||||
return place_rope(_pos, itemstack)
|
||||
end
|
||||
end
|
||||
|
||||
if pointed_thing.type == 'node' then
|
||||
local pos = pointed_thing.above
|
||||
|
||||
if core.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 core.is_protected(pos, puncher:get_player_name()) then
|
||||
return
|
||||
end
|
||||
|
||||
local count = 0
|
||||
local below = vector.new(pos)
|
||||
local node_below = core.get_node(below)
|
||||
|
||||
while core.get_item_group(node_below.name, 'rope') > 0 do
|
||||
core.remove_node(below)
|
||||
below.y = below.y - 1
|
||||
count = count + 1
|
||||
node_below = core.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
|
||||
core.add_item(puncher:get_pos(), stack)
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end,
|
||||
})
|
||||
|
||||
core.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()
|
||||
})
|
||||
|
||||
core.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()
|
||||
})
|
||||
@@ -0,0 +1,741 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 = core.get_translator(core.get_current_modname())
|
||||
|
||||
-- how often a growth failure tick is retried (e.g. too dark)
|
||||
local function tick_again(pos)
|
||||
core.get_node_timer(pos):start(math.random(80, 160))
|
||||
end
|
||||
|
||||
-- SALT
|
||||
core.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'
|
||||
})
|
||||
|
||||
core.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 = core.get_node(under)
|
||||
local udef = core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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
|
||||
core.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'
|
||||
}
|
||||
})
|
||||
|
||||
core.register_on_mods_loaded(function()
|
||||
local deco_place_on = {}
|
||||
local deco_biomes = {}
|
||||
|
||||
-- MTG
|
||||
if core.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 core.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
|
||||
core.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 = core.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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
--[[
|
||||
X Farming. Extends Luanti farming mod with new plants, crops and ice fishing.
|
||||
Copyright (C) 2025 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 core.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.
Loaded 100 of 6234 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user