temp remove skin and cloth mods while they are WIP. sign fixes.

master
FreeGamers 2020-05-26 12:18:14 -05:00
parent d4f1dfe2a7
commit 65a7e71892
880 changed files with 26246 additions and 87 deletions

View File

@ -1,11 +1,16 @@
Sara's Simple Survival Game
==========================
Copyright (C) 2019-2020 FreeGamers.org
Thank you to everyone who has contributed to this project, mods, and the FreeGamers communitys.
The best game for Minetest. A project with the goal of enhancing minetest_game survival with new depth, mechanics, biomes, mobs and many essential additions. Has a focus on being fun, user-friendly, stable, and minimalist but featured. Join our cause: https://www.freegamers.org
Description
-------------------------
The best game for Minetest. A survival game with new depth, mechanics, biomes, mobs and many essential additions. Has a focus on being fun, user-friendly, stable, and minimalist but featured. Join our cause: https://www.freegamers.org
Currently, this game is quite stable and has been debugged on an online server environment with many players. There is active development so new bugs may come and go.
This project started with the goal to expand Minetest game to include additional features that would greatly enhance the gameplay to be more fun for players.
Currently, this game is quite stable and has been debugged on an online server environment with many players.
Minetest Engine Compatability
--------------------------
Minetest engine version 5.2.0 or greater is currently recommended to run this game.
Minetest engine version 5.1.1 is compatabile but not all mods and function completely.
Thank you to everyone who has helped contribute to this project and mods.
version 5.2.0 or greater is currently recommended to run this game.
version 5.1.1 will work but not all mod features will be compatible.

View File

@ -119,9 +119,6 @@ minetest.register_on_joinplayer(function(player)
return count
end,
}, name)
if clothing.inv_mod == "inventory_plus" then
inventory_plus.register_button(player,"clothing", "Clothing")
end
load_clothing_metadata(player, clothing_inv)
minetest.after(1, function(name)

View File

@ -1757,7 +1757,7 @@ else
core.register_craft{
output = "craftguide:sign",
type = "shapeless",
recipe = {"default:sign_wall_wood"}
recipe = {"signs:sign"}
}
core.register_craft{

View File

@ -32,7 +32,6 @@ minetest.register_alias("water_source", "default:water_source")
minetest.register_alias("lava_flowing", "default:lava_flowing")
minetest.register_alias("lava_source", "default:lava_source")
minetest.register_alias("torch", "default:torch")
minetest.register_alias("sign_wall", "default:sign_wall_wood")
minetest.register_alias("furnace", "default:furnace")
minetest.register_alias("chest", "default:chest")
minetest.register_alias("locked_chest", "default:chest_locked")
@ -74,4 +73,3 @@ minetest.register_alias("default:pinetree", "default:pine_tree")
minetest.register_alias("default:pinewood", "default:pine_wood")
minetest.register_alias("default:ladder", "default:ladder_wood")
minetest.register_alias("default:sign_wall", "default:sign_wall_wood")

View File

@ -202,9 +202,6 @@ Tools / "Advanced" crafting / Non-"natural"
default:bookshelf
default:sign_wall_wood
default:sign_wall_steel
default:ladder_wood
default:ladder_steel

View File

@ -99,8 +99,8 @@ bones_loot.register_loot({
{name = "default:mese_crystal_fragment", chance = 0.4, count = {1,5}, types = {"underworld_warrior"}},
{name = "default:obsidian_shard", chance = 0.4, count = {1,3}, types = {"underworld_warrior"}},
{name = "default:flint", chance = 0.3, count = {1,1}, types = {"underworld_warrior"}},
{name = "default:sign_wall_wood", chance = 0.1, count = {1,4}, types = {"underworld_warrior"}},
{name = "default:sign_wall_steel", chance = 0.1, count = {1,2}, types = {"underworld_warrior"}},
{name = "signs:sign", chance = 0.1, count = {1,4}, types = {"underworld_warrior"}},
{name = "signs:sign", chance = 0.1, count = {1,2}, types = {"underworld_warrior"}},
{name = "default:ladder_wood", chance = 0.5, count = {1,10}, types = {"underworld_warrior"}},
{name = "default:ladder_steel", chance = 0.2, count = {1,5}, types = {"underworld_warrior"}},
{name = "default:meselamp", chance = 0.1, count = {1,2}, types = {"underworld_warrior"}},
@ -114,4 +114,4 @@ if df_caverns.config.enable_lava_sea then
bones_loot.register_loot({name = "df_mapitems:mese_crystal", chance = 0.25, count = {1, 2}, types = {"underworld_warrior"}})
end
end
end

View File

@ -265,8 +265,6 @@ if flow_through then
"default:dry_shrub",
"default:bush_stem",
"default:acacia_bush_stem",
"default:sign_wall_wood",
"default:sign_wall_steel",
"default:ladder_wood",
"default:ladder_steel",
"default:fence_wood",
@ -289,6 +287,11 @@ if flow_through then
add_flow_through("carts:powerrail")
add_flow_through("carts:brakerail")
end
-- Add "signs" support.
if minetest.get_modpath("signs") then
add_flow_through("signs:sign")
end
end
@ -564,4 +567,4 @@ if displace_liquid then
end
end)
end
end

View File

@ -7,8 +7,8 @@ lootchests.register_lootchest({
groups = {choppy = 2, oddly_breakable_by_hand = 2},
ymax = 5,
ymin = -512,
spawn_in_rarity = 80,
spawn_on_rarity = 5000,
spawn_in_rarity = 160,
spawn_on_rarity = 10000,
slot_spawn_chance = 75,
slots = 32,
})
@ -26,7 +26,7 @@ lootchests.register_lootchest({
groups = {snappy = 2, oddly_breakable_by_hand = 2},
ymax = 0,
ymin = -256,
spawn_on_rarity = 1400,
spawn_on_rarity = 2800,
slot_spawn_chance = 35,
slots = 24,
})
@ -44,7 +44,7 @@ lootchests.register_lootchest({
groups = {cracky = 2, oddly_breakable_by_hand = 2},
ymax = 0,
ymin = -256,
spawn_on_rarity = 900,
spawn_on_rarity = 1800,
slot_spawn_chance = 50,
slots = 24,
})
@ -62,7 +62,7 @@ lootchests.register_lootchest({
groups = {choppy = 2, oddly_breakable_by_hand = 2},
ymax = 5,
ymin = -32,
spawn_in_rarity = 70,
spawn_in_rarity = 140,
slot_spawn_chance = 50,
slots = 24,
})
@ -83,8 +83,8 @@ lootchests.register_lootchest({
groups = {cracky = 2},
ymax = -128,
ymin = -4096,
spawn_in_rarity = 75,
spawn_on_rarity = 7500,
spawn_in_rarity = 125,
spawn_on_rarity = 12500,
slot_spawn_chance = 75,
slots = 32,
})

View File

@ -26,7 +26,7 @@ lootchests.loot_table["lootchests_default:ocean_chest"] = {
{"default:sword_bronze"},
{"default:sword_steel"},
{"default:bookshelf", 16},
{"default:sign_wall_wood", 4},
{"signs:sign", 4},
{"default:ladder_wood", 64},
{"default:ladder_steel", 48},
{"default:glass", 32},
@ -101,7 +101,7 @@ lootchests.loot_table["lootchests_default:urn"] = {
{"default:shovel_stone"},
{"default:axe_stone"},
{"default:sword_stone"},
{"default:sign_wall_wood", 1},
{"signs:sign", 1},
{"default:ladder_wood", 8},
{"vessels:glass_bottle", 4},
{"fire:flint_and_steel"},
@ -162,4 +162,4 @@ lootchests.loot_table["lootchests_default:stone_chest"] = {
{"carts:cart", 2},
{"bucket:bucket_empty", 8},
{"boats:boat", 2},
}
}

View File

@ -14,8 +14,8 @@ lootchests.register_lootchest({
groups = {cracky = 2, oddly_breakable_by_hand = 2},
ymax = -64,
ymin = -16000,
spawn_in_rarity = 512,
spawn_on_rarity = 20000,
spawn_in_rarity = 1024,
spawn_on_rarity = 40000,
slot_spawn_chance = 75,
slots = 24,
})
@ -33,7 +33,7 @@ lootchests.register_lootchest({
groups = {cracky = 2, oddly_breakable_by_hand = 2},
ymax = -64,
ymin = -1600,
spawn_on_rarity = 7200,
spawn_on_rarity = 14400,
slot_spawn_chance = 50,
slots = 24,
})

View File

@ -7,15 +7,6 @@ Licensed under the zlib license. See LICENSE.md for more information.
-- Redefinitions of some default crafting recipes:
minetest.register_craft({
output = "default:sign_wall 4",
recipe = {
{"default:wood", "default:wood", "default:wood"},
{"default:wood", "default:wood", "default:wood"},
{"", "default:stick", ""},
}
})
minetest.register_craft({
output = "default:ladder 4",
recipe = {

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -62,10 +62,9 @@ end
local generate_books = minetest.settings:get_bool("settlements_generate_books", true)
local initialize_node = function(pos, node, node_def, settlement_info)
if settlement_info.name and node.name == "default:sign_wall_steel" then
if settlement_info.name and node.name == "signs:sign" then
local meta = minetest.get_meta(pos)
meta:set_string("text", S("@1 Town Hall", settlement_info.name))
meta:set_string("infotext", S("@1 Town Hall", settlement_info.name))
end
-- when chest is found -> fill with stuff
if node.name == "default:chest" then

View File

@ -24,7 +24,7 @@ local n23 = { name = "default:torch_wall", param2 = 4 }
local n24 = { name = "doors:door_wood_a", param2 = 1 }
local n25 = { name = "xpanes:pane_flat", param2 = 3 }
local n26 = { name = "doors:hidden", param2 = 1 }
local n27 = { name = "default:sign_wall_steel", param2 = 3 }
local n27 = { name = "signs:sign", param2 = 3 }
local n28 = { name = "default:tree", param2 = 18 }
local n29 = { name = "stairs:stair_junglewood", param2 = 3 }
local n30 = { name = "default:fence_wood" }

View File

@ -1,4 +1,4 @@
MultiCraft Game mod: signs
Sara's Simple Survival Game mod: signs
==========================
License of source code

View File

@ -1,3 +0,0 @@
Elite City Guardian
Rivanna16
A member of an elite regiment of city guards.

View File

@ -1,3 +0,0 @@
Wandering Mage
halucid
A magical being skilled in the elemental arts.

View File

@ -1,3 +0,0 @@
Nature Mage
Rivanna16
A magical being. She can channel energy from nature.

View File

@ -1,3 +0,0 @@
Nightblade
Rakqoi
A master of shadows, darkness, and illusion. He conceals himself with the night.

View File

@ -1,3 +0,0 @@
Midnight Assassin
Rivanna16
Spells to fool the mind, deadly poisons, and daggers; just a few tools in her arsenal.

View File

@ -1,3 +0,0 @@
Rogue
Rakqoi
An exile known for malicious acts. Skilled with cunning, deception, and agility.

View File

@ -1,3 +0,0 @@
Medieval Thief
Rivanna16
She sat on the tavern roof, waiting. It was only a matter of time, now.

View File

@ -1,3 +0,0 @@
Templar Knight
Rakqoi
Deus Vult!

View File

@ -1,3 +0,0 @@
Fantasy Knight
Rivanna16
Honor and beauty.

View File

@ -1,3 +0,0 @@
City Watch
Rakqoi
Guards tasked with watching over the town and keeping the peace.

View File

@ -1,3 +0,0 @@
City Watch Guardian
Rivanna16
They do their job to feed their families, which is all that matters in the end.

View File

@ -1,3 +0,0 @@
Elite City Warden
Rakqoi
A member of an elite regiment of city guards.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -16,7 +16,7 @@ function toolranks.create_description(name, uses, level)
.. toolranks.colors.grey .. "Used: " .. (uses or 0) .. " times"
end
-- This is where levels are defined.
function toolranks.get_level(uses)
if uses >= 3200 then

View File

@ -0,0 +1,377 @@
# ethereal
Ethereal Mapgen mod for Minetest (works on all except v6)
## Forum Topic
- https://forum.minetest.net/viewtopic.php?f=11&t=14638
## Lucky Blocks
42
## Changelog
### 1.27
- Added Etherium ore and dust
- Added sparse decoration of dry grass and shrub to caves biome
- Added sponges that spawn near coral, dry sponge in furnace to soak up water
- Added new savanna dirt and decorations
- Use default grass abms
### 1.26
- Added Sakura biome, pink sakura trees and saplings
- 1 in 10 chance of sakura sapling growing into white sakura
- Bamboo grows in higher elevation while sakura grows in lower
- Added sakura wood, stairs, fence, gate and door
- Added 5.0 checks to add new biomes and decorations
- Fixed water abm for dry dirt and added check for minetest 5.1 dry dirt also
### 1.25
- Converted .mts files into schematic tables for easier editing
- Added firethorn shrub in glacier areas (can be crafted into jelly)
- Tweaked mapgen decorations
- Added more lucky blocks
- Added igloo to glacier biome
- 2x2 bamboo = bamboo floor, 3x3 bamboo or 2x bamboo floor = bamboo block, blocks can be made into sticks, bamboo stairs need blocks to craft
### 1.24
- Updating code to newer functions, requires Minetest 0.4.16 and above
- Added food groups to be more compatible with other food mods
- Bonemeal removed (use Bonemeal mod to replace https://forum.minetest.net/viewtopic.php?f=9&t=16446 )
- Crystal Ingot recipe requires a bucket of water, unless you are using builtin_item mod where you can mix ingredients by dropping in a pool of water instead
### 1.23
- Added bonemeal support for bush sapling and acacia bush sapling
- Added support for [toolranks] mod if found
- Reworked Crystal Shovel so it acts more like a normal shovel with soft touch
### 1.22
- Added coral and silver sand to mapgen (0.4.15 only)
- Replaced ethereal:green_dirt with default:dirt_with_grass for mortrees compatibility
- Mesa biomes are now topped with dirt with dry grass (redwood saplings grow on dry grass)
- Added bonemeal support for moretree's saplings
- Added settings.conf file example so that settings remain after mod update
- Added support for Real Torch so that torches near water drop an unlit torch
- Added support for new leafdecay functions (0.4.15 dev)
- Mapgen will use dirt_with_rainforest_litter for jungles if found
- Added bushes to mapgen
### 1.21
- Saplings need clear space above to grow (depending on height of tree)
- Bonemeal changes to suit new sapling growth
- Fixes and tweaks
- Added default Abm overrides
- Added 4 new plants from baked clay mod to mapgen
- Added swamp biome to outskirts of bamboo areas
### 1.20
- Tweaked Ethereal to work with new features and nodes in Minetest 0.4.14
- Added bones found in dirt and bonemeal to make tree's and crops grow quicker
- Tree's follow default rules where saplings need light to grow
- Using default schematics for apple, pine, acacia and jungle tree's
- Tidied and split code into separate files
- Redid coloured grass spread function to run better
- Added support for moreblock's stairsplus feature
### 1.19
- Added new biome routine to help restructure biomes
- Tweaked biome values so that they are more spread out (no more huge bamboo biome)
- Tweaked biome plant and tree decorations
- Fixed farming compatibility when using hoe on ethereal dirt
- Dirt with dry grass turns into green grass when near water
- Ice or snow above sea level melts into river water
- Disabling ethereal biomes no longer shows error messages
- Fire Flowers re-generate, can also be made into Fire Dust and both are fuel
- Optimize and tidy code
### 1.18
- Added Birch tree, also stairs; fence and gate
- Added Fire flower to fiery biomes (careful, it hurts)
- Tweaked biomes and decoration slightly
- Added tree_tool for admin to quickly grow tree's
- Cobble to Mossycobble when near water has been toned down a bit
### 1.17
- Added new Glacier biome filled with snow and ice
- Changed Mesa biome to have more coloured clay patterns
- Changed Bamboo biome to have tall tree-like stalks with leaves that give
- Bamboo sprouts are now saplings to grow new stalks
- Removed farmed mushrooms and replaced with default game mushrooms with spores
### 1.16
- Added new tree schematics that change when placed with random leaves, fruit and height
- Changed frost dirt so that it no longer freezes water (saves lag)
- Torches cannot be placed next to water, otherwise they drop as items
- Added latest farming redo Bean Bushes to mapgen
- Code tidy (thanks HybridDog) and bug fix
- Banana, Orange and Apple fruits now drop when tree has been removed.
### 1.15
- Added Staff of Light (thanks Xanthin), crafted from illumishrooms and can turn stone into glostone and back again
- Changed how Crystal Spikes reproduce
- Crystal Ingots now require 2x mese crystal and 2x crystal spikes to craft
- Removed obsidian brick & stairs now they are in default game, also removed pine wood stairs for same reason
- Tidied code and optimized a few routines
### 1.14
- Changed Ethereal to work with Minetest 0.4.11 update and new mapgen features
- Changed Pine tree's to use default pine wood
- Added pine wood fence, gate and stairs
- Crystal Spikes now re-generate in crystal biomes
- Removed layer mapgen, keeping spread as default
### 1.13
- Changed melting feature to work with 0.4.11 pre-release now that group:hot and group:melt have been removed
### 1.12
- Added ability to disable biomes in the init.lua file by setting to 1 (enable) or 0 (disable)
- Supports Framing Redo 1.10 foods
### 1.11
- Added Stairs for Ethereal wood types, mushroom, dry dirt, obsidian brick and clay
- Added Green Coral which can be used as green dye
- Craft 5x Ice in X pattern to give 5x Snow
- Added Snow and Ice Bricks with their own stairs and slabs which melt when near heat
### 1.10
- Added Stone Ladders (another use for cobble)
- Craft 5x Gravel in X pattern to give 5 dirt, and 5x dirt in X pattern for 5 sand
- Added Acacia tree's to desert biome (a nice pink wood to build with, thanks to VanessaE for textures)
- Added Acacia fences and gates
- Added Vines, craftable with 2x3 leaves
### 1.09
- Fixed Quicksand bug where player see's only black when sinking instead of yellow effect, note this will only work on new maps or newly generated areas of map containing quicksand
- Hot nodes will melt ice and snow in a better way
- Few spelling errors sorted for sapling and wood names
### 1.08
- Saplings produce better placed tree's when grown, routines have been redone
- Orange tree's now spawn in prairie biomes
- The usual code tidy and few bug fixes along the way
### 1.07
- If Farming Redo mod detected then it's growing routines will be used for Ethereal plantlife instead of default
Leaftype and Mapstyle settings can be changed within init.lua file, new layered style maps are being tested
Changed crafting recipe for Fences, they tie in with Gates a little better
### 1.06
- Added support for Farming Redo mod, all plants spawn on newly generated areas:
- https://forum.minetest.net/viewtopic.php?id=9019
### 1.05b
- Added Gates for each of the fence types (thanks to Blockmen for gate model)
- Players can no longer jump over fences unless they wear crystal boots < REMOVED
### 1.04
- Farming of Mushrooms, Wild Onions and Strawberries now use minetest 0.4.10 functions
- Strawberries can be grown by using actual fruit, seeds no longer needed
- Tree leaves are no longer walkable, player can go through them
- Saplings now fall if block underneath disturbed
### 1.03
- Changed Fence recipe's so it doesn't interfere with 3d armor's wooden boots
- Tweaked textures to bring down file sizes
- Flowers, Sprouts and Ferns now spread over ALL grassland
### 1.02
- Fences added for each type of wood in Ethereal
- Changes to biome settings, less artifacts
### 1.01
- Quicksand generates throughout world near sandy water
- Bamboo as well as Papyrus now grow on dirt near water
- Fixed Coral textures and light
### 1.00
- Seaweed now spawns in deep water and can grow up to 10 high
- Coral also spawns in deep water and glows slightly (orange, pink and blue)
- Above items can be crafted into dye, also Seaweed is edible
- So long as sand isn't disturbed under the ocean, sealife will re-generate
- Fixed Leaves inventory images and Mushroom selection box (thanks Wuzzy)
### 0.0.9
#### 0.0.9p
- Willow Trees now spawn in grey biome instead of tiny grey trees (model by Phiwari123)
- Redwood Trees now spawn in Mesa biome (model by Wes42033)
- BakedClay mod no longer required for Mesa biome but used if found
- Paper Wall added
#### 0.0.9o
- Added Obsidian Brick craft for building
- Changed Illumishroom cave levels
- Changed *is_ground_content* to false for ethereal dirt so mapgen doesn't carve it up with caves
#### 0.0.9n
- New textures for farming mushrooms and spores
- Illumi-shrooms spawn in caves to brighten things up a little
- Crafting a wooden sign now gives 4 instead of 1
#### 0.0.9m
- Changed Bamboo biome slightly, Bamboo Sprout has new image
- Abm timings changed and a few bugs fixed
- Crystal Gilly Staff has to be used (left-click) to replenish air while underwater
- Crystal Shovel now works with protection mods
- Tidied code and changed ladder recipe's to double output
#### 0.0.9L
- Scorched Tree's are now different sizes
- Crystal Shovel with soft touch can now be used to dig up sand and gravel
- Bamboo and Papyrus drop entire stalk when bottom node dug
- Crystal Spikes require steel pick or better to dig and fall when dirt below is removed
- Few changes to mapgen and water functions
#### 0.0.9k
- Fixed bug in charcoal lumps (no more placing as unknown nodes)
- Added Crystal Shovel with soft touch, can be used to dig up dirt with grass intact
- Fixed bug in Crystal Shovel, now works with dirt_with_snow and has sounds
- Tweaked Fiery Biomes slightly, smaller craters on outside, large in hotter areas
#### 0.0.9i
- Cleaned up mapgen_v7.lua file, maps now generate a little faster
- Removed cactus.mts, no longer required
- Removed mushroomtwo.mts, no longer required
- Removed bamboo.mts, no longer required
- Removed deadtree.mts, no longer required
- Few new textures added
- Papyrus also spawns on jungle dirt near water
- Replaced dead tree's with scorched tree's
- Each scorched tree trunk crafts into 2x charcoal Lumps (fixed)
- Torches can also be crafted from Charcoal
#### 0.0.9h
- Added Strawberry farming, Strawberry Seeds and new Textures
- Tidied up mapgen_v7.lua for better spawning of plants and trees
- Player can no longer walk through Bamboo Stalks
#### 0.0.9g
- Changed Ethereal's growing routine for Saplings, it now uses 1 single abm to grow all tree's
#### 0.0.9f
- Added Fishing to Ethereal, Fishing Rod, Worms, Fish and Cooked Fish (Left-click the water with a Baited Rod in the hope of landing your prize)
#### 0.0.9e
- Changed textures for Bowl, Mushroom Soup, Crystal Spike, Banana Loaf, Strawberry & Bush
- Added Hearty Stew Recipes
- If BakedClay mod is installed, Mesa Biome will be added to the mix
#### 0.0.9d
- Added Bamboo Grove and Bamboo Sprouts )
- Craft Bamboo into Paper and Bamboo Flooring
- Cactus is now edible when crafted beside empty bucket
#### 0.0.9c
- Code re-worked so mod now uses sections for each function (easier to read and edit)
- New textures for Strawberry Bush and Crystal Spikes
#### 0.0.9b
- Pine Tree Leaves have new texture and sometimes give Pine Nuts
- Jungle Tree's now use default Jungle Wood as texture
#### 0.0.9
- Prairie, Grove, Jungle and Snowy biomes have their own dirt
- Saplings will only grow in the biomes they were taken from
- Mapgen tweaks and code changes for new dirt added
### 0.0.8 Changes
#### 0.0.8m
- Added Banana Trunk and Wood
- Added Boston Ferns to Grove biome
- Added edible Fern Tubers
- Mushroom Biome now has different sized mushrooms
- Changed Pine Needles texture
#### 0.0.8k
- Added Desert Sand biome
- Added Alpine biome with Pine Trees and Snow
- Added Grove biome with Banana Tree's (saplings only grow in that temperate area)
- Added Bananas, Banana Dough and Banana Bread
- Changed biome generation to be more like real-world environs (e.g. shrooms like hot & humid so that's where they spawn)
- Tidied up code and removed redundant lines
#### 0.0.8e
- New Plains biome added between Fiery and Green areas to hopefully stop forest fires, these have dry dirt and dead trees
- Placing water near Dry Dirt turns it into normal dirt, cooking normal dirt changes it into Dry Dirt
Note: if your Ethereal world does have a few forest fires appearing you can always add this line to your minetest.conf file:
disable_fire = true
#### 0.0.8
- Healing Tree (grows on high snowy peaks, leaves are edible and golden apples heal all hearts)
- Added some new images for Cooked Mushroom Soup, Mushroom Spores and Palm Trees
- 2D leaves or 3D leaves option, both wave in wind if enabled
- All new saplings can grow on their native dirt, and palm tree's on sand
- Crystal Spike or Crystal Dirt freezes nearby water, Heat can also melt ice
- Wild Mushrooms now give Spores, plant these to grow edible mushrooms
- Cobble in water turns mossy
- Palm Leaves can be cooked into Palm Wax and made into Candles
### 0.0.7c
- Gravel can be found under lake biomes (or craft 5 cobble in X pattern)
- Papyrus is found and grows on dirt near water (also craft 2x3 string for paper)
- Mushroom Heads have a chance of giving Mushroom Sapling (craft 1 head = 4x Mushrooms ready for Planting)
- Trees and Mushrooms have a chance of giving Saplings
- Frost Trunk and Mushroom Trunk are rotatable (craft 1 Mushroom Trunk = 4x White Dye)
- Desert areas have Dry Shrubs added
- Crystal Spikes added to Crystal Biome (watch out they hurt)
- Crystal Ingots added to make Sword and Pick
- New Pine Tree model added to snowy biome which adds Pine leaves and drops Pine Saplings
- Fixed GrassyTwo biome so that BigTree now spawns and grows from sapling
- Added Crystal Gilly Staff to allow breathing underwater (so long as it's in hand)
- Added Palm Trees, Trunk, Wood, Sapling, Coconuts, Coconut Slice (to eat)
- Thanks to VanessaE's for the Palm textures

View File

@ -0,0 +1,46 @@
-- add compatibility for ethereal nodes already in default game or name changed
minetest.register_alias("ethereal:acacia_trunk", "default:acacia_tree")
minetest.register_alias("ethereal:acacia_wood", "default:acacia_wood")
minetest.register_alias("ethereal:fence_acacia", "default:fence_acacia_wood")
minetest.register_alias("ethereal:fence_junglewood", "default:fence_junglewood")
minetest.register_alias("ethereal:fence_pine", "default:fence_pine_wood")
minetest.register_alias("ethereal:acacia_leaves", "default:acacia_leaves")
minetest.register_alias("ethereal:pineleaves", "default:pine_needles")
minetest.register_alias("ethereal:mushroom_craftingitem", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_plant", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_soup_cooked", "ethereal:mushroom_soup")
minetest.register_alias("ethereal:mushroom_1", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_2", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_3", "flowers:mushroom_brown")
minetest.register_alias("ethereal:mushroom_4", "flowers:mushroom_brown")
minetest.register_alias("ethereal:strawberry_bush", "ethereal:strawberry_7")
minetest.register_alias("ethereal:seed_strawberry", "ethereal:strawberry")
for i = 1, 5 do
minetest.register_alias("ethereal:wild_onion_"..i, "ethereal:onion_"..i)
end
minetest.register_alias("ethereal:onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:onion_8", "ethereal:onion_5")
minetest.register_alias("ethereal:wild_onion_7", "ethereal:onion_4")
minetest.register_alias("ethereal:wild_onion_8", "ethereal:onion_5")
minetest.register_alias("ethereal:wild_onion_craftingitem", "ethereal:wild_onion_plant")
minetest.register_alias("ethereal:hearty_stew_cooked", "ethereal:hearty_stew")
minetest.register_alias("ethereal:obsidian_brick", "default:obsidianbrick")
minetest.register_alias("ethereal:crystal_topped_dirt", "ethereal:crystal_dirt")
minetest.register_alias("ethereal:fiery_dirt_top", "ethereal:fiery_dirt")
minetest.register_alias("ethereal:gray_dirt_top", "ethereal:gray_dirt")
minetest.register_alias("ethereal:green_dirt_top", "default;dirt_with_grass")
minetest.register_alias("ethereal:tree_sapling", "default:sapling")
minetest.register_alias("ethereal:jungle_tree_sapling", "default:junglesapling")
minetest.register_alias("ethereal:acacia_sapling", "default:acacia_sapling")
minetest.register_alias("ethereal:pine_tree_sapling", "default:pine_sapling")

View File

@ -0,0 +1,311 @@
local S = ethereal.intllib
-- Crystal Spike (Hurts if you touch it - thanks to ZonerDarkRevention for his DokuCraft DeviantArt crystal texture)
minetest.register_node("ethereal:crystal_spike", {
description = S("Crystal Spike"),
drawtype = "plantlike",
tiles = { "crystal_spike.png" },
inventory_image = "crystal_spike.png",
wield_image = "crystal_spike.png",
paramtype = "light",
light_source = 7,
sunlight_propagates = true,
walkable = true,
damage_per_second = 1,
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16},
},
node_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0, 5 / 16},
},
})
-- Crystal Ingot
minetest.register_craftitem("ethereal:crystal_ingot", {
description = S("Crystal Ingot"),
inventory_image = "crystal_ingot.png",
wield_image = "crystal_ingot.png",
})
if minetest.get_modpath("builtin_item") then
minetest.override_item("ethereal:crystal_spike", {
dropped_step = function(self, pos, dtime)
self.ctimer = (self.ctimer or 0) + dtime
if self.ctimer < 5.0 then return end
self.ctimer = 0
if self.node_inside
and self.node_inside.name ~= "default:water_source" then
return
end
local objs = core.get_objects_inside_radius(pos, 0.8)
if not objs or #objs ~= 2 then return end
local crystal, mese, ent = nil, nil, nil
for k, obj in pairs(objs) do
ent = obj:get_luaentity()
if ent and ent.name == "__builtin:item" then
if ent.itemstring == "default:mese_crystal 2"
and not mese then
mese = obj
elseif ent.itemstring == "ethereal:crystal_spike 2"
and not crystal then
crystal = obj
end
end
end
if mese and crystal then
mese:remove()
crystal:remove()
core.add_item(pos, "ethereal:crystal_ingot")
return false
end
end
})
end
minetest.register_craft({
type = "shapeless",
output = "ethereal:crystal_ingot",
recipe = {
"default:mese_crystal", "ethereal:crystal_spike",
"ethereal:crystal_spike", "default:mese_crystal", "bucket:bucket_water"
},
replacements = { {"bucket:bucket_water", "bucket:bucket_empty"} }
})
-- Crystal Block
minetest.register_node("ethereal:crystal_block", {
description = S("Crystal Block"),
tiles = {"crystal_block.png"},
light_source = 9,
is_ground_content = false,
groups = {cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft({
output = "ethereal:crystal_block",
recipe = {
{"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
{"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
{"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
}
})
minetest.register_craft({
output = "ethereal:crystal_ingot 9",
recipe = {
{"ethereal:crystal_block"},
}
})
-- Crystal Sword (Powerful wee beastie)
minetest.register_tool("ethereal:sword_crystal", {
description = S("Crystal Sword"),
inventory_image = "crystal_sword.png",
wield_image = "crystal_sword.png",
tool_capabilities = {
full_punch_interval = 0.6,
max_drop_level = 1,
groupcaps = {
snappy = {
times = {[1] = 1.70, [2] = 0.70, [3] = 0.25},
uses = 50,
maxlevel = 3
},
},
damage_groups = {fleshy = 10},
},
groups = {sword = 1},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
output = "ethereal:sword_crystal",
recipe = {
{"ethereal:crystal_ingot"},
{"ethereal:crystal_ingot"},
{"default:steel_ingot"},
}
})
-- Crystal Axe
minetest.register_tool("ethereal:axe_crystal", {
description = S("Crystal Axe"),
inventory_image = "crystal_axe.png",
wield_image = "crystal_axe.png",
tool_capabilities = {
full_punch_interval = 0.8,
max_drop_level = 1,
groupcaps = {
choppy = {
times = {[1] = 2.00, [2] = 0.80, [3] = 0.40},
uses = 40,
maxlevel = 3
},
},
damage_groups = {fleshy = 7},
},
groups = {axe = 1},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
output = "ethereal:axe_crystal",
recipe = {
{"ethereal:crystal_ingot", "ethereal:crystal_ingot"},
{"ethereal:crystal_ingot", "default:steel_ingot"},
{"", "default:steel_ingot"},
}
})
minetest.register_craft({
output = "ethereal:axe_crystal",
recipe = {
{"ethereal:crystal_ingot", "ethereal:crystal_ingot"},
{"default:steel_ingot", "ethereal:crystal_ingot"},
{"default:steel_ingot", ""},
}
})
-- Crystal Pick (This will last a while)
minetest.register_tool("ethereal:pick_crystal", {
description = S("Crystal Pickaxe"),
inventory_image = "crystal_pick.png",
wield_image = "crystal_pick.png",
tool_capabilities = {
full_punch_interval = 0.7,
max_drop_level = 3,
groupcaps={
cracky = {
times = {[1] = 1.8, [2] = 0.8, [3] = 0.40},
uses = 40,
maxlevel = 3
},
},
damage_groups = {fleshy = 6},
},
groups = {pickaxe = 1},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
output = "ethereal:pick_crystal",
recipe = {
{"ethereal:crystal_ingot", "ethereal:crystal_ingot", "ethereal:crystal_ingot"},
{"", "default:steel_ingot", ""},
{"", "default:steel_ingot", ""},
}
})
local old_handle_node_drops = minetest.handle_node_drops
function minetest.handle_node_drops(pos, drops, digger)
-- are we holding Crystal Shovel?
if digger:get_wielded_item():get_name() ~= "ethereal:shovel_crystal" then
return old_handle_node_drops(pos, drops, digger)
end
local nn = minetest.get_node(pos).name
if minetest.get_item_group(nn, "crumbly") == 0 then
return old_handle_node_drops(pos, drops, digger)
end
return old_handle_node_drops(pos, {ItemStack(nn)}, digger)
end
minetest.register_tool("ethereal:shovel_crystal", {
description = "Crystal Shovel",
inventory_image = "crystal_shovel.png",
wield_image = "crystal_shovel.png^[transformR90",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level = 1,
groupcaps = {
crumbly = {
times = {[1] = 1.10, [2] = 0.50, [3] = 0.30},
uses = 30,
maxlevel = 3
},
},
damage_groups = {fleshy = 4},
},
groups = {shovel = 1},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craft({
output = "ethereal:shovel_crystal",
recipe = {
{"ethereal:crystal_ingot"},
{"default:steel_ingot"},
{"default:steel_ingot"},
}
})
-- Crystal Gilly Staff (replenishes air supply when used)
minetest.register_tool("ethereal:crystal_gilly_staff", {
description = S("Crystal Gilly Staff"),
inventory_image = "crystal_gilly_staff.png",
wield_image = "crystal_gilly_staff.png",
on_use = function(itemstack, user, pointed_thing)
if user:get_breath() < 10 then
user:set_breath(10)
end
end,
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:crystal_gilly_staff",
recipe = {
"ethereal:green_moss", "ethereal:gray_moss", "ethereal:fiery_moss",
"ethereal:crystal_moss", "ethereal:crystal_ingot", "ethereal:mushroom_moss",
"ethereal:crystal_ingot"
},
})
-- Add [toolranks] mod support if found
if minetest.get_modpath("toolranks") then
-- Helper function
local function add_tool(name, desc, afteruse)
minetest.override_item(name, {
original_description = desc,
description = toolranks.create_description(desc, 0, 1),
after_use = afteruse and toolranks.new_afteruse
})
end
add_tool("ethereal:pick_crystal", "Crystal Pickaxe", true)
add_tool("ethereal:axe_crystal", "Crystal Axe", true)
add_tool("ethereal:shovel_crystal", "Crystal Shovel", true)
add_tool("ethereal:sword_crystal", "Crystal Sword", true)
end

View File

@ -0,0 +1,10 @@
default
farming?
stairs
flowers
doors
bakedclay?
moreblocks?
intllib?
lucky_block?
toolranks?

View File

@ -0,0 +1 @@
Ethereal mod uses the v7 mapgen to add many new biomes to the world.

View File

@ -0,0 +1,309 @@
local S = ethereal.intllib
-- override default dirt (to stop caves cutting away dirt)
minetest.override_item("default:dirt", {is_ground_content = ethereal.cavedirt})
minetest.register_alias("ethereal:green_dirt", "default:dirt_with_grass")
-- dry dirt
minetest.register_node("ethereal:dry_dirt", {
description = S("Dried Dirt"),
tiles = {"ethereal_dry_dirt.png"},
is_ground_content = ethereal.cavedirt,
groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults()
})
minetest.register_craft({
type = "cooking",
output = "ethereal:dry_dirt",
recipe = "default:dirt",
cooktime = 3,
})
local dirts = {
"Bamboo", "Jungle", "Grove", "Prairie", "Cold",
"Crystal", "Mushroom", "Fiery", "Gray"
}
for n = 1, #dirts do
local desc = dirts[n]
local name = desc:lower()
minetest.register_node("ethereal:"..name.."_dirt", {
description = S(desc.." Dirt"),
tiles = {
"ethereal_grass_"..name.."_top.png",
"default_dirt.png",
{
name = "default_dirt.png^ethereal_grass_"
.. name .."_side.png",
tileable_vertical = false
}
},
is_ground_content = ethereal.cavedirt,
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
soil = {
base = "ethereal:"..name.."_dirt",
dry = "farming:soil",
wet = "farming:soil_wet"
},
drop = "default:dirt",
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
end
-- flower spread, also crystal and fire flower regeneration
local flower_spread = function(pos, node)
if (minetest.get_node_light(pos) or 0) < 13 then
return
end
local pos0 = {x = pos.x - 4, y = pos.y - 2, z = pos.z - 4}
local pos1 = {x = pos.x + 4, y = pos.y + 2, z = pos.z + 4}
local num = #minetest.find_nodes_in_area(pos0, pos1, "group:flora")
-- stop flowers spreading too much just below top of map block
if minetest.find_node_near(pos, 2, "ignore") then
return
end
if num > 3
and node.name == "ethereal:crystalgrass" then
local grass = minetest.find_nodes_in_area_under_air(
pos0, pos1, {"ethereal:crystalgrass"})
if #grass > 4
and not minetest.find_node_near(pos, 4, {"ethereal:crystal_spike"}) then
pos = grass[math.random(#grass)]
pos.y = pos.y - 1
if minetest.get_node(pos).name == "ethereal:crystal_dirt" then
pos.y = pos.y + 1
minetest.swap_node(pos, {name = "ethereal:crystal_spike"})
end
end
return
elseif num > 3
and node.name == "ethereal:dry_shrub" then
local grass = minetest.find_nodes_in_area_under_air(
pos0, pos1, {"ethereal:dry_shrub"})
if #grass > 8
and not minetest.find_node_near(pos, 4, {"ethereal:fire_flower"}) then
pos = grass[math.random(#grass)]
pos.y = pos.y - 1
if minetest.get_node(pos).name == "ethereal:fiery_dirt" then
pos.y = pos.y + 1
minetest.swap_node(pos, {name = "ethereal:fire_flower"})
end
end
return
elseif num > 3 then
return
end
local seedling = minetest.find_nodes_in_area_under_air(
pos0, pos1, {"group:soil"})
if #seedling > 0 then
pos = seedling[math.random(#seedling)]
-- default farming has desert sand as soil, so dont spread on this
if minetest.get_node(pos).name == "default:desert_sand" then
return
end
pos.y = pos.y + 1
if (minetest.get_node_light(pos) or 0) < 13 then
return
end
minetest.swap_node(pos, {name = node.name})
end
end
-- grow papyrus up to 4 high and bamboo up to 8 high
local grow_papyrus = function(pos, node)
local oripos = pos.y
local high = 4
pos.y = pos.y - 1
local nod = minetest.get_node_or_nil(pos)
if not nod
or minetest.get_item_group(nod.name, "soil") < 1
or minetest.find_node_near(pos, 3, {"group:water"}) == nil then
return
end
if node.name == "ethereal:bamboo" then
high = 8
end
pos.y = pos.y + 1
local height = 0
while height < high
and minetest.get_node(pos).name == node.name do
height = height + 1
pos.y = pos.y + 1
end
nod = minetest.get_node_or_nil(pos)
if nod
and nod.name == "air"
and height < high then
if node.name == "ethereal:bamboo"
and height == (high - 1) then
ethereal.grow_bamboo_tree({x = pos.x, y = oripos, z = pos.z})
else
minetest.swap_node(pos, {name = node.name})
end
end
end
-- loop through active abm's
for _, ab in pairs(minetest.registered_abms) do
local label = ab.label or ""
local node1 = ab.nodenames and ab.nodenames[1] or ""
local node2 = ab.nodenames and ab.nodenames[2] or ""
local neigh = ab.neighbors and ab.neighbors[1] or ""
if label == "Flower spread"
or node1 == "group:flora" then
--ab.interval = 1
--ab.chance = 1
ab.nodenames = {"group:flora"}
ab.neighbors = {"group:soil"}
ab.action = flower_spread
-- find grow papyrus abm and change to grow_papyrus function
elseif label == "Grow papyrus"
or node1 == "default:papyrus" then
--ab.interval = 2
--ab.chance = 1
ab.nodenames = {"default:papyrus", "ethereal:bamboo"}
ab.neighbors = {"group:soil"}
ab.action = grow_papyrus
end
end
-- If Baked Clay mod not active, make Red, Orange and Grey nodes
if not minetest.get_modpath("bakedclay") then
minetest.register_node(":bakedclay:red", {
description = S("Red Baked Clay"),
tiles = {"baked_clay_red.png"},
groups = {cracky = 3},
is_ground_content = ethereal.cavedirt,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node(":bakedclay:orange", {
description = S("Orange Baked Clay"),
tiles = {"baked_clay_orange.png"},
groups = {cracky = 3},
is_ground_content = ethereal.cavedirt,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node(":bakedclay:grey", {
description = S("Grey Baked Clay"),
tiles = {"baked_clay_grey.png"},
groups = {cracky = 3},
is_ground_content = ethereal.cavedirt,
sounds = default.node_sound_stone_defaults(),
})
end
-- Quicksand (old style, sinking inside shows black instead of yellow effect,
-- works ok with noclip enabled though)
minetest.register_node("ethereal:quicksand", {
description = S("Quicksand"),
tiles = {"default_sand.png"},
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand",
liquid_alternative_source = "ethereal:quicksand",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- Quicksand (new style, sinking inside shows yellow effect with or without noclip,
-- but old quicksand is shown as black until block placed nearby to update light)
minetest.register_node("ethereal:quicksand2", {
description = S("Quicksand"),
tiles = {"default_sand.png"},
drawtype = "glasslike",
paramtype = "light",
drop = "default:sand",
liquid_viscosity = 15,
liquidtype = "source",
liquid_alternative_flowing = "ethereal:quicksand2",
liquid_alternative_source = "ethereal:quicksand2",
liquid_renewable = false,
liquid_range = 0,
drowning = 1,
walkable = false,
climbable = false,
post_effect_color = {r = 230, g = 210, b = 160, a = 245},
groups = {crumbly = 3, sand = 1, liquid = 3, disable_jump = 1},
sounds = default.node_sound_sand_defaults(),
})
-- craft quicksand
minetest.register_craft({
output = "ethereal:quicksand2",
recipe = {
{"group:sand", "group:sand", "group:sand"},
{"group:sand", "bucket:bucket_water", "group:sand"},
{"group:sand", "group:sand", "group:sand"},
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty"}
}
})

View File

@ -0,0 +1,353 @@
local S = ethereal.intllib
-- Etherium Dust
minetest.register_craftitem("ethereal:etherium_dust", {
description = S("Etherium Dust"),
inventory_image = "ethereal_etherium_dust.png",
wield_image = "ethereal_etherium_dust.png",
})
-- Ethereium Ore
minetest.register_node("ethereal:etherium_ore", {
description = S("Etherium Ore"),
tiles = {"default_desert_stone.png^ethereal_etherium_ore.png"},
groups = {cracky = 3},
drop = "ethereal:etherium_dust",
sounds = default.node_sound_stone_defaults(),
})
-- Bamboo Flooring
minetest.register_node("ethereal:bamboo_floor", {
description = S("Bamboo Floor"),
drawtype = "nodebox",
tiles = { "bamboo_floor.png" },
wield_image = "bamboo_floor.png",
inventory_image = "bamboo_floor.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = true,
node_box = {
type = "wallmounted",
wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5},
wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5},
},
selection_box = {type = "wallmounted"},
groups = {snappy = 3, choppy = 3 , flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
-- Craft Bamboo into Bamboo Flooring
minetest.register_craft({
output = "ethereal:bamboo_floor 2",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
}
})
minetest.register_craft({
output = "ethereal:bamboo_block",
recipe = {
{"ethereal:bamboo_floor"},
{"ethereal:bamboo_floor"},
}
})
-- Bamboo Block
minetest.register_node("ethereal:bamboo_block", {
description = S("Bamboo Block"),
tiles = { "bamboo_floor.png" },
paramtype = "light",
groups = {snappy = 3, choppy = 3 , flammable = 2, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
output = "ethereal:bamboo_block",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo", "ethereal:bamboo"},
}
})
-- Craft Bamboo into Paper
minetest.register_craft({
output = "default:paper 6",
recipe = {
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
{"ethereal:bamboo", "ethereal:bamboo"},
}
})
if ethereal.xcraft == true then
-- X pattern craft recipes (5x 'a' in X pattern gives 5 of 'b')
local cheat = {
{"default:cobble", "default:gravel", 5},
{"default:gravel", "default:dirt", 5},
{"default:dirt", "default:sand", 5},
{"default:ice", "default:snow", 20},
{"ethereal:dry_dirt", "default:desert_sand", 5},
}
for n = 1, #cheat do
minetest.register_craft({
output = cheat[n][2] .. " " .. cheat[n][3],
recipe = {
{cheat[n][1], "", cheat[n][1]},
{"", cheat[n][1], ""},
{cheat[n][1], "", cheat[n][1]},
}
})
end
end -- END if
-- Paper (2x3 string = 4 paper)
minetest.register_craft({
output = "default:paper 4",
recipe = {
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
}
})
-- Palm Wax
minetest.register_craftitem("ethereal:palm_wax", {
description = S("Palm Wax"),
inventory_image = "palm_wax.png",
wield_image = "palm_wax.png",
})
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "ethereal:palm_wax",
recipe = "ethereal:palmleaves"
})
-- Candle from Wax and String/Cotton
minetest.register_node("ethereal:candle", {
description = S("Candle"),
drawtype = "plantlike",
inventory_image = "candle_static.png",
wield_image = "candle_static.png",
tiles = {
{
name = "candle.png",
animation={
type="vertical_frames",
aspect_w = 32,
aspect_h = 32,
length = 1.0
}
},
},
paramtype = "light",
light_source = 11,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = { -0.15, -0.5, -0.15, 0.15, 0, 0.15 }
},
})
minetest.register_craft({
output = "ethereal:candle 2",
recipe = {
{"farming:cotton"},
{"ethereal:palm_wax"},
{"ethereal:palm_wax"},
}
})
-- Wooden Bowl
minetest.register_craftitem("ethereal:bowl", {
description = S("Bowl"),
inventory_image = "bowl.png",
groups = {food_bowl = 1, flammable = 2},
})
-- use farming redo's recipe if found
if not minetest.registered_items["farming:bowl"] then
minetest.register_craft({
output = "ethereal:bowl 4",
recipe = {
{"group:wood", "", "group:wood"},
{"", "group:wood", ""},
}
})
end
-- stone Ladder
minetest.register_node("ethereal:stone_ladder", {
description = S("Stone Ladder"),
drawtype = "signlike",
tiles = {"stone_ladder.png"},
inventory_image = "stone_ladder.png",
wield_image = "stone_ladder.png",
paramtype = "light",
sunlight_propagates = true,
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {cracky = 3, oddly_breakable_by_hand = 1},
legacy_wallmounted = true,
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
output = "ethereal:stone_ladder 4",
recipe = {
{"group:stone", "", "group:stone"},
{"group:stone", "group:stone", "group:stone"},
{"group:stone", "", "group:stone"},
}
})
-- Paper Wall
minetest.register_node("ethereal:paper_wall", {
drawtype = "nodebox",
description = S("Paper Wall"),
tiles = {"paper_wall.png"},
inventory_image_image = "paper_wall.png",
wield_image = "paper_wall.png",
paramtype = "light",
groups = {snappy = 3},
sounds = default.node_sound_wood_defaults(),
walkable = true,
is_ground_content = false,
sunlight_propagates = true,
paramtype2 = "facedir",
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 }
},
node_box = {
type = "fixed",
fixed = {
{ -0.5, -0.5, 5/11, 0.5, 0.5, 8/16 }
}
},
})
minetest.register_craft({
output = "ethereal:paper_wall",
recipe = {
{"group:stick", "default:paper", "group:stick"},
{"group:stick", "default:paper", "group:stick"},
{"group:stick", "default:paper", "group:stick"},
}
})
-- Glostone (A little bit of light decoration)
minetest.register_node("ethereal:glostone", {
description = S("Glo Stone"),
tiles = {"glostone.png"},
groups = {cracky = 3},
light_source = 13,
drop = "ethereal:glostone",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:glostone",
recipe = {"default:torch", "default:stone", "dye:yellow"}
})
-- Charcoal Lump
minetest.register_craftitem("ethereal:charcoal_lump", {
description = S("Lump of Charcoal"),
inventory_image = "charcoal_lump.png",
})
minetest.register_craft({
output = "ethereal:charcoal_lump 2",
recipe = {
{"ethereal:scorched_tree"}
}
})
minetest.register_craft({
output = "ethereal:charcoal_lump 2",
type = "cooking",
recipe = "group:tree",
cooktime = 4
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:charcoal_lump",
burntime = 10,
})
-- Make Torch from Charcoal Lump
minetest.register_craft({
output = "default:torch 4",
recipe = {
{"ethereal:charcoal_lump"},
{"default:stick"},
}
})
-- Staff of Light (by Xanthin)
minetest.register_tool("ethereal:light_staff", {
description = S("Staff of Light"),
inventory_image = "light_staff.png",
wield_image = "light_staff.png",
sound = {breaks = "default_tool_breaks"},
stack_max = 1,
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
return
end
local pos = pointed_thing.under
local pname = user:get_player_name()
if minetest.is_protected(pos, pname) then
minetest.record_protection_violation(pos, pname)
return
end
local node = minetest.get_node(pos).name
if node == "default:stone"
or node == "default:desert_stone" then
minetest.swap_node(pos, {name = "ethereal:glostone"})
if not ethereal.check_creative(user:get_player_name()) then
itemstack:add_wear(65535 / 149) -- 150 uses
end
return itemstack
end
end,
})
minetest.register_craft({
output = "ethereal:light_staff",
recipe = {
{"ethereal:illumishroom", "default:mese_crystal", "ethereal:illumishroom"},
{"ethereal:illumishroom2", "default:steel_ingot", "ethereal:illumishroom2"},
{"ethereal:illumishroom3", "default:steel_ingot", "ethereal:illumishroom3"}
}
})

View File

@ -0,0 +1,82 @@
local S = ethereal.intllib
default.register_fence("ethereal:fence_scorched", {
description = S("Scorched Fence"),
texture = "scorched_tree.png",
material = "ethereal:scorched_tree",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_frostwood", {
description = S("Frost Fence"),
texture = "frost_wood.png",
material = "ethereal:frost_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_redwood", {
description = S("Redwood Fence"),
texture = "redwood_wood.png",
material = "ethereal:redwood_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_willow", {
description = S("Willow Fence"),
texture = "willow_wood.png",
material = "ethereal:willow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_yellowwood", {
description = S("Healing Wood Fence"),
texture = "yellow_wood.png",
material = "ethereal:yellow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_palm", {
description = S("Palm Fence"),
texture = "moretrees_palm_wood.png",
material = "ethereal:palm_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_banana", {
description = S("Banana Wood Fence"),
texture = "banana_wood.png",
material = "ethereal:banana_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_mushroom", {
description = S("Mushroom Fence"),
texture = "mushroom_trunk.png",
material = "ethereal:mushroom_trunk",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_birch", {
description = S("Birch Fence"),
texture = "moretrees_birch_wood.png",
material = "ethereal:birch_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("ethereal:fence_sakura", {
description = S("Sakura Fence"),
texture = "ethereal_sakura_wood.png",
material = "ethereal:sakura_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})

View File

@ -0,0 +1,167 @@
local S = ethereal.intllib
-- Raw Fish (Thanks to Altairas for her Fish image on DeviantArt)
minetest.register_craftitem("ethereal:fish_raw", {
description = S("Raw Fish"),
inventory_image = "fish_raw.png",
wield_image = "fish_raw.png",
groups = {food_fish_raw = 1, flammable = 3},
on_use = minetest.item_eat(2),
})
-- Cooked Fish
minetest.register_craftitem("ethereal:fish_cooked", {
description = S("Cooked Fish"),
inventory_image = "fish_cooked.png",
wield_image = "fish_cooked.png",
groups = {food_fish = 1, flammable = 3},
on_use = minetest.item_eat(5),
})
minetest.register_craft({
type = "cooking",
output = "ethereal:fish_cooked",
recipe = "ethereal:fish_raw",
cooktime = 2,
})
-- Sashimi (Thanks to Natalia Grosner for letting me use the sashimi image)
minetest.register_craftitem("ethereal:sashimi", {
description = S("Sashimi"),
inventory_image = "sashimi.png",
wield_image = "sashimi.png",
on_use = minetest.item_eat(4),
})
minetest.register_craft({
output = "ethereal:sashimi 2",
recipe = {
{"group:food_seaweed", "group:food_fish_raw", "group:food_seaweed"},
}
})
-- Worm
minetest.register_craftitem("ethereal:worm", {
description = S("Worm"),
inventory_image = "worm.png",
wield_image = "worm.png",
})
-- Used when right-clicking with fishing rod to check for worm and bait rod
local rod_use = function(itemstack, placer, pointed_thing)
local inv = placer:get_inventory()
if inv:contains_item("main", "ethereal:worm") then
inv:remove_item("main", "ethereal:worm")
return ItemStack("ethereal:fishing_rod_baited")
end
end
-- Fishing Rod
minetest.register_craftitem("ethereal:fishing_rod", {
description = S("Fishing Rod (Right-Click with rod to bait with worm from inventory)"),
inventory_image = "fishing_rod.png",
wield_image = "fishing_rod.png",
stack_max = 1,
on_place = rod_use,
on_secondary_use = rod_use
})
minetest.register_craft({
output = "ethereal:fishing_rod",
recipe = {
{"","","group:stick"},
{"", "group:stick", "farming:string"},
{"group:stick", "", "farming:string"},
}
})
-- Sift through 2 Dirt Blocks to find Worm
minetest.register_craft({
output = "ethereal:worm",
recipe = {
{"default:dirt","default:dirt"},
}
})
-- default ethereal fish
ethereal.fish = {
{"ethereal:fish_raw"},
}
-- xanadu server additional fish
if minetest.get_modpath("xanadu") then
ethereal.fish[2] = {"mobs:clownfish_raw"}
ethereal.fish[3] = {"mobs:bluefish_raw"}
end
-- Fishing Rod (Baited)
minetest.register_craftitem("ethereal:fishing_rod_baited", {
description = S("Baited Fishing Rod"),
inventory_image = "fishing_rod_baited.png",
wield_image = "fishing_rod_wield.png",
stack_max = 1,
liquids_pointable = true,
on_use = function (itemstack, user, pointed_thing)
if pointed_thing.type ~= "node" then
return
end
local pos = pointed_thing.under
local node = minetest.get_node(pos).name
if (node == "default:water_source"
or node == "default:river_water_source")
and math.random(1, 100) < 5 then
local type = ethereal.fish[math.random(1, #ethereal.fish)][1]
local inv = user:get_inventory()
if inv:room_for_item("main", {name = type}) then
inv:add_item("main", {name = type})
minetest.sound_play("default_water_footstep", {pos = pos})
pos.y = pos.y + 0.5
minetest.add_particlespawner({
amount = 5,
time = .3,
minpos = pos,
maxpos = pos,
minvel = {x = 2, y = .5, z = 2},
maxvel = {x = 2, y = .5, z = 2},
minacc = {x = 1, y = .1, z = 1},
maxacc = {x = 1, y = .1, z = 1},
minexptime = .3,
maxexptime = .5,
minsize = .5,
maxsize = 1,
collisiondetection = false,
vertical = false,
texture = "bubble.png",
playername = "singleplayer"
})
return ItemStack("ethereal:fishing_rod")
else
minetest.chat_send_player(user:get_player_name(),
S("Inventory full, Fish Got Away!"))
end
end
end,
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:fishing_rod_baited",
recipe = {"ethereal:fishing_rod", "ethereal:worm"},
})

View File

@ -0,0 +1,232 @@
local S = ethereal.intllib
-- Banana (Heals one heart when eaten)
minetest.register_node("ethereal:banana", {
description = S("Banana"),
drawtype = "torchlike",
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.31, -0.5, -0.31, 0.31, 0.5, 0.31}
},
groups = {
food_banana = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 1, leafdecay_drop = 1
},
drop = "ethereal:banana",
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:banana", param2 = 1})
end
end,
})
-- Banana Dough
minetest.register_craftitem("ethereal:banana_dough", {
description = S("Banana Dough"),
inventory_image = "banana_dough.png",
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:banana_dough",
recipe = {"group:food_flour", "group:food_banana"}
})
minetest.register_craft({
type = "cooking",
cooktime = 14,
output = "ethereal:banana_bread",
recipe = "ethereal:banana_dough"
})
-- Orange (Heals 2 hearts when eaten)
minetest.register_node("ethereal:orange", {
description = S("Orange"),
drawtype = "plantlike",
tiles = {"farming_orange.png"},
inventory_image = "farming_orange.png",
wield_image = "farming_orange.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
},
groups = {
food_orange = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:orange",
on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:orange", param2 = 1})
end
end,
})
-- Pine Nuts (Heals 1/2 heart when eaten)
minetest.register_craftitem("ethereal:pine_nuts", {
description = S("Pine Nuts"),
inventory_image = "pine_nuts.png",
wield_image = "pine_nuts.png",
groups = {food_pine_nuts = 1, flammable = 2},
on_use = minetest.item_eat(1),
})
-- Banana Loaf (Heals 3 hearts when eaten)
minetest.register_craftitem("ethereal:banana_bread", {
description = S("Banana Loaf"),
inventory_image = "banana_bread.png",
wield_image = "banana_bread.png",
groups = {food_bread = 1, flammable = 3},
on_use = minetest.item_eat(6),
})
-- Coconut (Gives 4 coconut slices, each heal 1/2 heart)
minetest.register_node("ethereal:coconut", {
description = S("Coconut"),
drawtype = "plantlike",
walkable = false,
paramtype = "light",
sunlight_propagates = true,
tiles = {"moretrees_coconut.png"},
inventory_image = "moretrees_coconut.png",
wield_image = "moretrees_coconut.png",
selection_box = {
type = "fixed",
fixed = {-0.31, -0.43, -0.31, 0.31, 0.44, 0.31}
},
groups = {
food_coconut = 1, snappy = 1, oddly_breakable_by_hand = 1, cracky = 1,
choppy = 1, flammable = 1, leafdecay = 3, leafdecay_drop = 1
},
drop = "ethereal:coconut_slice 4",
sounds = default.node_sound_wood_defaults(),
})
-- Coconut Slice (Heals half heart when eaten)
minetest.register_craftitem("ethereal:coconut_slice", {
description = S("Coconut Slice"),
inventory_image = "moretrees_coconut_slice.png",
wield_image = "moretrees_coconut_slice.png",
groups = {food_coconut_slice = 1, flammable = 1},
on_use = minetest.item_eat(1),
})
-- Golden Apple (Found on Healing Tree, heals all 10 hearts)
minetest.register_node("ethereal:golden_apple", {
description = S("Golden Apple"),
drawtype = "plantlike",
tiles = {"default_apple_gold.png"},
inventory_image = "default_apple_gold.png",
wield_image = "default_apple_gold.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.37, -0.2, 0.2, 0.31, 0.2}
},
groups = {
fleshy = 3, dig_immediate = 3,
leafdecay = 3,leafdecay_drop = 1
},
drop = "ethereal:golden_apple",
-- on_use = minetest.item_eat(20),
on_use = function(itemstack, user, pointed_thing)
if user then
user:set_hp(20)
return minetest.do_item_eat(2, nil, itemstack, user, pointed_thing)
end
end,
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name = "ethereal:golden_apple", param2 = 1})
end
end,
})
-- Hearty Stew (Heals 5 hearts - thanks to ZonerDarkRevention for his DokuCraft DeviantArt bowl texture)
minetest.register_craftitem("ethereal:hearty_stew", {
description = S("Hearty Stew"),
inventory_image = "hearty_stew.png",
wield_image = "hearty_stew.png",
on_use = minetest.item_eat(10, "ethereal:bowl"),
})
minetest.register_craft({
output = "ethereal:hearty_stew",
recipe = {
{"group:food_onion","flowers:mushroom_brown", "group:food_tuber"},
{"","flowers:mushroom_brown", ""},
{"","group:food_bowl", ""},
}
})
-- Extra recipe for hearty stew
if farming and farming.mod and farming.mod == "redo" then
minetest.register_craft({
output = "ethereal:hearty_stew",
recipe = {
{"group:food_onion","flowers:mushroom_brown", "group:food_beans"},
{"","flowers:mushroom_brown", ""},
{"","group:food_bowl", ""},
}
})
end
-- Bucket of Cactus Pulp
minetest.register_craftitem("ethereal:bucket_cactus", {
description = S("Bucket of Cactus Pulp"),
inventory_image = "bucket_cactus.png",
wield_image = "bucket_cactus.png",
stack_max = 1,
on_use = minetest.item_eat(2, "bucket:bucket_empty"),
})
minetest.register_craft({
output = "ethereal:bucket_cactus",
recipe = {
{"bucket:bucket_empty","default:cactus"},
}
})
-- firethorn jelly
minetest.register_craftitem("ethereal:firethorn_jelly", {
description = S("Firethorn Jelly"),
inventory_image = "ethereal_firethorn_jelly.png",
wield_image = "ethereal_firethorn_jelly.png",
on_use = minetest.item_eat(2, "vessels:glass_bottle"),
groups = {vessel = 1},
})
if minetest.registered_items["farming:bowl"] then
minetest.register_craft({
type = "shapeless",
output = "ethereal:firethorn_jelly",
recipe = {
"farming:mortar_pestle","vessels:glass_bottle",
"ethereal:firethorn", "ethereal:firethorn", "ethereal:firethorn",
"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water",
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty 3"},
{"farming:mortar_pestle", "farming:mortar_pestle"},
},
})
end

View File

@ -0,0 +1,111 @@
local S = ethereal.intllib
-- register Ethereal wood type gates
doors.register_fencegate("ethereal:fencegate_scorched", {
description = S("Scorched Wood Fence Gate"),
texture = "scorched_tree.png",
material = "ethereal:scorched_tree",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_frostwood", {
description = S("Frost Wood Fence Gate"),
texture = "frost_wood.png",
material = "ethereal:frost_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_redwood", {
description = S("Redwood Fence Gate"),
texture = "redwood_wood.png",
material = "ethereal:redwood_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_willow", {
description = S("Willow Wood Fence Gate"),
texture = "willow_wood.png",
material = "ethereal:willow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_yellowwood", {
description = S("Healing Wood Fence Gate"),
texture = "yellow_wood.png",
material = "ethereal:yellow_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_palm", {
description = S("Palm Wood Fence Gate"),
texture = "moretrees_palm_wood.png",
material = "ethereal:palm_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_banana", {
description = S("Banana Wood Fence Gate"),
texture = "banana_wood.png",
material = "ethereal:banana_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_mushroom", {
description = S("Mushroom Trunk Fence Gate"),
texture = "mushroom_trunk.png",
material = "ethereal:mushroom_trunk",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_birch", {
description = S("Birch Wood Fence Gate"),
texture = "moretrees_birch_wood.png",
material = "ethereal:birch_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
doors.register_fencegate("ethereal:fencegate_sakura", {
description = S("Sakura Wood Fence Gate"),
texture = "ethereal_sakura_wood.png",
material = "ethereal:sakura_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}
})
-- add compatibility for ethereal's to default wooden gates
minetest.register_alias("ethereal:fencegate_wood_open", "doors:gate_wood_open")
minetest.register_alias("ethereal:fencegate_wood_closed", "doors:gate_wood_closed")
minetest.register_alias("ethereal:fencegate_acacia_open", "doors:gate_acacia_wood_open")
minetest.register_alias("ethereal:fencegate_acacia_closed", "doors:gate_acacia_wood_closed")
minetest.register_alias("ethereal:fencegate_junglewood_open", "doors:gate_junglewood_open")
minetest.register_alias("ethereal:fencegate_junglewood_closed", "doors:gate_junglewood_closed")
minetest.register_alias("ethereal:fencegate_pine_open", "doors:gate_pine_wood_open")
minetest.register_alias("ethereal:fencegate_pine_closed", "doors:gate_pine_wood_closed")
-- sakura door
doors.register_door("ethereal:door_sakura", {
tiles = {
{name = "ethereal_sakura_door.png", backface_culling = true}
},
description = S("Sakura Wood Door"),
inventory_image = "ethereal_sakura_door_inv.png",
groups = {
snappy = 1, choppy = 2, oddly_breakable_by_hand = 2,
flammable = 2
},
sound_open = "doors_glass_door_open",
sound_close = "doors_glass_door_close",
recipe = {
{"group:stick", "default:paper"},
{"default:paper", "group:stick"},
{"ethereal:sakura_wood", "ethereal:sakura_wood"}
}
})
minetest.register_alias("ethereal:sakura_door", "ethereal:door_sakura")
minetest.register_alias("ethereal:sakura_door_a", "ethereal:door_sakura_a")
minetest.register_alias("ethereal:sakura_door_b", "ethereal:door_sakura_b")

View File

@ -0,0 +1,120 @@
--[[
Minetest Ethereal Mod
Created by ChinChow
Updated by TenPlus1
]]
-- DO NOT change settings below, use the settings.conf file instead
ethereal = {
version = "1.27",
leaftype = 0, -- 0 for 2D plantlike, 1 for 3D allfaces
leafwalk = false, -- true for walkable leaves, false to fall through
cavedirt = true, -- caves chop through dirt when true
torchdrop = true, -- torches drop when touching water
papyruswalk = true, -- papyrus can be walked on
lilywalk = true, -- waterlilies can be walked on
xcraft = true, -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
glacier = 1, -- Ice glaciers with snow
bamboo = 1, -- Bamboo with sprouts
mesa = 1, -- Mesa red and orange clay with giant redwood
alpine = 1, -- Snowy grass
healing = 1, -- Snowy peaks with healing trees
snowy = 1, -- Cold grass with pine trees and snow spots
frost = 1, -- Blue dirt with blue/pink frost trees
grassy = 1, -- Green grass with flowers and trees
caves = 1, -- Desert stone ares with huge caverns underneath
grayness = 1, -- Grey grass with willow trees
grassytwo = 1, -- Sparse trees with old trees and flowers
prairie = 1, -- Flowery grass with many plants and flowers
jumble = 1, -- Green grass with trees and jungle grass
junglee = 1, -- Jungle grass with tall jungle trees
desert = 1, -- Desert sand with cactus
grove = 1, -- Banana groves and ferns
mushroom = 1, -- Purple grass with giant mushrooms
sandstone = 1, -- Sandstone with smaller cactus
quicksand = 1, -- Quicksand banks
plains = 1, -- Dry dirt with scorched trees
savanna = 1, -- Dry yellow grass with acacia tree's
fiery = 1, -- Red grass with lava craters
sandclay = 1, -- Sand areas with clay underneath
swamp = 1, -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
sealife = 1, -- Enable coral and seaweed
reefs = 1, -- Enable new 0.4.15 coral reefs in default
sakura = 1, -- Enable sakura biome with trees
tundra = 1, -- Enable tuntra biome with permafrost
}
local path = minetest.get_modpath("ethereal")
-- Load new settings if found
local input = io.open(path.."/settings.conf", "r")
if input then
dofile(path .. "/settings.conf")
input:close()
input = nil
end
-- Intllib
local S
if minetest.global_exists("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
S = intllib.make_gettext_pair()
else
-- Old method using text files.
S = intllib.Getter()
end
else
S = function(s) return s end
end
ethereal.intllib = S
-- Falling node function
ethereal.check_falling = minetest.check_for_falling or nodeupdate
-- creative check
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
function ethereal.check_creative(name)
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
end
dofile(path .. "/plantlife.lua")
dofile(path .. "/mushroom.lua")
dofile(path .. "/onion.lua")
dofile(path .. "/crystal.lua")
dofile(path .. "/water.lua")
dofile(path .. "/dirt.lua")
dofile(path .. "/food.lua")
dofile(path .. "/wood.lua")
dofile(path .. "/leaves.lua")
dofile(path .. "/sapling.lua")
dofile(path .. "/strawberry.lua")
dofile(path .. "/fishing.lua")
dofile(path .. "/extra.lua")
dofile(path .. "/sealife.lua")
dofile(path .. "/fences.lua")
dofile(path .. "/gates.lua")
dofile(path .. "/mapgen.lua")
dofile(path .. "/compatibility.lua")
dofile(path .. "/stairs.lua")
dofile(path .. "/lucky_block.lua")
-- Set bonemeal aliases
if minetest.get_modpath("bonemeal") then
minetest.register_alias("ethereal:bone", "bonemeal:bone")
minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal")
else -- or return to where it came from
minetest.register_alias("ethereal:bone", "default:dirt")
minetest.register_alias("ethereal:bonemeal", "default:dirt")
end
if minetest.get_modpath("xanadu") then
dofile(path .. "/plantpack.lua")
end
print (S("[MOD] Ethereal loaded"))

View File

@ -0,0 +1,505 @@
local S = ethereal.intllib
-- set leaftype (value inside init.lua)
local leaftype = "plantlike"
if ethereal.leaftype ~= 0 then
leaftype = "allfaces_optional"
end
-- default apple tree leaves
minetest.override_item("default:leaves", {
drawtype = leaftype,
visual_scale = 1.4,
inventory_image = "default_leaves.png",
wield_image = "default_leaves.png",
walkable = ethereal.leafwalk,
})
-- ability to craft big tree sapling
minetest.register_craft({
recipe = {{"default:sapling", "default:sapling", "default:sapling"}},
output = "ethereal:big_tree_sapling"
})
-- default jungle tree leaves
minetest.override_item("default:jungleleaves", {
drawtype = leaftype,
visual_scale = 1.4,
inventory_image = "default_jungleleaves.png",
wield_image = "default_jungleleaves.png",
walkable = ethereal.leafwalk,
})
-- default pine tree leaves
minetest.override_item("default:pine_needles", {
drawtype = leaftype,
visual_scale = 1.4,
inventory_image = "default_pine_needles.png",
wield_image = "default_pine_needles.png",
walkable = ethereal.leafwalk,
drop = {
max_items = 1,
items = {
{items = {"default:pine_sapling"}, rarity = 20},
{items = {"ethereal:pine_nuts"}, rarity = 5},
{items = {"default:pine_needles"}}
}
},
})
-- default acacia tree leaves
minetest.override_item("default:acacia_leaves", {
drawtype = leaftype,
inventory_image = "default_acacia_leaves.png",
wield_image = "default_acacia_leaves.png",
visual_scale = 1.4,
walkable = ethereal.leafwalk,
})
-- default aspen tree leaves
minetest.override_item("default:aspen_leaves", {
drawtype = leaftype,
inventory_image = "default_aspen_leaves.png",
wield_image = "default_aspen_leaves.png",
visual_scale = 1.4,
walkable = ethereal.leafwalk,
})
-- willow twig
minetest.register_node("ethereal:willow_twig", {
description = S("Willow Twig"),
drawtype = "plantlike",
tiles = {"willow_twig.png"},
inventory_image = "willow_twig.png",
wield_image = "willow_twig.png",
paramtype = "light",
walkable = ethereal.leafwalk,
visual_scale = 1.4,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:willow_sapling"}, rarity = 50},
{items = {"ethereal:willow_twig"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- redwood leaves
minetest.register_node("ethereal:redwood_leaves", {
description = S("Redwood Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"redwood_leaves.png"},
inventory_image = "redwood_leaves.png",
wield_image = "redwood_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:redwood_sapling"}, rarity = 50},
{items = {"ethereal:redwood_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- orange tree leaves
minetest.register_node("ethereal:orange_leaves", {
description = S("Orange Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"orange_leaves.png"},
inventory_image = "orange_leaves.png",
wield_image = "orange_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:orange_tree_sapling"}, rarity = 15},
{items = {"ethereal:orange_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- banana tree leaves
minetest.register_node("ethereal:bananaleaves", {
description = S("Banana Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"banana_leaf.png"},
inventory_image = "banana_leaf.png",
wield_image = "banana_leaf.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:banana_tree_sapling"}, rarity = 10},
{items = {"ethereal:bananaleaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- healing tree leaves
minetest.register_node("ethereal:yellowleaves", {
description = S("Healing Tree Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"yellow_leaves.png"},
inventory_image = "yellow_leaves.png",
wield_image = "yellow_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"ethereal:yellow_tree_sapling"}, rarity = 50},
{items = {"ethereal:yellowleaves"}}
}
},
-- one leaf heals half a heart when eaten
on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
light_source = 9,
})
-- palm tree leaves
minetest.register_node("ethereal:palmleaves", {
description = S("Palm Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"moretrees_palm_leaves.png"},
inventory_image = "moretrees_palm_leaves.png",
wield_image = "moretrees_palm_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:palm_sapling"}, rarity = 10},
{items = {"ethereal:palmleaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- birch tree leaves
minetest.register_node("ethereal:birch_leaves", {
description = S("Birch Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"moretrees_birch_leaves.png"},
inventory_image = "moretrees_birch_leaves.png",
wield_image = "moretrees_birch_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:birch_sapling"}, rarity = 20},
{items = {"ethereal:birch_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- frost tree leaves
minetest.register_node("ethereal:frost_leaves", {
description = S("Frost Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"ethereal_frost_leaves.png"},
inventory_image = "ethereal_frost_leaves.png",
wield_image = "ethereal_frost_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, puts_out_fire = 1},
drop = {
max_items = 1,
items = {
{items = {"ethereal:frost_tree_sapling"}, rarity = 15},
{items = {"ethereal:frost_leaves"}}
}
},
light_source = 9,
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- bamboo stalk leaves
minetest.register_node("ethereal:bamboo_leaves", {
description = S("Bamboo Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"bamboo_leaves.png"},
inventory_image = "bamboo_leaves.png",
wield_image = "bamboo_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:bamboo_sprout"}, rarity = 10},
{items = {"ethereal:bamboo_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- sakura leaves
minetest.register_node("ethereal:sakura_leaves", {
description = S("Sakura Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"ethereal_sakura_leaves.png"},
inventory_image = "ethereal_sakura_leaves.png",
wield_image = "ethereal_sakura_leaves.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:sakura_sapling"}, rarity = 30},
{items = {"ethereal:sakura_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
minetest.register_node("ethereal:sakura_leaves2", {
description = S("Sakura Leaves"),
drawtype = leaftype,
visual_scale = 1.4,
tiles = {"ethereal_sakura_leaves2.png"},
inventory_image = "ethereal_sakura_leaves2.png",
wield_image = "ethereal_sakura_leaves2.png",
paramtype = "light",
walkable = ethereal.leafwalk,
waving = 1,
groups = {snappy = 3, leafdecay = 3, leaves = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:sakura_sapling"}, rarity = 30},
{items = {"ethereal:sakura_leaves2"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
-- mushroom tops
minetest.register_node("ethereal:mushroom", {
description = S("Mushroom Cap"),
tiles = {"mushroom_block.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
drop = {
max_items = 1,
items = {
{items = {"ethereal:mushroom_sapling"}, rarity = 20},
{items = {"ethereal:mushroom"}}
}
},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:mushroom",
burntime = 10,
})
-- mushroom pore (spongelike material found inside giant shrooms)
minetest.register_node("ethereal:mushroom_pore", {
description = S("Mushroom Pore"),
tiles = {"mushroom_pore.png"},
groups = {
snappy = 3, cracky = 3, choppy = 3, oddly_breakable_by_hand = 3,
flammable = 2, disable_jump = 1, fall_damage_add_percent = -100
},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:mushroom_pore",
burntime = 3,
})
-- hedge block
minetest.register_node("ethereal:bush", {
description = S("Bush"),
tiles = {"ethereal_bush.png"},
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "ethereal:bamboo_leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush",
burntime = 1,
})
-- bush block #2
minetest.register_node("ethereal:bush2", {
drawtype = "allfaces_optional",
description = S("Bush #2"),
tiles = {"default_aspen_leaves.png"},
paramtype = "light",
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush2",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "default:aspen_leaves", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush2",
burntime = 1,
})
-- bush block #3
minetest.register_node("ethereal:bush3", {
drawtype = "allfaces_optional",
description = S("Bush #3"),
tiles = {"default_pine_needles.png"},
paramtype = "light",
walkable = true,
groups = {snappy = 3, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:bush3",
recipe = {
{"group:leaves", "group:leaves", "group:leaves"},
{"group:leaves", "default:pine_needles", "group:leaves"},
{"group:leaves", "group:leaves", "group:leaves"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:bush3",
burntime = 1,
})
-- compatibility check for new mt version with leafdecay function
if minetest.registered_nodes["default:dirt_with_rainforest_litter"] then
default.register_leafdecay({
trunks = {"default:tree"},
leaves = {
"default:apple", "default:leaves", "ethereal:orange",
"ethereal:orange_leaves", "ethereal:vine"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:willow_trunk"},
leaves = {"ethereal:willow_twig"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:redwood_trunk"},
leaves = {"ethereal:redwood_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:frost_tree"},
leaves = {"ethereal:frost_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:yellow_trunk"},
leaves = {"ethereal:yellowleaves", "ethereal:golden_apple"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:palm_trunk"},
leaves = {"ethereal:palmleaves", "ethereal:coconut"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:banana_trunk"},
leaves = {"ethereal:bananaleaves", "ethereal:banana"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:birch_trunk"},
leaves = {"ethereal:birch_leaves"},
radius = 3
})
default.register_leafdecay({
trunks = {"ethereal:bamboo"},
leaves = {"ethereal:bamboo_leaves"},
radius = 2
})
default.register_leafdecay({
trunks = {"ethereal:sakura_trunk"},
leaves = {"ethereal:sakura_leaves", "ethereal:sakura_leaves2"},
radius = 3
})
end

View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 TenPlus1
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -0,0 +1,220 @@
# German Translation for ethereal mod
# Deutsche Übersetzung der ethereal Mod
# last update: 2016/May/25
# Author: Xanthin
#bonemeal.lua
Bone = Knochen
Bone Meal = Knochenmehl
#crystal.lua
Crystal Spike = Kristallnadel
Crystal Ingot = Kristallbarren
Crystal Block = Kristallblock
Crystal Sword = Kristallschwert
Crystal Axe = Kristallaxt
Crystal Pickaxe = Kristallspitzhacke
Crystal (soft touch) Shovel = Kristallschaufel (Behutsamkeit)
Crystal Gilly Staff = Kristallener Gilly-Stab
#dirt.lua
Green Dirt = Grüne Erde
Dried Dirt = Vertrocknete Erde
Bamboo Dirt = Bambuserde
Jungle Dirt = Tropenerde
Grove Dirt = Hainerde
Prairie Dirt = Prärieerde
Cold Dirt = Kalte Erde
Crystal Dirt = Kristallerde
Mushroom Dirt = Pilzerde
Fiery Dirt = Feuerrote Erde
Gray Dirt = Graue Erde
Red Baked Clay = Roter gebrannter Ton
Orange Baked Clay = Oranger gebrannter Ton
Grey Baked Clay = Grauer gebrannter Ton
Quicksand = Treibsand
#extra.lua
Bamboo Floor = Bambusboden
Palm Wax = Palmwachs
Candle = Kerze
Bowl = Schale
Stone Ladder = Steinleiter
Paper Wall = Papierwand
Glo Stone = Leuchtstein
Lump of Charcoal = Holzkohlestück
Staff of Light = Stab des Lichts
#fences.lua
Scorched Fence = Verbrannter Zaun
Frost Fence = Frostzaun
Redwood Fence = Mammutbaumzaun
Willow Fence = Weidenzaun
Healing Wood Fence = Lebensholzzaun
Palm Fence = Palmzaun
Banana Wood Fence = Bananenholzzaun
Mushroom Fence = Pilzzaun
Birch Fence = Birkenzaun
#fishing.lua
Raw Fish = Roher Fisch
Cooked Fish = Gekochter Fisch
Sashimi = Sashimi
Worm = Wurm
Fishing Rod = Angelrute
Baited Fishing Rod = Angelrute mit Köder
Inventory full, Fish Got Away! = Inventar voll, Fisch entkam!
#food.lua
Banana = Banane
Banana Dough = Bananenteig
Orange = Orange
Pine Nuts = Pinienkerne
Banana Loaf = Bananenbrot
Coconut = Kokosnuss
Coconut Slice = Kokosscheibe
Golden Apple = Goldener Apfel
Hearty Stew = Deftiger Eintopf
Bucket of Cactus Pulp = Eimer Kaktusmark
#gates.lua
Scorched Wood Fence Gate = Verbranntes Holzzauntor
Frost Wood Fence Gate = Frostholzzauntor
Redwood Fence Gate = Mammutbaumzauntor
Willow Wood Fence Gate = Weidenholztor
Healing Wood Fence Gate = Lebensholzzauntor
Palm Wood Fence Gate = Palmholzzauntor
Banana Wood Fence Gate = Bananenholzzauntor
Mushroom Trunk Fence Gate = Pilzstammzauntor
Birch Wood Fence Gate = Birkenholzzauntor
#init.lua
[MOD] Ethereal loaded = [MOD] Ethereal geladen
#leaves.lua
Willow Twig = Weidenrute
Redwood Leaves = Mammutbaumlaub
Orange Leaves = Orangenlaub
Banana Leaves = Bananenblätter
Healing Tree Leaves = Lebensbaumlaub
Palm Leaves = Palmenblätter
Birch Leaves = Birkenlaub
Frost Leaves = Frostlaub
Bamboo Leaves = Bambuslaub
Mushroom Cap = Pilzkappe
Mushroom Pore = Pilzpore
Bush = Busch
Bush #2 = Busch #2
Bush #3 = Busch #3
#mushroom.lua
Mushroom Soup = Pilzsuppe
#onion.lua
Wild Onion = Wilde Zwiebel
#plantlife.lua
Fire Flower = Feuerblume
Fire Dust = Feuerstaub
Vine = Weinrebe
Light String Vine = Leuchtschnurrebe
Fern = Farn
Fern Tubers = Farnsporenkapseln
Fiery Dry Shrub = Feuerroter vertrockneter Strauch
Snowy Grass = Verschneites Gras
Crystal Grass = Kristallgras
Crystal Moss = Kristallmoos
Mushroom Moss = Pilzmoos
Fiery Moss = Feuerrotes Moos
Gray Moss = Graues Moos
Green Moss = Grünes Moos
Red Illumishroom = Roter Leuchtpilz
Green Illumishroom = Grüner Leuchtpilz
Cyan Illumishroom = Türkiser Leuchtpilz
#sapling.lua
Bamboo Sprout = Bambussprosse
Willow Tree Sapling = Weidenbaumsetzling
Healing Tree Sapling = Lebensbaumsetzling
Apple Tree Sapling = Apfelbaumsetzling
Jungle Tree Sapling = Tropenbaumsetzling
Pine Tree Sapling = Piniensetzling
Big Tree Sapling = Großer-Baum-Setzling
Banana Tree Sapling = Bananensetzling
Frost Tree Sapling = Frostbaumsetzling
Mushroom Tree Sapling = Pilzbaumsetzling
Palm Tree Sapling = Palmensetzling
Redwood Tree Sapling = Mammutbaumsetzling
Orange Tree Sapling = Orangenbaumsetzling
Acacia Tree Sapling = Akaziensetzling
Birch Tree Sapling = Birkensetzling
Schematic not found = Schema nicht gefunden
#sealife.lua
Seaweed = Seetang
Blue Coral = Blaue Koralle
Orange Coral = Orange Koralle
Pink Coral = Rosa Koralle
Green Coral = Grüne Koralle
Sandy = Sandy
#stairs.lua
Crystal Block Stair = Kristallblocktreppe
Crystal Block Slab = Kristallblockplatte
Ice Brick Stair = Eisziegeltreppe
Ice Brick Slab = Eisziegelplatte
Snow Brick Stair = Schneeziegeltreppe
Snow Brick Slab = Schneeziegelplatte
Dry Dirt Stair = Vertrocknete Erdtreppe
Dry Dirt Slab = vertrocknete Erdplatte
Mushroom Trunk Stair = Pilzstammtreppe
Mushroom Trunk Slab = Pilzstammplatte
Mushroom Top Stair = Pilzkappentreppe
Mushroom Top Slab = Pilzkappenplatte
Frost Wood Stair = Frostholztreppe
Frost Wood Slab = Frostholzplatte
Healing Wood Stair = Lebensholztreppe
Healing Wood Slab = Lebensholzplatte
Palm Wood Stair = Palmholztreppe
Palm Wood Slab = Palmholzplatte
Birch Wood Stair = Birkenholztreppe
Birch Wood Slab = Birkenholzplatte
Banana Wood Stair = Bananenholztreppe
Banana Wood Slab = Bananenholzplatte
Willow Wood Stair = Weidenholztreppe
Willow Wood Slab = Weidenholzplatte
Redwood Stair = Mammutbaumtreppe
Redwood Slab = Mammutbaumplatte
Bamboo Stair = Bambustreppe
Bamboo Slab = Bambusplatte
Dry Dirt = Vertrocknete Erde
Mushroom Trunk = Pilzstamm
Mushroom Top = Pilzkappe
Healing Wood = Lebensholz
Redwood = Mammutbaum
#strawberry.lua
Strawberry = Erdbeere
#water.lua
Ice Brick = Eisziegel
Snow Brick = Schneeziegel
#wood.lua
Willow Trunk = Weidenstamm
Willow Wood = Weidenholz
Redwood Trunk = Mammutbaumstamm
Redwood Wood = Mammutbaumholz
Frost Tree = Frostbaum
Frost Wood = Frostholz
Healing Tree Trunk = Lebensbaumstamm
Healing Tree Wood = Lebensbaumholz
Palm Trunk = Palmstamm
Palm Wood = Palmholz
Banana Trunk = Bananenstamm
Banana Wood = Bananenholz
Scorched Tree = Verbrannter Baum
Mushroom = Pilz
Birch Trunk = Birkenstamm
Birch Wood = Birkenholz
Bamboo = Bambus

View File

@ -0,0 +1,220 @@
# Russian Translation for ethereal mod
# Русский перевод мода ethereal
# last update: 2017/Aug/15
# Author: Inpos
#bonemeal.lua
Bone = Кость
Bone Meal = Косятная мука
#crystal.lua
Crystal Spike = Хрустальный шип
Crystal Ingot = Хрустальный слиток
Crystal Block = Хрустальный блок
Crystal Sword = Хрустальный меч
Crystal Axe = Хрустальный топор
Crystal Pickaxe = Хрустальная кирка
Crystal (soft touch) Shovel = Хрустальная лопата (хрупкая)
Crystal Gilly Staff = Хрустальный посох Джилли
#dirt.lua
Green Dirt = Зелёная земля
Dried Dirt = Высушенная земля
Bamboo Dirt = Бамбуковая земля
Jungle Dirt = Земля джунглей
Grove Dirt = Лесная земля
Prairie Dirt = Земля прерий
Cold Dirt = Холодная земля
Crystal Dirt = Хрустальная земля
Mushroom Dirt = Грибная земля
Fiery Dirt = Огненная земля
Gray Dirt = Серая земля
Red Baked Clay = Красная обожжёная глина
Orange Baked Clay = Оранжевая обожжёная глина
Grey Baked Clay = Серая обожжёная глина
Quicksand = Зыбучий песок
#extra.lua
Bamboo Floor = Бамбуковый пол
Palm Wax = Пальмовый воск
Candle = Свеча
Bowl = Чашка
Stone Ladder = Каменная лестница
Paper Wall = Обои
Glo Stone = Светящийся камень
Lump of Charcoal = Кусок угля
Staff of Light = Световой посох
#fences.lua
Scorched Fence = Обожжёный забор
Frost Fence = Замороженный забор
Redwood Fence = Забор из секвойи
Willow Fence = Ивовый забор
Healing Wood Fence = Забор из лечащего дерева
Palm Fence = Пальмовый забор
Banana Wood Fence = Забор из бананового дерева
Mushroom Fence = Грибной забор
Birch Fence = Берёзовый забор
#fishing.lua
Raw Fish = Сырая рыба
Cooked Fish = Свареная рыба
Sashimi = Сашими
Worm = Червь
Fishing Rod = Удочка
Baited Fishing Rod = Удочка с приманкой
Inventory full, Fish Got Away! = Инвентарь заполнен, рыба сбежала!
#food.lua
Banana = Банан
Banana Dough = Банановое тесто
Orange = Апельсин
Pine Nuts = Кедровые орехи
Banana Loaf = Банадовый хлеб
Coconut = Кокос
Coconut Slice = Кокосовый ломтик
Golden Apple = Золотое яблоко
Hearty Stew = Сытное рагу
Bucket of Cactus Pulp = Ведро с мякотью кактуса
#gates.lua
Scorched Wood Fence Gate = Обожжёные деревянные ворота для забора
Frost Wood Fence Gate = Замороженные деревянные ворота для забора
Redwood Fence Gate = Ворота из секвойи для забора
Willow Wood Fence Gate = Ивовые ворота для забора
Healing Wood Fence Gate = Ворота из лечащего дерева для забора
Palm Wood Fence Gate = Ворота из пальмого дерева для забора
Banana Wood Fence Gate = Ворота из бананового дерева для забора
Mushroom Trunk Fence Gate = Ворота из грибного ствола для забора
Birch Wood Fence Gate = Берёзовые ворота для забора
#init.lua
[MOD] Ethereal loaded = [MOD] Ethereal загружен
#leaves.lua
Willow Twig = Ивовый прут
Redwood Leaves = Листва секвойи
Orange Leaves = Листва апельсина
Banana Leaves = Листва банана
Healing Tree Leaves = Листва лечащего дерева
Palm Leaves = Пальмовая листва
Birch Leaves = Берёзовая листва
Frost Leaves = Замороженная листва
Bamboo Leaves = Бамбуковая листва
Mushroom Cap = Шляпка гриба
Mushroom Pore = Грибные поры
Bush = Куст
Bush #2 = Куст #2
Bush #3 = Куст #3
#mushroom.lua
Mushroom Soup = Грибной суп
#onion.lua
Wild Onion = Дикий лук
#plantlife.lua
Fire Flower = Огненый цветок
Fire Dust = Огненая пыль
Vine = Виноградная лоза
Light String Vine = Светящаяся виноградная лоза
Fern = Папоротник
Fern Tubers = Клубни папоротника
Fiery Dry Shrub = Огненный сухой кустарник
Snowy Grass = Заснеженная трава
Crystal Grass = Хрустальная трава
Crystal Moss = Хрустальный мох
Mushroom Moss = Грибной мох
Fiery Moss = Огненный мох
Gray Moss = Серый мох
Green Moss = Зелёный мох
Red Illumishroom = Красный светящийся гриб
Green Illumishroom = Зелёный светящийся гриб
Cyan Illumishroom = Голубой светящийся гриб
#sapling.lua
Bamboo Sprout = Росток бамбука
Willow Tree Sapling = Саженец ивы
Healing Tree Sapling = Саженец лечебного дерева
Apple Tree Sapling = Саженец яблони
Jungle Tree Sapling = Саженец дерева джунглей
Pine Tree Sapling = Саженец сосны
Big Tree Sapling = Саженец большого дерева
Banana Tree Sapling = Саженец бананового дерева
Frost Tree Sapling = Саженец морозного дерева
Mushroom Tree Sapling = Саженец грибного дерева
Palm Tree Sapling = Саженец пальмы
Redwood Tree Sapling = Саженец секвойи
Orange Tree Sapling = Саженец апельсинового дерева
Acacia Tree Sapling = Саженец акации
Birch Tree Sapling = Саженец берёзы
Schematic not found = Схема не найдена
#sealife.lua
Seaweed = Водоросли
Blue Coral = Синий коралл
Orange Coral = Оранжевый коралл
Pink Coral = Розовый коралл
Green Coral = Залёный коралл
Sandy = Песочный
#stairs.lua
Crystal Block Stair = Ступенька из хрустального блока
Crystal Block Slab = Плита из хрустального блока
Ice Brick Stair = Ступенька из ледяного кирпича
Ice Brick Slab = Плита из ледяного кирпича
Snow Brick Stair = Ступенька из снежного кирпича
Snow Brick Slab = Плита из снежного кирпича
Dry Dirt Stair = Ступенька из сухой земли
Dry Dirt Slab = Плита из сухой земли
Mushroom Trunk Stair = Ступенька из ствола гриба
Mushroom Trunk Slab = Плита из ствола гриба
Mushroom Top Stair = Ступенька из шляпки гриба
Mushroom Top Slab = Плита из шляпки гриба
Frost Wood Stair = Ступенька из замороженных досок
Frost Wood Slab = Плита из замороженных досок
Healing Wood Stair = Ступенька из лечебного дерева
Healing Wood Slab = Плита из лечебного дерева
Palm Wood Stair = Ступенька из пальмовых досок
Palm Wood Slab = Плита из пальмовых досок
Birch Wood Stair = Ступенька из берёзовых досок
Birch Wood Slab = Плита из берёзовых досок
Banana Wood Stair = Ступенька из банановых досок
Banana Wood Slab = Плита из банановых досок
Willow Wood Stair = Ступенька из ивовых досок
Willow Wood Slab = Плита из ивовых досок
Redwood Stair = Ступенька из секвойи
Redwood Slab = Плита из секвойи
Bamboo Stair = Ступенька из бамбука
Bamboo Slab = Плита из бамбука
Dry Dirt = Сухая земля
Mushroom Trunk = Ствол гриба
Mushroom Top = Шляпка гриба
Healing Wood = лечебная древесина
Redwood = Секвойя
#strawberry.lua
Strawberry = Клубника
#water.lua
Ice Brick = Ледяной кирпич
Snow Brick = Снежный кирпич
#wood.lua
Willow Trunk = Ствол ивы
Willow Wood = Доски ивы
Redwood Trunk = Ствол секвойи
Redwood Wood = Доски секвойи
Frost Tree = Морозное дерево
Frost Wood = Доски
Healing Tree Trunk = Ствол лечебного дерева
Healing Tree Wood = Доски лечебного дерева
Palm Trunk = Ствол пальмы
Palm Wood = Доски пальмы
Banana Trunk = Ствол бананового дерева
Banana Wood = Доски банавого дерева
Scorched Tree = Обожжёное дерево
Mushroom = Гриб
Birch Trunk = Ствол берёзы
Birch Wood = Доски берёзы
Bamboo = Бамбук

View File

@ -0,0 +1,218 @@
# Template for translations of ethereal mod
# last update: 2016/May/25
#bonemeal.lua
Bone =
Bone Meal =
#crystal.lua
Crystal Spike =
Crystal Ingot =
Crystal Block =
Crystal Sword =
Crystal Axe =
Crystal Pickaxe =
Crystal (soft touch) Shovel =
Crystal Gilly Staff =
#dirt.lua
Green Dirt =
Dried Dirt =
Bamboo Dirt =
Jungle Dirt =
Grove Dirt =
Prairie Dirt =
Cold Dirt =
Crystal Dirt =
Mushroom Dirt =
Fiery Dirt =
Gray Dirt =
Red Baked Clay =
Orange Baked Clay =
Grey Baked Clay =
Quicksand =
#extra.lua
Bamboo Floor =
Palm Wax =
Candle =
Bowl =
Stone Ladder =
Paper Wall =
Glo Stone =
Lump of Charcoal =
Staff of Light =
#fences.lua
Scorched Fence =
Frost Fence =
Redwood Fence =
Willow Fence =
Healing Wood Fence =
Palm Fence =
Banana Wood Fence =
Mushroom Fence =
Birch Fence =
#fishing.lua
Raw Fish =
Cooked Fish =
Sashimi =
Worm =
Fishing Rod =
Baited Fishing Rod =
Inventory full, Fish Got Away! =
#food.lua
Banana =
Banana Dough =
Orange =
Pine Nuts =
Banana Loaf =
Coconut =
Coconut Slice =
Golden Apple =
Hearty Stew =
Bucket of Cactus Pulp =
#gates.lua
Scorched Wood Fence Gate =
Frost Wood Fence Gate =
Redwood Fence Gate =
Willow Wood Fence Gate =
Healing Wood Fence Gate =
Palm Wood Fence Gate =
Banana Wood Fence Gate =
Mushroom Trunk Fence Gate =
Birch Wood Fence Gate =
#init.lua
[MOD] Ethereal loaded =
#leaves.lua
Willow Twig =
Redwood Leaves =
Orange Leaves =
Banana Leaves =
Healing Tree Leaves =
Palm Leaves =
Birch Leaves =
Frost Leaves =
Bamboo Leaves =
Mushroom Cap =
Mushroom Pore =
Bush =
Bush #2 =
Bush #3 =
#mushroom.lua
Mushroom Soup =
#onion.lua
Wild Onion =
#plantlife.lua
Fire Flower =
Fire Dust =
Vine =
Light String Vine =
Fern =
Fern Tubers =
Fiery Dry Shrub =
Snowy Grass =
Crystal Grass =
Crystal Moss =
Mushroom Moss =
Fiery Moss =
Gray Moss =
Green Moss =
Red Illumishroom =
Green Illumishroom =
Cyan Illumishroom =
#sapling.lua
Bamboo Sprout =
Willow Tree Sapling =
Healing Tree Sapling =
Apple Tree Sapling =
Jungle Tree Sapling =
Pine Tree Sapling =
Big Tree Sapling =
Banana Tree Sapling =
Frost Tree Sapling =
Mushroom Tree Sapling =
Palm Tree Sapling =
Redwood Tree Sapling =
Orange Tree Sapling =
Acacia Tree Sapling =
Birch Tree Sapling =
Schematic not found =
#sealife.lua
Seaweed =
Blue Coral =
Orange Coral =
Pink Coral =
Green Coral =
Sandy =
#stairs.lua
Crystal Block Stair =
Crystal Block Slab =
Ice Brick Stair =
Ice Brick Slab =
Snow Brick Stair =
Snow Brick Slab =
Dry Dirt Stair =
Dry Dirt Slab =
Mushroom Trunk Stair =
Mushroom Trunk Slab =
Mushroom Top Stair =
Mushroom Top Slab =
Frost Wood Stair =
Frost Wood Slab =
Healing Wood Stair =
Healing Wood Slab =
Palm Wood Stair =
Palm Wood Slab =
Birch Wood Stair =
Birch Wood Slab =
Banana Wood Stair =
Banana Wood Slab =
Willow Wood Stair =
Willow Wood Slab =
Redwood Stair =
Redwood Slab =
Bamboo Stair =
Bamboo Slab =
Dry Dirt =
Mushroom Trunk =
Mushroom Top =
Healing Wood =
Redwood =
#strawberry.lua
Strawberry =
#water.lua
Ice Brick =
Snow Brick =
#wood.lua
Willow Trunk =
Willow Wood =
Redwood Trunk =
Redwood Wood =
Frost Tree =
Frost Wood =
Healing Tree Trunk =
Healing Tree Wood =
Palm Trunk =
Palm Wood =
Banana Trunk =
Banana Wood =
Scorched Tree =
Mushroom =
Birch Trunk =
Birch Wood =
Bamboo =

View File

@ -0,0 +1,89 @@
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
local epath = minetest.get_modpath("ethereal") .. "/schematics/"
lucky_block:add_schematics({
{"pinetree", ethereal.pinetree, {x = 3, y = 0, z = 3}},
{"palmtree", ethereal.palmtree, {x = 4, y = 0, z = 4}},
{"bananatree", ethereal.bananatree, {x = 3, y = 0, z = 3}},
{"orangetree", ethereal.orangetree, {x = 1, y = 0, z = 1}},
{"birchtree", ethereal.birchtree, {x = 2, y = 0, z = 2}},
})
lucky_block:add_blocks({
{"dro", {"ethereal:firethorn"}, 3},
{"dro", {"ethereal:firethorn_jelly"}, 3},
{"nod", "ethereal:crystal_spike", 1},
{"sch", "pinetree", 0, false},
{"dro", {"ethereal:orange"}, 10},
{"sch", "appletree", 0, false},
{"dro", {"ethereal:strawberry"}, 10},
{"sch", "bananatree", 0, false},
{"sch", "orangetree", 0, false},
{"dro", {"ethereal:banana"}, 10},
{"sch", "acaciatree", 0, false},
{"dro", {"ethereal:golden_apple"}, 3},
{"sch", "palmtree", 0, false},
{"dro", {"ethereal:tree_sapling"}, 5},
{"dro", {"ethereal:orange_tree_sapling"}, 5},
{"dro", {"ethereal:banana_tree_sapling"}, 5},
{"dro", {"ethereal:willow_sapling"} ,5},
{"dro", {"ethereal:mushroom_sapling"} ,5},
{"dro", {"ethereal:palm_sapling"} ,5},
{"dro", {"ethereal:birch_sapling"} ,5},
{"dro", {"ethereal:redwood_sapling"} ,1},
{"dro", {"ethereal:prairie_dirt"}, 10},
{"dro", {"ethereal:grove_dirt"}, 10},
{"fal", {"default:lava_source", "default:lava_source", "default:lava_source",
"default:lava_source", "default:lava_source"}, 1, true, 4},
{"dro", {"ethereal:cold_dirt"}, 10},
{"dro", {"ethereal:mushroom_dirt"}, 10},
{"dro", {"ethereal:fiery_dirt"}, 10},
{"dro", {"ethereal:axe_crystal"}},
{"nod", "ethereal:fire_flower", 1},
{"dro", {"ethereal:sword_crystal"}},
{"dro", {"ethereal:pick_crystal"}},
{"sch", "birchtree", 0, false},
{"dro", {"ethereal:fish_raw"}},
{"dro", {"ethereal:shovel_crystal"}},
{"dro", {"ethereal:fishing_rod_baited"}},
{"exp"},
{"dro", {"ethereal:fire_dust"}, 2},
{"exp", 4},
{"dro", {"ethereal:crystal_gilly_staff"}},
{"dro", {"ethereal:light_staff"}},
{"nod", "default:chest", 0, {
{name = "ethereal:birch_sapling", max = 10},
{name = "ethereal:palm_sapling", max = 10},
{name = "ethereal:orange_tree_sapling", max = 10},
{name = "ethereal:redwood_sapling", max = 10},
{name = "ethereal:bamboo_sprout", max = 10},
{name = "ethereal:banana_tree_sapling", max = 10},
{name = "ethereal:mushroom_sapling", max = 10},
{name = "ethereal:frost_tree_sapling", max = 10},
{name = "ethereal:sakura_sapling", max = 10},
{name = "ethereal:willow_sapling", max = 10},
}},
})
if minetest.get_modpath("3d_armor") then
lucky_block:add_blocks({
{"dro", {"3d_armor:helmet_crystal"}},
{"dro", {"3d_armor:chestplate_crystal"}},
{"dro", {"3d_armor:leggings_crystal"}},
{"dro", {"3d_armor:boots_crystal"}},
{"lig"},
})
end
if minetest.get_modpath("shields") then
lucky_block:add_blocks({
{"dro", {"shields:shield_crystal"}},
{"exp"},
})
end
end -- END IF

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
name = ethereal

View File

@ -0,0 +1,27 @@
local S = ethereal.intllib
-- mushroom soup (Heals 1 heart)
minetest.register_craftitem("ethereal:mushroom_soup", {
description = S("Mushroom Soup"),
inventory_image = "mushroom_soup.png",
on_use = minetest.item_eat(5, "ethereal:bowl"),
})
minetest.register_craft({
output = "ethereal:mushroom_soup",
recipe = {
{"flowers:mushroom_brown"},
{"flowers:mushroom_brown"},
{"group:food_bowl"},
}
})
-- 4x red mushrooms make mushroom block
minetest.register_craft({
output = "ethereal:mushroom",
recipe = {
{"flowers:mushroom_red", "flowers:mushroom_red"},
{"flowers:mushroom_red", "flowers:mushroom_red"},
}
})

View File

@ -0,0 +1,104 @@
local S = ethereal.intllib
-- wild onion
minetest.register_craftitem("ethereal:wild_onion_plant", {
description = S("Wild Onion"),
inventory_image = "wild_onion.png",
wield_image = "wild_onion.png",
groups = {food_onion = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:wild_onion_1")
end,
on_use = minetest.item_eat(2),
})
-- Define Onion growth stages
local crop_def = {
drawtype = "plantlike",
tiles = {"ethereal_wild_onion_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
growing = 1, not_in_creative_inventory = 1
},
sounds = default.node_sound_leaves_defaults(),
}
--stage 1
minetest.register_node("ethereal:onion_1", table.copy(crop_def))
--stage 2
crop_def.tiles = {"ethereal_wild_onion_2.png"}
minetest.register_node("ethereal:onion_2", table.copy(crop_def))
--stage 3
crop_def.tiles = {"ethereal_wild_onion_3.png"}
minetest.register_node("ethereal:onion_3", table.copy(crop_def))
--stage 4
crop_def.tiles = {"ethereal_wild_onion_4.png"}
crop_def.drop = {
items = {
{items = {"ethereal:wild_onion_plant"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 2"}, rarity = 3},
}
}
minetest.register_node("ethereal:onion_4", table.copy(crop_def))
--stage 5
crop_def.tiles = {"ethereal_wild_onion_5.png"}
crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {"ethereal:wild_onion_plant 2"}, rarity = 1},
{items = {"ethereal:wild_onion_plant 3"}, rarity = 2},
}
}
minetest.register_node("ethereal:onion_5", table.copy(crop_def))
-- growing routine if farming redo isn't present
if not farming or not farming.mod or farming.mod ~= "redo" then
minetest.register_abm({
label = "Ethereal grow onion",
nodenames = {"ethereal:onion_1", "ethereal:onion_2", "ethereal:onion_3", "ethereal:onion_4"},
neighbors = {"farming:soil_wet"},
interval = 9,
chance = 20,
catch_up = false,
action = function(pos, node)
-- are we on wet soil?
pos.y = pos.y - 1
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
return
end
pos.y = pos.y + 1
-- do we have enough light?
local light = minetest.get_node_light(pos)
if not light
or light < 13 then
return
end
-- grow to next stage
local num = node.name:split("_")[2]
node.name = "ethereal:onion_" .. tonumber(num + 1)
minetest.swap_node(pos, node)
end
})
end -- END IF

View File

@ -0,0 +1,91 @@
-- Baked Clay
minetest.register_ore({
ore_type = "blob",
ore = "bakedclay:red",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -316,
octaves = 1,
persist = 0.5
},
})
minetest.register_ore({
ore_type = "blob",
ore = "bakedclay:grey",
wherein = {"bakedclay:orange"},
clust_scarcity = 4 * 4 * 4,
clust_num_ores = 8,
clust_size = 6,
y_min = -10,
y_max = 71,
noise_params = {
offset = 0.35,
scale = 0.2,
spread = {x = 5, y = 5, z = 5},
seed = -613,
octaves = 1,
persist = 0.5
},
})
local add_ore = function(a, b, c, d, e, f, g)
minetest.register_ore({
ore_type = "scatter",
ore = a,
wherein = b,
clust_scarcity = c,
clust_num_ores = d,
clust_size = e,
y_min = f,
y_max = g,
})
end
-- Coal
add_ore("default:stone_with_coal", "default:desert_stone", 24*24*24, 27, 6, -31000, -16)
-- Iron
add_ore("default:stone_with_iron", "default:desert_stone", 9*9*9, 5, 3, -63, -16)
add_ore("default:stone_with_iron", "default:desert_stone", 24*24*24, 27, 6, -31000, -64)
--Mese
add_ore("default:stone_with_mese", "default:desert_stone", 14*14*14, 5, 3, -31000, -256)
-- Gold
add_ore("default:stone_with_gold", "default:desert_stone", 15*15*15, 3, 2, -255, -64)
add_ore("default:stone_with_gold", "default:desert_stone", 13*13*13, 5, 3, -31000, -256)
-- Diamond
add_ore("default:stone_with_diamond", "default:desert_stone", 17*17*17, 4, 3, -255, -128)
add_ore("default:stone_with_diamond", "default:desert_stone", 15*15*15, 4, 3, -31000, -256)
-- Copper
add_ore("default:stone_with_copper", "default:desert_stone", 9*9*9, 5, 3, -31000, -64)
-- Coral Sand
add_ore("ethereal:sandy", "default:sand", 10*10*10, 24, 4, -100, -10)
-- Etherium
minetest.register_ore({
ore_type = "scatter",
ore = "ethereal:etherium_ore",
wherein = "default:desert_stone",
clust_scarcity = 10*10*10,
clust_num_ores = 1,
clust_size = 1,
y_min = 5,
y_max = 40,
biomes = {"caves"},
})

View File

@ -0,0 +1,312 @@
local S = ethereal.intllib
-- Firethorn (poisonous when eaten raw, must be crushed and washed in flowing water 1st)
minetest.register_node("ethereal:firethorn", {
description = S("Firethorn Shrub"),
drawtype = "plantlike",
tiles = {"ethereal_firethorn.png"},
inventory_image = "ethereal_firethorn.png",
wield_image = "ethereal_firethorn.png",
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16},
},
})
-- Fire Flower
minetest.register_node("ethereal:fire_flower", {
description = S("Fire Flower"),
drawtype = "plantlike",
tiles = { "ethereal_fire_flower.png" },
inventory_image = "ethereal_fire_flower.png",
wield_image = "ethereal_fire_flower.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
damage_per_second = 2,
groups = {snappy = 1, oddly_breakable_by_hand = 3, igniter = 2},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 1 / 2, 5 / 16},
},
on_punch = function(pos, node, puncher)
puncher:punch(puncher, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 2}
}, nil)
end,
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:fire_flower",
burntime = 20,
})
-- Fire Dust
minetest.register_craftitem("ethereal:fire_dust", {
description = S("Fire Dust"),
inventory_image = "fire_dust.png",
})
minetest.register_craft({
output = "ethereal:fire_dust 2",
recipe = {
{"ethereal:fire_flower"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "ethereal:fire_dust",
burntime = 10,
})
-- vines
minetest.register_node("ethereal:vine", {
description = S("Vine"),
drawtype = "signlike",
tiles = {"vine.png"},
inventory_image = "vine.png",
wield_image = "vine.png",
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2},
legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:vine 2",
recipe = {
{"group:leaves", "", "group:leaves"},
{"", "group:leaves", ""},
{"group:leaves", "", "group:leaves"},
}
})
-- light strings (glowing vine)
minetest.register_node("ethereal:lightstring", {
description = S("Light String Vine"),
drawtype = "signlike",
tiles = {"lightstring.png"},
inventory_image = "lightstring.png",
wield_image = "lightstring.png",
paramtype = "light",
paramtype2 = "wallmounted",
light_source = 10,
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
},
groups = {choppy = 3, oddly_breakable_by_hand = 1, flammable = 2},
legacy_wallmounted = true,
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft({
output = "ethereal:lightstring 8",
recipe = {
{"ethereal:vine", "ethereal:vine", "ethereal:vine"},
{"ethereal:vine", "ethereal:fire_dust", "ethereal:vine"},
{"ethereal:vine", "ethereal:vine", "ethereal:vine"},
},
})
-- Fern (boston)
minetest.register_node("ethereal:fern", {
description = S("Fern"),
drawtype = "plantlike",
visual_scale = 1.4,
tiles = {"fern.png"},
inventory_image = "fern.png",
wield_image = "fern.png",
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = {
max_items = 1,
items = {
{items = {"ethereal:fern_tubers"}, rarity = 6},
{items = {"ethereal:fern"}}
}
},
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 2},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 0.67, 5 / 16},
},
})
-- Boston Ferns sometimes drop edible Tubers (heals 1/2 heart when eaten)
minetest.register_craftitem("ethereal:fern_tubers", {
description = S("Fern Tubers"),
inventory_image = "fern_tubers.png",
groups = {food_tuber = 1, flammable = 2},
on_use = minetest.item_eat(1),
})
-- Red Shrub (not flammable)
minetest.register_node("ethereal:dry_shrub", {
description = S("Fiery Dry Shrub"),
drawtype = "plantlike",
tiles = {"ethereal_dry_shrub.png"},
inventory_image = "ethereal_dry_shrub.png",
wield_image = "ethereal_dry_shrub.png",
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16},
},
})
-- Grey Shrub (not Flammable - too cold to burn)
minetest.register_node("ethereal:snowygrass", {
description = S("Snowy Grass"),
drawtype = "plantlike",
visual_scale = 0.9,
tiles = {"ethereal_snowygrass.png"},
inventory_image = "ethereal_snowygrass.png",
wield_image = "ethereal_snowygrass.png",
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16},
},
})
-- Crystal Shrub (not Flammable - too cold to burn)
minetest.register_node("ethereal:crystalgrass", {
description = S("Crystal Grass"),
drawtype = "plantlike",
visual_scale = 0.9,
tiles = {"ethereal_crystalgrass.png"},
inventory_image = "ethereal_crystalgrass.png",
wield_image = "ethereal_crystalgrass.png",
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 5 / 16, 5 / 16},
},
})
-- Define Moss Types (Has grass textures on all sides)
local add_moss = function(typ, descr, texture, receipe_item)
minetest.register_node("ethereal:" .. typ .. "_moss", {
description = S(descr .. " Moss"),
tiles = {texture},
groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.4}})
})
minetest.register_craft({
type = "shapeless",
output = "ethereal:"..typ.."_moss",
recipe = {"default:dirt", receipe_item }
})
end
add_moss( "crystal", "Crystal", "ethereal_grass_crystal_top.png", "ethereal:frost_leaves")
add_moss( "mushroom", "Mushroom", "ethereal_grass_mushroom_top.png", "ethereal:mushroom")
add_moss( "fiery", "Fiery", "ethereal_grass_fiery_top.png", "ethereal:dry_shrub")
add_moss( "gray", "Gray", "ethereal_grass_gray_top.png", "ethereal:snowygrass")
add_moss( "green", "Green", "default_grass.png", "default:jungleleaves")
-- Illuminated Cave Shrooms (Red, Green and Blue)
minetest.register_node("ethereal:illumishroom", {
description = S("Red Illumishroom"),
drawtype = "plantlike",
tiles = { "illumishroom.png" },
inventory_image = "illumishroom.png",
wield_image = "illumishroom.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})
minetest.register_node("ethereal:illumishroom2", {
description = S("Green Illumishroom"),
drawtype = "plantlike",
tiles = { "illumishroom2.png" },
inventory_image = "illumishroom2.png",
wield_image = "illumishroom2.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})
minetest.register_node("ethereal:illumishroom3", {
description = S("Cyan Illumishroom"),
drawtype = "plantlike",
tiles = { "illumishroom3.png" },
inventory_image = "illumishroom3.png",
wield_image = "illumishroom3.png",
paramtype = "light",
light_source = 5,
sunlight_propagates = true,
walkable = false,
groups = {dig_immediate = 3, attached_node = 1, flammable = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.47, 6 / 16},
},
})

View File

@ -0,0 +1,193 @@
--= Register Biome Decoration Using Plants Mega Pack Lite
--= Desert Biome
-- Cactus
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:desert_sand", "default:sandstone"},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"desert", "sandstone"},
decoration = {
"xanadu:cactus_echinocereus", "xanadu:cactus_matucana",
"xanadu:cactus_baseball", "xanadu:cactus_golden"
},
})
-- Desert Plants
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:desert_sand", "default:sandstone", "default:sand"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"desert", "sandstone"},
decoration = {
"xanadu:desert_kangaroo", "xanadu:desert_brittle",
"xanadu:desert_ocotillo", "xanadu:desert_whitesage"
},
})
--= Prairie Biome
-- Grass
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:prairie_dirt", "default:dirt_with_grass"},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo"},
decoration = {
"xanadu:grass_prairie", "xanadu:grass_cord",
"xanadu:grass_wheatgrass", "xanadu:desert_whitesage"
},
})
-- Flowers
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:prairie_grass", "default:dirt_with_grass",
"ethereal:grove_dirt", "ethereal:bamboo_dirt"
},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo", "bamboo"},
decoration = {
"xanadu:flower_jacobsladder", "xanadu:flower_thistle",
"xanadu:flower_wildcarrot"
},
})
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:prairie_grass", "default:dirt_with_grass",
"ethereal:grove_dirt"
},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"prairie", "grassy", "grassytwo", "grove"},
decoration = {
"xanadu:flower_delphinium", "xanadu:flower_celosia",
"xanadu:flower_daisy", "xanadu:flower_bluerose"
},
})
-- Shrubs
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:prairie_grass", "default:dirt_with_grass",
"ethereal:grove_dirt", "ethereal:jungle_grass",
"ethereal:gray_dirt", "default:dirt_with_rainforest_litter"
},
sidelen = 16,
fill_ratio = 0.005,
biomes = {
"prairie", "grassy", "grassytwo", "grove", "junglee",
"grayness", "jumble"
},
decoration = {"xanadu:shrub_kerria", "xanadu:shrub_spicebush"},
})
--= Jungle Biome
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:jungle_dirt", "default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
sidelen = 16,
fill_ratio = 0.007,
biomes = {"junglee", "jumble"},
decoration = {
"xanadu:rainforest_guzmania", "xanadu:rainforest_devil",
"xanadu:rainforest_lazarus", "xanadu:rainforest_lollipop",
"xanadu:mushroom_woolly"
},
})
--= Cold Biomes
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_snow", "ethereal:cold_dirt",
"ethereal:gray_dirt"
},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"snowy", "alpine", "grayness"},
decoration = {
"xanadu:mountain_edelweiss", "xanadu:mountain_armeria",
"xanadu:mountain_bellflower", "xanadu:mountain_willowherb",
"xanadu:mountain_bistort"
},
})
--= Mushroom Biome
minetest.register_decoration({
deco_type = "simple",
place_on = {"ethereal:mushroom_dirt"},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"mushroom"},
decoration = {
"xanadu:mushroom_powderpuff", "xanadu:mushroom_chanterelle",
"xanadu:mushroom_parasol"
},
})
--= Lakeside
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:sand", "default:dirt_with_grass"},
sidelen = 16,
fill_ratio = 0.015,
biomes = {"sandclay", "grassy_ocean", "grassy", "grassytwo", "jumble", "swamp"},
decoration = {
"xanadu:wetlands_cattails", "xanadu:wetlands_pickerel",
"xanadu:wetlands_mannagrass", "xanadu:wetlands_turtle"
},
spawn_by = "default:water_source",
num_spawn_by = 1,
})
--= Harsh Biomes
minetest.register_decoration({
deco_type = "simple",
place_on = {
"ethereal:mushroom_dirt", "default:dirt_with_grass",
"ethereal:gray_dirt", "ethereal:cold_dirt",
"ethereal:dirt_with_snow", "ethereal:jungle_dirt",
"ethereal:prairie_dirt", "ethereal:grove_dirt",
"ethereal:dry_dirt", "ethereal:fiery_dirt", "default:sand",
"default:desert_sand", "xanadu:red", "ethereal:bamboo_dirt",
"default:dirt_with_rainforest_litter"
},
sidelen = 16,
fill_ratio = 0.004,
biomes = {
"mushroom", "prairie", "grayness", "plains", "desert",
"junglee", "grassy", "grassytwo", "jumble", "snowy", "alpine",
"fiery", "mesa", "bamboo"
},
decoration = {"xanadu:spooky_thornbush", "xanadu:spooky_baneberry"},
})
--= Poppy's growing in Clearing Biome in memory of RealBadAngel
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass",
},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"clearing"},
decoration = {"xanadu:poppy"},
})

View File

@ -0,0 +1,235 @@
local S = ethereal.intllib
-- Bamboo Sprout
minetest.register_node("ethereal:bamboo_sprout", {
description = S("Bamboo Sprout"),
drawtype = "plantlike",
tiles = {"bamboo_sprout.png"},
inventory_image = "bamboo_sprout.png",
wield_image = "bamboo_sprout.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
groups = {
food_bamboo_sprout = 1, snappy = 3, attached_node = 1, flammable = 2,
dig_immediate = 3, ethereal_sapling = 1, sapling = 1,
},
sounds = default.node_sound_defaults(),
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 0, 4 / 16}
},
on_use = minetest.item_eat(2),
grown_height = 11,
})
-- Register Saplings
local register_sapling = function(name, desc, texture, height)
minetest.register_node(name .. "_sapling", {
description = S(desc .. " Tree Sapling"),
drawtype = "plantlike",
tiles = {texture .. ".png"},
inventory_image = texture .. ".png",
wield_image = texture .. ".png",
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
},
groups = {
snappy = 2, dig_immediate = 3, flammable = 2,
ethereal_sapling = 1, attached_node = 1, sapling = 1
},
sounds = default.node_sound_leaves_defaults(),
grown_height = height,
})
end
register_sapling("ethereal:willow", "Willow", "willow_sapling", 14)
register_sapling("ethereal:yellow_tree", "Healing", "yellow_tree_sapling", 19)
register_sapling("ethereal:big_tree", "Big", "ethereal_big_tree_sapling", 7)
register_sapling("ethereal:banana_tree", "Banana", "banana_tree_sapling", 8)
register_sapling("ethereal:frost_tree", "Frost", "ethereal_frost_tree_sapling", 19)
register_sapling("ethereal:mushroom", "Mushroom", "ethereal_mushroom_sapling", 11)
register_sapling("ethereal:palm", "Palm", "moretrees_palm_sapling", 9)
register_sapling("ethereal:redwood", "Redwood", "redwood_sapling", 31)
register_sapling("ethereal:orange_tree", "Orange", "orange_tree_sapling", 6)
register_sapling("ethereal:birch", "Birch", "moretrees_birch_sapling", 7)
register_sapling("ethereal:sakura", "Sakura", "ethereal_sakura_sapling", 10)
local add_tree = function (pos, ofx, ofy, ofz, schem, replace)
-- check for schematic
if not schem then
print (S("Schematic not found"))
return
end
-- remove sapling and place schematic
minetest.swap_node(pos, {name = "air"})
minetest.place_schematic(
{x = pos.x - ofx, y = pos.y - ofy, z = pos.z - ofz},
schem, 0, replace, false)
end
local path = minetest.get_modpath("ethereal") .. "/schematics/"
-- grow tree functions
function ethereal.grow_yellow_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.yellowtree)
end
function ethereal.grow_big_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.bigtree)
end
function ethereal.grow_banana_tree(pos)
add_tree(pos, 3, 0, 3, ethereal.bananatree)
end
function ethereal.grow_frost_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.frosttrees)
end
function ethereal.grow_mushroom_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.mushroomone)
end
function ethereal.grow_palm_tree(pos)
add_tree(pos, 4, 0, 4, ethereal.palmtree)
end
function ethereal.grow_willow_tree(pos)
add_tree(pos, 5, 0, 5, ethereal.willow)
end
function ethereal.grow_redwood_tree(pos)
add_tree(pos, 7, 0, 7, ethereal.redwood_tree)
end
function ethereal.grow_orange_tree(pos)
add_tree(pos, 1, 0, 1, ethereal.orangetree)
end
function ethereal.grow_bamboo_tree(pos)
add_tree(pos, 1, 0, 1, ethereal.bambootree)
end
function ethereal.grow_birch_tree(pos)
add_tree(pos, 2, 0, 2, ethereal.birchtree)
end
function ethereal.grow_sakura_tree(pos)
if math.random(10) == 1 then
add_tree(pos, 4, 0, 3, ethereal.sakura_tree,
{{"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}})
else
add_tree(pos, 4, 0, 3, ethereal.sakura_tree)
end
end
-- check if sapling has enough height room to grow
local enough_height = function(pos, height)
local nod = minetest.line_of_sight(
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x, y = pos.y + height, z = pos.z})
if not nod then
return false -- obstructed
else
return true -- can grow
end
end
local grow_sapling = function(pos, node)
local under = minetest.get_node({
x = pos.x,
y = pos.y - 1,
z = pos.z
}).name
if not minetest.registered_nodes[node.name] then
return
end
local height = minetest.registered_nodes[node.name].grown_height
-- do we have enough height to grow sapling into tree?
if not height or not enough_height(pos, height) then
return
end
-- Check if Ethereal Sapling is growing on correct substrate
if node.name == "ethereal:yellow_tree_sapling"
and minetest.get_item_group(under, "soil") > 0 then
ethereal.grow_yellow_tree(pos)
elseif node.name == "ethereal:big_tree_sapling"
and under == "default:dirt_with_grass" then
ethereal.grow_big_tree(pos)
elseif node.name == "ethereal:banana_tree_sapling"
and under == "ethereal:grove_dirt" then
ethereal.grow_banana_tree(pos)
elseif node.name == "ethereal:frost_tree_sapling"
and under == "ethereal:crystal_dirt" then
ethereal.grow_frost_tree(pos)
elseif node.name == "ethereal:mushroom_sapling"
and under == "ethereal:mushroom_dirt" then
ethereal.grow_mushroom_tree(pos)
elseif node.name == "ethereal:palm_sapling"
and under == "default:sand" then
ethereal.grow_palm_tree(pos)
elseif node.name == "ethereal:willow_sapling"
and under == "ethereal:gray_dirt" then
ethereal.grow_willow_tree(pos)
elseif node.name == "ethereal:redwood_sapling"
and under == "default:dirt_with_dry_grass" then
ethereal.grow_redwood_tree(pos)
elseif node.name == "ethereal:orange_tree_sapling"
and under == "ethereal:prairie_dirt" then
ethereal.grow_orange_tree(pos)
elseif node.name == "ethereal:bamboo_sprout"
and under == "ethereal:bamboo_dirt" then
ethereal.grow_bamboo_tree(pos)
elseif node.name == "ethereal:birch_sapling"
and under == "default:dirt_with_grass" then
ethereal.grow_birch_tree(pos)
elseif node.name == "ethereal:sakura_sapling"
and under == "ethereal:bamboo_dirt" then
ethereal.grow_sakura_tree(pos)
end
end
-- Grow saplings
minetest.register_abm({
label = "Ethereal grow sapling",
nodenames = {"group:ethereal_sapling"},
interval = 10,
chance = 50,
catch_up = false,
action = function(pos, node)
local light_level = minetest.get_node_light(pos) or 0
if light_level < 13 then
return
end
grow_sapling(pos, node)
end,
})

View File

@ -0,0 +1,85 @@
local _ = {name = "air", param1 = 000}
local B = {name = "ethereal:bamboo", param1 = 255}
local L = {name = "ethereal:bamboo_leaves", param1 = 255}
local l = {name = "ethereal:bamboo_leaves", param1 = 100}
ethereal.bambootree = {
size = {x = 3, y = 18, z = 3},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
},
data = {
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
l,L,l,
_,L,_,
_,_,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
_,B,_,
l,L,l,
_,L,_,
_,l,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
_,_,_,
l,L,l,
_,L,_,
_,_,_,
}
}
if ethereal.papyruswalk == true then
minetest.override_item("default:papyrus", {
walkable = true,
sunlight_propagates = true
})
end

View File

@ -0,0 +1,83 @@
local _ = {name = "air", param1 = 0}
local T = {name = "ethereal:banana_trunk", param1 = 255}
local L = {name = "ethereal:bananaleaves", param1 = 255}
local l = {name = "ethereal:bananaleaves", param1 = 180}
local B = {name = "ethereal:banana", param1 = 255}
local b = {name = "ethereal:banana", param1 = 070}
ethereal.bananatree = {
size = {x = 7, y = 8, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,l,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,b,_,_,_,
_,_,_,B,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,b,T,b,_,_,
_,_,B,L,B,_,_,
_,L,L,L,L,L,_,
L,l,_,L,_,l,L,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,_,b,_,_,_,
_,_,_,B,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,l,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,100 @@
local _ = {name = "air", prob = 0}
local L = {name = "default:leaves", prob = 255}
local T = {name = "default:tree", prob = 255}
local t = {name = "default:tree", prob = 127}
ethereal.bigtree = {
size = {x = 9, y = 8, z = 9},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,t,t,_,t,t,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,t,t,t,t,_,
_,_,_,t,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,T,t,t,t,_,
_,_,t,t,T,t,t,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,L,L,L,T,L,L,L,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,t,T,T,T,t,_,_,
_,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_,
_,_,_,T,T,T,_,_,_,
L,L,L,L,T,L,L,L,L,
_,L,L,L,T,L,L,L,_,
_,_,L,L,L,L,L,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,T,t,t,t,_,
_,_,t,t,T,t,t,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,L,L,L,T,L,L,L,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,t,t,t,t,t,t,t,_,
_,_,_,t,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,L,L,L,L,L,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,t,t,_,t,t,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,59 @@
local _ = {name = "air", param1 = 0}
local T = {name = "ethereal:birch_trunk", param1 = 255}
local L = {name = "ethereal:birch_leaves", param1 = 255}
local l = {name = "ethereal:birch_leaves", param1 = 150}
ethereal.birchtree = {
size = {x = 5, y = 7, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
},
data = {
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
l,L,L,L,l,
l,L,L,L,l,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
L,L,L,L,L,
L,L,L,L,L,
_,l,L,l,_,
_,_,L,_,_,
_,_,T,_,_,
_,_,T,_,_,
_,_,T,_,_,
L,L,T,L,L,
L,L,T,L,L,
_,L,T,L,_,
_,L,L,L,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
L,L,L,L,L,
L,L,L,L,L,
_,l,L,l,_,
_,_,L,_,_,
_,_,_,_,_,
_,_,_,_,_,
_,_,_,_,_,
l,L,L,L,l,
l,L,L,L,l,
_,_,_,_,_,
_,_,_,_,_,
}
}

View File

@ -0,0 +1,38 @@
local _ = {name = "air", param1 = 0}
local B = {name = "ethereal:bush", param1 = 255}
local b = {name = "ethereal:bush", param1 = 100}
ethereal.bush = {
size = {x = 5, y = 3, z = 5},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 2, prob = 127},
},
data = {
b,B,B,B,b,
_,_,_,_,_,
_,_,_,_,_,
B,B,B,B,B,
_,b,B,b,_,
_,_,_,_,_,
B,B,B,B,B,
_,B,B,B,_,
_,_,b,_,_,
B,B,B,B,B,
_,b,B,b,_,
_,_,_,_,_,
b,B,B,B,b,
_,_,_,_,_,
_,_,_,_,_,
}
}

Binary file not shown.

View File

@ -0,0 +1,184 @@
local _ = {name = "air", prob = 0}
local l = {name = "ethereal:frost_leaves", prob = 255}
local t = {name = "ethereal:frost_tree", prob = 255}
ethereal.frosttrees = {
size = {x = 8, y = 19, z = 8},
yslice_prob = {
{ypos = 0, prob = 127}, -- trunk
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
{ypos = 3, prob = 127},
{ypos = 4, prob = 127},
{ypos = 5, prob = 127},
{ypos = 13, prob = 127}, -- leaves
{ypos = 15, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,l,l,l,l,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,l,l,l,l,l,l,_,
_,_,_,l,l,_,_,_,
_,_,l,l,l,l,_,_,
_,_,_,l,l,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,l,t,t,l,_,_,
l,l,l,t,t,l,l,l,
_,_,l,t,t,l,_,_,
_,l,l,t,t,l,l,_,
_,_,l,t,t,l,_,_,
_,_,l,t,t,l,_,_,
_,_,_,l,l,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,_,t,t,_,_,_,
_,_,l,t,t,l,_,_,
l,l,l,t,t,l,l,l,
_,_,l,t,t,l,_,_,
_,l,l,t,t,l,l,_,
_,_,l,t,t,l,_,_,
_,_,l,t,t,l,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,l,l,l,l,l,l,_,
_,_,_,l,l,_,_,_,
_,_,l,l,l,l,_,_,
_,_,_,l,l,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,l,l,l,l,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,l,l,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,60 @@
local _ = {name = "air", prob = 0}
local S = {name = "default:snowblock", prob = 255}
ethereal.igloo = {
size = {x = 7, y = 5, z = 8},
data = {
_,_,S,S,S,_,_,
_,_,S,_,S,_,_,
_,_,S,_,S,_,_,
_,_,_,S,_,_,_,
_,_,_,_,_,_,_,
_,_,S,S,S,_,_,
_,_,S,_,S,_,_,
_,_,S,_,S,_,_,
_,_,_,S,_,_,_,
_,_,_,_,_,_,_,
_,S,S,S,S,S,_,
_,S,_,_,_,S,_,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
S,S,S,S,S,S,S,
S,_,_,_,_,_,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
S,S,S,S,S,S,S,
S,_,_,_,_,_,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
S,S,S,S,S,S,S,
S,_,_,_,_,_,S,
S,_,_,_,_,_,S,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,S,S,S,S,S,_,
_,S,_,_,_,S,_,
_,S,_,_,_,S,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
_,_,S,S,S,_,_,
_,_,S,S,S,_,_,
_,_,S,S,S,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,116 @@
local _ = {name = "air", prob = 0}
local M = {name = "ethereal:mushroom", prob = 255}
local T = {name = "ethereal:mushroom_trunk", prob = 255}
local P = {name = "ethereal:mushroom_pore", prob = 255}
ethereal.mushroomone = {
size = {x = 8, y = 11, z = 8},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 7, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,M,_,_,M,_,_,
_,_,M,_,_,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,M,_,_,_,_,M,_,
_,M,_,_,_,_,M,_,
_,_,M,P,P,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
M,_,_,T,T,_,_,M,
M,_,_,T,T,_,_,M,
_,M,P,P,P,P,M,_,
_,_,M,M,M,M,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
_,_,_,T,T,_,_,_,
M,_,_,T,T,_,_,M,
M,_,_,T,T,_,_,M,
_,M,P,P,P,P,M,_,
_,_,M,M,M,M,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,M,_,_,_,_,M,_,
_,M,_,_,_,_,M,_,
_,_,M,P,P,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,M,_,_,M,_,_,
_,_,M,_,_,M,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,M,M,_,_,_,
_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,41 @@
local _ = {name = "air", param1 = 0}
local L = {name = "ethereal:orange_leaves", param1 = 255}
local l = {name = "ethereal:orange_leaves", param1 = 200}
local T = {name = "default:tree", param1 = 255}
local o = {name = "ethereal:orange", param1 = 200}
ethereal.orangetree = {
size = {x = 3, y = 6, z = 3},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
},
data = {
_,_,_,
_,_,_,
_,_,_,
l,l,o,
L,L,L,
l,o,l,
_,T,_,
_,T,_,
_,T,_,
l,T,l,
L,T,L,
l,L,l,
_,_,_,
_,_,_,
_,_,_,
o,l,l,
L,L,L,
l,l,l,
}
}

View File

@ -0,0 +1,110 @@
local _ = {name = "air", param = 0}
local L = {name = "ethereal:palmleaves", param = 255}
local l = {name = "ethereal:palmleaves", param = 191}
local T = {name = "ethereal:palm_trunk", param = 255}
local t = {name = "ethereal:palm_trunk", param = 191}
local C = {name = "ethereal:coconut", param = 127}
ethereal.palmtree = {
size = {x = 9, y = 9, z = 9},
yslice_prob = {
{ypos = 3, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,l,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,C,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,t,_,_,_,
_,_,_,_,_,T,_,_,_,
_,_,l,_,_,T,_,_,l,
_,_,L,L,C,T,C,L,L,
_,_,_,L,L,L,L,L,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,C,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,l,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,81 @@
local _ = {name = "air", prob = 0}
local L = {name = "ethereal:pineleaves", prob = 255}
local T = {name = "default:pinetree", prob = 255}
ethereal.pinetree = {
size = {x = 7, y = 8, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 4, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,L,L,L,L,L,_,
_,_,_,L,_,_,_,
_,_,L,L,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
_,_,L,T,L,_,_,
L,L,L,T,L,L,L,
_,_,L,T,L,_,_,
_,L,L,T,L,L,_,
_,_,L,T,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,L,L,L,L,L,_,
_,_,_,L,_,_,_,
_,_,L,L,L,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,L,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,533 @@
local _ = {name = "air", prob = 0}
local T = {name = "ethereal:redwood_trunk", prob = 255}
local L = {name = "ethereal:redwood_leaves", prob = 255}
ethereal.redwood_tree = {
size = {x = 15, y = 33, z = 15},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 5, prob = 127},
{ypos = 6, prob = 127},
{ypos = 7, prob = 127},
{ypos = 14, prob = 127},
{ypos = 15, prob = 127},
{ypos = 16, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,_,L,_,_,_,_,_,_,
_,_,_,_,L,L,L,T,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,T,L,L,_,_,_,_,_,
_,_,_,_,L,L,L,T,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,T,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,T,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,T,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,T,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,T,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,T,T,_,_,_,_,_,
_,_,_,_,_,_,_,_,L,L,_,L,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,L,T,T,L,L,_,_,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,L,L,L,L,L,
_,_,_,_,_,_,_,T,_,_,_,L,L,L,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,T,_,_,_,_,_,_,_,
_,_,_,_,L,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,T,L,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,L,L,L,L,
_,_,_,_,_,_,T,T,T,_,_,_,L,L,L,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,T,T,T,T,T,T,_,_,_,_,_,_,
L,L,L,L,L,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,T,T,T,_,_,_,
_,_,_,_,_,_,T,T,T,_,L,T,T,T,L,
_,_,_,_,_,_,T,T,T,_,_,L,L,L,L,
_,_,L,L,L,L,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,L,T,T,T,L,_,_,_,_,_,
_,_,_,_,L,L,L,T,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,T,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,T,T,_,_,
_,_,_,_,_,_,T,T,T,_,_,L,T,T,L,
_,_,_,_,_,_,T,T,T,_,_,_,L,L,L,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,T,_,_,T,T,T,_,_,_,_,_,_,
L,T,T,T,L,_,T,T,T,_,_,_,_,_,_,
L,L,L,L,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,_,_,_,L,L,L,L,
_,_,_,_,T,T,T,T,_,_,_,L,L,L,_,
_,L,L,L,L,L,_,T,_,_,_,_,_,_,_,
_,_,_,L,L,_,_,T,L,L,L,L,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,T,L,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
L,L,L,L,L,_,_,_,L,_,_,_,_,_,_,
L,L,L,L,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
_,_,_,_,T,_,_,_,_,_,_,_,_,_,_,
_,L,L,T,T,L,L,T,T,T,_,_,_,_,_,
_,_,L,L,L,_,_,L,L,T,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,T,_,_,_,_,_,
_,_,_,_,_,_,T,T,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,T,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,L,L,L,L,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
L,L,L,L,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,L,L,L,L,L,L,_,_,_,_,_,_,_,_,
_,_,_,L,L,_,_,L,L,T,L,L,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,L,L,L,L,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,L,L,L,_,_,_,
_,_,_,_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,T,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,T,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,L,L,L,L,L,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,96 @@
local T = {name = "ethereal:sakura_trunk", param1 = 255}
local P = {name = "ethereal:sakura_leaves", param1 = 255}
local W = {name = "ethereal:sakura_leaves2", param1 = 255}
local _ = {name = "air", param1 = 255}
ethereal.sakura_tree = {
size = {x=10, y=10, z=7},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 3, prob = 127},
{ypos = 8, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,P,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,_,P,P,P,P,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,_,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,P,P,P,P,P,P,_,_,
_,_,P,P,T,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,_,
_,_,P,P,T,T,P,_,_,_,
_,P,P,T,T,T,T,P,P,_,
_,P,P,T,_,T,P,T,P,_,
P,P,P,T,P,T,P,P,T,P,
P,P,T,P,P,P,P,P,T,P,
P,P,T,P,P,P,P,T,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,P,_,P,_,_,_,_,
_,_,P,P,T,P,P,P,_,_,
_,_,P,P,_,P,P,P,P,_,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,P,
_,P,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,P,P,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,T,P,_,_,_,_,
_,_,P,P,T,P,P,P,P,_,
_,_,P,P,P,P,P,P,P,_,
_,_,P,P,P,P,_,P,P,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,P,P,P,_,_,_,_,
_,_,_,_,P,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,
},
}

View File

@ -0,0 +1,77 @@
local _ = {name = "air", prob = 0}
local T = {name = "default:tree", prob = 255}
local L = {name = "default:leaves", prob = 255}
local u = {name = "ethereal:vine", prob = 255, param2 = 2}
local U = {name = "ethereal:vine", prob = 255, param2 = 3}
local W = {name = "ethereal:vine", prob = 255, param2 = 4}
local w = {name = "ethereal:vine", prob = 255, param2 = 5}
ethereal.vinetree = {
size = {x = 7, y = 7, z = 7},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,_,_,_,_,_,
_,W,_,_,_,_,_,
_,W,_,W,_,_,_,
_,W,_,W,_,_,_,
_,W,_,_,_,W,_,
_,W,_,_,_,W,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,_,_,W,_,_,
_,_,_,_,W,_,_,
_,L,L,L,W,L,_,
_,L,L,_,L,L,_,
_,L,L,L,L,L,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,L,T,_,T,L,U,
u,L,L,L,L,_,_,
_,_,L,L,L,L,_,
_,_,L,L,L,_,_,
_,_,_,T,_,_,_,
_,_,_,T,_,_,_,
u,_,_,T,_,_,_,
u,L,_,L,_,L,_,
u,L,L,L,L,L,_,
_,L,L,L,L,L,_,
_,_,L,L,L,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,U,
_,_,_,_,_,_,U,
_,L,T,_,T,L,U,
_,L,L,L,L,L,U,
_,L,L,L,L,L,_,
_,_,_,L,L,_,_,
_,_,_,_,_,_,_,
u,_,_,_,_,_,_,
u,_,_,_,w,_,_,
u,L,L,L,w,L,_,
_,L,L,L,L,_,_,
_,_,L,L,L,L,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
_,_,w,_,_,_,_,
_,_,w,_,_,_,_,
_,_,w,w,_,_,_,
_,_,_,w,w,_,_,
_,_,_,_,_,_,_,
_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,97 @@
local _ = {name = "air", prob = 0}
local d = {name = "ethereal:fiery_dirt", prob = 245}
local s = {name = "default:stone", prob = 255}
local l = {name = "default:lava_source", prob = 255}
local f = {name = "default:lava_flowing", prob = 255}
local o = {name = "default:obsidian", prob = 215}
ethereal.volcanol = {
size = {x = 17, y = 4, z = 15},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
{ypos = 2, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,d,d,d,d,_,_,d,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,d,s,s,s,s,d,d,s,d,d,_,_,_,_,
_,_,_,_,s,s,s,s,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,d,s,o,o,o,o,s,s,o,s,s,d,_,_,_,
_,_,_,s,f,f,s,f,s,s,f,s,s,_,_,_,_,
_,_,_,_,s,s,_,s,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,d,s,o,s,s,s,s,o,o,s,o,o,s,d,_,_,
_,_,s,l,l,l,l,f,s,f,f,l,l,s,_,_,_,
_,_,_,s,f,f,s,s,o,s,o,s,s,_,_,_,_,
_,_,_,_,o,o,o,_,_,_,o,_,_,_,_,_,_,
_,d,s,o,s,o,o,o,s,s,o,s,s,o,s,d,_,
_,_,s,f,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,s,f,f,f,f,f,f,l,f,l,s,_,_,_,
_,_,_,_,o,_,_,o,o,o,_,o,o,_,_,_,_,
_,d,s,o,s,o,s,s,o,o,s,o,s,o,s,d,_,
_,_,s,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,_,o,f,f,f,f,f,f,f,l,s,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,o,_,_,_,_,
_,_,d,s,o,s,o,s,s,s,s,o,s,o,s,d,_,
_,_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,
_,_,_,s,f,f,f,f,f,f,f,f,l,s,_,_,_,
_,_,_,_,o,_,_,_,_,_,_,_,s,_,_,_,_,
_,d,s,o,s,o,o,o,o,o,o,s,o,s,d,_,_,
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
_,_,_,s,f,f,f,f,f,f,f,l,s,_,_,_,_,
_,_,_,_,o,_,_,_,_,_,_,_,o,_,_,_,_,
_,d,s,o,s,s,s,s,s,s,o,s,o,s,d,_,_,
_,_,s,l,l,l,l,l,l,l,l,l,l,s,_,_,_,
_,_,_,s,f,f,f,f,l,l,f,l,s,_,_,_,_,
_,_,_,_,o,o,_,_,_,o,_,o,_,_,_,_,_,
_,_,d,s,o,o,o,o,o,o,s,o,s,d,_,_,_,
_,_,_,s,s,l,f,f,f,f,l,l,s,_,_,_,_,
_,_,_,_,s,s,s,s,s,s,f,s,_,_,_,_,_,
_,_,_,_,_,s,o,o,o,_,s,_,_,_,_,_,_,
_,_,_,d,s,s,s,s,s,s,o,s,d,_,_,_,_,
_,_,_,_,s,s,s,s,s,s,l,s,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,s,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,d,d,d,d,d,d,s,s,d,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,s,s,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,d,d,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,36 @@
local _ = {name = "air", prob = 0}
local l = {name = "default:lava_source", prob = 225}
local s = {name = "default:stone", prob = 255}
local d = {name = "ethereal:fiery_dirt", prob = 255}
ethereal.volcanom = {
size = {x = 6, y = 2, z = 6},
yslice_prob = {
{ypos = 0, prob = 127},
},
data = {
_,_,s,_,_,_,
_,_,_,_,_,_,
_,s,l,s,_,_,
_,_,s,d,_,_,
_,s,l,l,s,_,
_,s,_,_,s,_,
s,l,l,l,s,_,
_,s,_,_,d,_,
_,d,l,l,d,d,
_,_,s,d,_,_,
_,_,d,d,d,_,
_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,20 @@
-- waterlily
ethereal.waterlily = {
size = {x = 1, y = 3, z = 1},
data = {
{name = "default:sand", param1 = 255},
{name = "default:water_source", param1 = 255},
{name = "flowers:waterlily", param1 = 255},
},
}
if ethereal.lilywalk == true then
minetest.override_item("flowers:waterlily", {
walkable = true,
})
end

View File

@ -0,0 +1,199 @@
local _ = {name = "air", prob = 0}
local L = {name = "ethereal:willow_twig", prob = 255}
local T = {name = "ethereal:willow_trunk", prob = 255}
local t = {name = "ethereal:willow_trunk", prob = 127}
ethereal.willow = {
size = {x = 12, y = 14, z = 12},
yslice_prob = {
{ypos = 0, prob = 127},
{ypos = 1, prob = 127},
},
data = {
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,L,_,L,_,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,L,L,L,_,_,_,
_,_,L,L,L,L,T,L,L,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,t,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,_,L,_,L,_,_,_,_,
_,_,_,L,L,L,L,L,L,L,_,_,
_,_,L,L,L,T,T,L,L,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,L,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,t,T,T,T,_,_,t,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,L,_,L,_,_,_,_,_,_,_,_,
_,L,L,L,L,L,L,_,L,L,L,_,
_,L,T,T,L,T,L,L,L,L,_,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,L,L,L,L,L,T,L,_,_,
_,_,L,L,L,L,L,L,L,_,_,_,
_,_,L,L,L,L,L,_,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,_,_,T,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,L,_,_,
_,_,_,_,_,L,L,_,_,L,_,_,
_,_,L,L,_,L,L,L,L,L,L,_,
L,L,L,T,L,T,L,L,T,L,L,_,
_,L,L,L,L,L,L,L,L,L,L,_,
_,L,L,L,L,L,L,L,T,T,L,_,
_,L,L,L,L,L,L,L,L,L,L,_,
_,L,T,T,T,T,T,L,L,_,_,_,
_,_,L,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,T,L,L,_,_,_,_,
_,_,_,_,_,L,_,_,_,_,_,_,
_,_,_,_,_,T,T,T,T,t,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,L,_,_,_,T,T,_,_,_,_,_,
_,L,L,_,_,T,_,_,_,L,L,_,
_,L,L,L,_,T,L,L,L,L,L,L,
L,L,L,T,L,T,T,T,T,T,L,_,
_,L,L,L,L,T,L,L,L,L,L,_,
_,_,L,L,L,T,T,T,T,L,L,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,T,L,T,T,L,L,_,_,_,
_,_,_,L,L,T,T,L,_,_,_,_,
_,_,_,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,t,T,T,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,T,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,_,_,_,_,T,T,_,_,_,_,_,
_,L,_,_,_,T,T,_,_,_,_,_,
L,L,L,L,L,T,T,T,L,L,L,L,
L,T,T,T,T,T,T,L,T,L,L,_,
_,L,L,L,L,L,T,L,L,L,L,_,
_,_,L,L,L,L,T,L,L,L,L,_,
_,_,_,L,_,L,T,L,L,_,_,_,
_,_,_,L,L,L,T,L,L,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,L,_,L,_,L,L,_,_,
_,L,L,L,L,L,L,_,L,L,L,_,
_,L,T,L,L,L,L,L,L,L,_,_,
_,L,L,L,L,L,T,L,L,L,_,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,L,L,L,T,L,L,L,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,L,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,T,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,L,_,_,_,_,_,_,_,_,_,
_,L,L,_,_,L,L,_,L,L,L,_,
_,L,T,L,L,L,L,L,L,L,_,_,
_,_,L,_,L,L,T,L,L,L,_,_,
_,_,L,L,L,L,L,L,L,_,_,_,
_,_,_,_,L,L,T,T,L,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,T,T,t,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,L,_,_,_,_,
_,_,_,_,L,_,_,L,_,L,_,_,
_,_,L,L,L,L,L,L,L,L,_,_,
_,_,L,L,L,L,T,L,L,_,_,_,
_,_,_,L,L,L,T,L,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,L,L,L,L,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,t,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,_,_,_,_,_,_,_,_,
_,_,_,L,L,L,L,L,L,_,_,_,
_,_,_,L,L,L,T,L,_,_,_,_,
_,_,_,_,_,L,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,L,L,_,_,_,_,_,
_,_,_,_,_,_,L,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,_,_,_,
}
}

View File

@ -0,0 +1,201 @@
local _ = {name = "air", prob = 0}
local T = {name = "ethereal:yellow_trunk", prob = 255}
local t = {name = "ethereal:yellow_trunk", prob = 127}
local L = {name = "ethereal:yellowleaves", prob = 255}
local A = {name = "ethereal:golden_apple", prob = 115}
ethereal.yellowtree = {
size = {x = 9, y = 19, z = 9},
yslice_prob = {
{ypos = 0, prob = 254},
{ypos = 3, prob = 254},
{ypos = 5, prob = 254},
},
data = {
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,t,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,t,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,L,L,_,_,_,
_,_,_,_,_,_,L,L,_,
_,_,_,L,_,_,_,_,_,
A,L,L,L,T,L,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,L,_,L,L,_,
_,_,L,L,L,_,_,_,_,
A,L,L,L,T,L,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,T,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,T,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,T,T,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,T,T,t,_,_,
_,_,_,_,T,_,T,T,L,
_,_,t,T,T,_,L,L,_,
L,T,T,_,T,_,_,_,_,
_,L,L,_,T,T,t,_,_,
_,_,_,_,T,L,T,T,L,
_,_,t,T,T,L,L,L,_,
L,T,T,L,T,L,_,_,_,
_,L,L,_,L,A,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,T,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,_,T,L,L,L,A,
_,_,_,L,_,_,_,_,_,
_,L,L,_,_,_,_,_,_,
_,_,_,_,_,L,_,_,_,
_,_,_,L,T,L,L,L,A,
_,_,L,L,L,_,_,_,_,
_,L,L,_,L,_,_,_,_,
_,_,_,_,A,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,t,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,t,L,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,L,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,L,T,L,_,_,_,
_,_,_,_,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,A,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,A,L,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
_,_,_,_,_,_,_,_,_,
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -0,0 +1,295 @@
local S = ethereal.intllib
-- Seaweed
minetest.register_node("ethereal:seaweed", {
description = S("Seaweed"),
drawtype = "plantlike",
tiles = {"seaweed.png"},
inventory_image = "seaweed.png",
wield_image = "seaweed.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a = 64, r = 100, g = 100, b = 200},
groups = {food_seaweed = 1, snappy = 3, flammable = 3},
on_use = minetest.item_eat(1),
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
})
minetest.register_craft( {
type = "shapeless",
output = "dye:dark_green 3",
recipe = {"ethereal:seaweed",},
})
-- agar powder
minetest.register_craftitem("ethereal:agar_powder", {
description = S("Agar Powder"),
inventory_image = "ethereal_agar_powder.png",
groups = {food_gelatin = 1, flammable = 2},
})
minetest.register_craft({
output = "ethereal:agar_powder 3",
recipe = {
{"group:food_seaweed", "group:food_seaweed", "group:food_seaweed"},
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
{"bucket:bucket_water", "bucket:bucket_water", "default:torch"},
},
replacements = {
{"bucket:bucket_water", "bucket:bucket_empty 4"},
},
})
-- Blue Coral
minetest.register_node("ethereal:coral2", {
description = S("Blue Coral"),
drawtype = "plantlike",
tiles = {"coral2.png"},
inventory_image = "coral2.png",
wield_image = "coral2.png",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft( {
type = "shapeless",
output = "dye:cyan 3",
recipe = {"ethereal:coral2",},
})
-- Orange Coral
minetest.register_node("ethereal:coral3", {
description = S("Orange Coral"),
drawtype = "plantlike",
tiles = {"coral3.png"},
inventory_image = "coral3.png",
wield_image = "coral3.png",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 1 / 4, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft( {
type = "shapeless",
output = "dye:orange 3",
recipe = {"ethereal:coral3",},
})
-- Pink Coral
minetest.register_node("ethereal:coral4", {
description = S("Pink Coral"),
drawtype = "plantlike",
tiles = {"coral4.png"},
inventory_image = "coral4.png",
wield_image = "coral4.png",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 8 / 16, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft( {
type = "shapeless",
output = "dye:pink 3",
recipe = {"ethereal:coral4",},
})
-- Green Coral
minetest.register_node("ethereal:coral5", {
description = S("Green Coral"),
drawtype = "plantlike",
tiles = {"coral5.png"},
inventory_image = "coral5.png",
wield_image = "coral5.png",
paramtype = "light",
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 3 / 16, 6 / 16},
},
light_source = 3,
groups = {snappy = 3},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_craft( {
type = "shapeless",
output = "dye:green 3",
recipe = {"ethereal:coral5",},
})
-- Undersea Sand
minetest.register_node("ethereal:sandy", {
description = S("Sandy"),
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {
crumbly = 3, falling_node = 1, sand = 1, not_in_creative_inventory = 1
},
drop = "default:sand",
sounds = default.node_sound_sand_defaults(),
})
-- randomly generate coral or seaweed and have seaweed grow up to 14 high
if ethereal.sealife == 1 then
minetest.register_abm({
label = "Grow coral/seaweed",
nodenames = {"ethereal:sandy"},
neighbors = {"group:water"},
interval = 15,
chance = 10,
catch_up = false,
action = function(pos, node)
local sel = math.random(1, 6)
pos.y = pos.y + 1
local nod = minetest.get_node(pos).name
if nod == "default:water_source"
and sel == 6 then
minetest.swap_node(pos, {name = "ethereal:sponge_wet"})
return
end
if nod == "default:water_source"
and sel > 1 then
minetest.swap_node(pos, {name = "ethereal:coral" .. sel})
return
end
if nod == "ethereal:seaweed"
or sel == 1 then
local height = 0
local high = 14
while height < high
and minetest.get_node(pos).name == "ethereal:seaweed" do
height = height + 1
pos.y = pos.y + 1
end
if pos.y < 1
and height < high
and minetest.get_node(pos).name == "default:water_source" then
minetest.swap_node(pos, {name = "ethereal:seaweed"})
end
end
end,
})
end
-- sponges
minetest.register_node("ethereal:sponge_air", {
drawtype = "airlike",
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
pointable = false,
drop = "",
groups = {not_in_creative_inventory = 1},
})
minetest.register_node("ethereal:sponge", {
description = S("Sponge"),
tiles = {"ethereal_sponge.png"},
groups = {crumbly = 3},
sounds = default.node_sound_sand_defaults(),
after_place_node = function(pos, placer, itemstack, pointed_thing)
-- get player name
local name = placer:get_player_name()
-- is area protected
if minetest.is_protected(pos, name) then
return
end
-- get water nodes within range
local num = minetest.find_nodes_in_area(
{x = pos.x - 3, y = pos.y - 3, z = pos.z - 3},
{x = pos.x + 3, y = pos.y + 3, z = pos.z + 3},
{"group:water"})
-- no water
if #num == 0 then return end
-- replace water nodes with sponge air
for _, w in pairs(num) do
if not minetest.is_protected(pos, name) then
minetest.swap_node(w, {name = "ethereal:sponge_air"})
end
end
-- replace dry sponge with wet sponge
minetest.swap_node(pos, {name="ethereal:sponge_wet"})
end
})
minetest.register_node("ethereal:sponge_wet", {
description = S("Wet sponge"),
tiles = {"ethereal_sponge_wet.png"},
groups = {crumbly = 3},
sounds = default.node_sound_sand_defaults(),
})
-- cook wet sponge into dry sponge
minetest.register_craft({
type = "cooking",
recipe = "ethereal:sponge_wet",
output = "ethereal:sponge",
cooktime = 3,
})
-- use leaf decay to remove sponge air nodes
default.register_leafdecay({
trunks = {"ethereal:sponge_wet"},
leaves = {"ethereal:sponge_air"},
radius = 3
})
-- dry sponges can be used as fuel
minetest.register_craft({
type = "fuel",
recipe = "ethereal:sponge",
burntime = 5,
})

View File

@ -0,0 +1,42 @@
--[[
Ethereal Settings can be changed here and kept even after the mod
has been updated
--]]
ethereal.leaftype = 0 -- 0 for 2D plantlike, 1 for 3D allfaces
ethereal.leafwalk = false -- true for walkable leaves, false to fall through
ethereal.cavedirt = true -- caves chop through dirt when true
ethereal.torchdrop = true -- torches drop when touching water
ethereal.papyruswalk = true -- papyrus can be walked on
ethereal.lilywalk = true -- waterlilies can be walked on
ethereal.xcraft = true -- allow cheat crafts for cobble->gravel->dirt->sand, ice->snow, dry dirt->desert sand
-- Set following to 1 to enable biome or false to disable
ethereal.glacier = 1 -- Ice glaciers with snow
ethereal.bamboo = 1 -- Bamboo with sprouts
ethereal.mesa = 1 -- Mesa red and orange clay with giant redwood
ethereal.alpine = 1 -- Snowy grass
ethereal.healing = 1 -- Snowy peaks with healing trees
ethereal.snowy = 1 -- Cold grass with pine trees and snow spots
ethereal.frost = 1 -- Blue dirt with blue/pink frost trees
ethereal.grassy = 1 -- Green grass with flowers and trees
ethereal.caves = 1 -- Desert stone ares with huge caverns underneath
ethereal.grayness = 1 -- Grey grass with willow trees
ethereal.grassytwo = 1 -- Sparse trees with old trees and flowers
ethereal.prairie = 1 -- Flowery grass with many plants and flowers
ethereal.jumble = 1 -- Green grass with trees and jungle grass
ethereal.junglee = 1 -- Jungle grass with tall jungle trees
ethereal.desert = 1 -- Desert sand with cactus
ethereal.grove = 1 -- Banana groves and ferns
ethereal.mushroom = 1 -- Purple grass with giant mushrooms
ethereal.sandstone = 1 -- Sandstone with smaller cactus
ethereal.quicksand = 1 -- Quicksand banks
ethereal.plains = 1 -- Dry dirt with scorched trees
ethereal.savanna = 1 -- Dry yellow grass with acacia tree's
ethereal.fiery = 1 -- Red grass with lava craters
ethereal.sandclay = 1 -- Sand areas with clay underneath
ethereal.swamp = 1 -- Swamp areas with vines on tree's, mushrooms, lilly's and clay sand
ethereal.sealife = 1 -- Enable coral and seaweed
ethereal.reefs = 1 -- Enable new coral reefs in default
ethereal.sakura = 1 -- Enable sakura biomes with trees

View File

@ -0,0 +1,338 @@
local S = ethereal.intllib
-- Stairs Redo
if stairs and stairs.mod and stairs.mod == "redo" then
stairs.register_all("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
S("Crystal Block Stair"),
S("Crystal Block Slab"),
default.node_sound_glass_defaults())
stairs.register_all("icebrick", "ethereal:icebrick",
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_ice.png"},
S("Ice Brick Stair"),
S("Ice Brick Slab"),
default.node_sound_glass_defaults())
stairs.register_all("snowbrick", "ethereal:snowbrick",
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
S("Snow Brick Stair"),
S("Snow Brick Slab"),
default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
}))
stairs.register_all("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
S("Dried Dirt Stair"),
S("Dried Dirt Slab"),
default.node_sound_dirt_defaults())
stairs.register_all("mushroom_trunk", "ethereal:mushroom_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_trunk.png"},
S("Mushroom Trunk Stair"),
S("Mushroom Trunk Slab"),
default.node_sound_wood_defaults())
stairs.register_all("mushroom", "ethereal:mushroom",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_block.png"},
S("Mushroom Top Stair"),
S("Mushroom Top Slab"),
default.node_sound_wood_defaults())
stairs.register_all("frost_wood", "ethereal:frost_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"frost_wood.png"},
S("Frost Wood Stair"),
S("Frost Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("yellow_wood", "ethereal:yellow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"yellow_wood.png"},
S("Healing Wood Stair"),
S("Healing Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("palm_wood", "ethereal:palm_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_palm_wood.png"},
S("Palm Wood Stair"),
S("Palm Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("birch_wood", "ethereal:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_birch_wood.png"},
S("Birch Wood Stair"),
S("Birch Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("banana_wood", "ethereal:banana_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"banana_wood.png"},
S("Banana Wood Stair"),
S("Banana Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("willow_wood", "ethereal:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"willow_wood.png"},
S("Willow Wood Stair"),
S("Willow Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("redwood_wood", "ethereal:redwood_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"redwood_wood.png"},
S("Redwood stair"),
S("Redwood Slab"),
default.node_sound_wood_defaults())
stairs.register_all("bamboo_wood", "ethereal:bamboo_block",
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"bamboo_floor.png"},
S("Bamboo stair"),
S("Bamboo Slab"),
default.node_sound_wood_defaults())
stairs.register_all("sakura_wood", "ethereal:sakura_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"ethereal_sakura_wood.png"},
S("Sakura Wood stair"),
S("Sakura Wood Slab"),
default.node_sound_wood_defaults())
-- Stairs Plus (in More Blocks)
elseif minetest.global_exists("stairsplus") then
stairsplus:register_all("ethereal", "crystal_block", "ethereal:crystal_block", {
description = S("Crystal block"),
tiles = {"crystal_block.png"},
groups = {cracky = 1, falling_node = 1, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
stairsplus:register_all("ethereal", "icebrick", "ethereal:icebrick", {
description = S("Ice Brick"),
tiles = {"brick_ice.png"},
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_glass_defaults(),
})
stairsplus:register_all("ethereal", "snowbrick", "ethereal:snowbrick", {
description = S("Snow Brick"),
tiles = {"brick_snow.png"},
groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.25},
dug = {name = "default_snow_footstep", gain = 0.75},
})
})
stairsplus:register_all("ethereal", "dry_dirt", "ethereal:dry_dirt", {
description = S("Dried Dirt"),
tiles = {"ethereal_dry_dirt.png"},
groups = {crumbly = 3},
sounds = default.node_sound_dirt_defaults(),
})
stairsplus:register_all("ethereal", "mushroom_trunk", "ethereal:mushroom_trunk", {
description = S("Mushroom Trunk"),
tiles = {"mushroom_trunk.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "mushroom", "ethereal:mushroom", {
description = S("Mushroom Top"),
tiles = {"mushroom_block.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "frost_wood", "ethereal:frost_wood", {
description = S("Frost Wood"),
tiles = {"frost_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "yellow_wood", "ethereal:yellow_wood", {
description = S("Healing Wood"),
tiles = {"yellow_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "palm_wood", "ethereal:palm_wood", {
description = S("Palm Wood"),
tiles = {"moretrees_palm_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "birch_wood", "ethereal:birch_wood", {
description = S("Birch Wood"),
tiles = {"moretrees_birch_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "banana_wood", "ethereal:banana_wood", {
description = S("Banana Wood"),
tiles = {"banana_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "willow_wood", "ethereal:willow_wood", {
description = S("Willow Wood"),
tiles = {"willow_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "redwood_wood", "ethereal:redwood_wood", {
description = S("Redwood"),
tiles = {"redwood_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "bamboo_wood", "ethereal:bamboo_block", {
description = S("Bamboo"),
tiles = {"bamboo_floor.png"},
groups = {snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
stairsplus:register_all("ethereal", "sakura_wood", "ethereal:sakura_wood", {
description = S("Sakura"),
tiles = {"ethereal_sakura_wood.png"},
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
sounds = default.node_sound_wood_defaults(),
})
-- Default Stairs
else
stairs.register_stair_and_slab("crystal_block", "ethereal:crystal_block",
{cracky = 1, level = 2, puts_out_fire = 1, cools_lava = 1},
{"crystal_block.png"},
S("Crystal Block Stair"),
S("Crystal Block Slab"),
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("icebrick", "ethereal:icebrick",
{cracky = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_ice.png"},
S("Ice Brick Stair"),
S("Ice Brick Slab"),
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("snowbrick", "ethereal:snowbrick",
{crumbly = 3, puts_out_fire = 1, cools_lava = 1},
{"brick_snow.png"},
S("Snow Brick Stair"),
S("Snow Brick Slab"),
default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2}
}))
stairs.register_stair_and_slab("dry_dirt", "ethereal:dry_dirt",
{crumbly = 3},
{"ethereal_dry_dirt.png"},
S("Dried Dirt Stair"),
S("Dried Dirt Slab"),
default.node_sound_dirt_defaults())
stairs.register_stair_and_slab("mushroom_trunk", "ethereal:mushroom_trunk",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_trunk.png"},
S("Mushroom Trunk Stair"),
S("Mushroom Trunk Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("mushroom", "ethereal:mushroom",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
{"mushroom_block.png"},
S("Mushroom Top Stair"),
S("Mushroom Top Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("frost_wood", "ethereal:frost_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"frost_wood.png"},
S("Frost Wood Stair"),
S("Frost Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("yellow_wood", "ethereal:yellow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, put_out_fire = 1},
{"yellow_wood.png"},
S("Healing Wood Stair"),
S("Healing Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("palm_wood", "ethereal:palm_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_palm_wood.png"},
S("Palm Wood Stair"),
S("Palm Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("birch_wood", "ethereal:birch_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"moretrees_birch_wood.png"},
"Birch Wood Stair",
"Birch Wood Slab",
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("banana_wood", "ethereal:banana_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"banana_wood.png"},
S("Banana Wood Stair"),
S("Banana Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("willow_wood", "ethereal:willow_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"willow_wood.png"},
S("Willow Wood Stair"),
S("Willow Wood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("redwood_wood", "ethereal:redwood_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"redwood_wood.png"},
S("Redwood stair"),
S("Redwood Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("bamboo_wood", "ethereal:bamboo_block",
{snappy = 3, choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"bamboo_floor.png"},
S("Bamboo stair"),
S("Bamboo Slab"),
default.node_sound_wood_defaults())
stairs.register_stair_and_slab("sakura_wood", "ethereal:sakura_wood",
{choppy = 2, oddly_breakable_by_hand = 1, flammable = 3},
{"ethereal_sakura_wood.png"},
S("Sakura Wood Stair"),
S("Sakura Wood Slab"),
default.node_sound_wood_defaults())
end

View File

@ -0,0 +1,127 @@
local S = ethereal.intllib
-- Strawberry (can also be planted as seed)
minetest.register_craftitem("ethereal:strawberry", {
description = S("Strawberry"),
inventory_image = "strawberry.png",
wield_image = "strawberry.png",
groups = {food_strawberry = 1, food_berry = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1")
end,
on_use = minetest.item_eat(1),
})
-- Define Strawberry Bush growth stages
local crop_def = {
drawtype = "plantlike",
tiles = {"strawberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults(),
}
--stage 1
minetest.register_node("ethereal:strawberry_1", table.copy(crop_def))
-- stage 2
crop_def.tiles = {"strawberry_2.png"}
minetest.register_node("ethereal:strawberry_2", table.copy(crop_def))
-- stage 3
crop_def.tiles = {"strawberry_3.png"}
minetest.register_node("ethereal:strawberry_3", table.copy(crop_def))
-- stage 4
crop_def.tiles = {"strawberry_4.png"}
minetest.register_node("ethereal:strawberry_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"strawberry_5.png"}
minetest.register_node("ethereal:strawberry_5", table.copy(crop_def))
-- stage 6
crop_def.tiles = {"strawberry_6.png"}
crop_def.drop = {
items = {
{items = {"ethereal:strawberry 1"},rarity = 2},
{items = {"ethereal:strawberry 2"},rarity = 3},
}
}
minetest.register_node("ethereal:strawberry_6", table.copy(crop_def))
-- stage 7
crop_def.tiles = {"strawberry_7.png"}
crop_def.drop = {
items = {
{items = {"ethereal:strawberry 1"},rarity = 1},
{items = {"ethereal:strawberry 2"},rarity = 3},
}
}
minetest.register_node("ethereal:strawberry_7", table.copy(crop_def))
-- stage 8
crop_def.tiles = {"strawberry_8.png"}
crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {"ethereal:strawberry 2"},rarity = 1},
{items = {"ethereal:strawberry 3"},rarity = 3},
}
}
minetest.register_node("ethereal:strawberry_8", table.copy(crop_def))
-- growing routine if farming redo isn't present
if not farming or not farming.mod or farming.mod ~= "redo" then
minetest.register_abm({
label = "Ethereal grow strawberry",
nodenames = {
"ethereal:strawberry_1", "ethereal:strawberry_2", "ethereal:strawberry_3",
"ethereal:strawberry_4", "ethereal:strawberry_5", "ethereal:strawberry_6",
"ethereal:strawberry_7"
},
neighbors = {"farming:soil_wet"},
interval = 9,
chance = 20,
catch_up = false,
action = function(pos, node)
-- are we on wet soil?
pos.y = pos.y - 1
if minetest.get_item_group(minetest.get_node(pos).name, "soil") < 3 then
return
end
pos.y = pos.y + 1
-- do we have enough light?
local light = minetest.get_node_light(pos)
if not light
or light < 13 then
return
end
-- grow to next stage
local num = node.name:split("_")[2]
node.name = "ethereal:strawberry_" .. tonumber(num + 1)
minetest.swap_node(pos, node)
end
})
end -- END IF

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

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