Make deserts survivable.
This commit is contained in:
parent
c93090b4e8
commit
7b969e0009
4 changed files with 161 additions and 1 deletions
2
deco.lua
2
deco.lua
|
@ -36,7 +36,7 @@ minetest.add_group("default:cactus", {oddly_breakable_by_hand=1})
|
||||||
dofile(fun_caves.path.."/deco_caves.lua")
|
dofile(fun_caves.path.."/deco_caves.lua")
|
||||||
--dofile(fun_caves.path.."/deco_dirt.lua")
|
--dofile(fun_caves.path.."/deco_dirt.lua")
|
||||||
dofile(fun_caves.path.."/deco_plants.lua")
|
dofile(fun_caves.path.."/deco_plants.lua")
|
||||||
--dofile(fun_caves.path.."/deco_rocks.lua")
|
dofile(fun_caves.path.."/deco_rocks.lua")
|
||||||
--dofile(fun_caves.path.."/deco_ferns.lua")
|
--dofile(fun_caves.path.."/deco_ferns.lua")
|
||||||
--dofile(fun_caves.path.."/deco_ferns_tree.lua")
|
--dofile(fun_caves.path.."/deco_ferns_tree.lua")
|
||||||
dofile(fun_caves.path.."/deco_water.lua")
|
dofile(fun_caves.path.."/deco_water.lua")
|
||||||
|
|
99
deco_rocks.lua
Normal file
99
deco_rocks.lua
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
-- Place a small nodebox.
|
||||||
|
local function small_cube(grid, pos, diameters)
|
||||||
|
local rock = {}
|
||||||
|
|
||||||
|
rock[1] = pos.x
|
||||||
|
rock[2] = pos.y
|
||||||
|
rock[3] = pos.z
|
||||||
|
rock[4] = pos.x + diameters.x
|
||||||
|
rock[5] = pos.y + diameters.y
|
||||||
|
rock[6] = pos.z + diameters.z
|
||||||
|
grid[#grid+1] = rock
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Create some tiles of small rocks that can be picked up.
|
||||||
|
local default_grid
|
||||||
|
local tiles = {"default_stone.png", "default_desert_stone.png", "default_sandstone.png"}
|
||||||
|
|
||||||
|
for grid_count = 1,6 do
|
||||||
|
local grid = {}
|
||||||
|
for rock_count = 2, math.random(1,4) + 1 do
|
||||||
|
local diameter = math.random(5,15)/100
|
||||||
|
local x = math.random(1,80)/100 - 0.5
|
||||||
|
local z = math.random(1,80)/100 - 0.5
|
||||||
|
--step_sphere(grid, {x=x,y=-0.5,z=z}, {x=diameter, y=diameter, z=diameter})
|
||||||
|
small_cube(grid, {x=x,y=-0.5,z=z}, {x=diameter, y=diameter, z=diameter})
|
||||||
|
end
|
||||||
|
|
||||||
|
--local stone = tiles[math.random(1,#tiles)]
|
||||||
|
local stone = tiles[(grid_count % #tiles) + 1]
|
||||||
|
|
||||||
|
minetest.register_node("fun_caves:small_rocks"..grid_count, {
|
||||||
|
description = "Small Rocks",
|
||||||
|
tiles = {stone},
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
paramtype = "light",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
buildable_to = true,
|
||||||
|
node_box = { type = "fixed",
|
||||||
|
fixed = grid },
|
||||||
|
selection_box = { type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
||||||
|
},
|
||||||
|
groups = {stone=1, oddly_breakable_by_hand=3},
|
||||||
|
drop = "fun_caves:small_rocks",
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_decoration({
|
||||||
|
deco_type = "simple",
|
||||||
|
decoration = "fun_caves:small_rocks"..grid_count,
|
||||||
|
sidelen = 80,
|
||||||
|
place_on = {"group:soil", "group:sand"},
|
||||||
|
fill_ratio = 0.001,
|
||||||
|
biomes = {"sandstone_grassland", "tundra", "taiga", "stone_grassland", "coniferous_forest", "deciduous_forest", "desert", "savanna", "rainforest", },
|
||||||
|
flags = "place_center_x, place_center_z",
|
||||||
|
rotation = "random",
|
||||||
|
})
|
||||||
|
|
||||||
|
default_grid = grid
|
||||||
|
end
|
||||||
|
|
||||||
|
-- This is the inventory item, so we don't have six different stacks.
|
||||||
|
minetest.register_node("fun_caves:small_rocks", {
|
||||||
|
description = "Small Rocks",
|
||||||
|
tiles = {"default_stone.png"},
|
||||||
|
inventory_image = "fun_caves_small_rocks.png",
|
||||||
|
is_ground_content = true,
|
||||||
|
walkable = false,
|
||||||
|
paramtype = "light",
|
||||||
|
drawtype = "nodebox",
|
||||||
|
node_box = { type = "fixed",
|
||||||
|
fixed = default_grid },
|
||||||
|
selection_box = { type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
||||||
|
},
|
||||||
|
groups = {stone=1, oddly_breakable_by_hand=3},
|
||||||
|
sounds = default.node_sound_stone_defaults(),
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Small rocks can be used to create cobblestone, if you like.
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:cobble",
|
||||||
|
recipe = {
|
||||||
|
{"", "", ""},
|
||||||
|
{"fun_caves:small_rocks", "fun_caves:small_rocks", ""},
|
||||||
|
{"fun_caves:small_rocks", "fun_caves:small_rocks", ""},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "default:stick",
|
||||||
|
recipe = {
|
||||||
|
{"", "", ""},
|
||||||
|
{"default:dry_shrub", "default:dry_shrub", ""},
|
||||||
|
{"default:dry_shrub", "default:dry_shrub", ""},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
1
mobs.lua
1
mobs.lua
|
@ -50,6 +50,7 @@ end
|
||||||
|
|
||||||
dofile(fun_caves.path .. "/danglers.lua")
|
dofile(fun_caves.path .. "/danglers.lua")
|
||||||
dofile(fun_caves.path .. "/spider.lua")
|
dofile(fun_caves.path .. "/spider.lua")
|
||||||
|
dofile(fun_caves.path .. "/tarantula.lua")
|
||||||
dofile(fun_caves.path .. "/spider_ice.lua")
|
dofile(fun_caves.path .. "/spider_ice.lua")
|
||||||
--dofile(fun_caves.path .. "/dirt_monster.lua")
|
--dofile(fun_caves.path .. "/dirt_monster.lua")
|
||||||
dofile(fun_caves.path .. "/sand_monster.lua")
|
dofile(fun_caves.path .. "/sand_monster.lua")
|
||||||
|
|
60
tarantula.lua
Normal file
60
tarantula.lua
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
|
||||||
|
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
||||||
|
|
||||||
|
mobs:register_mob("fun_caves:tarantula", {
|
||||||
|
docile_by_day = true,
|
||||||
|
type = "monster",
|
||||||
|
passive = false,
|
||||||
|
attack_type = "dogfight",
|
||||||
|
reach = 1,
|
||||||
|
damage = 1,
|
||||||
|
hp_min = 1,
|
||||||
|
hp_max = 2,
|
||||||
|
armor = 200,
|
||||||
|
collisionbox = {-0.15, -0.01, -0.15, 0.15, 0.1, 0.15},
|
||||||
|
visual = "mesh",
|
||||||
|
mesh = "fun_caves_spider.x",
|
||||||
|
textures = {
|
||||||
|
{"fun_caves_tarantula.png"},
|
||||||
|
},
|
||||||
|
visual_size = {x = 1, y = 1},
|
||||||
|
makes_footstep_sound = false,
|
||||||
|
--sounds = {
|
||||||
|
-- random = "mobs_spider",
|
||||||
|
-- attack = "mobs_spider",
|
||||||
|
--},
|
||||||
|
walk_velocity = 1,
|
||||||
|
run_velocity = 2,
|
||||||
|
jump = false,
|
||||||
|
view_range = 15,
|
||||||
|
floats = 0,
|
||||||
|
drops = {
|
||||||
|
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
||||||
|
},
|
||||||
|
water_damage = 0,
|
||||||
|
lava_damage = 5,
|
||||||
|
light_damage = 0,
|
||||||
|
animation = {
|
||||||
|
speed_normal = 15,
|
||||||
|
speed_run = 15,
|
||||||
|
stand_start = 1,
|
||||||
|
stand_end = 1,
|
||||||
|
walk_start = 20,
|
||||||
|
walk_end = 40,
|
||||||
|
run_start = 20,
|
||||||
|
run_end = 40,
|
||||||
|
punch_start = 50,
|
||||||
|
punch_end = 90,
|
||||||
|
},
|
||||||
|
do_custom = function(self)
|
||||||
|
if not self.fun_caves_damage_timer then
|
||||||
|
self.fun_caves_damage_timer = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
fun_caves.surface_damage(self)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:tarantula", {"default:desert_sand"}, 99, 0, 2000, 2, 31000)
|
||||||
|
|
||||||
|
--mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
Loading…
Add table
Add a link
Reference in a new issue