From 2f6bd2661e411f986b6de9a448bbd231e8b7c506 Mon Sep 17 00:00:00 2001 From: starninjas <36938375+starninjas@users.noreply.github.com> Date: Sat, 20 Apr 2019 15:02:35 -0600 Subject: [PATCH] Add files via upload --- LICENSE.md | 21 + README.md | 2 + depends.txt | 2 + init.lua | 1848 +++++++++++++++++++++ models/dolphin.b3d | Bin 0 -> 24028 bytes models/fishy.b3d | Bin 0 -> 24216 bytes models/squid.b3d | Bin 0 -> 40908 bytes schems/brain.mts | Bin 0 -> 106 bytes schems/brain2.mts | Bin 0 -> 101 bytes schems/brain3.mts | Bin 0 -> 101 bytes schems/brain4.mts | Bin 0 -> 135 bytes schems/bubble.mts | Bin 0 -> 131 bytes schems/bubble2.mts | Bin 0 -> 106 bytes schems/fire.mts | Bin 0 -> 108 bytes schems/fire2.mts | Bin 0 -> 103 bytes schems/horn.mts | Bin 0 -> 107 bytes schems/horn2.mts | Bin 0 -> 105 bytes schems/sunken1.mts | Bin 0 -> 255 bytes schems/sunken2.mts | Bin 0 -> 528 bytes schems/sunken3.mts | Bin 0 -> 302 bytes schems/tube.mts | Bin 0 -> 105 bytes schems/tube2.mts | Bin 0 -> 102 bytes schems/tube3.mts | Bin 0 -> 97 bytes textures/mobs_dolphin.png | Bin 0 -> 4577 bytes textures/mobs_fishy.png | Bin 0 -> 1492 bytes textures/mobs_fishy1.png | Bin 0 -> 858 bytes textures/mobs_fishy2.png | Bin 0 -> 774 bytes textures/mobs_fishy3.png | Bin 0 -> 868 bytes textures/mobs_fishy4.png | Bin 0 -> 855 bytes textures/mobs_fishy5.png | Bin 0 -> 1320 bytes textures/mobs_fishy6.png | Bin 0 -> 1307 bytes textures/mobs_fishy7.png | Bin 0 -> 753 bytes textures/mobs_fishy8.png | Bin 0 -> 755 bytes textures/mobs_fishy9.png | Bin 0 -> 572 bytes textures/xocean_brain.png | Bin 0 -> 499 bytes textures/xocean_brain_skeleton.png | Bin 0 -> 428 bytes textures/xocean_brick.png | Bin 0 -> 606 bytes textures/xocean_bubble.png | Bin 0 -> 487 bytes textures/xocean_bubble_skeleton.png | Bin 0 -> 384 bytes textures/xocean_carved.png | Bin 0 -> 816 bytes textures/xocean_circular.png | Bin 0 -> 538 bytes textures/xocean_cobble.png | Bin 0 -> 891 bytes textures/xocean_coral_brain.png | Bin 0 -> 739 bytes textures/xocean_coral_brain_skeleton.png | Bin 0 -> 719 bytes textures/xocean_coral_bubble.png | Bin 0 -> 662 bytes textures/xocean_coral_bubble_skeleton.png | Bin 0 -> 682 bytes textures/xocean_coral_fire.png | Bin 0 -> 662 bytes textures/xocean_coral_fire_skeleton.png | Bin 0 -> 708 bytes textures/xocean_coral_horn.png | Bin 0 -> 766 bytes textures/xocean_coral_horn_skeleton.png | Bin 0 -> 674 bytes textures/xocean_coral_tube.png | Bin 0 -> 740 bytes textures/xocean_coral_tube_skeleton.png | Bin 0 -> 661 bytes textures/xocean_dried_kelp.png | Bin 0 -> 349 bytes textures/xocean_fire.png | Bin 0 -> 447 bytes textures/xocean_fire_skeleton.png | Bin 0 -> 420 bytes textures/xocean_fish.png | Bin 0 -> 445 bytes textures/xocean_fish2.png | Bin 0 -> 419 bytes textures/xocean_fish3.png | Bin 0 -> 407 bytes textures/xocean_fish_edible.png | Bin 0 -> 623 bytes textures/xocean_grass.png | Bin 0 -> 398 bytes textures/xocean_horn.png | Bin 0 -> 396 bytes textures/xocean_horn_skeleton.png | Bin 0 -> 376 bytes textures/xocean_kelp.png | Bin 0 -> 550 bytes textures/xocean_kelp_block.png | Bin 0 -> 450 bytes textures/xocean_lantern.png | Bin 0 -> 359 bytes textures/xocean_pickle.png | Bin 0 -> 263 bytes textures/xocean_pillar.png | Bin 0 -> 722 bytes textures/xocean_stone.png | Bin 0 -> 687 bytes textures/xocean_tube.png | Bin 0 -> 643 bytes textures/xocean_tube_skeleton.png | Bin 0 -> 481 bytes 70 files changed, 1873 insertions(+) create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 depends.txt create mode 100644 init.lua create mode 100644 models/dolphin.b3d create mode 100644 models/fishy.b3d create mode 100644 models/squid.b3d create mode 100644 schems/brain.mts create mode 100644 schems/brain2.mts create mode 100644 schems/brain3.mts create mode 100644 schems/brain4.mts create mode 100644 schems/bubble.mts create mode 100644 schems/bubble2.mts create mode 100644 schems/fire.mts create mode 100644 schems/fire2.mts create mode 100644 schems/horn.mts create mode 100644 schems/horn2.mts create mode 100644 schems/sunken1.mts create mode 100644 schems/sunken2.mts create mode 100644 schems/sunken3.mts create mode 100644 schems/tube.mts create mode 100644 schems/tube2.mts create mode 100644 schems/tube3.mts create mode 100644 textures/mobs_dolphin.png create mode 100644 textures/mobs_fishy.png create mode 100644 textures/mobs_fishy1.png create mode 100644 textures/mobs_fishy2.png create mode 100644 textures/mobs_fishy3.png create mode 100644 textures/mobs_fishy4.png create mode 100644 textures/mobs_fishy5.png create mode 100644 textures/mobs_fishy6.png create mode 100644 textures/mobs_fishy7.png create mode 100644 textures/mobs_fishy8.png create mode 100644 textures/mobs_fishy9.png create mode 100644 textures/xocean_brain.png create mode 100644 textures/xocean_brain_skeleton.png create mode 100644 textures/xocean_brick.png create mode 100644 textures/xocean_bubble.png create mode 100644 textures/xocean_bubble_skeleton.png create mode 100644 textures/xocean_carved.png create mode 100644 textures/xocean_circular.png create mode 100644 textures/xocean_cobble.png create mode 100644 textures/xocean_coral_brain.png create mode 100644 textures/xocean_coral_brain_skeleton.png create mode 100644 textures/xocean_coral_bubble.png create mode 100644 textures/xocean_coral_bubble_skeleton.png create mode 100644 textures/xocean_coral_fire.png create mode 100644 textures/xocean_coral_fire_skeleton.png create mode 100644 textures/xocean_coral_horn.png create mode 100644 textures/xocean_coral_horn_skeleton.png create mode 100644 textures/xocean_coral_tube.png create mode 100644 textures/xocean_coral_tube_skeleton.png create mode 100644 textures/xocean_dried_kelp.png create mode 100644 textures/xocean_fire.png create mode 100644 textures/xocean_fire_skeleton.png create mode 100644 textures/xocean_fish.png create mode 100644 textures/xocean_fish2.png create mode 100644 textures/xocean_fish3.png create mode 100644 textures/xocean_fish_edible.png create mode 100644 textures/xocean_grass.png create mode 100644 textures/xocean_horn.png create mode 100644 textures/xocean_horn_skeleton.png create mode 100644 textures/xocean_kelp.png create mode 100644 textures/xocean_kelp_block.png create mode 100644 textures/xocean_lantern.png create mode 100644 textures/xocean_pickle.png create mode 100644 textures/xocean_pillar.png create mode 100644 textures/xocean_stone.png create mode 100644 textures/xocean_tube.png create mode 100644 textures/xocean_tube_skeleton.png diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..b5b78dd --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 starninjas + +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. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f80c5cc --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +Xocean [`xocean`]--- +Version: 0.1---Adds fish, coral reefs, decorative ocean blocks, and much more!--- For bug reports and info go to the froum topic. \ No newline at end of file diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..203dfa4 --- /dev/null +++ b/depends.txt @@ -0,0 +1,2 @@ +default +mobs? \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..8c321d3 --- /dev/null +++ b/init.lua @@ -0,0 +1,1848 @@ +minetest.register_node("xocean:ocean_cobble", { + description = "Ocean Cobblestone", + tile_images = {"xocean_cobble.png"}, + groups = {cracky=3}, +}) + +minetest.register_node("xocean:ocean_stone", { + description = "Ocean Stone", + tile_images = {"xocean_stone.png"}, + groups = {cracky=3}, + drop= "xocean:ocean_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "xocean:ocean_stone", + recipe = "xocean:ocean_cobble", +}) +---Spawn the stone +minetest.register_ore({ + ore_type = "blob", + ore = "xocean:ocean_stone", + wherein = {"default:sand"}, + clust_scarcity = 32 * 32 * 32, + clust_size = 8, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 8, y = 5, z = 8}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + +minetest.register_node("xocean:ocean_carved", { + description = "Carved Ocean Stone", + tile_images = {"xocean_carved.png"}, + groups = {cracky=2}, +}) + +minetest.register_craft({ + output = '"xocean:ocean_carved" 4', + recipe = { + {'xocean:ocean_stone', 'xocean:ocean_stone',}, + {'xocean:ocean_stone', 'xocean:ocean_stone',}, + }, +}) + +minetest.register_node("xocean:ocean_circular", { + description = "Circular Ocean Stone", + tile_images = {"xocean_circular.png"}, + groups = {cracky=2}, +}) + +minetest.register_craft({ + output = '"xocean:ocean_circular" 4', + recipe = { + {'xocean:ocean_craved', 'xocean:ocean_carved',}, + {'xocean:ocean_craved', 'xocean:ocean_carved',}, + }, +}) + +minetest.register_node("xocean:ocean_pillar", { + description = "Ocean Pillar", + tile_images = {"xocean_pillar.png"}, + groups = {cracky=2}, +}) + +minetest.register_craft({ + output = '"xocean:ocean_pillar" 4', + recipe = { + {'xocean:ocean_brick', 'xocean:ocean_brick',}, + {'xocean:ocean_brick', 'xocean:ocean_brick',}, + }, +}) + +minetest.register_node("xocean:ocean_brick", { + description = "Ocean Brick", + tile_images = {"xocean_brick.png"}, + groups = {cracky=2}, +}) + +minetest.register_craft({ + output = '"xocean:ocean_brick" 4', + recipe = { + {'xocean:ocean_cobble', 'xocean:ocean_cobble',}, + {'xocean:ocean_cobble', 'xocean:ocean_cobble',}, + }, +}) + +minetest.register_node("xocean:sea_lantern", { + description = "Sea Lantern", + drawtype = "glasslike", + light_source = 30, + tiles = {"xocean_lantern.png"}, + paramtype = "light", + is_ground_content = true, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky=3,oddly_breakable_by_hand=3}, +}) + +minetest.register_craft({ + output = '"xocean:sea_lantern" 4', + recipe = { + {'default:torch', 'default:glass', 'default:torch', }, + {'default:glass', 'bucket:bucket_water', 'default:glass', }, + {'default:torch', 'default:glass', 'default:torch', }, + }, + replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}} +}) +---Sea stuff +minetest.register_node("xocean:kelp_block", { + description = "Dried Kelp Block", + tile_images = {"xocean_kelp_block.png"}, + groups = {snappy=3}, + drop= "xocean:kelp 9", +}) +minetest.register_craft({ + output = '"xocean:kelp_block" 1', + recipe = { + {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', }, + {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', }, + {'xocean:kelp', 'xocean:kelp', 'xocean:kelp', }, + }, +}) +minetest.override_item("default:sand_with_kelp", { + description = "Kelp", + drawtype = "plantlike_rooted", + waving = 1, + tiles = {"default_sand.png"}, + special_tiles = {{name = "default_kelp.png", tileable_vertical = true}}, + inventory_image = "xocean_kelp.png", + wield_image = "xocean_kelp.png", + paramtype = "light", + paramtype2 = "leveled", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-2/16, 0.5, -2/16, 2/16, 3.5, 2/16}, + }, + }, + node_dig_prediction = "default:sand", + node_placement_prediction = "", + sounds = default.node_sound_sand_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + -- Call on_rightclick if the pointed node defines it + if pointed_thing.type == "node" and placer and + not placer:get_player_control().sneak then + local node_ptu = minetest.get_node(pointed_thing.under) + local def_ptu = minetest.registered_nodes[node_ptu.name] + if def_ptu and def_ptu.on_rightclick then + return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer, + itemstack, pointed_thing) + end + end + + local pos = pointed_thing.under + if minetest.get_node(pos).name ~= "default:sand" then + return itemstack + end + + local height = math.random(4, 6) + local pos_top = {x = pos.x, y = pos.y + height, z = pos.z} + local node_top = minetest.get_node(pos_top) + local def_top = minetest.registered_nodes[node_top.name] + local player_name = placer:get_player_name() + + if def_top and def_top.liquidtype == "source" and + minetest.get_item_group(node_top.name, "water") > 0 then + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pos_top, player_name) then + minetest.set_node(pos, {name = "default:sand_with_kelp", + param2 = height * 16}) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:sand"}) + end +}) +minetest.register_craft({ + type = "cooking", + output = "xocean:kelp", + recipe = "default:sand_with_kelp", +}) +minetest.register_craftitem("xocean:kelp", { + description = "Dried Kelp", + on_use = minetest.item_eat(2), + inventory_image = "xocean_dried_kelp.png", +}) +minetest.register_node("xocean:seagrass", { + description = "Seagrass", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"default_sand.png"}, + special_tiles = {{name = "xocean_grass.png", tileable_vertical = true}}, + inventory_image = "xocean_grass.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + drop = "", + node_dig_prediction = "default:sand", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "default:sand" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:seagrass"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:sand"}) + end, +}) +minetest.register_craftitem("xocean:fish_edible", { + description = "Tropical Fish", + on_use = minetest.item_eat(3), + inventory_image = "xocean_fish_edible.png", +}) +minetest.register_node("xocean:pickle", { + description = "Sea Pickle", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"default_sand.png"}, + special_tiles = {{name = "xocean_pickle.png", tileable_vertical = true}}, + inventory_image = "xocean_pickle.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + light_source = 3, + node_dig_prediction = "default:sand", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "default:sand" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:pickle"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:sand"}) + end, +}) +---Corals +minetest.register_node("xocean:brain_block", { + description = "Brain Coral Block", + tiles = {"xocean_coral_brain.png"}, + groups = {cracky = 3}, + drop = "xocean:brain_skeleton", + sounds = default.node_sound_stone_defaults(), +}) +minetest.override_item("default:coral_pink", { + description = "Brain Coral", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_brain.png"}, + special_tiles = {{name = "xocean_brain.png", tileable_vertical = true}}, + inventory_image = "xocean_brain.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:brain_block", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:brain_block" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "default:coral_pink"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:brain_block"}) + end, +}) +minetest.register_node("xocean:brain_skeleton", { + description = "Brain Coral Skeleton", + tiles = {"xocean_coral_brain_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:skeleton_brain", { + description = "Brain Coral Skeleton", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_brain_skeleton.png"}, + special_tiles = {{name = "xocean_brain_skeleton.png", tileable_vertical = true}}, + inventory_image = "xocean_brain_skeleton.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:brain_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:brain_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:skeleton_brain"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:brain_skeleton"}) + end, +}) +minetest.register_node("xocean:tube_block", { + description = "Tube Coral Block", + tiles = {"xocean_coral_tube.png"}, + groups = {cracky = 3}, + drop = "xocean:tube_skeleton", + sounds = default.node_sound_stone_defaults(), +}) +minetest.override_item("default:coral_cyan", { + description = "Tube Coral", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_tube.png"}, + special_tiles = {{name = "xocean_tube.png", tileable_vertical = true}}, + inventory_image = "xocean_tube.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + drop = "xocean:tube_skeleton", + node_dig_prediction = "xocean:tube_block", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:tube_block" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "default:cyan_pink"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:tube_block"}) + end, +}) +minetest.register_node("xocean:tube_skeleton", { + description = "Tube Coral Skeleton", + tiles = {"xocean_coral_tube_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:tube_bubble", { + description = "Tube Coral Skeleton", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_tube_skeleton.png"}, + special_tiles = {{name = "xocean_tube_skeleton.png", tileable_vertical = true}}, + inventory_image = "xocean_tube_skeleton.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:tube_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:tube_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:skeleton_tube"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:tube_skeleton"}) + end, +}) +minetest.register_node("xocean:bubble_block", { + description = "Bubble Coral Block", + tiles = {"xocean_coral_bubble.png"}, + groups = {cracky = 3}, + drop = "xocean:bubble_skeleton", + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:bubble", { + description = "Bubble Coral", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_bubble.png"}, + special_tiles = {{name = "xocean_bubble.png", tileable_vertical = true}}, + inventory_image = "xocean_bubble.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:bubble_block", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:bubble_block" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:bubble"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:bubble_block"}) + end, +}) +minetest.register_node("xocean:bubble_skeleton", { + description = "Bubble Coral Skeleton Block", + tiles = {"xocean_coral_bubble_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:skeleton_bubble", { + description = "Bubble Coral Skeleton", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_bubble_skeleton.png"}, + special_tiles = {{name = "xocean_bubble_skeleton.png", tileable_vertical = true}}, + inventory_image = "xocean_bubble_skeleton.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + drop = "xocean:skeleton_bubble", + node_dig_prediction = "xocean:bubble_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:bubble_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:skeleton_bubble"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:bubble_skeleton"}) + end, +}) +minetest.override_item("default:coral_brown", { + description = "Horn Coral Block", + tiles = {"xocean_coral_horn.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:horn", { + description = "Horn Coral", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_horn.png"}, + special_tiles = {{name = "xocean_horn.png", tileable_vertical = true}}, + inventory_image = "xocean_horn.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:horn_block", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:horn_block" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:horn"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:horn_block"}) + end, +}) +minetest.override_item("default:coral_skeleton", { + description = "Horn Coral Skeleton Block", + tiles = {"xocean_coral_horn_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:skeleton_horn", { + description = "Horn Coral Skeleton", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_horn_skeleton.png"}, + special_tiles = {{name = "xocean_horn_skeleton.png", tileable_vertical = true}}, + inventory_image = "xocean_horn_skeleton.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + drop = "xocean:skeleton:horn", + node_dig_prediction = "xocean:horn_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:horn_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:skeleton_horn"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:horn_skeleton"}) + end, +}) +minetest.register_node("xocean:fire", { + description = "Fire Coral", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_fire.png"}, + special_tiles = {{name = "xocean_fire.png", tileable_vertical = true}}, + inventory_image = "xocean_fire.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + drop = "xocean:fire_skeleton", + node_dig_prediction = "xocean:fire_block", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:fire_block" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:fire"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:fire_block"}) + end, +}) +minetest.override_item("default:coral_orange", { + description = "Fire Coral Block", + tiles = {"xocean_coral_fire.png"}, + groups = {cracky = 3}, + drop = "xocean:fire_skeleton", + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("xocean:skeleton_fire", { + description = "Fire Coral Skeleton", + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"xocean_coral_fire_skeleton.png"}, + special_tiles = {{name = "xocean_fire_skeleton.png", tileable_vertical = true}}, + inventory_image = "xocean_fire_skeleton.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "xocean:fire_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + + if minetest.get_node(pos_under).name ~= "xocean:fire_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + minetest.set_node(pos_under, {name = "xocean:skeleton_fire"}) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "xocean:fire_skeleton"}) + end, +}) +---Mapgen +minetest.register_decoration({ + name = "xocean:brain", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.0001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/brain.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:horn", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.0001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/horn.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:bubble", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.0001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/bubble.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:tube", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.0001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/tube.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:fire", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.0001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/fire.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:brain2", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 28, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/brain2.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:horn2", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 28, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/horn2.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:bubble2", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 28, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/bubble2.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:tube2", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 28, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/tube2.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:fire2", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 2, + noise_params = { + offset = 0.0001, + scale = 0.001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 12, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/fire2.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:tube3", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 1 , + noise_params = { + offset = 0.0001, + scale = 0.000001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 20, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/tube3.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:brain3", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 1, + noise_params = { + offset = 0.0001, + scale = 0.000001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 25, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -10, + y_min = -40, + flags = "force_placement", + schematic = "/schems/brain3.mts", + param2 = 48, + param2_max = 96, + }) +minetest.register_decoration({ + name = "xocean:brain4", + deco_type = "schematic", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 1, + noise_params = { + offset = 0.0001, + scale = 0.0000001, + spread = {x = 100000, y = 100000, z = 100000}, + seed = 87112, + octaves = 25, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -15, + y_min = -40, + flags = "force_placement", + schematic = "/schems/brain4.mts", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:seagrass", + deco_type = "simple", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 0.4, + spread = {x = 200, y = 200, z = 200}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:seagrass", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:fire_plant_dead", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:skeleton_fire", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:horn_plant_dead", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:skeleton_horn", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:bubble_plant_skeleton", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:skeleton_bubble", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:brain_plant_skeleton", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:skeleton_brain", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:tube_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:skeleton_tube", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:fire_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:fire", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:horn_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:horn", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:bubble_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "xocean:bubble", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:brain_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "default:coral_pink", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:tube_plant", + deco_type = "simple", + place_on = {"xocean:brain_block","xocean:tube_block","default:coral_orange","default:coral_brown","xocean:bubble_block"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 1.0, + spread = {x = 20, y = 20, z = 20}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -50, + flags = "force_placement", + decoration = "default:coral_cyan", + param2 = 48, + param2_max = 96, + }) + minetest.register_decoration({ + name = "xocean:pickle", + deco_type = "simple", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 0.04, + spread = {x = 200, y = 200, z = 200}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -8, + y_min = -50, + flags = "force_placement", + decoration = "xocean:pickle", + param2 = 48, + param2_max = 96, + }) +---Mobs +if minetest.get_modpath("mobs") then +local l_water_level = minetest.setting_get("water_level") - 2 + mobs:register_mob("xocean:dolphin", { + type = "animal", + attack_type = "dogfight", + damage = 1, + visual_size = {x = 15, y = 15, z= 15}, + reach = 3, + hp_min = 20, + hp_max = 20, + armor = 100, + collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75}, + visual = "mesh", + mesh = "dolphin.b3d", + textures = { + {"mobs_dolphin.png"} + }, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 2, max = 4}, + }, + makes_footstep_sound = false, + walk_velocity = 4, + run_velocity = 6, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + rotate = 90, + view_range = 30, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 25, + stand_start = 40, + stand_end = 100, + walk_start = 40, + walk_end = 100, + run_start = 40, + run_end = 100, + }, + }) + mobs:spawn_specific("xocean:dolphin", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 5, 20, 30, 10000, 2, -31000, l_water_level) + mobs:register_egg("xocean:dolphin", "Dolphin", "xocean_stone.png", 1) + + mobs:register_mob("xocean:fish", { + type = "animal", + hp_min = 5, + hp_max = 5, + armor = 100, + visual_size = {x = 2, y = 2, z= 2}, + collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25}, + visual = "mesh", + mesh = "fishy.b3d", + textures = { + {"mobs_fishy.png"}, + {"mobs_fishy1.png"}, + {"mobs_fishy2.png"}, + {"mobs_fishy3.png"} + }, + drops = { + {name = "xocean:fish_edible", chance = 1, min = 1, max = 1}, + }, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 3, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 30, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 25, + stand_start = 40, + stand_end = 100, + walk_start = 40, + walk_end = 100, + run_start = 40, + run_end = 100, + }, + }) + mobs:spawn_specific("xocean:fish", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level) + mobs:register_egg("xocean:fish", "Tropical Fish (Kob)", "xocean_fish.png", 0) +mobs:register_mob("xocean:fish2", { + type = "animal", + hp_min = 5, + hp_max = 5, + armor = 100, + visual_size = {x = 2, y = 2, z= 2}, + collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25}, + visual = "mesh", + mesh = "fishy.b3d", + textures = { + {"mobs_fishy4.png"}, + {"mobs_fishy5.png"}, + {"mobs_fishy6.png"} + }, + drops = { + {name = "xocean:fish_edible", chance = 2, min = 1, max = 2}, + }, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 3, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 30, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 25, + stand_start = 40, + stand_end = 100, + walk_start = 40, + walk_end = 100, + run_start = 40, + run_end = 100, + }, + }) + mobs:spawn_specific("xocean:fish2", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level) + mobs:register_egg("xocean:fish2", "Tropical Fish (SunStreak)", "xocean_fish2.png", 0) +mobs:register_mob("xocean:fish3", { + type = "animal", + hp_min = 5, + hp_max = 5, + armor = 100, + visual_size = {x = 2, y = 2, z= 2}, + collisionbox = {-0.25, -0.2, -0.25, 0.25, 0.2, 0.25}, + visual = "mesh", + mesh = "fishy.b3d", + textures = { + {"mobs_fishy7.png"}, + {"mobs_fishy8.png"}, + {"mobs_fishy9.png"} + }, + drops = { + {name = "xocean:fish_edible", chance = 2, min = 1, max = 2}, + }, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 3, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 30, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = { + speed_normal = 15, + speed_run = 25, + stand_start = 40, + stand_end = 100, + walk_start = 40, + walk_end = 100, + run_start = 40, + run_end = 100, + }, + }) + mobs:spawn_specific("xocean:fish3", {"default:water_source"}, {"default:water_flowing","default:water_source"}, 2, 20, 30, 10000, 5, -31000, l_water_level) + mobs:register_egg("xocean:fish3", "Tropical Fish (Dasher)", "xocean_fish3.png", 0) +end \ No newline at end of file diff --git a/models/dolphin.b3d b/models/dolphin.b3d new file mode 100644 index 0000000000000000000000000000000000000000..9318e53a0c1187dfb6d9a201585b6759dda40c28 GIT binary patch literal 24028 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 J?z!jN{{oUE<@Nvo literal 0 HcmV?d00001 diff --git a/schems/brain.mts b/schems/brain.mts new file mode 100644 index 0000000000000000000000000000000000000000..9866f52de74d0ea5062dfad7595cee2c0930fab6 GIT binary patch literal 106 zcmeYb3HD`RVPIuoXJD;|00w3To|M$I#L}D+tK!7G6b9zR%pwM%iu~l%#5}8{qQuO+ z_@tctV0+QHsH}^U}y{s GF986z0U}BO literal 0 HcmV?d00001 diff --git a/schems/brain2.mts b/schems/brain2.mts new file mode 100644 index 0000000000000000000000000000000000000000..23cc15a740ba10cc2ad4dad60d4c17ad6452e7dc GIT binary patch literal 101 zcmeYb3HD`RVPFNpdJte>X5dLlO-n4zDX}U}%u8WlPRuM~5UR*ePEE|SN-9ds%!^OT z$xqI%n3J5)!0g7RW{~2NnCQgPurk3ZDe}03e4aB{eOvG^fO>I597UfjKd=h(V|#KRGoq&nl@XF*7ed zDJMTUyJAjq0t2&~$cYvgB?TW0tRLVk(AW5#L}D+tMbH>)S~#}{L-T2R0g4n{N&WcJgcOl z#LT?-q@4WZYzF4U%%X}p$q5ZiZVD+035%3cj+|<~={m3W#@Qq68*d)(NMci-bH1bP kV&#fe8)hDDNs-?B_qapI597UK?KGtPb^6-iZ9MDElN&hU{1^| zVi2y#PfktDvq~yWO3F!%Ps+(p&aRk~oWQ{BrjVkhlZb?q( XA6p8zXFd$F-@X5dLlO-n4zDX}U}%u8WlPRuM~5U$8iPEE|SN-9lC%1Mn+ z%E?d8u9%aY(7^1*re=`hl9=ek(y%hYDQV%S&dZIN(uP(AJG(sUukfoRNO&+X`24kN F2LPH^BMSfk literal 0 HcmV?d00001 diff --git a/schems/fire.mts b/schems/fire.mts new file mode 100644 index 0000000000000000000000000000000000000000..c0a6e7d07e7a3bb28da81bfafd1e8df0a488a3a0 GIT binary patch literal 108 zcmeYb3HD`RVPIuoXJD;|00w3To|M$I#L}D+tK!7G6b9zR%pwL6m{4+lQDRO!kjP6< zt(cRX(7^1rNkMpq%6Snr6T4NKJ`qX5dLlO-n4zDX}U}%u8WlPRuM~5P=CL=NBdB!~==E^wf$u u$q5b2Zft4>DK3eLPAm;86P%I~FMCVN?uc<+V*iR=$bd(Mfx&N{T?YUcJRjo# literal 0 HcmV?d00001 diff --git a/schems/horn.mts b/schems/horn.mts new file mode 100644 index 0000000000000000000000000000000000000000..fd3aa02edd091c090b743ccf9d7e61159eff1440 GIT binary patch literal 107 zcmeYb3HD`RVPIuoXJD;|00w3To|M$I#L}D+tK!7G6b9zR%pwM1m{4+lQDRPfQc-?+ zUd5c`ga&4}O$x#@RL+a2nb@t;^oh8VxM{`&gBE}8?Gq&RzB+Ro@aQryGzNy30082K BBGdo? literal 0 HcmV?d00001 diff --git a/schems/horn2.mts b/schems/horn2.mts new file mode 100644 index 0000000000000000000000000000000000000000..79eb14efe2000dc17f9a8d989131e89207bb99a1 GIT binary patch literal 105 zcmeYb3HD`RVPFNpdJte>X5dLlO-n4zDX}U}%u8WlPRuM~5QYgQ=NBdB#3vQym*-W? yNls{Bc4JdBNO4I_bYf{(nc$SP@Y0c24%>St@cDe7_@@6?BMT2RCxf?!T^j(JZM>xQ&Njli%Q~=t%4haELSmSub(4d zg8_%O!snZHmHq-76oc0vGizR_$-)p6vSd>Q=i+qVgJB{S)=pD*3hv+gW$NeDYtz@w l`F!qW_WXkT9epciGQa;EB=xuK{zv8ymd|Re)SFsNIstxrWf}kg literal 0 HcmV?d00001 diff --git a/schems/sunken2.mts b/schems/sunken2.mts new file mode 100644 index 0000000000000000000000000000000000000000..23c1aac8f9669e21ce873e6fd9f17d12536f6b58 GIT binary patch literal 528 zcmeYb3HD`RVc=w7XW*@e00s^Qo|M$I#L}D+tK!7G6b3SCJNF9R+vUi33034L zrzYlE6{jY~=OpFdXO zR>`*mMC=U$%tC1;CF?#1R?uW}x~(cS!NZBd}P64Scm$L1o(D{YEj zDQKXm!m4!l;DbI~-YtI3_?^s8K%=VG7qu5Mf;^y~Q@-O~|K zHDA6KhR9uCaoGP=@s!O={(j*9y7Nw{t>V)yCrZt`tMBoA&)+?}WVz}7=eIZWS(ayP zvamk=J!T(S(}J=TGRh$T>blWV%(*c>xmWx=NgwMS}fYnvybTjvxUb$)i)PP z*FF2lDKLM+0w>pZPrO)G9a~wYwBqsQz0Kz5LhnwtaxXcatm}5b`|IuthT(P}jgA!O feC4}8ZBO9){gdAR`IMD(^Yg@DKlueG53v9Mbx`>C literal 0 HcmV?d00001 diff --git a/schems/sunken3.mts b/schems/sunken3.mts new file mode 100644 index 0000000000000000000000000000000000000000..4e703bc384a571e3ab5ce1757fabee91c57c0112 GIT binary patch literal 302 zcmeYb3HD`RVc=n4XW*%a00uS&k(AW5#L}D+tMbH>)S~#}{L-T2R0ctqXmMg*N^wbk zUMd4~VrCJ8IEHw9QciwyHiH<3L{d>EP+X`YKRGoq&#E{zF+L|T4`@YR#hkZOx%nCt zINE~0+=<<(Jms>O-Hd08b3Sg~>2z4%AWBTV(M|cK&w`J>rwfC=nbX5dLlO-n4zDX}U}%u8WlPRuM~5Uj{gPEE|SDk)7$jZezS zPtLBGlbq1N?8c^Mkm8b<=)}^nGQlayFzKRa51-nqmkO8UzcO=5un93R_*vO?008ko BA1?p^ literal 0 HcmV?d00001 diff --git a/schems/tube3.mts b/schems/tube3.mts new file mode 100644 index 0000000000000000000000000000000000000000..43c817f0a78b8e3ca1e5ecc04340cdf47ab9b896 GIT binary patch literal 97 zcmeYb3HD`RVPIxpXJD>}03e4aB{eOvG^fO>I597UL9ik}IW;lQs-!e2H9jdPKRKI$ wIWe=SVoq`b1GAgT36^6kR5%u`N^w%2Sh`?#=UEejHOqMn0@xU?ES8@P0Ge?iiU0rr literal 0 HcmV?d00001 diff --git a/textures/mobs_dolphin.png b/textures/mobs_dolphin.png new file mode 100644 index 0000000000000000000000000000000000000000..f9de1eec7b3808cd752a76637cf74904b066888b GIT binary patch literal 4577 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 LNkvXXu0mjfq#Eoq literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy.png b/textures/mobs_fishy.png new file mode 100644 index 0000000000000000000000000000000000000000..248cd24d0584cffc44020d6b85615496305f8e52 GIT binary patch literal 1492 zcmV;_1uOcAP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1!+k{K~z{rrB~Z- zBSjFc?z!4o=YkX)agpF(ctBbN@B9gfFG`S*!UGcG6Zi`rAjv9mHi@U_+MHA4cI?3! zOYBK1Gt<@Gb+7K2KfnLN3-DaGa+E~knvS1}Jhu7_V@>DfO&aMt$H)&)@?vY0H^dlE z71$O^3k-y`r5x$9OwZw;4qE4r6f?(HA>&h6oA~+wa6ao_$|+vUE*9 zVESYV^i;JQB3#|*IAa@y%FDQtl``+zWscSr+>+ajM-R7CW+tu zqDap2SW?XH28t0>n0T#1h}U?%8m}N|*$3oBFcE|khbm+nL!L?q77r07?b~QLf2=~r zcsnCQMZ$L&+s6+WtB^6CEy}8LRaI|OQI;jfYgd*+3W-VD=Z!-ZGR8yne2NrLl*A|* zV^d@Bj=n%T6yrk`GRo`!MopimNHk-ytLY3DsRAfZVl0kllLVz~Q6+sPZ7W9{XE9dx zMhyA3Xdu*gF$EeM>lof6o;|2ceCgQ#jxjNs1NUW%4!ABcNQLYBcffa8;M)(1@u9V7 z#a33B;Nfa?!-h&gYR@I`{UI?vxYj^c7U4X=*u?rcGp*z)VwxczRT+$%MiO7kyGQ5# zekjDbQoj22R=)Y;32m^F9F}!;C8!+v`u9iq?zeZcTsiq`S;!3SbBb2a{MZM(W$Ok= z0Zo}4iV-D4gx{+5xkOMbPNZ!bsS#TzXwk4DPgC4H5@~SSHQX+mT zM3{?<3qPGs<@oqmo~=^C_;75CN|TBM9Uq^_ zY&MhpS@SH+$2dlY&^Vz&^F#mj(tL3~?@JR(Yr+??AbZ8;ngv9D; zmq#*eOiEAya4^oq85Dy7$PIzjK7kjaOqwWH_Xkkm@J3`VFE9OKvDnnVmJH%aS}vE8 z=di#zEhm06=8O3`yaY?IInRn2@+XGZhyruzHRlSs$NW!z`9YfyJwOD@Hy-e?w0wTt zSj&=(rPCw|R&yeWdE(OvG9T{jU|9kSVSR+L26a=yI<*+aqzDO3iqHVK_O%<)CI>iK z%Wj1he9~WDGZyhW6uJg%I9|UC`)VaQHw)u|R8?9D;yJ-grzhZrjJ*I)$&Ns8^m*tc)jn`~da5;la&jUq zN`~=gGhzJWIF_O)lx}Wr5F(K|`alhLv*Z%+Gt47ObjX^a1h~)b?X7%y^`k1w8#gb# zK`=pYY^s30fcbEgr>a|B(x9=eZijJr!;`^-L62ut|s{R8&v zl^Ht?&ChQ?^$XN>19!4t^DNM~A{VGF$8kf!SJGAPr!XWf)p z@qmALRyF!V4uzo<|M%eaKX@Q0U{l7qt0jeiimewG<60(_$K?aOBy`9%v7a#E)5w$% uRHEsWFs|&{mM&l?avUe&y&OLcMg9d4smbl~Vh|eu0000IQ literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy1.png b/textures/mobs_fishy1.png new file mode 100644 index 0000000000000000000000000000000000000000..76613678e3e634c57b2d59d9bf734b5e94dc346c GIT binary patch literal 858 zcmV-g1Eu_lP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0`EygK~zXf?Nz~Y z(=ZT~WXq0|452X0z!&s~IP(MC_z`YgI59Bg$cf?5GXqCBaVgAjprwa)rcL6;u`ThQ zBqzaflj%%z>#J&O<<;BWw^A#o?>>rMLWTFva2H@J*klzY!MY8YdLCvD>UP-y5c&~J z|JnsYq+sm~cLBCSwN6zFR!XbfkTNXY5SxxEc=@UghYLpYCP4PrO2piS6o%A$Lxz6dQiLWV+NP!zYzU+3YWbmY0*!&u zicr-EjG|1dvIRP0$gB5Wx-%4J@=Doq* ztQZF+aY1-XTpujmn4Rh9Frdid6a=teN0H~H?W*!~u=@#|dCe9+$Y)Vf7uW--luWa* z;J}MEpV=aZGGcrtlAcTl^pQNGR3?BuU>k<_PphwC?SG&Lxx2T1tb%_jNHu)GB-6~W zpQJY9^Uzx%CMKHdp`Uj`UcCJ@NPDO^=<5r%wlqPvUw==Y>^+3yqio<{907*qoM6N<$g4~;k)c^nh literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy2.png b/textures/mobs_fishy2.png new file mode 100644 index 0000000000000000000000000000000000000000..03745794b615c25b097ced0665c7b6de57cae6ce GIT binary patch literal 774 zcmV+h1Nr=kP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0-H%hK~zXf?UXxj z6G0HiclXYBXU9?yQV<9!MH<8hfEr3lQsm1~QKjW0fDl5IG|(WSAd%1z$@25gcf0&& zW_=HPohSlRAbwt-cW39ZGqY!1y?v~9iSfTX<9~o_kpTLSjt&U0F8Xack#<@l3iGct zd58Rs0M1W?)HlLkiW`Ff+f8N1IU4oyX1MJos=W(M3{2{AEn2$|hcdOrJ((~LTm0Mg z0wGIG@d zj%l)iQ3W)h?PDU7RWj~#y#FrO@6GWLmSveyaQ^bq0*ynitjk}fHvq!LF*I4J9*$pL8u2P0?p)LUEmCbf;(*D z6Kn%?f<3?!Nl*_eOD}_Lw1H6M?17pQRD-!3F@RFP07k8Cn3McSLI3~&07*qoM6N<$ Ef`Q;&Jpcdz literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy3.png b/textures/mobs_fishy3.png new file mode 100644 index 0000000000000000000000000000000000000000..ea518c6213605d712ff68967ad98bacc380e108a GIT binary patch literal 868 zcmV-q1DpJbP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0{KZqK~zXfot4Xu z(=Zf<yTRBu)6vC63diY0EFy^*KI1 zcRS(7{rBv8G)=?2TCI#+KyH6++a4601T5ONv#nWl0$(pf44~bVs$Kz$rm4XxHKpLZ z`#=ojd0rF+@hVCNWC;1?ZZ5!6ghtFL0s|5UagwzOoC297VkdgQjINmhw9E{GU{=ZF zEgN<1B~ug5L^bJ!shY(A+$B_1b*dQRLY|Y>G*IP{g2G5o(GgHbopBKDR(brK_LUV4 zeNOl2nG(?Po(3olgx;=e@o~LgiSbebiTBFcAB}R5N47 zwgBWb6_;Q*L!t20RL_?5|9}C}WvQo}%+@w6Odc+#fG$)E`=3 z+VwU%o=xSGODBAfU~=XXa3r20In5+>B47qm?GZC(itN#b(}GZB6?wN8-gybqc!4<; z$B6Ut)&9-f54J`rd+*+Ve7)ZvvW-1H%z7k3k`YsM9(mjR{`1!fiKcpZ_(fBiF|i=U z7p46WgwJj>`L>nZntY1eD(u}MtNw9o$Vse!6>|31G&=tkzB3ejCMtOb%ETcc%#Cn zyRT^t2Ivu~KuryUmSC<1Ce~E9&!4iucOu|6$CqX~0)s``4%J}Mual)fLMGDWonNkj zd^jKL>d+jX>~_2}zA*;*kxzWFoz3BL1pdAfLkOv(BS@!-*wEi}2AFltRG`01)w2JyO7KGfR<>ez@go4HXQSfF%Sb` uwR3umGhKu`l4AKr68d}@CSS1xS@sXZV(He8NQ0>W0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0_;gdK~zXfrIpQ! z6fqFTyVEnnUK9_$iTD6|5K(*uj~;v|!Gjl1vLFbeD~LDu;>mXqb}zE4Gi|rO%0Ee` zKW9e&gzi+OQdOysr2O*vLvcLny5_rDtwb)s>DM&P9}ji{CQZ|7X%ej=%$H#X&@QE3 zuYpNj@4%dzwPC;ezzjI&s;c6=9%}|nnjh5j2tg$> zglG)%jDu)b=J9h}S4tZC0v!>VcA()}@)W&o+u-A7v%wwsRF;;GLeBth5)IAK>uZss zGT52psgFWuK=pv$K>HAfSuC?a9D{BTiORJTqA>eEV8DXzYpWMx+~+{&-@Y>f%R@N_ zf$jtTKo15i4j4cqn`a!KsL@HtdREh|lhTYe0k%mj(DU#$vCfiL(h@cTIfGngs+MrB z^Dk>U<8uOw=7J55>`%}v`$3nC!Vnux`^6h0Rp*>cRcyTzcEbl&241v}Me~c9%c@== zS@v@$d>%Y}a{JcJr_Y|F3zPc7fA#Xk@5>*rPfvZH+cj)k0&M%zsdKod{&{t+IodS= z7Z;bROKWtCp~XE8LwWZ84L^HlMj_S-uC7flcLg%TQ!`98jPMcvB&4IKZ3p_)0=fBSZuL%`2 zOoKQk>!p)S5=$g9tSaaT<9^Qo?;;~mBM>kJZJ$g}36FWY86Ba>hqyo_dvj7lZIno4 z_)-Ou#364lY@E%(KZE$_B^T*z8e4%OE)Yp9D?V*ImPsTsC=pZW<-lJocB;VWgB#RB hyidmZYI3zG{sPR2`#-~fKG6UG002ovPDHLkV1kNIc3c1e literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy5.png b/textures/mobs_fishy5.png new file mode 100644 index 0000000000000000000000000000000000000000..22617cac6e3be9ac18d38c47e8d808ae48b93da6 GIT binary patch literal 1320 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 literal 0 HcmV?d00001 diff --git a/textures/mobs_fishy8.png b/textures/mobs_fishy8.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea29c886ea63f8c5c99d1cefc39465e0dbf6058 GIT binary patch literal 755 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 literal 0 HcmV?d00001 diff --git a/textures/xocean_bubble_skeleton.png b/textures/xocean_bubble_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..2402f6b39aefb020330a269f549e2407749b023a GIT binary patch literal 384 zcmV-`0e}99P)pGGD$>1R5(xVQA=)xFbs4cJV1hX3^o*a8*apXI2<4(j#0{|{L+k3 z5M8`=H?K`t`!BvrNCHWkrV7oNgaR7P3SHMdqbT~s eFGlG1Rr>+Y5~dZVh?vFz0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0>w#0K~y+T4baJU z+f)Dm&?o6>mSs&IPPp{Jz>I5ctGq_JbigKW+6 z)6-;$-cPv1@9(a7k+;mPwKG*!mqgL=yxI7}*_Y3q)GY~;BEXT>!x*`iwOic7{XYET z{a@B{#WB#R8_aQiF`N0}?y%bCY|1jMHJ{#bE<|B-c;?}RI(_}hildSeDzYxBdX#uL zI|vlf>kjy;002-_S(BTxQ8O2_)%+fw^!m|ZzWg|*CDEK-H!lWSRklOVckMilaC`v1 zdjR(ogq+?GD>8|2iuR#YtlpDz;%kUAPF}f z)K3InK%0lAp%X<3ilTkgCIOKbhyGwF$)fq`8ghKC)rj_pZ1o@AOz)tgbe}wOnJLjYCKK}DQ ziz7jnK^}VuyQv!#0X6#RXF+fKt9xg?bey$7vsnr3jpql!#q$@RGwjXg?)K*Ci*K$! zjf*Uy`WMe^dneYKie5{cpdvSnsxApESC?4{Ds2O1q*!as#~*Ch%o0pK9eppVS`_&4 z=I-T>KkSnfPz=Y)pI?Iz#`KR zTy02(X9NKrwHkI5Tf3b*nK~$?iiBaAHt3S)1!`N9Qa5Vdc$XVB*K^ zQ<^0IyquL69F|wASTAdlUJWXFZvuFd<9?3 zgNd&|q9$rk#D6IiER?ns+;8eOi>Y(j?sj(f_kAjIlk&yLA)hh$gEocK2;o<}9yPM6#5Htn`rbbWP00;dJ@Idxv1GdJst zR-urP$+7#|<8Pr7W>F;BebVKuujaF{%N3e^k64O85)g%H(sSqiUpYEWV)lVO zI6Sf$D@#rmHfU{;qmeGblN7p~zB8mSOsav{X*N=9%t5f^0VL>hu(?z$agsNjB%{LK zs!_eZ!4!t7J+L4Lvtp`{WJ=NgwFg8`9ms z(X1uyyI-rbHy~Y-1A_azdrmTiNpKe>LihuRVo~K$)m>cxIsG6`Ow7Vo&z8n->GMV| cp0+OM2Nuf~R)1e`RsaA107*qoM6N<$f>jRk_W%F@ literal 0 HcmV?d00001 diff --git a/textures/xocean_cobble.png b/textures/xocean_cobble.png new file mode 100644 index 0000000000000000000000000000000000000000..089dff14f85c0292c648f944f2b8005c80754fb3 GIT binary patch literal 891 zcmV->1BCpEP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0}x3>K~y+T1;NX6 z6LkOp;NAT8;qGR;Y1*dEHi5K-K8DbyFkd}*b zfCtAT!-yaihe#4Cp|xpVrET5`n`D#h?r*ct_j#z)-l7(H*Y)Mo}b|uilP|YJ+^-9hKD8YMV@y$ZGL2kaWZq`?ov5d6NP@? z`r_*4%Ki)V%b$KuWJ`C~*Ik$md%arWxKJ01N10|z zu=VUe9C2=b`Vog&jamatuU^Sl>pPjlywC)ev9hu{$kG8H@AG=osca_SfD-)iyKh|- zUT=2&J|6hr3L_3cTguYn*#U;387EFrrj5E-Mz{L9jed6HeTu+$vN^YVNHq-1bXbdv z6VMu7K7UcJcOO4|l-M@%<&vQF5d`7bfnHBbr&5}3L0QId41n3-?1kXuX+NgxID)am z&Oq?gsLvy-+8Bv>SVofN zeXA_AOv?gafBypm?8HHyd;^UnlF`WSVX6wD#rDxr&)ArkS4Htm!2j~7EHs6+YZpQI z*5^ZmuEXMMq16?I&Np}NT)MDuIlMB+4W{;!spQ_!D3224Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0(eP8K~y+T6_U$t z97Pm{>zulE^<}ze?2KbM!m=%-Bn#H8@(Nk8Cl3*xh&KQswum)Chz$!8B%C-n#FBn^0|Cc&DT_mc8F?8 zDIrV&a;z2YOxiQO{#wCxt6im)8dK(dzWpmT=vqr4T znLWJg9me2daorKjh9J~{J;;j9o>BoEU;jEQO&epj)85($Qhr|^zTU(#k z+2?A-O#ik^DRgT8-yluEK*335$!8J!#6Dg`aFBL0#3=Wu=D*yH`KQPhQl- z>I`+so4KPby22mB+qZXxDD)u-MgZaRt98;A`tN=rz|6*~M?Be-60nL*x5MtEHV`u* zQa}aRbxb?aJzwDF_r1R#slpjDJ=nQ>w;6Vukr(NrV~ZtdmS%TGR2F$NY9GKf<|Ia|Q)(=zs*w0CkT+jpseg@k- VXk>*bf&Bmg002ovPDHLkV1oEsS5W`} literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_brain_skeleton.png b/textures/xocean_coral_brain_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..37b110e7b8c353e2b618a52a7e2fd37fb9f1845c GIT binary patch literal 719 zcmV;=0xpHfk{L`R5(vHliNyaVHAajYp+Z@SY`){4pvr>1a(mt(F^nny-2tF zMS7Ts2)YRhqQuB3?5t^NTA6!(6Sg3_*81m|-xzbQ$nNfLXJBAJ@9*y#92``+Tvj|D z*V@{ej*pM^^75jwu`#t;Eu~T^WwTl3^Lf?me6*`eL2qxbK0iOb`1$!+!^6WaMnUE6 zP3d%6kB^V)>+4gcQc)xl(d+B0V%^;?9#BljQmLer72n?8YJGj(1+w$=UW6#Why_6) zns%GO=;)||cDwCGJOpWbdt04OM~8=p!Wv}NT20Ah(*HwKZ#29?yeSK*GeQ3YS_VCE~mh-DM0Y!<3mXkf+%6v;mF8{dU|?vb93YBj%a>oW@fx# zc6L@jKR<5q>+8!Y$bdi_Mi7?n@0Gv2^p4ePRsH?_Di(`sTM=~o`}_KjMS#dji zetxbHR1zgHGQbWC!YG&RAOuH8M^3?lA%yV8#)cC{_V)HVB+o7|Miz_RK(KIir3VWc zTYRuakX+YnH#Rpn^~VnW^+c@$A^zV1)|xLFVU1DK8Q)9-y0f!01$ex;xKPoS=j7zX z3!uRY_Q;6NOkikeNKIQPMp`HooHk@l7Zw&gJV@^D?zFnP>TeukB+nM|zHklx>FKG5 z2}zi?PNX|AG2wFumr;RxWf}0{8Nnii6*7Ye(SP4_YuCtf#E<|0002ovPDHLkV1f~G BO>qDK literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_bubble.png b/textures/xocean_coral_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..c8449608d39a5be27e6c4ff395eb437c4be6a665 GIT binary patch literal 662 zcmV;H0%`q;P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0xL;GK~y+T6_Uwv z(?AqOdmbg*asma#njIg(GFv{7ZFc+=1xb;V6U(w%>OtLHYbCX$JDm6E&##YlYblp6 zpYCg`gtV8_7?#KxyFcz~Bc*KT%R~sFgi0w`?;W8u)oq+-N~sXycH|%nq(^kBZ({v4MY^@2woi%GNP=%!A!YSG6COC%;n?p=Fm)c4tG3K}T zDWx3N(6-!lcAVzZ`9c{p+9)BM)%5Y(FUA==y;n-24;<#OzK_#o3Jl3o%#N>AR%ll!crR=@^aJK_J^lJdZX$8kM6|E%a9B@lcOUkdO@#*;_7(=D^asK`E z!Z>Be;h>a89wSBPEu$o+atZN9K}%5o`}+2JI)||CI>+t~a5FjPv?hd7QY>p;Qzn(b zopO#bV>_0du`lS&;EoC?YMdDkT`qXqYT2w&YfRp1r^UWE-rByic*9T>WwCCMxm*|E z>N^L-v=RI~O<~u0r;S57C2oK3e2%pM3)8Z$xx+@w_g11h9($-|~Yr~m)}07*qoM6N<$g77XV?f?J) literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_bubble_skeleton.png b/textures/xocean_coral_bubble_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..159c5e76741e18282e7683e6f7792ef87124c06e GIT binary patch literal 682 zcmV;b0#*HqP)pHTuDShR5(vPlgUmhK@^4$-HnVw7*rAvE<*@`g)H1@Sn?XYiVNR? zM{?_eg)xRf5RgC|Kn4N1^_@gJsdRVMsed|EuG`z&!*;us#bP1X*Vn=~&;9+qOs7+E zyWLW$RAjf`%WAolcDt?XmSssG5D>f3XxzNNzYD{%ZHYu8;`8}*(dBY!;m5~^q>@Pq zg+luMFPoKEEGEHVP^@0BCtqJ*a&mGa{pV+yOeXU4^P?cAr>FAy`KgQ)`~801xZmx> z=k+Rq^ZNR#8({kW{#GTh00Y<4 z<0vx^>r3MwAb{iXxXwR3Jc#pbWLK+IMMeQEJ0npuFse4@KWY5;4S3dgU#(U$8jX~s z-|vfEuh(xJleFIecsw3uvQ3!h=jSq;&9spB-gKeU?P@0=8IQ+uI2^<-6bd)UW^%LH zC>8BG0;?h88QBcN)^;NkwBOK*#i9Z+ zM_W+?b1s)tK-dYKwc&6m766f*pGPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0xL;GK~y+T6_V>t z8!-?@zZrYiySWnr6cvG5+CP2yzE4$EP$`Sv(kF~P{b_A0*d)t)C9DPg+AR`IMfj>BHLI8&z(qkN;UeHU z;&);$-MH_shW_W?e$3;nOCz5t0Zm4p@X1+#5sqW%j(iK%W}mhP$tem(2rid6DOOQu z6;JYk+V6<(_vis*=%TfU?ilYT@J+?LtU~bo++mTB?<#^D8Rj`(?S{4YrK@YVbad)z zP;u#LS|CGX4|oUZv~8sCDG5?5O_JxmhE6}Th90X}(?~1XF7RoAiN{h9ldYRXqL&4> z(Vh-EE9f-P>t4I4E0Dl$Aq>Ms!7Dj(%>O;{l;h>~JkTIe6~5M_w0wq`obR;dB_4}HW&L2oITM*si-07*qoM6N<$f-ny(wg3PC literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_fire_skeleton.png b/textures/xocean_coral_fire_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..09a029fa4471de35180599114881d911b00bbd6e GIT binary patch literal 708 zcmV;#0z3VQP)pHc1c7*R5(vPQ`t^pQ4lN+7mf`lkE&MkC;xUD3waE*=%UF+gPvHFo8e-;cys#US2fNmFHwK!RhHKUSD6a+wCwO zkCB!_%;P^6AIeT8lQ1i(o;f)|G!nu0_qQfwvsvxza=B2e)zFr1KCc(o*Vh;hhuCa3 z`W_4hVJv~oO(flJ7ZE9xN~LgcaDeG-hF-6SLZN`26t7mRa5x;A48td>i7JswfJ1Gm6CJUqnN z*%`{^veNU57C$H|mCFAHY+~%jC^S|s77KdVCNVC~og*bJQsM}S*y(g?Q7&sOTxbl= zozPf}qH!wZOPCaJE~;~1US4Ya`T1EVV%n{i@*y1l2#Q$zrVrxrxSEMb=tk0D9%&vQ zC$+Fel?jQCq}M~@E?Sx@vm=Eh1)7O@Te&Ms(TtmC4673Q-+mv<)e3!i(i0SsyqnFY zIy0S4qa%hQMNWlxq*yG%+KUi$+uhxr!lh7zt_BhWg#Sa2d5p0Ea}pHut`KgR5(v9lgV=1RuDx`KL7-0($qvN6;FyQS$Gq#vduDolCRAs zyHushWqFWIks=|IAPL}gE>w9d42|x-_a4}vzXi|D2m#hR__ht?jWZa*xED$F?hu`? z%fNE)yn7xA9iy%si$>}-{QWfot``aYG*YYEr&Wa~M#mvZ0vBT=??g6xBO|aXjK@Qb z{r~kga z-_4*eS6eCf>!?j+oJ?C3@Y9uZHF18KM@-3Fj{@(14E%gllEs*8LK2b(R~9^CXI#-Vb*ijhX&VbgUq;@8yh)39>eJb-*OSoz(y0rbse&J5f<#j)0hA?Cl3*_%1}zl-pF$>?~zMV&~@Q=$smGZQrTkBV>W0tv3q z0^1`L`zTryNk{~B+EVAt716h~CiNP&`e}l?54vzTC5kv9SHtbTZEC!|3{R9cE!r*| zm-~ckO(;smA~g#&5bjTBK8s8`jrfoHQ(InSw6M=*MAPWcY*(&T-4OrB=OL w3)gkR)e!DPYNoh0TK#e$L*-W|ZBvT;2aV%Nl&mkY`~Uy|07*qoM6N<$f>+d8y8r+H literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_horn_skeleton.png b/textures/xocean_coral_horn_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..358ef18855b4ff4b5951a76053f253d1aa9096e8 GIT binary patch literal 674 zcmV;T0$u%yP)pHR7pfZR5(vHli5zHK@fzC-yaYVL=h1s5)-^YO-Q^k`l>#SPvDg- z7Z{GLf`ALkBEp%k6FMObGu_qIRZZaj{(c<_g|xM`rMI^?b-P`8o~Ql&eeLb-+5LPz zSEJF;U@*}2^|i?7ZoOX1UoMw=e0&taLo^!IYPHhy^Roc~5DW&DJw8^%y$wer#dmhp z>-F^h{x1LN=}9~8;@BnB>vj3QZw2{$UfbK-`uh6P;`dkGPRD?0GU)d$|LW>W9yHVG zv!+eCf?7_j|t58rYZRzbI_Sl zTCO9H;c(a`cXWAqsa!6nQmJIXobT@Lba8QEd4=}HVwgBgvf_2|NEB#?}Cg+jsDAR5$}8wSJS&^D9qEE@p-0m*x0gG8T)4FCWD07*qo IM6N<$f?~Kr;s5{u literal 0 HcmV?d00001 diff --git a/textures/xocean_coral_tube.png b/textures/xocean_coral_tube.png new file mode 100644 index 0000000000000000000000000000000000000000..efd41d74cba23c82f50175086a58f272319bd5a1 GIT binary patch literal 740 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0(nV9K~y+TB~r_7 z(?ArR8QbF|PU19FiBj4S1hid1o2m~{ArK(g@WDt0x-V1+v8pJcw9rH)AFu-@=$ zzHu;eoao{hP^eoMiNt!DJ?DE{@yN~IQ=oM-IE+(=bD?2LQw#=WCpyJ?li zF2TFq6UQUi^@7bh_yeAp#W*M!54)KOHkXj=fDWuRJsVkqNqE>P@3pJlHv72{*O`h_ zz$y zp^chT`0-{=UD;)C44k9j6*8HdL9^zRmyW& z9}6vwQhKQMP+`XbwqO$PcTXVO{;evE1fd{pHM@d9MR5(vPQrT*1K@cqUsELZ^Q3w$t62%QMF>b^U@-KZ5alsWA z6v;yr5=BLWdfo3-!%2g9W~REky1ESceEw!On{m6{FhJ8Zc)eb< zS}kao%LUP2#jHR(MlUS8nFqr_JS=4AW%6YX~;pyoKUteFs z=I-te`~4mof$Q~Js>Nb4Nql*EL9^L}%jJT{v(v0kfOqX>SnW9 z6pKYTRgzy7`2GDAFllqvTrMX9Gg7IP+;e=5lu5l-tI6C1k47V*&Y;M<-A3}HZkPL2Pw`5ftVT2@AO z>`YCVY_(cNGy3AnEl^bg^x%5*h(@E*?X1S2N4SkZAb>)lAY0)2HBz6=W&)tnday9v z#)4!?5%tJqGN@Lo;#4CoOG-=*27{O@`V0!y>-A)WtrC&%bSn+TZ;nENHHX6?f+P|N z5l$C%Fc=7MqD*F0V~`Pz#h@=(K%7YW1oBX+R0Kc)+4Y}t8i7YOE9WJa!Tl5e=R_X* vsv|wmV(dmW_^tbdUCCC~tn_j^T~gpb`3GM&=ZYs$00000NkvXXu0mjfb4oWB literal 0 HcmV?d00001 diff --git a/textures/xocean_dried_kelp.png b/textures/xocean_dried_kelp.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae782354fb7ebf71a1271de227c0083d2bc7573 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!B3tpjv*HQPbb-PA2JX)s$ZYAwy(*Gi_hxE zU;EBxzNT)4b6nTVIxF4%FRkimo@~!CJ?`DpxJwu04dQ*9T_pEhSTO6yq?<)DJ*H2x z+>gDIuzhZLe{KJo+TDytytGe!?pd`;?LBj=#eurwpn@je_&kM22RHbiv(#EI`trwJ zR=uc5OZg+N7a!kw8WXg;>xV``ILxy=4qv|!S%pNcN!`+}N&m!8dy1p1!A)78&qol`;+0D&@&)Bpeg literal 0 HcmV?d00001 diff --git a/textures/xocean_fire.png b/textures/xocean_fire.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad92c1165c6454a3c808957bc76f8b193262ddb GIT binary patch literal 447 zcmV;w0YLtVP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0aQsuK~y+Ty^_C5 z!%!5)Pim?$m8!LI61ymZ* zDCp)7!oBzW`OcT*(!X+j(8$czQZnnWT+nAQ zjQEUc&C4fS+}>NUV)9Bh2_%T=`>ki2yWI$~lIK&`i#aZJa8eKuq+lssq_8&RkBCQG zFCY!_Cxlib$j;aEoB%gw%M|WGzdYbo1mk-CN3?J_oyVkxEkQMLQ!AjYqOhL$v~@rJ zCOXCru!)k4$}e7_8TRARK#0pkfS3r{S2%inbtY$q++;$`vg6ZgccF=iT12qZ1S!H4 p!5`fzI1_O>bMi0H^xf4MqAx=Kvj5nBynX-x002ovPDHLkV1l@X%0~bI literal 0 HcmV?d00001 diff --git a/textures/xocean_fire_skeleton.png b/textures/xocean_fire_skeleton.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1e2ea9ce4082ed288a8600c9ba442decf61aed GIT binary patch literal 420 zcmV;V0bBlwP)pGR!KxbR5(wil0j~RFc3w@b|L$oB2^Ly`(7YDO>>g;P`v<-E6!lT=M{>B)uID&nRAk&XwG$bw3IDJihF0wN{uq3uC-wp=CMPXPDWhHTESnsO398+En1=_1 z)=+>aNfI)~y7XCm_XtenPHPB=AxX;U$F&F?i!QdJPK=NFK zg)nWbN$D@2&j9nj3uRRaq;98PhAnzoucuJ8%OP}yIcTCbUYkZpsR*L*rlo00t5y1n z9q--7D1-W33oc|(-}lsY-RJC5yA9YrHj3J~Y!UwX82D~(x4$rcZTPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0a8gsK~y+TwUWO} z!$1_rzt#>a$sh(%vNX`C{TqaWi;K88ItA2C;+j7obad|QE`pN|6%<^8iQKqX<8gL>w8>VaYiS5uVB2=qUT-2zQ}iw; zh@uG8$n(6~Ml%gstycEd-($bi>EPvfi~Wt&27(}i7esX$)*OP6$ zf25EkiF2|nvvnMY_i`|0M#1Mp7w5KwIF7lv-G4@UvCC_!s$&0c1)8RDoUceN~w zebY4A5^-+?KbfvSb)oAzD;N%ka9x*co4l)pqA184eRGYo+XEPe!52DDFe zr5J&rF$RMHeBT$D>4hc1yoF9{Fd4gas_nyPt1%!h00000NkvXXu0mjf?QFg- literal 0 HcmV?d00001 diff --git a/textures/xocean_fish2.png b/textures/xocean_fish2.png new file mode 100644 index 0000000000000000000000000000000000000000..a9b0f41f72e4ec2745931bd3a44c30d6e6756306 GIT binary patch literal 419 zcmV;U0bKrxP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0XRuSK~y+TwUV)F zgg_96|BDBKD-I4UQ`qMj0(paU*V*_0!77Ch;6vD2ByEao(%1;W2RK`8B#jUi6&B7I zXR~YcRFWe3KxWw4`R5;2{0ooUZA)L5w!ZIET;xK;o~PZetxs#7cOodu5@8s&K@iLe zjRZ7JYb&p2BIi}=Xt%r z*lUNXs*ploJmdc54yI|MC<<}*&Eys4`0zI(o6@g9&>D{8AWc(o0x-sq=Q*E#Zl9Pq zpk`X*x6G~}9nkcj7_C6a*O1nUCHuszgW=w?d5MVwV)#=HIiLOq0G}O;sA&A(Coup3 N002ovPDHLkV1jWtwmkp< literal 0 HcmV?d00001 diff --git a/textures/xocean_fish3.png b/textures/xocean_fish3.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1005321af4abba6e5a5c22eab079c61731353e GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc4LY7Kjv*HQ$qP7lq-lJ=f9KAh|FXiB2E3xj zxMnOck!djbu*tC{^qdXLv+B61f7UpdZ z&rVP0u;W-DapBrEwqpvedifFuw=8@X$`-kFbwXKCkWlmD#mXV3EE^m$Ed&Gw8Ks*T zq$NL<{WKO45izLw^@UTbjX^{20P8>5hfSLd7*#43GKg4gPCJ`a@%b5V2#bW6eZ5i5 zpC5ubzyJRJF8S^K{qr9l9Aw^M$0Ocg(!9q}=fEr08Qc!rgqbwr7#Js*J2Y|>TX8%n yvg1f7W!$tsaaJKCP$ffEQ7dD~?Uf7?5)6i_-3HhH*S`k_CWEJ|pUXO@geCynqnH-} literal 0 HcmV?d00001 diff --git a/textures/xocean_fish_edible.png b/textures/xocean_fish_edible.png new file mode 100644 index 0000000000000000000000000000000000000000..83f0425aa8f858eefcada113e0b15e7771cf2ba3 GIT binary patch literal 623 zcmV-#0+9WQP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0t87!K~y+T#gI#A z6G0rtznPt6o86?bHjmcFLGTbMUVI!x5ei<~dht@wo@`Ni(1MrJo8Y-#tYA<~!772O z*Iq3sRPdk&6MTS(hmt03)RgR|`foQmL0#rf}MY}_dy@O0~%(i876x5 z?;;40n!d*rRfD@_;F*2N8hla+2R#z$;NsGH1KUXcaAL-Lcw)Oy8}!tRl@IT6%mDF?dD}TkEQ^TU5ps|)u#|M{)1l} zw8)Jl94eYJ-6@4JhFw?Yp!MvATmFJlcG^0=@OC>&M**Mf!rh*sgyp}gP=%bCnWyf< zNqDgo%Bv>luGct`FX}rAv}4R<4!?Nsyy@4fG`9Z$I4Ag8GPaIBD0cmofX}U=gK9?Q zjkH$9rnA>PxmfUD_d1NFGcnU4HYe_fYES*tVnOqpgVMhM`~YLcssi^9!H@s|002ov JPDHLkV1mm!CGP+L literal 0 HcmV?d00001 diff --git a/textures/xocean_grass.png b/textures/xocean_grass.png new file mode 100644 index 0000000000000000000000000000000000000000..68e1730b998e7e09b2f8102a1822a66ccf9068df GIT binary patch literal 398 zcmV;90df9`P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0V7F7K~y+TV;CmD zwbkxFlu14y#t>|3n4mNmz!cyz?9=y;_$@+~#ATRyjsAaRF%%ad+W=yN!0zfpjK~^J zwp?U{$$fE^0vZ6* z4C3I@404Teu@2lDEF8>G7SI5g^I%?pNrIdY(g@}N0ShNW6Ea|eIR|9W_t!t*u0VDs z$aZAIK)|uq8f+ocU!VrNQj7l}4a{sz3_?OeUByQcPQ4Dd9TrP4d9Vb?7LZGrfwqF^zdwO&c4n|^J_2n5 sxdvn_$l(3WN5KL5^TRI&NhJve02wE&n_6s6b^rhX07*qoM6N<$f=E)Hr~m)} literal 0 HcmV?d00001 diff --git a/textures/xocean_horn.png b/textures/xocean_horn.png new file mode 100644 index 0000000000000000000000000000000000000000..715736d155a2809762c5beb51cce28d2c8a5a2eb GIT binary patch literal 396 zcmV;70dxL|P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0U=35K~y+T&62T7 z13?gmXYWEFL_r@wtSq$C*23OaD}6@6%HGOHP_PnG22#jfASO5NH{RxEy_~flB-z>B z|DS(yC;y+D(^Bs*_O&gyq`ktb0j`dNZsN77uI2Wu+?rsz_^fOl?E4R{PYM%`%OIoJ zPGhxPt5hqM=MN3N1b63o+^6>@aCxz8r2bNw*G+r!LzaMOxKBnw9$q)Sbc}R3DP$Gr z!kE1*0rLVTL{ITOUJPbHY`Q0{xkEYaJ+m>_yDTVKjn1)tFG6UxIDKOxPAolx%2A<2Kpu9Mk42hxlB6-&Conif3 q3_BChy@^eWc#4qU#LLW^hpGDoI2^R5(w?lRb`uKn#V=Y6~b3X8?(k4mvmn*Wi-$G?Ym6bo>Yj z#LsNrNFI5XY}&Pi5@(*DKbr~Be}@Brs;d6vNYhk#o=0_EYb{4n6sjys=j+o1aU84r zzG+=o%Cbzc7N+Ak>h$}QLDzLok|d@OCa<7<-)Y-6UHTx%^V}3b(6+4u@va&d$C6N?Tq}oF7q?K_kC~uA08vH8r^Ya5%WCLd7gwk3`6UJ;rs`% WcEHnhDI>E000000@?kEP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0lP^=K~y+T#gZ{^ z(_j#WAIEl#)uw?4C?cuEK#@=v;OFoMKuRTGV1lI^s8S>b1Y#%x)c?YQSh}?mkTwtq zu1!OU+t2oKc0!<{v-qxWB_xpYMw2W-V!w_X+OkqK@tT^1}2 zv!UK_L7>w$#GO8m@2}-IzpHugk~nrrxs2M`GJa|JT}l>Pp`lWBX}=CM!MZiN`l*G* zi*ov0nVDIKM#F=>jIAIoo=(p&J*_U(#`c%Eh~MYn#^Sux=6ouyc9}sGrIDyBZ)yc-ne1=EjGG zI~U~mnJKLx?8b&#-NSQA#3ti&Hzj-@viuA9L&Xf5cjsiPs{JZF*fDs%hYU2k+Uzwj_KW=`bx7K6%!Mg+DT>G}5b0XU{IBMOb(A|u9@o3|Z zaIRqju}G4H$w^Ob3w!;Tufc%S6t{<}NU$C4km=gWy1ohDAx(7W?TF_O53inU9B}no oU2Of+a%HKo@}zSl{0{`*0a5v@>e{7dZvX%Q07*qoM6N<$g4oCcKL7v# literal 0 HcmV?d00001 diff --git a/textures/xocean_kelp_block.png b/textures/xocean_kelp_block.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce42d4c74b95241648ac2150a204680bcd3a605 GIT binary patch literal 450 zcmV;z0X_bSP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0ar;xK~y+TMUrcB z12G7Lc{pv)&=d4;?|-xG+Vm6bOxX;vF-QX2e}2EuDJyd~55L~Wtkz2WeX|G;d%yQN zhx3e#i0o`PGb)SPVyy+iB5L;WS`n-(m&d-hHMW4Qw@yr z9vvA|o|q?VY|s#H5%^<~f zU0Yme%Mm0L@stl$M|w)yx$C}fJKd(j%!dD!`Fg>w z2#xYcQmsn!Q1T*}fe;3S=Y)@zZEN}G7X@PIV`*WP836bGVWvQ5kEzQCUTP?i4z<^F slZljiLVY={Pnmj9|3G@RelshxKOA-5z1!iB_W%F@07*qoM6N<$f`b#negFUf literal 0 HcmV?d00001 diff --git a/textures/xocean_lantern.png b/textures/xocean_lantern.png new file mode 100644 index 0000000000000000000000000000000000000000..65ce08a124d987d62ed4bd6b26c7cc9b3ad50dd5 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!9SiZjv*HQy_3#*F&m1wo#*Xx$~Au^&-KX7 z{1;bVjY{Ahj;pB)*Duq)+hM&_X+_7PCX0`8MY%>LZdD1N%J)z9R46JiW7v29{+7S< zZ?>-6X8ddEmx2r1pNjGI|CS0?_n90P^)P4Swqb*$f_^Yt`I9Oik(O@BjS&{(e8tnl)z<{w?aP-ni=M zOD3~x`+43t@FYKGvf%yktGDr?JhL?O3DNy^&M}R=4@??nbF2L1e#1IJaR-ARv%|K3 zEJ-!z*ctb1WGFf+zu>Kcl=y*6hBNOK!XNN4v#~M6@mpw~dmfVwbSHzStDnm{r-UW| Db|YVZ literal 0 HcmV?d00001 diff --git a/textures/xocean_pillar.png b/textures/xocean_pillar.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cc629a8c1faf02ab329a1a728c9ff36610fa3b GIT binary patch literal 722 zcmV;@0xkWCP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0%u7?K~y+TEmBKw z(?AgRKD>S;&eL}6KA?z}wx|dRi4$D-Df}Cb{3s-@J#axpv{jop4<~V)#P+W3UB(r2 zux7{e&3rT8ps(M)*JWAkcYmj|>#IwoX;P`*f5u-vf11x{S(=U~(e;}P#@Hf`7n=kJ zzK<~yf=emmr-yu-WXVP&L_>hplI5H*260j3v@RinCzGeqC`e{grKETA(sCSvagl7I z>2w>%RVgaY!?V|f5T-NmF{Zi#pw@gwo`;&k$n5o9&vgcaiWk%{!XThJD+Q;F;YBpP z{rN*83*f zEzdLH3VgsIqs$J>Fix*-TD?9sE#Gx9p-DUk06G8g5im_LtL0eM!*;6;jk@j# z1kQ>Abm$B`h|Cs?x)k74Med)T!Fs5{h-qS{-IhvQFCtz z%_5R@-TXaz`%YxpA zu!$z%fG+>7(cg8CFRtN!;GyfRIj?5}`FwY%K%eaJ4>B@S@Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0z^qfK~y+TEmGTZ z(=ZT~R=!*5)ppX*LeuiVl;IzE;&=EkX80NkZ!K-1O>D<;Y)6TFkytfoWRG^GbI$IO z=+|%GHPK94htY^oQp`))Y$n&!Z7GS;T9aM7@qMm3#gpLS#~lQ*PY4;HFPCdX_N{b$ z=kfMlwxZW^y(;ve^q}z!Ch-r?w@*Rjx6tljC#eJg#|lo9iQM$7dC^JPx1_47An`74 zE~{k?aWsAT`Il-+fj<7a_dPxuhscBjVK}i)cF3|KL(jqMe?cTxey~ zo2J=ga3oieqNXOKr%2nR0<-b)lywXjEyyA-$5-*>DnTyHh;&z{D@veRtS|)ph$cJ^ z)G$!nL>SlEe}z59>7CtkZ4HLe0Gdo7#tXR=QZ!q5O?I?XM4|pNo$s4@`*CIf#%e;c zKMQ6NJ&^Ousio|m_GP{BFLU%B{h&6sxk$VRDLs7H9nAfDp=VK7a88 zj>PSzb3)qPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0vJg|K~y+T-BDd@ z6HyR7cRykivq>RMirTbR`r?C_1{zJl(pFF(ENws#{CE|AiXi?A5k!jBS0xWxC{nQE zi$$}>CebF{#w5F&O-Qm__fFd2=O6IEaPQ2WIdf(%{$orp>s;7@`%g#*=PyWRbY87K zgIRllEBAMaM8pzH+kX)Ll|UP27*8zW*vuucVy_>IDrnW#@jJ6GS-jRO@BAC08=lhj4XeW*!ky+)9<|Zto2Y`5+{c$_l(#UE&OlcEL~ts7 z6Ah~iCY;HO4@r90E{Owba16u2G=!4)R2r_*p}4Z=jn|P73aV5rKnliBFOUh0#8!yN zC_e!l1FY7eeJE8KJQjdxnfvqzVNIoccHwTG@4SCXRFh|~Bfs^S?h|J+o+KAejX?{j z;2{~PyRe#FQoudUrtOU|f4jiBpTmuM5pGlSxEDR5(x7Q%j1%KoqRR#4rA4p_uqNfrtxT=mk86H}(o{6vPn4 zPc)j?)Ag{$8D#eJAlT$pRad=dfPY`sd_MmeVmKTsHWrJ8^;b&!Q+Fx+wBHoOom>sr<%A`!D_XVcDLJ=NFoquB8%2pyt!B`id{x%G#c{$a=D;dtztYLE0S31y2K1wP1&FAw%+H5v(U02S|WHM34ma%BtHd?I~9*>6*(=-)VJhPbHl*1;$ z1khGSXXOfwsOR}wAQ7_J2+2G%lEVh=BuN6xvQRFUrNND`B7IJEuT&}tiF4t6h~cX3 z-EQ|%HaAe{dcDfS|1r10hjY=lAk>^!gynKcjI6g_uZuFv42hy#EuAu^o+!SaIDRMJ Xr3Ug$EAg2&00000NkvXXu0mjfEq>J3 literal 0 HcmV?d00001 -- 2.44.0