Make deserts survivable.

This commit is contained in:
Duane Robertson 2016-05-23 11:08:25 -05:00
parent c93090b4e8
commit 7b969e0009
4 changed files with 161 additions and 1 deletions

View file

@ -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_dirt.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_tree.lua")
dofile(fun_caves.path.."/deco_water.lua")

99
deco_rocks.lua Normal file
View 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", ""},
},
})

View file

@ -50,6 +50,7 @@ end
dofile(fun_caves.path .. "/danglers.lua")
dofile(fun_caves.path .. "/spider.lua")
dofile(fun_caves.path .. "/tarantula.lua")
dofile(fun_caves.path .. "/spider_ice.lua")
--dofile(fun_caves.path .. "/dirt_monster.lua")
dofile(fun_caves.path .. "/sand_monster.lua")

60
tarantula.lua Normal file
View 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)