From 8238f9b3fbc4a1c0d41f1ab1feeec2617cd32be0 Mon Sep 17 00:00:00 2001 From: OldCoder Date: Sun, 4 Sep 2022 22:02:10 -0700 Subject: [PATCH] Imported from trollstream "ContentDB" --- LICENSE.txt | 21 ++ init.lua | 5 + lapis_tree.mts | Bin 0 -> 208 bytes mapgen.lua | 189 ++++++++++++++++++ mod.conf | 4 + nodes.lua | 84 ++++++++ recipes.lua | 13 ++ textures/fantasy_biomes_anthill.png | Bin 0 -> 464 bytes .../fantasy_biomes_grass_with_flowers.png | Bin 0 -> 696 bytes textures/fantasy_biomes_rafflesia.png | Bin 0 -> 432 bytes 10 files changed, 316 insertions(+) create mode 100644 LICENSE.txt create mode 100644 init.lua create mode 100644 lapis_tree.mts create mode 100644 mapgen.lua create mode 100644 mod.conf create mode 100644 nodes.lua create mode 100644 recipes.lua create mode 100644 textures/fantasy_biomes_anthill.png create mode 100644 textures/fantasy_biomes_grass_with_flowers.png create mode 100644 textures/fantasy_biomes_rafflesia.png diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..e45e2e0 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Tim7 + +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. diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..25295cd --- /dev/null +++ b/init.lua @@ -0,0 +1,5 @@ +local modpath = minetest.get_modpath("fantasy_biomes") + +dofile(modpath.."/nodes.lua") +dofile(modpath.."/mapgen.lua") +dofile(modpath.."/recipes.lua") diff --git a/lapis_tree.mts b/lapis_tree.mts new file mode 100644 index 0000000000000000000000000000000000000000..8b2a4de6f616a816d07179a09a4cedcd4dcba8d3 GIT binary patch literal 208 zcmeYb3HD`RVPIw8VqmR@1E2_VVrCJ8LRw;8Nn&wjd{Sn9ZfdbrPGUi3aePTpYHEB= zYGPSxF@q#d6*#0)GK)$o<|HR9kV;rGFVMm#EhWJzDVZtFqPx>Y>`aQl*_I>6(xqQE zMAQec2c#9*uIzgK`gP!ztB;i(fUJcoh1(K0H+w9007jrQd$52 literal 0 HcmV?d00001 diff --git a/mapgen.lua b/mapgen.lua new file mode 100644 index 0000000..8e72f11 --- /dev/null +++ b/mapgen.lua @@ -0,0 +1,189 @@ + minetest.register_biome({ + name = "lapis_forest", + node_top = "fantasy_biomes:lapis_dirt", + depth_top = 1, + node_filler = "fantasy_biomes:lapis_dirt", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 6, + heat_point = 40, + humidity_point = 75, + }) + + minetest.register_biome({ + name = "lapis_forest_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 5, + y_min = 4, + heat_point = 40, + humidity_point = 75, + }) + + minetest.register_biome({ + name = "lapis_forest_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 3, + y_min = -255, + heat_point = 40, + humidity_point = 75, + }) + + minetest.register_biome({ + name = "lapis_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 40, + humidity_point = 75, + }) + + minetest.register_biome({ + name = "flower_forest", + node_top = "fantasy_biomes:dirt_with_grass_and_flowers", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 6, + heat_point = 40, + humidity_point = 85, + }) + + minetest.register_biome({ + name = "flower_forest_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 5, + y_min = 4, + heat_point = 40, + humidity_point = 85, + }) + + minetest.register_biome({ + name = "flower_forest_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 3, + y_min = -255, + heat_point = 40, + humidity_point = 85, + }) + + minetest.register_biome({ + name = "flower_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 40, + humidity_point = 85, + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = "fantasy_biomes:lapis_dirt", + sidelen = 4, + fill_ratio = 0.001, + biome = {"lapis_forest"}, + height = 2, + y_min = 0, + y_max = 32000, + place_offset_y = 0, + schematic = "lapis_tree.mts", + flags = "place_center_x, place_center_z, force_placement", + rotation = "random", + }) + + minetest.register_decoration({ + name = "fantasy_biomes:rafflesia", + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 80, + fill_ratio = 0.01, + biomes = {"rainforest"}, + y_max = 31000, + y_min = 1, + decoration = "fantasy_biomes:rafflesia", + }) + + minetest.register_decoration({ + name = "fantasy_biomes:anthill", + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 80, + fill_ratio = 0.0001, + biomes = {"grassland"}, + y_max = 31000, + y_min = 1, + decoration = "fantasy_biomes:anthill", + }) + + minetest.register_decoration({ + name = "fantasy_biomes:apple_tree", + deco_type = "schematic", + place_on = {"fantasy_biomes:dirt_with_grass_and_flowers"}, + sidelen = 16, + noise_params = { + offset = 0.024, + scale = 0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.42 + }, + biomes = {"flower_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) \ No newline at end of file diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..8e81f64 --- /dev/null +++ b/mod.conf @@ -0,0 +1,4 @@ +name = fantasy_biomes +title = Fantasy Biomes +description = Cool biomes for Minetest. +depends = default \ No newline at end of file diff --git a/nodes.lua b/nodes.lua new file mode 100644 index 0000000..7c93dc6 --- /dev/null +++ b/nodes.lua @@ -0,0 +1,84 @@ +minetest.register_node("fantasy_biomes:lapis_tree", { + description = ("Lapis Tree"), + tiles = {"default_tree_top.png^[colorize:blue:100", "default_tree_top.png^[colorize:blue:100", "default_tree.png^[colorize:blue:100"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("fantasy_biomes:dirt_with_grass_and_flowers", { + description = ("Dirt with Grass and Flowers"), + tiles = {"fantasy_biomes_grass_with_flowers.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("fantasy_biomes:lapis_tree_leaves", { + description = ("Lapis Tree Leaves"), + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves.png^[colorize:blue:100"}, + special_tiles = {"default_leaves_simple.png^[colorize:blue:100"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("fantasy_biomes:lapis_dirt", { + description = ("Lapis Dirt"), + tiles = {"default_gravel.png^[colorize:blue:100"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("fantasy_biomes:rafflesia", { + description = ("Rafflesia"), + drawtype = "plantlike", + waving = 1, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + buildable_to = true, + tiles = {"fantasy_biomes_rafflesia.png"}, + groups = {oddly_breakable_by_hand = 1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("fantasy_biomes:anthill", { + description = ("Anthill"), + drawtype = "plantlike", + waving = 0, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + buildable_to = true, + tiles = {"fantasy_biomes_anthill.png"}, + groups = {oddly_breakable_by_hand = 3}, + damage_per_second = 1, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("fantasy_biomes:lapis_wood_planks", { + description = ("Lapis Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_wood.png^[colorize:blue:100"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) \ No newline at end of file diff --git a/recipes.lua b/recipes.lua new file mode 100644 index 0000000..1dcbbb1 --- /dev/null +++ b/recipes.lua @@ -0,0 +1,13 @@ +minetest.register_craft({ + output = "fantasy_biomes:lapis_wood_planks 4", + recipe = { + {"fantasy_biomes:lapis_tree"}, + } +}) + +minetest.register_craft({ + output = "dye:red 8", + recipe = { + {"fantasy_biomes:rafflesia"} + }, +}) \ No newline at end of file diff --git a/textures/fantasy_biomes_anthill.png b/textures/fantasy_biomes_anthill.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5f93b59cc047356806f87e1f6c9d14c504a1eb GIT binary patch literal 464 zcmV;>0WbcEP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0cA-8WDD<8!du(Je$iAI4zmW5q*S;sh$ ztos5Me$CBf&YXL4hJXG5hMqBQFOH)yn3GN!*e@I04(zlSsV zU^0u;IiR*)*SB#J26vYyk!6~+_77D8!A8A7xCj~cU${Qoi?r;Agn=txvGYZwl-Op5 zUi*nsZA&EyAZ=;Yl7vBM*tm|w^8+S2=DAq&Fz*K98-A7mi zY_6}evQorIsVIg?*0NZrUoRI6TK!GTAPPN%nPa=zR1a*1Z#}9Tbt=^cZv%-CDfKfm zt^Ow7f!gMbM|3-FKz$RCcuZ3-|;^Qh;u@qC0m00000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0!>LoK~y+TC6Y^P z6hRb)Z#}1bx;w)pi)52sKoDHTjk~M@!T2DFqqueN-hU$q3W<@485Ldm0~CUSptx`& zNFZ^XM?b3T;i;q+MOW2*eCOO|n@?6H=i}3w6D56R=gzudjc1%Xg}`Ny+|M13ts(5( zwIML}`dv{hr&5l_r|u2@rhXYokfH}2U}x%BNPc4MuOq!LQHnuXAe zZHO@>Is(nPV5-BoNX6iOb#`^_?$*@R9_0}U*(0``cM6v}y$nrHn^Aa1Q~zYIU_UuVBYkPL+g8r+)$ zVQ;4-$i4Asxwo9o&ZA4ZCtTye5PpoZ^<78`jyYokhcK>%`unHm*^;VfwbY~v;RAC` zEXl9jnx30#Y&{FM3bAwPtBFBT4ps=o@=)wa`V8V8ushXruP**VAk*CR-re?G(+x5w{`sKJGBF)yr_!yFbJ zz0I>;?9Ao0I~#*f?dr{HW)O|H;V3svKu=fW&Y}hh*51xcrwqkB>}{OLr9BxUxvi;%fu49< zdZ`3vB)S||u8rJed^2?ba~DHwPF}%KG)#Mnt1d6c2K5ku4#Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0YynfK~y+T?T<}M z0$~(|pI1l6Q8Ddf%68GVFbHcA5wtM+3q=w_i^#uGi--s+YE>;nT7=sm=wlIXvS=T) z3nVGioMarwx5?V|2U_$j?u7&A+;jQopTA8mHX(IYle*U@b3^0uNB)KQ*_@6|%hBBp zt`^gT0xB(+pXcHevSs6T3HqZE8n%kZBWRipW(${Xuj^}+3U^Wnh3nJ`X1$Ktki>UZ z31}L6cNYT#QEG*}>s~omdSM(=d>Vm!3!n%WhGvR!AHl zayGYwFW8H;KWJGsf?9x?n+wry5cIk*obs{}WQv8yd*Rbm;`{4PgLf1~F#m8XCXcoW>pGQ6ne*hb a