Browse Source

Support for icesheet dungeons in dungeon_loot

sfan5 4 years ago
parent
commit
b701e500aa
3 changed files with 26 additions and 12 deletions
  1. 3 2
      game_api.txt
  2. 21 10
      mods/dungeon_loot/loot.lua
  3. 2 0
      mods/dungeon_loot/mapgen.lua

+ 3 - 2
game_api.txt

@@ -276,7 +276,7 @@ The mod that places chests with loot in dungeons provides an API to register add
 	name = "item:name",
 	chance = 0.5,
 	-- ^ chance value from 0.0 to 1.0 that the item will appear in the chest when chosen
-	--   due to an extra step in the selection process, 0.5 does not(!) mean that
+	--   Due to an extra step in the selection process, 0.5 does not(!) mean that
 	--   on average every second chest will have this item
 	count = {1, 4},
 	-- ^ table with minimum and maximum amounts of this item
@@ -286,7 +286,8 @@ The mod that places chests with loot in dungeons provides an API to register add
 	--   optional, defaults to no height restrictions
 	types = {"desert"},
 	-- ^ table with types of dungeons this item can be found in
-	--   supported types: "normal" (the cobble/mossycobble one), "sandstone", "desert"
+	--   supported types: "normal" (the cobble/mossycobble one), "sandstone"
+	--   "desert" and "ice"
 	--   optional, defaults to no type restrictions
 
 

+ 21 - 10
mods/dungeon_loot/loot.lua

@@ -1,10 +1,13 @@
 dungeon_loot.registered_loot = {
 	-- buckets
 	{name = "bucket:bucket_empty", chance = 0.55},
-	-- water in deserts or above ground, lava otherwise
-	{name = "bucket:bucket_water", chance = 0.45, types = {"sandstone", "desert"}},
-	{name = "bucket:bucket_water", chance = 0.45, y = {0, 32768}, types = {"normal"}},
-	{name = "bucket:bucket_lava", chance = 0.45, y = {-32768, -1}, types = {"normal"}},
+	-- water in deserts/ice or above ground, lava otherwise
+	{name = "bucket:bucket_water", chance = 0.45,
+		types = {"sandstone", "desert", "ice"}},
+	{name = "bucket:bucket_water", chance = 0.45, y = {0, 32768},
+		types = {"normal"}},
+	{name = "bucket:bucket_lava", chance = 0.45, y = {-32768, -1},
+		types = {"normal"}},
 
 	-- various items
 	{name = "default:stick", chance = 0.6, count = {3, 6}},
@@ -16,8 +19,10 @@ dungeon_loot.registered_loot = {
 	{name = "farming:string", chance = 0.5, count = {1, 8}},
 	{name = "farming:wheat", chance = 0.5, count = {2, 5}},
 	{name = "default:apple", chance = 0.4, count = {1, 4}},
-	{name = "farming:seed_cotton", chance = 0.4, count = {1, 4}, types = {"normal"}},
-	{name = "default:cactus", chance = 0.4, count = {1, 4}, types = {"sandstone", "desert"}},
+	{name = "farming:seed_cotton", chance = 0.4, count = {1, 4},
+		types = {"normal"}},
+	{name = "default:cactus", chance = 0.4, count = {1, 4},
+		types = {"sandstone", "desert"}},
 
 	-- minerals
 	{name = "default:coal_lump", chance = 0.9, count = {1, 12}},
@@ -31,10 +36,16 @@ dungeon_loot.registered_loot = {
 	{name = "default:axe_diamond", chance = 0.05},
 
 	-- natural materials
-	{name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, types = {"normal"}},
-	{name = "default:desert_sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, types = {"sandstone"}},
-	{name = "default:desert_cobble", chance = 0.8, count = {4, 32}, types = {"desert"}},
-	{name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768}},
+	{name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 32768},
+		types = {"normal"}},
+	{name = "default:desert_sand", chance = 0.8, count = {4, 32}, y = {-64, 32768},
+		types = {"sandstone"}},
+	{name = "default:desert_cobble", chance = 0.8, count = {4, 32},
+		types = {"desert"}},
+	{name = "default:snow", chance = 0.8, count = {8, 64}, y = {-64, 32768},
+		types = {"ice"}},
+	{name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768},
+		types = {"normal", "sandstone", "desert"}},
 	{name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-32768, -512}},
 	{name = "default:mese", chance = 0.15, y = {-32768, -512}},
 }

+ 2 - 0
mods/dungeon_loot/mapgen.lua

@@ -59,6 +59,8 @@ local function find_walls(cpos)
 		type = "desert"
 	elseif biome:find("sandstone_desert") == 1 then
 		type = "sandstone"
+	elseif biome:find("icesheet") == 1 then
+		type = "ice"
 	end
 
 	return {