From 9190a348f2d7f5bc3aa64547d9d1302132befe0a Mon Sep 17 00:00:00 2001 From: FaceDeer Date: Sat, 19 May 2018 15:47:41 -0600 Subject: [PATCH] add giant glowing crystals to lower dry caverns --- biomes/level2.lua | 19 +++- biomes/level3.lua | 52 ++++++++-- features/glow_crystals.lua | 143 ++++++++++++++++++++++++++- locale/it.po | 12 ++- locale/template.pot | 12 ++- models/hex_crystal.mtl | 22 +++++ models/hex_crystal.obj | 114 +++++++++++++++++++++ models/hex_crystal_30.mtl | 22 +++++ models/hex_crystal_30.obj | 114 +++++++++++++++++++++ models/hex_crystal_30_45.mtl | 22 +++++ models/hex_crystal_30_45.obj | 114 +++++++++++++++++++++ textures/dfcaverns_glow_ruby.png | Bin 0 -> 330 bytes textures/dfcaverns_glow_ruby4x.png | Bin 0 -> 980 bytes textures/dfcaverns_glow_ruby_ore.png | Bin 0 -> 329 bytes textures/license.txt | 4 +- 15 files changed, 639 insertions(+), 11 deletions(-) create mode 100644 models/hex_crystal.mtl create mode 100644 models/hex_crystal.obj create mode 100644 models/hex_crystal_30.mtl create mode 100644 models/hex_crystal_30.obj create mode 100644 models/hex_crystal_30_45.mtl create mode 100644 models/hex_crystal_30_45.obj create mode 100644 textures/dfcaverns_glow_ruby.png create mode 100644 textures/dfcaverns_glow_ruby4x.png create mode 100644 textures/dfcaverns_glow_ruby_ore.png diff --git a/biomes/level2.lua b/biomes/level2.lua index 19f350d..d7c4450 100644 --- a/biomes/level2.lua +++ b/biomes/level2.lua @@ -259,6 +259,23 @@ local level_2_dry_ceiling = function(area, data, ai, vi, bi, param2_data) end end +local level_2_crystal_ceiling = function(area, data, ai, vi, bi, param2_data) + if data[ai] ~= c_stone then + return + end + + if math.random() < 0.0025 then + dfcaverns.place_big_crystal_cluster(area, data, param2_data, vi, math.random(0,1), true) + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.075 then + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.075 * 5) + subterrane:stalagmite(vi, area, data, param2_data, param2, -height, dfcaverns.dry_stalagmite_ids) + end +end + local level_2_underwater_floor = function(area, data, ai, vi, bi, param2_data) if data[bi] ~= c_stone then return @@ -511,7 +528,7 @@ minetest.register_biome({ y_max = subsea_level, heat_point = 50, humidity_point = 15, - _subterrane_ceiling_decor = level_2_dry_ceiling, + _subterrane_ceiling_decor = level_2_crystal_ceiling, _subterrane_floor_decor = level_2_dry_floor, _subterrane_fill_node = c_air, _subterrane_column_node = c_dry_flowstone, diff --git a/biomes/level3.lua b/biomes/level3.lua index 6af087e..e1f2759 100644 --- a/biomes/level3.lua +++ b/biomes/level3.lua @@ -74,6 +74,29 @@ local level_3_dry_floor = function(area, data, ai, vi, bi, param2_data) end end +local level_3_crystal_floor = function(area, data, ai, vi, bi, param2_data) + if data[bi] ~= c_stone then + return + end + + floor_item = math.random() + if floor_item < 0.005 then + dfcaverns.place_big_crystal_cluster(area, data, param2_data, vi, math.random(0,2), false) + elseif floor_item < 0.5 then + data[bi] = c_cobble + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.001 then + subterrane:giant_stalagmite(bi, area, data, 6, 20, c_dry_flowstone, c_dry_flowstone, c_dry_flowstone) + elseif drip_rand < 0.025 then + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.025 * 5) + subterrane:stalagmite(vi, area, data, param2_data, param2, height, dfcaverns.dry_stalagmite_ids) + end +end + + local level_3_wet_floor = function(area, data, ai, vi, bi, param2_data) if data[bi] ~= c_stone then return @@ -120,6 +143,23 @@ local level_3_dry_ceiling = function(area, data, ai, vi, bi, param2_data) end end +local level_3_crystal_ceiling = function(area, data, ai, vi, bi, param2_data) + if data[ai] ~= c_stone then + return + end + + if math.random() < 0.005 then + dfcaverns.place_big_crystal_cluster(area, data, param2_data, vi, math.random(0,3), true) + end + + local drip_rand = subterrane:vertically_consistent_random(vi, area) + if drip_rand < 0.025 then + local param2 = drip_rand*1000000 - math.floor(drip_rand*1000000/4)*4 + local height = math.floor(drip_rand/0.025 * 5) + subterrane:stalagmite(vi, area, data, param2_data, param2, -height, dfcaverns.dry_stalagmite_ids) + end +end + local level_3_blood_thorn_floor = function(area, data, ai, vi, bi, param2_data) if data[bi] ~= c_stone then return @@ -349,7 +389,7 @@ minetest.register_biome({ y_max = subsea_level, heat_point = 10, humidity_point = 30, - _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_ceiling_decor = level_3_crystal_ceiling, _subterrane_floor_decor = level_3_blood_thorn_floor, _subterrane_fill_node = c_air, _subterrane_column_node = c_dry_flowstone, @@ -366,7 +406,7 @@ minetest.register_biome({ y_max = dfcaverns.config.level2_min, heat_point = 10, humidity_point = 30, - _subterrane_ceiling_decor = level_3_dry_ceiling, + _subterrane_ceiling_decor = level_3_crystal_ceiling, _subterrane_floor_decor = level_3_blood_thorn_floor, _subterrane_column_node = c_dry_flowstone, _subterrane_fill_node = c_air, @@ -535,8 +575,8 @@ minetest.register_biome({ y_max = subsea_level, heat_point = 50, humidity_point = 10, - _subterrane_ceiling_decor = level_3_dry_ceiling, - _subterrane_floor_decor = level_3_dry_floor, + _subterrane_ceiling_decor = level_3_crystal_ceiling, + _subterrane_floor_decor = level_3_crystal_floor, _subterrane_fill_node = c_air, _subterrane_column_node = c_dry_flowstone, _subterrane_override_sea_level = dfcaverns.config.sunless_sea_level, @@ -550,8 +590,8 @@ minetest.register_biome({ y_max = dfcaverns.config.level2_min, heat_point = 50, humidity_point = 10, - _subterrane_ceiling_decor = level_3_dry_ceiling, - _subterrane_floor_decor = level_3_dry_floor, + _subterrane_ceiling_decor = level_3_crystal_ceiling, + _subterrane_floor_decor = level_3_crystal_floor, _subterrane_fill_node = c_air, _subterrane_column_node = c_dry_flowstone, _subterrane_mitigate_lava = false, diff --git a/features/glow_crystals.lua b/features/glow_crystals.lua index 8e2e0eb..1defdda 100644 --- a/features/glow_crystals.lua +++ b/features/glow_crystals.lua @@ -21,4 +21,145 @@ minetest.register_craft({ recipe = { {'dfcaverns:glow_mese'}, } -}) \ No newline at end of file +}) + +minetest.register_node("dfcaverns:glow_ruby_ore", { + description = S("Crystal Vein"), + tiles = {"dfcaverns_glow_ruby_ore.png"}, + is_ground_content = true, + groups = {cracky=2}, + sounds = default.node_sound_glass_defaults(), +}) + + +minetest.register_node("dfcaverns:big_crystal", { + description = S("Giant Crystal"), + drawtype = "mesh", + mesh = "hex_crystal.obj", + tiles = { + "dfcaverns_glow_ruby4x.png", + "dfcaverns_glow_ruby.png", + }, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {cracky=2, dfcaverns_big_crystal = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 3, 0.5}, + }, + collision_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 3, 0.5}, + }, +}) + + +minetest.register_node("dfcaverns:big_crystal_30", { + description = S("Giant Crystal"), + drawtype = "mesh", + mesh = "hex_crystal_30.obj", + tiles = { + "dfcaverns_glow_ruby4x.png", + "dfcaverns_glow_ruby.png", + }, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {cracky=2, dfcaverns_big_crystal = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.625, 0.5, 0.5, 0.375}, + {-0.5, 0.5, -1.25, 0.5, 1.5, -0.25}, + {-0.5, 1.5, -1.875, 0.5, 2.5, -0.875}, + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.625, 0.5, 0.5, 0.375}, + {-0.5, 0.5, -1.25, 0.5, 1.5, -0.25}, + {-0.5, 1.5, -1.875, 0.5, 2.5, -0.875}, + } + }, +}) + +minetest.register_node("dfcaverns:big_crystal_30_45", { + description = S("Giant Crystal"), + drawtype = "mesh", + mesh = "hex_crystal_30_45.obj", + tiles = { + "dfcaverns_glow_ruby4x.png", + "dfcaverns_glow_ruby.png", + }, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {cracky=2, dfcaverns_big_crystal = 1}, + sounds = default.node_sound_glass_defaults(), + selection_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.625, 0.625, 0.5, 0.375}, + {0.0625, 0.5, -1.0625, 1.0625, 1.5, -0.0625}, + {0.5, 1.5, -1.5, 1.5, 2.5, -0.5}, + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.625, 0.625, 0.5, 0.375}, + {0.0625, 0.5, -1.0625, 1.0625, 1.5, -0.0625}, + {0.5, 1.5, -1.5, 1.5, 2.5, -0.5}, + } + }, +}) + +local c_stone = minetest.get_content_id("default:stone") +local c_air = minetest.get_content_id("air") +local c_big_crystal = minetest.get_content_id("dfcaverns:big_crystal") +local c_big_crystal_30 = minetest.get_content_id("dfcaverns:big_crystal_30") +local c_big_crystal_30_45 = minetest.get_content_id("dfcaverns:big_crystal_30_45") +local c_glow_ore = minetest.get_content_id("dfcaverns:glow_ruby_ore") + +local place_big_crystal = function(data, data_param2, i, ceiling) + orientation = math.random() + if orientation < 0.33 then + data[i] = c_big_crystal + elseif orientation < 0.66 then + data[i] = c_big_crystal_30 + else + data[i] = c_big_crystal_30_45 + end + if ceiling then + data_param2[i] = math.random(20,23) + else + data_param2[i] = math.random(0,3) + end + +end + +dfcaverns.place_big_crystal_cluster = function(area, data, data_param2, i, radius, ceiling) + local y + if ceiling then y = -1 else y = 1 end + local pos = area:position(i) + for li in area:iterp(vector.add(pos, -radius), vector.add(pos, radius)) do + local adjacent = li + y*area.ystride + if math.random() > 0.5 and data[li] == c_stone and data[adjacent] == c_air then + place_big_crystal(data, data_param2, adjacent, ceiling) + data[li] = c_glow_ore + end + end +end diff --git a/locale/it.po b/locale/it.po index 9c818ab..6334e2f 100644 --- a/locale/it.po +++ b/locale/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: dfcaverns module's Italian locale\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-18 01:34-0600\n" +"POT-Creation-Date: 2018-05-19 15:46-0600\n" "PO-Revision-Date: 2017-08-17 23:01+0100\n" "Last-Translator: H4mlet \n" "Language-Team: ITALIANO\n" @@ -395,6 +395,16 @@ msgstr "" msgid "Flawless Mese Block" msgstr "" +#: features\glow_crystals.lua:27 +msgid "Crystal Vein" +msgstr "" + +#: features\glow_crystals.lua:36 +#: features\glow_crystals.lua:63 +#: features\glow_crystals.lua:97 +msgid "Giant Crystal" +msgstr "" + #: features\glow_water.lua:6 msgid "Mese Water" msgstr "" diff --git a/locale/template.pot b/locale/template.pot index 97d5dfb..c71b587 100644 --- a/locale/template.pot +++ b/locale/template.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-18 01:34-0600\n" +"POT-Creation-Date: 2018-05-19 15:46-0600\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -394,6 +394,16 @@ msgstr "" msgid "Flawless Mese Block" msgstr "" +#: features\glow_crystals.lua:27 +msgid "Crystal Vein" +msgstr "" + +#: features\glow_crystals.lua:36 +#: features\glow_crystals.lua:63 +#: features\glow_crystals.lua:97 +msgid "Giant Crystal" +msgstr "" + #: features\glow_water.lua:6 msgid "Mese Water" msgstr "" diff --git a/models/hex_crystal.mtl b/models/hex_crystal.mtl new file mode 100644 index 0000000..0d3fc0a --- /dev/null +++ b/models/hex_crystal.mtl @@ -0,0 +1,22 @@ +# Blender MTL File: 'hex crystal.blend' +# Material Count: 2 + +newmtl End_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 + +newmtl Side_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.371605 0.494084 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 diff --git a/models/hex_crystal.obj b/models/hex_crystal.obj new file mode 100644 index 0000000..4f1f501 --- /dev/null +++ b/models/hex_crystal.obj @@ -0,0 +1,114 @@ +# Blender v2.77 (sub 0) OBJ File: 'hex crystal.blend' +# www.blender.org +mtllib hex_crystal.mtl +o Cylinder +v 0.000000 -0.882802 0.000000 +v 0.000000 2.873951 0.000000 +v 0.000000 -0.499696 -0.500000 +v 0.000000 2.490845 -0.500000 +v 0.433013 -0.499696 -0.250000 +v 0.433013 2.490845 -0.250000 +v 0.433013 -0.499696 0.250000 +v 0.433013 2.490845 0.250000 +v -0.000000 -0.499696 0.500000 +v -0.000000 2.490845 0.500000 +v -0.433013 -0.499696 0.250000 +v -0.433013 2.490845 0.250000 +v -0.433013 -0.499696 -0.250000 +v -0.433013 2.490845 -0.250000 +vt 0.4999 0.0000 +vt 0.4999 1.0000 +vt 0.3332 1.0000 +vt 0.3332 0.0000 +vt 0.1665 1.0000 +vt 0.1665 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 -0.0000 +vt 1.0000 1.0000 +vt 0.8333 1.0000 +vt 0.8333 -0.0000 +vt 0.6666 1.0000 +vt 0.6666 -0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.5000 0.5000 +vt 0.9313 0.7490 +vt 0.5000 0.9980 +vt 0.5000 0.5000 +vt 0.5000 0.0020 +vt 0.9313 0.2510 +vt 0.0687 0.7490 +vt 0.0687 0.2510 +vt 0.0687 0.2510 +vt 0.0687 0.7490 +vt 0.5000 0.0020 +vt 0.5000 0.9980 +vt 0.9313 0.2510 +vt 0.9313 0.7490 +vn 0.5000 0.0000 -0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.0000 1.0000 0.0000 +vn -0.0000 0.5465 0.8375 +vn 0.0000 -0.5465 0.8375 +vn 0.3313 -0.7489 -0.5739 +vn 0.3313 0.7489 -0.5739 +vn 0.6626 -0.7489 0.0000 +vn 0.6626 0.7489 0.0000 +vn 0.3313 -0.7489 0.5739 +vn 0.3313 0.7489 0.5739 +vn -0.3313 -0.7489 0.5739 +vn -0.3313 0.7489 0.5739 +vn -0.6626 -0.7489 0.0000 +vn -0.6626 0.7489 0.0000 +vn -0.3313 -0.7489 -0.5739 +vn -0.3313 0.7489 -0.5739 +g Cylinder_Cylinder_Side_Mat +usemtl Side_Mat +s off +f 3/1/1 4/2/1 6/3/1 5/4/1 +f 5/4/2 6/3/2 8/5/2 7/6/2 +f 7/6/3 8/5/3 10/7/3 9/8/3 +f 9/9/4 10/10/4 12/11/4 11/12/4 +f 11/12/5 12/11/5 14/13/5 13/14/5 +f 13/14/6 14/13/6 4/2/6 3/1/6 +f 10/15/7 8/16/7 12/17/7 +f 12/17/8 8/16/8 2/18/8 +f 2/18/1 8/16/1 14/19/1 +f 14/19/7 8/16/7 6/20/7 +f 14/19/9 6/20/9 2/18/9 +f 11/21/9 1/22/9 7/23/9 +f 7/23/1 1/22/1 13/24/1 +f 13/24/8 1/22/8 5/25/8 +f 9/8/7 7/23/7 11/21/7 +f 11/21/7 7/23/7 13/24/7 +f 13/24/7 7/23/7 5/25/7 +f 13/24/7 5/25/7 3/26/7 +g Cylinder_Cylinder_End_Mat +usemtl End_Mat +f 1/27/10 3/28/10 5/29/10 +f 2/30/11 6/31/11 4/32/11 +f 1/27/12 5/29/12 7/33/12 +f 2/30/13 8/34/13 6/31/13 +f 1/27/14 7/33/14 9/35/14 +f 2/30/15 10/36/15 8/34/15 +f 1/27/16 9/35/16 11/37/16 +f 2/30/17 12/38/17 10/36/17 +f 1/27/18 11/37/18 13/39/18 +f 2/30/19 14/40/19 12/38/19 +f 1/27/20 13/39/20 3/28/20 +f 2/30/21 4/32/21 14/40/21 diff --git a/models/hex_crystal_30.mtl b/models/hex_crystal_30.mtl new file mode 100644 index 0000000..89f4b07 --- /dev/null +++ b/models/hex_crystal_30.mtl @@ -0,0 +1,22 @@ +# Blender MTL File: 'hex crystal 30.blend' +# Material Count: 2 + +newmtl End_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 + +newmtl Side_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.371605 0.494084 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 diff --git a/models/hex_crystal_30.obj b/models/hex_crystal_30.obj new file mode 100644 index 0000000..738a528 --- /dev/null +++ b/models/hex_crystal_30.obj @@ -0,0 +1,114 @@ +# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30.blend' +# www.blender.org +mtllib hex_crystal_30.mtl +o Cylinder +v -0.000000 -0.831516 0.191401 +v 0.000000 2.421927 -1.686976 +v -0.500000 -0.499737 -0.000152 +v -0.500000 2.090148 -1.495423 +v -0.250000 -0.716243 -0.375152 +v -0.250000 1.873641 -1.870423 +v 0.250000 -0.716243 -0.375152 +v 0.250000 1.873641 -1.870423 +v 0.500000 -0.499737 -0.000152 +v 0.500000 2.090148 -1.495423 +v 0.250000 -0.283230 0.374848 +v 0.250000 2.306654 -1.120423 +v -0.250000 -0.283230 0.374848 +v -0.250000 2.306654 -1.120423 +vt 0.4999 0.0000 +vt 0.4999 1.0000 +vt 0.3332 1.0000 +vt 0.3332 0.0000 +vt 0.1665 1.0000 +vt 0.1665 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 -0.0000 +vt 1.0000 1.0000 +vt 0.8333 1.0000 +vt 0.8333 -0.0000 +vt 0.6666 1.0000 +vt 0.6666 -0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.5000 0.5000 +vt 0.9313 0.7490 +vt 0.5000 0.9980 +vt 0.5000 0.5000 +vt 0.5000 0.0020 +vt 0.9313 0.2510 +vt 0.0687 0.7490 +vt 0.0687 0.2510 +vt 0.0687 0.2510 +vt 0.0687 0.7490 +vt 0.5000 0.0020 +vt 0.5000 0.9980 +vt 0.9313 0.2510 +vt 0.9313 0.7490 +vn -0.8660 -0.2500 -0.4330 +vn 0.0000 -0.5000 -0.8660 +vn 0.8660 -0.2500 -0.4330 +vn 0.8660 0.2500 0.4330 +vn 0.0000 0.5000 0.8660 +vn -0.8660 0.2500 0.4330 +vn 0.0000 0.8660 -0.5000 +vn 0.8375 0.4733 -0.2732 +vn 0.8375 -0.4733 0.2732 +vn -0.5739 -0.8143 0.0875 +vn -0.5739 0.4830 -0.6614 +vn 0.0000 -0.9799 -0.1994 +vn -0.0000 0.3173 -0.9483 +vn 0.5739 -0.8143 0.0875 +vn 0.5739 0.4830 -0.6614 +vn 0.5739 -0.4830 0.6614 +vn 0.5739 0.8143 -0.0875 +vn 0.0000 -0.3173 0.9483 +vn 0.0000 0.9799 0.1994 +vn -0.5739 -0.4830 0.6614 +vn -0.5739 0.8143 -0.0875 +g Cylinder_Cylinder_Side_Mat +usemtl Side_Mat +s off +f 3/1/1 4/2/1 6/3/1 5/4/1 +f 5/4/2 6/3/2 8/5/2 7/6/2 +f 7/6/3 8/5/3 10/7/3 9/8/3 +f 9/9/4 10/10/4 12/11/4 11/12/4 +f 11/12/5 12/11/5 14/13/5 13/14/5 +f 13/14/6 14/13/6 4/2/6 3/1/6 +f 10/15/7 8/16/7 12/17/7 +f 12/17/8 8/16/8 2/18/8 +f 2/18/1 8/16/1 14/19/1 +f 14/19/7 8/16/7 6/20/7 +f 14/19/9 6/20/9 2/18/9 +f 11/21/9 1/22/9 7/23/9 +f 7/23/1 1/22/1 13/24/1 +f 13/24/8 1/22/8 5/25/8 +f 9/8/7 7/23/7 11/21/7 +f 11/21/7 7/23/7 13/24/7 +f 13/24/7 7/23/7 5/25/7 +f 13/24/7 5/25/7 3/26/7 +g Cylinder_Cylinder_End_Mat +usemtl End_Mat +f 1/27/10 3/28/10 5/29/10 +f 2/30/11 6/31/11 4/32/11 +f 1/27/12 5/29/12 7/33/12 +f 2/30/13 8/34/13 6/31/13 +f 1/27/14 7/33/14 9/35/14 +f 2/30/15 10/36/15 8/34/15 +f 1/27/16 9/35/16 11/37/16 +f 2/30/17 12/38/17 10/36/17 +f 1/27/18 11/37/18 13/39/18 +f 2/30/19 14/40/19 12/38/19 +f 1/27/20 13/39/20 3/28/20 +f 2/30/21 4/32/21 14/40/21 diff --git a/models/hex_crystal_30_45.mtl b/models/hex_crystal_30_45.mtl new file mode 100644 index 0000000..89f4b07 --- /dev/null +++ b/models/hex_crystal_30_45.mtl @@ -0,0 +1,22 @@ +# Blender MTL File: 'hex crystal 30.blend' +# Material Count: 2 + +newmtl End_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 + +newmtl Side_Mat +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.640000 0.371605 0.494084 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 diff --git a/models/hex_crystal_30_45.obj b/models/hex_crystal_30_45.obj new file mode 100644 index 0000000..5bbb47d --- /dev/null +++ b/models/hex_crystal_30_45.obj @@ -0,0 +1,114 @@ +# Blender v2.77 (sub 0) OBJ File: 'hex crystal 30.blend' +# www.blender.org +mtllib hex_crystal_30_45.mtl +o Cylinder +v 0.135341 -0.831516 0.135341 +v -1.192872 2.421927 -1.192872 +v -0.353661 -0.499737 0.353446 +v -1.410977 2.090148 -0.703870 +v -0.442049 -0.716243 -0.088496 +v -1.499365 1.873641 -1.145812 +v -0.088496 -0.716243 -0.442049 +v -1.145812 1.873641 -1.499365 +v 0.353446 -0.499737 -0.353661 +v -0.703870 2.090148 -1.410977 +v 0.441834 -0.283230 0.088281 +v -0.615482 2.306654 -0.969035 +v 0.088281 -0.283230 0.441834 +v -0.969035 2.306654 -0.615482 +vt 0.4999 0.0000 +vt 0.4999 1.0000 +vt 0.3332 1.0000 +vt 0.3332 0.0000 +vt 0.1665 1.0000 +vt 0.1665 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 -0.0000 +vt 1.0000 1.0000 +vt 0.8333 1.0000 +vt 0.8333 -0.0000 +vt 0.6666 1.0000 +vt 0.6666 -0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.0000 0.0000 +vt 0.5000 0.5000 +vt 0.9313 0.7490 +vt 0.5000 0.9980 +vt 0.5000 0.5000 +vt 0.5000 0.0020 +vt 0.9313 0.2510 +vt 0.0687 0.7490 +vt 0.0687 0.2510 +vt 0.0687 0.2510 +vt 0.0687 0.7490 +vt 0.5000 0.0020 +vt 0.5000 0.9980 +vt 0.9313 0.2510 +vt 0.9313 0.7490 +vn -0.9186 -0.2500 0.3062 +vn -0.6124 -0.5000 -0.6124 +vn 0.3062 -0.2500 -0.9186 +vn 0.9186 0.2500 -0.3062 +vn 0.6124 0.5000 0.6124 +vn -0.3062 0.2500 0.9186 +vn -0.3536 0.8660 -0.3536 +vn 0.3990 0.4733 -0.7854 +vn 0.7854 -0.4733 -0.3990 +vn -0.3439 -0.8143 0.4677 +vn -0.8735 0.4830 -0.0619 +vn -0.1410 -0.9799 -0.1410 +vn -0.6706 0.3173 -0.6706 +vn 0.4677 -0.8143 -0.3439 +vn -0.0619 0.4830 -0.8735 +vn 0.8735 -0.4830 0.0619 +vn 0.3439 0.8143 -0.4677 +vn 0.6706 -0.3173 0.6706 +vn 0.1410 0.9799 0.1410 +vn 0.0619 -0.4830 0.8735 +vn -0.4677 0.8143 0.3439 +g Cylinder_Cylinder_Side_Mat +usemtl Side_Mat +s off +f 3/1/1 4/2/1 6/3/1 5/4/1 +f 5/4/2 6/3/2 8/5/2 7/6/2 +f 7/6/3 8/5/3 10/7/3 9/8/3 +f 9/9/4 10/10/4 12/11/4 11/12/4 +f 11/12/5 12/11/5 14/13/5 13/14/5 +f 13/14/6 14/13/6 4/2/6 3/1/6 +f 10/15/7 8/16/7 12/17/7 +f 12/17/8 8/16/8 2/18/8 +f 2/18/1 8/16/1 14/19/1 +f 14/19/7 8/16/7 6/20/7 +f 14/19/9 6/20/9 2/18/9 +f 11/21/9 1/22/9 7/23/9 +f 7/23/1 1/22/1 13/24/1 +f 13/24/8 1/22/8 5/25/8 +f 9/8/7 7/23/7 11/21/7 +f 11/21/7 7/23/7 13/24/7 +f 13/24/7 7/23/7 5/25/7 +f 13/24/7 5/25/7 3/26/7 +g Cylinder_Cylinder_End_Mat +usemtl End_Mat +f 1/27/10 3/28/10 5/29/10 +f 2/30/11 6/31/11 4/32/11 +f 1/27/12 5/29/12 7/33/12 +f 2/30/13 8/34/13 6/31/13 +f 1/27/14 7/33/14 9/35/14 +f 2/30/15 10/36/15 8/34/15 +f 1/27/16 9/35/16 11/37/16 +f 2/30/17 12/38/17 10/36/17 +f 1/27/18 11/37/18 13/39/18 +f 2/30/19 14/40/19 12/38/19 +f 1/27/20 13/39/20 3/28/20 +f 2/30/21 4/32/21 14/40/21 diff --git a/textures/dfcaverns_glow_ruby.png b/textures/dfcaverns_glow_ruby.png new file mode 100644 index 0000000000000000000000000000000000000000..59fd46b6c0d1df6d17c8d69558e5a1eedcdde508 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Uw}`D>tuPE&1y>LbkuKqxd9p5 z)RlqkE4rGuJzXB8B;K$#zaJO1MpY3gbyQ0YD0SV!df2WH-7PuI4`g)C5z*Xf?jqi6p-Z;8yQSO-;{fYDD zC(KGc5_S8FmA%83quFQJ6?e6-Ox%54?DFY8ms`i~Xk5SDw{Y9WZ5&aZ$_sn9KAa$Y zh;K`^?TycSc-DGIW@m>wuW;J=d~wEwjcwaD{&Qg7r8MQ^ZsWh~Nr7yUN{m{YfbL`P MboFyt=akR{02UIFmjD0& literal 0 HcmV?d00001 diff --git a/textures/dfcaverns_glow_ruby4x.png b/textures/dfcaverns_glow_ruby4x.png new file mode 100644 index 0000000000000000000000000000000000000000..00356c78a7cfcf2ddebb61cf67f4b58baacbc556 GIT binary patch literal 980 zcmV;_11tQAP)O0eQcr3E2X-KN<#^0w)QdJ@ykcpTeY>d4EnK5)rgEL-z?<8R))Hy`==o#qo< zjrQ6a{F7t2Doj72VlV)}a*;bXx{pf1;d6`Kt>}O4KG`cXU1aB8hbR4S9v^snzYkm$ zqGB+lPXMrLb@(U8^I&J;j7Ldgudl9hy;QOf_V@SRefZGI!_$wam)iwOd4W<100l~6 z-+$mRW=yiMt3o7zq=di>6`^sAyWL04KcD{kEDui(KmRP5^bU6|$Kn29ATkO#0Fe!l zDl>@2+3KpD1OeAeB|8tV%|;`y&|2H_2Lth&e~F60VAbk43Y2}T`vG@VIESrT9ROfD zj_A3rM@&=X<;l_4UtRzJ<+lCz(_ePeyiMbzaT0+r`?d%^M^b3^YJe&!g5b+{Vvb(X)&C7qJegA>O&W97LR)-po5h0OU5U@Nv z{kC{>o4lSv$|+f@R`FKnUT1o8-1nmx6@%g4`a1lRUt;RsPQ_E&j6tQ-uq4-p6*0y+bk6L$nzwCd63KD88M4RlsNBAZ!>1!(y5TAr;|K0Md_QB!CpY4}J8CkntEx)oLg3F8TnZt3nhgeWT4@m)BesqTOopt5^a6 ze-S8D42Ck(g+Vlrn5NK{m%Z{AUu|V?x^(e8Jbk=k?~FW8wp&fECKHLP3nQ&l5k*q? zK8l(~2-U6f+Iq{TTHh>ksPPzn6eAC>rGK*DI}&NHPL-u)Q)aqIf?!6AML&G$&W!ro zThDtvo>g*Pe&GieeqiAT7Jgvi2Nr%{;RpVAKkzSEJl7kgT!U-?0000~T6581c-C}_|NsBB9)c18005y$ zL_t&-87091Lc%Z%K+#wfn<(4JGDUxAd;e2f@ICQ3j@XuUeOs36b$7WFe6y}VZhfSb zg6W+H_hu$9n!x#7L8p_LnJOet?$Z0