From 538ef0dba627dac5040f7ccd6c56b4158e960f52 Mon Sep 17 00:00:00 2001 From: Nathan Fritzler Date: Tue, 7 Jun 2022 19:27:38 -0600 Subject: [PATCH] Remove most of mcl_core --- mods/ENTITIES/mcl_dripping/init.lua | 1 - mods/ITEMS/mcl_core/crafting.lua | 560 --------- mods/ITEMS/mcl_core/craftitems.lua | 194 --- mods/ITEMS/mcl_core/functions.lua | 705 ----------- mods/ITEMS/mcl_core/init.lua | 8 - mods/ITEMS/mcl_core/nodes_base.lua | 1045 +---------------- mods/ITEMS/mcl_core/nodes_cactuscane.lua | 138 --- mods/ITEMS/mcl_core/nodes_climb.lua | 173 --- mods/ITEMS/mcl_core/nodes_glass.lua | 91 -- mods/ITEMS/mcl_core/nodes_liquid.lua | 245 ---- mods/ITEMS/mcl_core/nodes_misc.lua | 277 ----- mods/ITEMS/mcl_core/nodes_trees.lua | 275 ----- .../mcl_core/schematics/mcl_core_acacia_1.mts | Bin 258 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_2.mts | Bin 228 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_3.mts | Bin 206 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_4.mts | Bin 165 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_5.mts | Bin 250 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_6.mts | Bin 223 -> 0 bytes .../mcl_core/schematics/mcl_core_acacia_7.mts | Bin 208 -> 0 bytes .../schematics/mcl_core_acacia_weirdo.mts | Bin 161 -> 0 bytes .../mcl_core/schematics/mcl_core_birch.mts | Bin 149 -> 0 bytes .../schematics/mcl_core_birch_tall.mts | Bin 156 -> 0 bytes .../mcl_core/schematics/mcl_core_dark_oak.mts | Bin 215 -> 0 bytes .../mcl_core_jungle_bush_oak_leaves.mts | Bin 123 -> 0 bytes .../schematics/mcl_core_jungle_tree.mts | Bin 174 -> 0 bytes .../mcl_core_jungle_tree_huge_1.mts | Bin 500 -> 0 bytes .../mcl_core_jungle_tree_huge_2.mts | Bin 509 -> 0 bytes .../schematics/mcl_core_oak_balloon.mts | Bin 143 -> 0 bytes .../schematics/mcl_core_oak_classic.mts | Bin 151 -> 0 bytes .../schematics/mcl_core_oak_large_1.mts | Bin 233 -> 0 bytes .../schematics/mcl_core_oak_large_2.mts | Bin 309 -> 0 bytes .../schematics/mcl_core_oak_large_3.mts | Bin 207 -> 0 bytes .../schematics/mcl_core_oak_large_4.mts | Bin 248 -> 0 bytes .../schematics/mcl_core_oak_swamp.mts | Bin 174 -> 0 bytes .../mcl_core/schematics/mcl_core_oak_v6.mts | Bin 128 -> 0 bytes .../mcl_core/schematics/mcl_core_spruce_1.mts | Bin 208 -> 0 bytes .../mcl_core/schematics/mcl_core_spruce_2.mts | Bin 209 -> 0 bytes .../mcl_core/schematics/mcl_core_spruce_3.mts | Bin 231 -> 0 bytes .../mcl_core/schematics/mcl_core_spruce_4.mts | Bin 210 -> 0 bytes .../mcl_core/schematics/mcl_core_spruce_5.mts | Bin 165 -> 0 bytes .../schematics/mcl_core_spruce_huge_1.mts | Bin 282 -> 0 bytes .../schematics/mcl_core_spruce_huge_2.mts | Bin 227 -> 0 bytes .../schematics/mcl_core_spruce_huge_3.mts | Bin 270 -> 0 bytes .../schematics/mcl_core_spruce_huge_4.mts | Bin 295 -> 0 bytes .../schematics/mcl_core_spruce_huge_up_1.mts | Bin 240 -> 0 bytes .../schematics/mcl_core_spruce_huge_up_2.mts | Bin 344 -> 0 bytes .../schematics/mcl_core_spruce_huge_up_3.mts | Bin 227 -> 0 bytes .../schematics/mcl_core_spruce_lollipop.mts | Bin 121 -> 0 bytes .../schematics/mcl_core_spruce_matchstick.mts | Bin 128 -> 0 bytes .../schematics/mcl_core_spruce_tall.mts | Bin 199 -> 0 bytes .../mcl_core/sounds/slimenodes_dug.1.ogg | Bin 6218 -> 0 bytes .../mcl_core/sounds/slimenodes_place.1.ogg | Bin 8076 -> 0 bytes .../mcl_core/sounds/slimenodes_step.1.ogg | Bin 5969 -> 0 bytes .../mcl_core/sounds/slimenodes_step.2.ogg | Bin 5875 -> 0 bytes .../mcl_core/sounds/slimenodes_step.3.ogg | Bin 5775 -> 0 bytes .../mcl_core/sounds/slimenodes_step.4.ogg | Bin 6657 -> 0 bytes .../textures/default_acacia_leaves.png | Bin 214 -> 0 bytes .../textures/default_acacia_sapling.png | Bin 197 -> 0 bytes .../mcl_core/textures/default_acacia_tree.png | Bin 196 -> 0 bytes .../textures/default_acacia_tree_top.png | Bin 212 -> 0 bytes .../mcl_core/textures/default_acacia_wood.png | Bin 197 -> 0 bytes .../ITEMS/mcl_core/textures/default_apple.png | Bin 234 -> 0 bytes .../ITEMS/mcl_core/textures/default_brick.png | Bin 333 -> 0 bytes mods/ITEMS/mcl_core/textures/default_clay.png | Bin 191 -> 0 bytes .../mcl_core/textures/default_clay_brick.png | Bin 195 -> 0 bytes .../mcl_core/textures/default_clay_lump.png | Bin 188 -> 0 bytes .../mcl_core/textures/default_coal_block.png | Bin 170 -> 0 bytes .../mcl_core/textures/default_coal_lump.png | Bin 166 -> 0 bytes .../mcl_core/textures/default_diamond.png | Bin 167 -> 0 bytes .../textures/default_diamond_block.png | Bin 198 -> 0 bytes mods/ITEMS/mcl_core/textures/default_dirt.png | Bin 311 -> 0 bytes .../mcl_core/textures/default_dry_grass.png | Bin 171 -> 0 bytes .../textures/default_dry_grass_side.png | Bin 183 -> 0 bytes .../mcl_core/textures/default_dry_shrub.png | Bin 170 -> 0 bytes .../ITEMS/mcl_core/textures/default_flint.png | Bin 193 -> 0 bytes .../ITEMS/mcl_core/textures/default_glass.png | Bin 153 -> 0 bytes .../textures/default_glass_detail.png | Bin 120 -> 0 bytes .../mcl_core/textures/default_gold_block.png | Bin 202 -> 0 bytes .../mcl_core/textures/default_gold_ingot.png | Bin 193 -> 0 bytes .../mcl_core/textures/default_gravel.png | Bin 228 -> 0 bytes mods/ITEMS/mcl_core/textures/default_ice.png | Bin 194 -> 0 bytes .../textures/default_jungleleaves.png | Bin 232 -> 0 bytes .../textures/default_junglesapling.png | Bin 268 -> 0 bytes .../mcl_core/textures/default_jungletree.png | Bin 190 -> 0 bytes .../textures/default_jungletree_top.png | Bin 216 -> 0 bytes .../mcl_core/textures/default_junglewood.png | Bin 192 -> 0 bytes .../mcl_core/textures/default_ladder.png | Bin 186 -> 0 bytes .../default_lava_flowing_animated.png | Bin 248 -> 0 bytes .../textures/default_lava_source_animated.png | Bin 990 -> 0 bytes .../mcl_core/textures/default_leaves.png | Bin 226 -> 0 bytes .../mcl_core/textures/default_mossycobble.png | Bin 710 -> 0 bytes .../mcl_core/textures/default_obsidian.png | Bin 324 -> 0 bytes .../ITEMS/mcl_core/textures/default_paper.png | Bin 210 -> 0 bytes mods/ITEMS/mcl_core/textures/default_sand.png | Bin 315 -> 0 bytes .../mcl_core/textures/default_sapling.png | Bin 251 -> 0 bytes mods/ITEMS/mcl_core/textures/default_snow.png | Bin 171 -> 0 bytes .../mcl_core/textures/default_steel_block.png | Bin 206 -> 0 bytes .../mcl_core/textures/default_steel_ingot.png | Bin 199 -> 0 bytes .../ITEMS/mcl_core/textures/default_stick.png | Bin 164 -> 0 bytes .../ITEMS/mcl_core/textures/default_stone.png | Bin 191 -> 0 bytes .../mcl_core/textures/default_stone_brick.png | Bin 217 -> 0 bytes mods/ITEMS/mcl_core/textures/default_tree.png | Bin 211 -> 0 bytes .../mcl_core/textures/default_tree_top.png | Bin 221 -> 0 bytes .../default_water_flowing_animated.png | Bin 888 -> 0 bytes .../default_water_source_animated.png | Bin 438 -> 0 bytes mods/ITEMS/mcl_core/textures/default_wood.png | Bin 203 -> 0 bytes .../mcl_core/textures/mcl_core_andesite.png | Bin 209 -> 0 bytes .../textures/mcl_core_andesite_smooth.png | Bin 197 -> 0 bytes .../textures/mcl_core_apple_golden.png | Bin 246 -> 0 bytes .../mcl_core/textures/mcl_core_barrier.png | Bin 198 -> 0 bytes .../mcl_core/textures/mcl_core_bedrock.png | Bin 192 -> 0 bytes .../textures/mcl_core_bone_block_side.png | Bin 138 -> 0 bytes .../textures/mcl_core_bone_block_top.png | Bin 194 -> 0 bytes .../ITEMS/mcl_core/textures/mcl_core_bowl.png | Bin 178 -> 0 bytes .../textures/mcl_core_cactus_bottom.png | Bin 229 -> 0 bytes .../textures/mcl_core_cactus_side.png | Bin 243 -> 0 bytes .../mcl_core/textures/mcl_core_cactus_top.png | Bin 241 -> 0 bytes .../mcl_core/textures/mcl_core_charcoal.png | Bin 171 -> 0 bytes .../mcl_core/textures/mcl_core_coal_ore.png | Bin 253 -> 0 bytes .../textures/mcl_core_coarse_dirt.png | Bin 375 -> 0 bytes .../textures/mcl_core_diamond_ore.png | Bin 261 -> 0 bytes .../mcl_core/textures/mcl_core_diorite.png | Bin 194 -> 0 bytes .../textures/mcl_core_diorite_smooth.png | Bin 214 -> 0 bytes .../textures/mcl_core_dirt_podzol_side.png | Bin 300 -> 0 bytes .../textures/mcl_core_dirt_podzol_top.png | Bin 203 -> 0 bytes .../mcl_core/textures/mcl_core_emerald.png | Bin 149 -> 0 bytes .../textures/mcl_core_emerald_block.png | Bin 197 -> 0 bytes .../textures/mcl_core_emerald_ore.png | Bin 418 -> 0 bytes .../textures/mcl_core_frosted_ice_0.png | Bin 174 -> 0 bytes .../textures/mcl_core_frosted_ice_1.png | Bin 205 -> 0 bytes .../textures/mcl_core_frosted_ice_2.png | Bin 219 -> 0 bytes .../textures/mcl_core_frosted_ice_3.png | Bin 229 -> 0 bytes .../textures/mcl_core_glass_black.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_black_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_blue.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_blue_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_brown.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_brown_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_cyan.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_cyan_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_gray.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_gray_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_green.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_green_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_light_blue.png | Bin 106 -> 0 bytes .../mcl_core_glass_light_blue_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_lime.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_lime_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_magenta.png | Bin 106 -> 0 bytes .../mcl_core_glass_magenta_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_orange.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_orange_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_pink.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_pink_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_purple.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_purple_detail.png | Bin 113 -> 0 bytes .../mcl_core/textures/mcl_core_glass_red.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_red_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_silver.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_silver_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_white.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_white_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_glass_yellow.png | Bin 106 -> 0 bytes .../textures/mcl_core_glass_yellow_detail.png | Bin 113 -> 0 bytes .../textures/mcl_core_gold_nugget.png | Bin 151 -> 0 bytes .../mcl_core/textures/mcl_core_gold_ore.png | Bin 261 -> 0 bytes .../mcl_core/textures/mcl_core_granite.png | Bin 231 -> 0 bytes .../textures/mcl_core_granite_smooth.png | Bin 260 -> 0 bytes .../mcl_core_grass_block_side_overlay.png | Bin 296 -> 0 bytes .../textures/mcl_core_grass_path_side.png | Bin 371 -> 0 bytes .../textures/mcl_core_grass_path_top.png | Bin 332 -> 0 bytes .../textures/mcl_core_grass_side_snowed.png | Bin 294 -> 0 bytes .../mcl_core/textures/mcl_core_ice_packed.png | Bin 188 -> 0 bytes .../textures/mcl_core_iron_nugget.png | Bin 255 -> 0 bytes .../mcl_core/textures/mcl_core_iron_ore.png | Bin 255 -> 0 bytes .../textures/mcl_core_lapis_block.png | Bin 187 -> 0 bytes .../mcl_core/textures/mcl_core_lapis_ore.png | Bin 259 -> 0 bytes .../textures/mcl_core_leaves_big_oak.png | Bin 196 -> 0 bytes .../textures/mcl_core_leaves_birch.png | Bin 207 -> 0 bytes .../textures/mcl_core_leaves_spruce.png | Bin 207 -> 0 bytes .../textures/mcl_core_log_big_oak.png | Bin 204 -> 0 bytes .../textures/mcl_core_log_big_oak_top.png | Bin 214 -> 0 bytes .../mcl_core/textures/mcl_core_log_birch.png | Bin 200 -> 0 bytes .../textures/mcl_core_log_birch_top.png | Bin 228 -> 0 bytes .../mcl_core/textures/mcl_core_log_spruce.png | Bin 212 -> 0 bytes .../textures/mcl_core_log_spruce_top.png | Bin 225 -> 0 bytes .../textures/mcl_core_mycelium_side.png | Bin 354 -> 0 bytes .../textures/mcl_core_mycelium_top.png | Bin 347 -> 0 bytes .../mcl_core/textures/mcl_core_papyrus.png | Bin 1953 -> 0 bytes .../textures/mcl_core_planks_big_oak.png | Bin 168 -> 0 bytes .../textures/mcl_core_planks_birch.png | Bin 210 -> 0 bytes .../textures/mcl_core_planks_spruce.png | Bin 204 -> 0 bytes .../mcl_core/textures/mcl_core_red_sand.png | Bin 341 -> 0 bytes .../mcl_core_red_sandstone_bottom.png | Bin 350 -> 0 bytes .../mcl_core_red_sandstone_carved.png | Bin 357 -> 0 bytes .../mcl_core_red_sandstone_normal.png | Bin 355 -> 0 bytes .../mcl_core_red_sandstone_smooth.png | Bin 350 -> 0 bytes .../textures/mcl_core_red_sandstone_top.png | Bin 333 -> 0 bytes .../textures/mcl_core_redstone_ore.png | Bin 255 -> 0 bytes .../mcl_core/textures/mcl_core_reeds.png | Bin 251 -> 0 bytes .../textures/mcl_core_sandstone_bottom.png | Bin 330 -> 0 bytes .../textures/mcl_core_sandstone_carved.png | Bin 337 -> 0 bytes .../textures/mcl_core_sandstone_normal.png | Bin 338 -> 0 bytes .../textures/mcl_core_sandstone_smooth.png | Bin 330 -> 0 bytes .../textures/mcl_core_sandstone_top.png | Bin 318 -> 0 bytes .../textures/mcl_core_sapling_big_oak.png | Bin 209 -> 0 bytes .../textures/mcl_core_sapling_birch.png | Bin 203 -> 0 bytes .../textures/mcl_core_sapling_spruce.png | Bin 214 -> 0 bytes .../mcl_core/textures/mcl_core_slime.png | Bin 315 -> 0 bytes .../textures/mcl_core_stonebrick_carved.png | Bin 275 -> 0 bytes .../textures/mcl_core_stonebrick_cracked.png | Bin 224 -> 0 bytes .../textures/mcl_core_stonebrick_mossy.png | Bin 257 -> 0 bytes .../mcl_core_stripped_acacia_side.png | Bin 2171 -> 0 bytes .../textures/mcl_core_stripped_acacia_top.png | Bin 2025 -> 0 bytes .../textures/mcl_core_stripped_birch_side.png | Bin 611 -> 0 bytes .../textures/mcl_core_stripped_birch_top.png | Bin 681 -> 0 bytes .../mcl_core_stripped_dark_oak_side.png | Bin 2007 -> 0 bytes .../mcl_core_stripped_dark_oak_top.png | Bin 695 -> 0 bytes .../mcl_core_stripped_jungle_side.png | Bin 650 -> 0 bytes .../textures/mcl_core_stripped_jungle_top.png | Bin 637 -> 0 bytes .../textures/mcl_core_stripped_oak_side.png | Bin 2130 -> 0 bytes .../textures/mcl_core_stripped_oak_top.png | Bin 729 -> 0 bytes .../mcl_core_stripped_spruce_side.png | Bin 2054 -> 0 bytes .../textures/mcl_core_stripped_spruce_top.png | Bin 733 -> 0 bytes .../mcl_core/textures/mcl_core_sugar.png | Bin 189 -> 0 bytes .../ITEMS/mcl_core/textures/mcl_core_vine.png | Bin 187 -> 0 bytes .../ITEMS/mcl_core/textures/mcl_core_void.png | Bin 143 -> 0 bytes mods/ITEMS/mcl_core/textures/mcl_core_web.png | Bin 199 -> 0 bytes mods/ITEMS/mcl_enchanting/enchantments.lua | 210 ---- mods/ITEMS/mcl_tools/aliases.lua | 21 - mods/ITEMS/mcl_tools/crafting.lua | 338 ------ mods/ITEMS/mcl_tools/init.lua | 553 --------- .../mcl_tools/sounds/mcl_tools_shears_cut.ogg | Bin 21194 -> 0 bytes .../textures/default_tool_diamondaxe.png | Bin 260 -> 0 bytes .../textures/default_tool_diamondpick.png | Bin 271 -> 0 bytes .../textures/default_tool_diamondshovel.png | Bin 243 -> 0 bytes .../textures/default_tool_diamondsword.png | Bin 237 -> 0 bytes .../textures/default_tool_goldaxe.png | Bin 236 -> 0 bytes .../textures/default_tool_goldpick.png | Bin 255 -> 0 bytes .../textures/default_tool_goldshovel.png | Bin 235 -> 0 bytes .../textures/default_tool_goldsword.png | Bin 206 -> 0 bytes .../textures/default_tool_shears.png | Bin 206 -> 0 bytes .../textures/default_tool_steelaxe.png | Bin 232 -> 0 bytes .../textures/default_tool_steelpick.png | Bin 241 -> 0 bytes .../textures/default_tool_steelshovel.png | Bin 241 -> 0 bytes .../textures/default_tool_steelsword.png | Bin 232 -> 0 bytes .../textures/default_tool_stoneaxe.png | Bin 236 -> 0 bytes .../textures/default_tool_stonepick.png | Bin 248 -> 0 bytes .../textures/default_tool_stoneshovel.png | Bin 240 -> 0 bytes .../textures/default_tool_stonesword.png | Bin 215 -> 0 bytes .../textures/default_tool_woodaxe.png | Bin 240 -> 0 bytes .../textures/default_tool_woodpick.png | Bin 238 -> 0 bytes .../textures/default_tool_woodshovel.png | Bin 225 -> 0 bytes .../textures/default_tool_woodsword.png | Bin 241 -> 0 bytes mods/MAPGEN/mcl_biomes/init.lua | 2 +- mods/MAPGEN/mcl_mapgen_core/init.lua | 6 +- mods/MAPGEN/mcl_shipwrecks/init.lua | 134 --- mods/MAPGEN/mcl_shipwrecks/mod.conf | 3 - .../shipwreck_full_back_damaged.mts | Bin 1203 -> 0 bytes .../schematics/shipwreck_full_damaged.mts | Bin 1518 -> 0 bytes .../schematics/shipwreck_full_normal.mts | Bin 1545 -> 0 bytes .../schematics/shipwreck_half_back.mts | Bin 1248 -> 0 bytes .../schematics/shipwreck_half_front.mts | Bin 903 -> 0 bytes mods/MAPGEN/mcl_structures/init.lua | 630 ---------- .../locale/mcl_structures.de.tr | 6 - .../locale/mcl_structures.es.tr | 6 - .../locale/mcl_structures.fr.tr | 7 - .../locale/mcl_structures.pl.tr | 8 - .../locale/mcl_structures.ru.tr | 7 - .../locale/mcl_structures.zh_TW.tr | 7 - .../MAPGEN/mcl_structures/locale/template.txt | 7 - mods/MAPGEN/mcl_structures/mod.conf | 4 - .../schematics/mcl_structures_boulder.mts | Bin 87 -> 0 bytes .../mcl_structures_boulder_small.mts | Bin 59 -> 0 bytes .../mcl_structures_desert_temple.mts | Bin 1460 -> 0 bytes .../schematics/mcl_structures_desert_well.mts | Bin 183 -> 0 bytes .../mcl_structures_end_exit_portal.mts | Bin 222 -> 0 bytes .../mcl_structures_end_gateway_portal.mts | Bin 109 -> 0 bytes .../mcl_structures_end_portal_room_simple.mts | Bin 419 -> 0 bytes .../mcl_structures_fossil_skull_1.mts | Bin 125 -> 0 bytes .../mcl_structures_fossil_skull_2.mts | Bin 137 -> 0 bytes .../mcl_structures_fossil_skull_3.mts | Bin 171 -> 0 bytes .../mcl_structures_fossil_skull_4.mts | Bin 157 -> 0 bytes .../mcl_structures_fossil_spine_1.mts | Bin 78 -> 0 bytes .../mcl_structures_fossil_spine_2.mts | Bin 112 -> 0 bytes .../mcl_structures_fossil_spine_3.mts | Bin 116 -> 0 bytes .../mcl_structures_fossil_spine_4.mts | Bin 123 -> 0 bytes .../mcl_structures_ice_spike_large.mts | Bin 215 -> 0 bytes .../mcl_structures_ice_spike_small.mts | Bin 150 -> 0 bytes .../mcl_structures_igloo_basement.mts | Bin 537 -> 0 bytes .../schematics/mcl_structures_igloo_top.mts | Bin 329 -> 0 bytes .../schematics/mcl_structures_witch_hut.mts | Bin 363 -> 0 bytes mods/MISC/findbiome/README.md | 23 - mods/MISC/findbiome/init.lua | 320 ----- mods/MISC/findbiome/license.txt | 24 - mods/MISC/findbiome/locale/findbiome.de.tr | 10 - mods/MISC/findbiome/locale/findbiome.fr.tr | 10 - mods/MISC/findbiome/locale/findbiome.pl.tr | 10 - mods/MISC/findbiome/locale/findbiome.ru.tr | 10 - mods/MISC/findbiome/locale/findbiome.zh_TW.tr | 10 - mods/MISC/findbiome/locale/template.txt | 10 - mods/MISC/findbiome/mod.conf | 4 - mods/MISC/mcl_commands/LICENSE | 117 -- mods/MISC/mcl_commands/alias.lua | 30 - mods/MISC/mcl_commands/init.lua | 11 - mods/MISC/mcl_commands/kill.lua | 43 - mods/MISC/mcl_commands/list.lua | 14 - .../mcl_commands/locale/mcl_commands.de.tr | 23 - .../mcl_commands/locale/mcl_commands.es.tr | 23 - .../mcl_commands/locale/mcl_commands.fr.tr | 23 - .../mcl_commands/locale/mcl_commands.pl.tr | 23 - .../mcl_commands/locale/mcl_commands.ru.tr | 23 - .../mcl_commands/locale/mcl_commands.zh_TW.tr | 23 - mods/MISC/mcl_commands/locale/template.txt | 23 - mods/MISC/mcl_commands/mod.conf | 4 - mods/MISC/mcl_commands/say.lua | 18 - mods/MISC/mcl_commands/seed.lua | 10 - mods/MISC/mcl_commands/setblock.lua | 22 - mods/MISC/mcl_commands/sound.lua | 43 - mods/MISC/mcl_commands/summon.lua | 15 - mods/MISC/mcl_privs/init.lua | 8 +- mods/PLAYER/mcl_criticals/init.lua | 30 - mods/PLAYER/mcl_criticals/mod.conf | 2 - .../sounds/mcl_criticals_hit.0.ogg | Bin 10932 -> 0 bytes .../sounds/mcl_criticals_hit.1.ogg | Bin 12936 -> 0 bytes .../sounds/mcl_criticals_hit.2.ogg | Bin 10130 -> 0 bytes mods/PLAYER/mcl_player_init/init.lua | 4 - mods/PLAYER/mcl_player_init/mod.conf | 3 - 328 files changed, 15 insertions(+), 6612 deletions(-) delete mode 100644 mods/ITEMS/mcl_core/crafting.lua delete mode 100644 mods/ITEMS/mcl_core/craftitems.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_cactuscane.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_climb.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_glass.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_liquid.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_misc.lua delete mode 100644 mods/ITEMS/mcl_core/nodes_trees.lua delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_3.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_4.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_5.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_6.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_7.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_acacia_weirdo.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_birch.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_birch_tall.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_dark_oak.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_jungle_bush_oak_leaves.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_jungle_tree.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_jungle_tree_huge_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_jungle_tree_huge_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_balloon.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_classic.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_3.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_4.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_swamp.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_oak_v6.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_3.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_4.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_5.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_3.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_4.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_1.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_2.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_3.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_lollipop.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_matchstick.mts delete mode 100644 mods/ITEMS/mcl_core/schematics/mcl_core_spruce_tall.mts delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_dug.1.ogg delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_place.1.ogg delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_step.1.ogg delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_step.2.ogg delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_step.3.ogg delete mode 100644 mods/ITEMS/mcl_core/sounds/slimenodes_step.4.ogg delete mode 100644 mods/ITEMS/mcl_core/textures/default_acacia_leaves.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_acacia_sapling.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_acacia_tree.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_acacia_tree_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_acacia_wood.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_apple.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_brick.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_clay.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_clay_brick.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_clay_lump.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_coal_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_coal_lump.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_diamond.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_diamond_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_dirt.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_dry_grass.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_dry_grass_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_dry_shrub.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_flint.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_glass.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_glass_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_gold_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_gold_ingot.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_gravel.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_ice.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_jungleleaves.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_junglesapling.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_jungletree.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_jungletree_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_junglewood.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_ladder.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_lava_flowing_animated.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_lava_source_animated.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_leaves.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_mossycobble.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_obsidian.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_paper.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_sand.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_sapling.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_snow.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_steel_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_steel_ingot.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_stick.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_stone.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_stone_brick.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_tree.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_tree_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_water_flowing_animated.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_water_source_animated.png delete mode 100644 mods/ITEMS/mcl_core/textures/default_wood.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_andesite.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_barrier.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_bone_block_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_bowl.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_coal_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_diamond_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_diorite.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_diorite_smooth.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_emerald.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_emerald_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_emerald_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_0.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_3.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_black.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_black_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_blue.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_blue_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_brown.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_brown_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_gray.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_gray_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_green.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_green_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_lime.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_lime_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_orange.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_pink.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_pink_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_purple.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_purple_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_red.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_red_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_silver.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_silver_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_white.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_gold_nugget.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_gold_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_granite.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_granite_smooth.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_grass_block_side_overlay.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_grass_path_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_lapis_block.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_leaves_birch.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_leaves_spruce.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_birch_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_spruce.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_log_spruce_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_mycelium_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_papyrus.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_planks_big_oak.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_planks_spruce.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_carved.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_normal.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_reeds.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sandstone_normal.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sandstone_smooth.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sapling_big_oak.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sapling_birch.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sapling_spruce.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_slime.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_carved.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_mossy.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_birch_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_birch_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_dark_oak_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_dark_oak_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_jungle_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_jungle_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_oak_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_oak_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_spruce_side.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_stripped_spruce_top.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_sugar.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_vine.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_void.png delete mode 100644 mods/ITEMS/mcl_core/textures/mcl_core_web.png delete mode 100644 mods/ITEMS/mcl_tools/aliases.lua delete mode 100644 mods/ITEMS/mcl_tools/crafting.lua delete mode 100644 mods/ITEMS/mcl_tools/sounds/mcl_tools_shears_cut.ogg delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_diamondaxe.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_diamondpick.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_diamondsword.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_goldaxe.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_goldpick.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_goldshovel.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_goldsword.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_shears.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_steelaxe.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_steelpick.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_steelshovel.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_steelsword.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_stoneaxe.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_stonepick.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_stoneshovel.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_stonesword.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_woodaxe.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_woodpick.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png delete mode 100644 mods/ITEMS/mcl_tools/textures/default_tool_woodsword.png delete mode 100644 mods/MAPGEN/mcl_shipwrecks/init.lua delete mode 100644 mods/MAPGEN/mcl_shipwrecks/mod.conf delete mode 100644 mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_back_damaged.mts delete mode 100644 mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_damaged.mts delete mode 100644 mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_normal.mts delete mode 100644 mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_back.mts delete mode 100644 mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_front.mts delete mode 100644 mods/MAPGEN/mcl_structures/init.lua delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.de.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.pl.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.ru.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/mcl_structures.zh_TW.tr delete mode 100644 mods/MAPGEN/mcl_structures/locale/template.txt delete mode 100644 mods/MAPGEN/mcl_structures/mod.conf delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder_small.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_temple.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_well.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_exit_portal.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_gateway_portal.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_portal_room_simple.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_1.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_2.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_3.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_4.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_spine_1.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_spine_2.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_spine_3.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_spine_4.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_large.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_small.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_basement.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_top.mts delete mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_witch_hut.mts delete mode 100644 mods/MISC/findbiome/README.md delete mode 100644 mods/MISC/findbiome/init.lua delete mode 100644 mods/MISC/findbiome/license.txt delete mode 100644 mods/MISC/findbiome/locale/findbiome.de.tr delete mode 100644 mods/MISC/findbiome/locale/findbiome.fr.tr delete mode 100644 mods/MISC/findbiome/locale/findbiome.pl.tr delete mode 100644 mods/MISC/findbiome/locale/findbiome.ru.tr delete mode 100644 mods/MISC/findbiome/locale/findbiome.zh_TW.tr delete mode 100644 mods/MISC/findbiome/locale/template.txt delete mode 100644 mods/MISC/findbiome/mod.conf delete mode 100644 mods/MISC/mcl_commands/LICENSE delete mode 100644 mods/MISC/mcl_commands/alias.lua delete mode 100644 mods/MISC/mcl_commands/init.lua delete mode 100644 mods/MISC/mcl_commands/kill.lua delete mode 100644 mods/MISC/mcl_commands/list.lua delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.de.tr delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.es.tr delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.fr.tr delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.pl.tr delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.ru.tr delete mode 100644 mods/MISC/mcl_commands/locale/mcl_commands.zh_TW.tr delete mode 100644 mods/MISC/mcl_commands/locale/template.txt delete mode 100644 mods/MISC/mcl_commands/mod.conf delete mode 100644 mods/MISC/mcl_commands/say.lua delete mode 100644 mods/MISC/mcl_commands/seed.lua delete mode 100644 mods/MISC/mcl_commands/setblock.lua delete mode 100644 mods/MISC/mcl_commands/sound.lua delete mode 100644 mods/MISC/mcl_commands/summon.lua delete mode 100644 mods/PLAYER/mcl_criticals/init.lua delete mode 100644 mods/PLAYER/mcl_criticals/mod.conf delete mode 100644 mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.0.ogg delete mode 100644 mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.1.ogg delete mode 100644 mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.2.ogg delete mode 100644 mods/PLAYER/mcl_player_init/init.lua delete mode 100644 mods/PLAYER/mcl_player_init/mod.conf diff --git a/mods/ENTITIES/mcl_dripping/init.lua b/mods/ENTITIES/mcl_dripping/init.lua index 57ba7ecfef..83e2f503ea 100644 --- a/mods/ENTITIES/mcl_dripping/init.lua +++ b/mods/ENTITIES/mcl_dripping/init.lua @@ -63,4 +63,3 @@ local function register_drop(liquid, glow, sound, nodes) end register_drop("water", 1, "", {"group:opaque", "group:leaves"}) -register_drop("lava", math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3), "lava", {"group:opaque"}) \ No newline at end of file diff --git a/mods/ITEMS/mcl_core/crafting.lua b/mods/ITEMS/mcl_core/crafting.lua deleted file mode 100644 index df456cbdcc..0000000000 --- a/mods/ITEMS/mcl_core/crafting.lua +++ /dev/null @@ -1,560 +0,0 @@ --- mods/default/crafting.lua - --- --- Crafting definition --- - -local function craft_planks(output, input) - minetest.register_craft({ - output = "mcl_core:"..output.."wood 4", - recipe = { - {"mcl_core:"..input}, - } - }) -end - -local planks = { - {"", "oak"}, - {"dark", "dark_oak"}, - {"jungle", "jungle"}, - {"acacia", "acacia"}, - {"spruce", "spruce"}, - {"birch", "birch"} -} - -for _, p in pairs(planks) do - craft_planks(p[1], p[1].."tree") - craft_planks(p[1], p[1].."tree_bark") - craft_planks(p[1], "stripped_"..p[2]) - craft_planks(p[1], "stripped_"..p[2].."_bark") -end - -minetest.register_craft({ - type = "shapeless", - output = "mcl_core:mossycobble", - recipe = { "mcl_core:cobble", "mcl_core:vine" }, -}) - -minetest.register_craft({ - type = "shapeless", - output = "mcl_core:stonebrickmossy", - recipe = { "mcl_core:stonebrick", "mcl_core:vine" }, -}) - -minetest.register_craft({ - output = "mcl_core:coarse_dirt 4", - recipe = { - {"mcl_core:dirt", "mcl_core:gravel"}, - {"mcl_core:gravel", "mcl_core:dirt"}, - } -}) -minetest.register_craft({ - output = "mcl_core:coarse_dirt 4", - recipe = { - {"mcl_core:gravel", "mcl_core:dirt"}, - {"mcl_core:dirt", "mcl_core:gravel"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:sandstonesmooth 4", - recipe = { - {"mcl_core:sandstone","mcl_core:sandstone"}, - {"mcl_core:sandstone","mcl_core:sandstone"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:redsandstonesmooth 4", - recipe = { - {"mcl_core:redsandstone","mcl_core:redsandstone"}, - {"mcl_core:redsandstone","mcl_core:redsandstone"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:granite_smooth 4", - recipe = { - {"mcl_core:granite", "mcl_core:granite"}, - {"mcl_core:granite", "mcl_core:granite"} - }, -}) - -minetest.register_craft({ - output = "mcl_core:andesite_smooth 4", - recipe = { - {"mcl_core:andesite", "mcl_core:andesite"}, - {"mcl_core:andesite", "mcl_core:andesite"} - }, -}) - -minetest.register_craft({ - output = "mcl_core:diorite_smooth 4", - recipe = { - {"mcl_core:diorite", "mcl_core:diorite"}, - {"mcl_core:diorite", "mcl_core:diorite"} - }, -}) - -minetest.register_craft({ - type = "shapeless", - output = "mcl_core:granite", - recipe = {"mcl_core:diorite", "mcl_nether:quartz"}, -}) - -minetest.register_craft({ - type = "shapeless", - output = "mcl_core:andesite 2", - recipe = {"mcl_core:diorite", "mcl_core:cobble"}, -}) - -minetest.register_craft({ - output = "mcl_core:diorite 2", - recipe = { - {"mcl_core:cobble", "mcl_nether:quartz"}, - {"mcl_nether:quartz", "mcl_core:cobble"}, - } -}) -minetest.register_craft({ - output = "mcl_core:diorite 2", - recipe = { - {"mcl_nether:quartz", "mcl_core:cobble"}, - {"mcl_core:cobble", "mcl_nether:quartz"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:bone_block", - recipe = { - { "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" }, - { "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" }, - { "mcl_dye:white", "mcl_dye:white", "mcl_dye:white" }, - }, -}) - -minetest.register_craft({ - output = "mcl_dye:white 9", - recipe = { - { "mcl_core:bone_block" }, - }, -}) - -minetest.register_craft({ - output = "mcl_core:stick 4", - recipe = { - {"group:wood"}, - {"group:wood"}, - } -}) - - - -minetest.register_craft({ - output = "mcl_core:coalblock", - recipe = { - {"mcl_core:coal_lump", "mcl_core:coal_lump", "mcl_core:coal_lump"}, - {"mcl_core:coal_lump", "mcl_core:coal_lump", "mcl_core:coal_lump"}, - {"mcl_core:coal_lump", "mcl_core:coal_lump", "mcl_core:coal_lump"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:coal_lump 9", - recipe = { - {"mcl_core:coalblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:ironblock", - recipe = { - {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:iron_ingot 9", - recipe = { - {"mcl_core:ironblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:goldblock", - recipe = { - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:gold_ingot 9", - recipe = { - {"mcl_core:goldblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:gold_nugget 9", - recipe = {{"mcl_core:gold_ingot"}}, -}) - -minetest.register_craft({ - output = "mcl_core:iron_nugget 9", - recipe = {{"mcl_core:iron_ingot"}}, -}) - -minetest.register_craft({ - output = "mcl_core:gold_ingot", - recipe = { - {"mcl_core:gold_nugget", "mcl_core:gold_nugget", "mcl_core:gold_nugget"}, - {"mcl_core:gold_nugget", "mcl_core:gold_nugget", "mcl_core:gold_nugget"}, - {"mcl_core:gold_nugget", "mcl_core:gold_nugget", "mcl_core:gold_nugget"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:iron_ingot", - recipe = { - {"mcl_core:iron_nugget", "mcl_core:iron_nugget", "mcl_core:iron_nugget"}, - {"mcl_core:iron_nugget", "mcl_core:iron_nugget", "mcl_core:iron_nugget"}, - {"mcl_core:iron_nugget", "mcl_core:iron_nugget", "mcl_core:iron_nugget"}, - } -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_nugget", - recipe = "mcl_mobitems:iron_horse_armor", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_nugget", - recipe = "mcl_mobitems:gold_horse_armor", - cooktime = 10, -}) - -minetest.register_craft({ - output = "mcl_core:sandstone", - recipe = { - {"mcl_core:sand", "mcl_core:sand"}, - {"mcl_core:sand", "mcl_core:sand"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:redsandstone", - recipe = { - {"mcl_core:redsand", "mcl_core:redsand"}, - {"mcl_core:redsand", "mcl_core:redsand"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:clay", - recipe = { - {"mcl_core:clay_lump", "mcl_core:clay_lump"}, - {"mcl_core:clay_lump", "mcl_core:clay_lump"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:brick_block", - recipe = { - {"mcl_core:brick", "mcl_core:brick"}, - {"mcl_core:brick", "mcl_core:brick"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:paper 3", - recipe = { - {"mcl_core:reeds", "mcl_core:reeds", "mcl_core:reeds"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:ladder 3", - recipe = { - {"mcl_core:stick", "", "mcl_core:stick"}, - {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}, - {"mcl_core:stick", "", "mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:stonebrick 4", - recipe = { - {"mcl_core:stone", "mcl_core:stone"}, - {"mcl_core:stone", "mcl_core:stone"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:lapisblock", - recipe = { - {"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"}, - {"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"}, - {"mcl_dye:blue", "mcl_dye:blue", "mcl_dye:blue"}, - } -}) - -minetest.register_craft({ - output = "mcl_dye:blue 9", - recipe = { - {"mcl_core:lapisblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:emeraldblock", - recipe = { - {"mcl_core:emerald", "mcl_core:emerald", "mcl_core:emerald"}, - {"mcl_core:emerald", "mcl_core:emerald", "mcl_core:emerald"}, - {"mcl_core:emerald", "mcl_core:emerald", "mcl_core:emerald"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:emerald 9", - recipe = { - {"mcl_core:emeraldblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:diamondblock", - recipe = { - {"mcl_core:diamond", "mcl_core:diamond", "mcl_core:diamond"}, - {"mcl_core:diamond", "mcl_core:diamond", "mcl_core:diamond"}, - {"mcl_core:diamond", "mcl_core:diamond", "mcl_core:diamond"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:diamond 9", - recipe = { - {"mcl_core:diamondblock"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:apple_gold", - recipe = { - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot", "mcl_core:apple", "mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:sugar", - recipe = { - {"mcl_core:reeds"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:bowl 4", - recipe = { - {"group:wood", "", "group:wood"}, - {"", "group:wood", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_core:snowblock", - recipe = { - {"mcl_throwing:snowball", "mcl_throwing:snowball"}, - {"mcl_throwing:snowball", "mcl_throwing:snowball"}, - } -}) - -minetest.register_craft({ - output = "mcl_core:snow 6", - recipe = { - {"mcl_core:snowblock", "mcl_core:snowblock", "mcl_core:snowblock"}, - } -}) - -minetest.register_craft({ - output = 'mcl_core:packed_ice 1', - recipe = { - {'mcl_core:ice', 'mcl_core:ice', 'mcl_core:ice'}, - {'mcl_core:ice', 'mcl_core:ice', 'mcl_core:ice'}, - {'mcl_core:ice', 'mcl_core:ice', 'mcl_core:ice'}, - } -}) - --- --- Crafting (tool repair) --- -minetest.register_craft({ - type = "toolrepair", - additional_wear = -mcl_core.repair, -}) - --- --- Cooking recipes --- - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:glass", - recipe = "group:sand", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:stone", - recipe = "mcl_core:cobble", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:stone_smooth", - recipe = "mcl_core:stone", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:stonebrickcracked", - recipe = "mcl_core:stonebrick", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_ingot", - recipe = "mcl_core:stone_with_iron", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_ingot", - recipe = "mcl_core:stone_with_gold", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:brick", - recipe = "mcl_core:clay_lump", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:charcoal_lump", - recipe = "group:tree", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:coal_lump", - recipe = "mcl_core:stone_with_coal", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:diamond", - recipe = "mcl_core:stone_with_diamond", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:emerald", - recipe = "mcl_core:stone_with_emerald", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_dye:blue", - recipe = "mcl_core:stone_with_lapis", - cooktime = 10, -}) - --- --- Fuels --- - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:coalblock", - burntime = 800, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:coal_lump", - burntime = 80, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:charcoal_lump", - burntime = 80, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:tree", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:bark", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:ladder", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:wood", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:sapling", - burntime = 5, -}) - - - -minetest.register_craft({ - type = "fuel", - recipe = "group:sapling", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:bowl", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_core:stick", - burntime = 5, -}) diff --git a/mods/ITEMS/mcl_core/craftitems.lua b/mods/ITEMS/mcl_core/craftitems.lua deleted file mode 100644 index fc84c50f54..0000000000 --- a/mods/ITEMS/mcl_core/craftitems.lua +++ /dev/null @@ -1,194 +0,0 @@ --- mods/default/craftitems.lua - -local S = minetest.get_translator(minetest.get_current_modname()) - --- --- Crafting items --- - -minetest.register_craftitem("mcl_core:stick", { - description = S("Stick"), - _doc_items_longdesc = S("Sticks are a very versatile crafting material; used in countless crafting recipes."), - _doc_items_hidden = false, - inventory_image = "default_stick.png", - stack_max = 64, - groups = { craftitem=1, stick=1 }, - _mcl_toollike_wield = true, -}) - -minetest.register_craftitem("mcl_core:paper", { - description = S("Paper"), - _doc_items_longdesc = S("Paper is used to craft books and maps."), - inventory_image = "default_paper.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:coal_lump", { - description = S("Coal"), - _doc_items_longdesc = S("“Coal” refers to coal lumps obtained by digging coal ore which can be found underground. Coal is your standard furnace fuel, but it can also be used to make torches, coal blocks and a few other things."), - _doc_items_hidden = false, - inventory_image = "default_coal_lump.png", - stack_max = 64, - groups = { craftitem=1, coal=1 }, -}) - -minetest.register_craftitem("mcl_core:charcoal_lump", { - description = S("Charcoal"), - _doc_items_longdesc = S("Charcoal is an alternative furnace fuel created by cooking wood in a furnace. It has the same burning time as coal and also shares many of its crafting recipes, but it can not be used to create coal blocks."), - _doc_items_hidden = false, - inventory_image = "mcl_core_charcoal.png", - stack_max = 64, - groups = { craftitem=1, coal=1 }, -}) - -minetest.register_craftitem("mcl_core:iron_nugget", { - description = S("Iron Nugget"), - _doc_items_longdesc = S("Iron nuggets are very small pieces of molten iron; the main purpose is to create iron ingots."), - inventory_image = "mcl_core_iron_nugget.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:gold_nugget", { - description = S("Gold Nugget"), - _doc_items_longdesc = S("Gold nuggets are very small pieces of molten gold; the main purpose is to create gold ingots."), - inventory_image = "mcl_core_gold_nugget.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:diamond", { - description = S("Diamond"), - _doc_items_longdesc = S("Diamonds are precious minerals and useful to create the highest tier of armor and tools."), - inventory_image = "default_diamond.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:clay_lump", { - description = S("Clay Ball"), - _doc_items_longdesc = S("Clay balls are a raw material, mainly used to create bricks in the furnace."), - _doc_items_hidden = false, - inventory_image = "default_clay_lump.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:iron_ingot", { - description = S("Iron Ingot"), - _doc_items_longdesc = S("Molten iron. It is used to craft armor, tools, and whatnot."), - inventory_image = "default_steel_ingot.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:gold_ingot", { - description = S("Gold Ingot"), - _doc_items_longdesc = S("Molten gold. It is used to craft armor, tools, and whatnot."), - inventory_image = "default_gold_ingot.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:emerald", { - description = S("Emerald"), - _doc_items_longdesc = S("Emeralds are used in villager trades as currency."), - inventory_image = "mcl_core_emerald.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:brick", { - description = S("Brick"), - _doc_items_longdesc = S("Bricks are used to craft brick blocks."), - inventory_image = "default_clay_brick.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:flint", { - description = S("Flint"), - _doc_items_longdesc = S("Flint is a raw material."), - inventory_image = "default_flint.png", - stack_max = 64, - groups = { craftitem=1 }, -}) - -minetest.register_craftitem("mcl_core:sugar", { - description = S("Sugar"), - _doc_items_longdesc = S("Sugar comes from sugar canes and is used to make sweet foods."), - inventory_image = "mcl_core_sugar.png", - stack_max = 64, - groups = { craftitem = 1, brewitem=1 }, -}) - -minetest.register_craftitem("mcl_core:bowl",{ - description = S("Bowl"), - _doc_items_longdesc = S("Bowls are mainly used to hold tasty soups."), - inventory_image = "mcl_core_bowl.png", - stack_max = 64, - groups = { craftitem = 1 }, -}) - -minetest.register_craftitem("mcl_core:apple", { - description = S("Apple"), - _doc_items_longdesc = S("Apples are food items which can be eaten."), - wield_image = "default_apple.png", - inventory_image = "default_apple.png", - stack_max = 64, - on_place = minetest.item_eat(4), - on_secondary_use = minetest.item_eat(4), - groups = { food = 2, eatable = 4, compostability = 65 }, - _mcl_saturation = 2.4, -}) - -local gapple_hunger_restore = minetest.item_eat(4) - -local function eat_gapple(itemstack, placer, pointed_thing) - if pointed_thing.type == "node" then - local node = minetest.get_node(pointed_thing.under) - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack - end - end - elseif pointed_thing.type == "object" then - return itemstack - end - - local regen_duration, absorbtion_factor = 5, 1 - if itemstack:get_name() == "mcl_core:apple_gold_enchanted" then - regen_duration, absorbtion_factor = 20, 4 - mcl_potions.fire_resistance_func(placer, 1, 300) - mcl_potions.leaping_func(placer, 1, 300) - end - mcl_potions.swiftness_func(placer, absorbtion_factor, 120) -- TODO: Absorbtion - mcl_potions.regeneration_func(placer, 2, regen_duration) - return gapple_hunger_restore(itemstack, placer, pointed_thing) -end - -minetest.register_craftitem("mcl_core:apple_gold", { - -- TODO: Add special highlight color - description = S("Golden Apple"), - _doc_items_longdesc = S("Golden apples are precious food items which can be eaten."), - wield_image = "mcl_core_apple_golden.png", - inventory_image = "mcl_core_apple_golden.png", - stack_max = 64, - on_place = eat_gapple, - on_secondary_use = eat_gapple, - groups = { food = 2, eatable = 4, can_eat_when_full = 1 }, - _mcl_saturation = 9.6, -}) - -minetest.register_craftitem("mcl_core:apple_gold_enchanted", { - description = S("Enchanted Golden Apple"), - _doc_items_longdesc = S("Golden apples are precious food items which can be eaten."), - wield_image = "mcl_core_apple_golden.png" .. mcl_enchanting.overlay, - inventory_image = "mcl_core_apple_golden.png" .. mcl_enchanting.overlay, - stack_max = 64, - on_place = eat_gapple, - on_secondary_use = eat_gapple, - groups = { food = 2, eatable = 4, can_eat_when_full = 1 }, - _mcl_saturation = 9.6, -}) diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index fc08a0957c..432b8d709f 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -16,43 +16,6 @@ local ACACIA_TREE_ID = 4 local JUNGLE_TREE_ID = 5 local BIRCH_TREE_ID = 6 -minetest.register_abm({ - label = "Lava cooling", - nodenames = {"group:lava"}, - neighbors = {"group:water"}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local water = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+1, z=pos.z+1}, "group:water") - - local lavatype = minetest.registered_nodes[node.name].liquidtype - - for w=1, #water do - --local waternode = minetest.get_node(water[w]) - --local watertype = minetest.registered_nodes[waternode.name].liquidtype - -- Lava on top of water: Water turns into stone - if water[w].y < pos.y and water[w].x == pos.x and water[w].z == pos.z then - minetest.set_node(water[w], {name="mcl_core:stone"}) - minetest.sound_play("fire_extinguish_flame", {pos = water[w], gain = 0.25, max_hear_distance = 16}, true) - -- Flowing lava vs water on same level: Lava turns into cobblestone - elseif lavatype == "flowing" and water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z) then - minetest.set_node(pos, {name="mcl_core:cobble"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) - -- Lava source vs flowing water above or horizontally neighbored: Lava turns into obsidian - elseif lavatype == "source" and - ((water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z) or - (water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z))) then - minetest.set_node(pos, {name="mcl_core:obsidian"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) - -- water above flowing lava: Lava turns into cobblestone - elseif lavatype == "flowing" and water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z then - minetest.set_node(pos, {name="mcl_core:cobble"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) - end - end - end, -}) - -- -- Papyrus and cactus growing -- @@ -97,165 +60,10 @@ function mcl_core.grow_reeds(pos, node) end end --- ABMs - - -local function drop_attached_node(p) - local nn = minetest.get_node(p).name - if nn == "air" or nn == "ignore" then - return - end - minetest.remove_node(p) - for _, item in pairs(minetest.get_node_drops(nn, "")) do - local pos = { - x = p.x + math.random()/2 - 0.25, - y = p.y + math.random()/2 - 0.25, - z = p.z + math.random()/2 - 0.25, - } - if item ~= "" then - minetest.add_item(pos, item) - end - end -end - --- Helper function for node actions for liquid flow -local function liquid_flow_action(pos, group, action) - local function check_detach(pos, xp, yp, zp) - local p = {x=pos.x+xp, y=pos.y+yp, z=pos.z+zp} - local n = minetest.get_node_or_nil(p) - if not n then - return false - end - local d = minetest.registered_nodes[n.name] - if not d then - return false - end - --[[ Check if we want to perform the liquid action. - * 1: Item must be in liquid group - * 2a: If target node is below liquid, always succeed - * 2b: If target node is horizontal to liquid: succeed if source, otherwise check param2 for horizontal flow direction ]] - local range = d.liquid_range or 8 - if (minetest.get_item_group(n.name, group) ~= 0) and - ((yp > 0) or - (yp == 0 and ((d.liquidtype == "source") or (n.param2 > (8-range) and n.param2 < 9)))) then - action(pos) - end - end - local posses = { - { x=-1, y=0, z=0 }, - { x=1, y=0, z=0 }, - { x=0, y=0, z=-1 }, - { x=0, y=0, z=1 }, - { x=0, y=1, z=0 }, - } - for p=1,#posses do - check_detach(pos, posses[p].x, posses[p].y, posses[p].z) - end -end - --- Drop some nodes next to flowing water, if it would flow into the node -minetest.register_abm({ - label = "Wash away dig_by_water nodes by water flow", - nodenames = {"group:dig_by_water"}, - neighbors = {"group:water"}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - liquid_flow_action(pos, "water", function(pos) - drop_attached_node(pos) - minetest.dig_node(pos) - end) - end, -}) - --- Destroy some nodes next to flowing lava, if it would flow into the node -minetest.register_abm({ - label = "Destroy destroy_by_lava_flow nodes by lava flow", - nodenames = {"group:destroy_by_lava_flow"}, - neighbors = {"group:lava"}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - liquid_flow_action(pos, "lava", function(pos) - minetest.remove_node(pos) - minetest.sound_play("builtin_item_lava", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) - minetest.check_for_falling(pos) - end) - end, -}) - --- Cactus mechanisms -minetest.register_abm({ - label = "Cactus growth", - nodenames = {"mcl_core:cactus"}, - neighbors = {"group:sand"}, - interval = 25, - chance = 10, - action = function(pos) - mcl_core.grow_cactus(pos) - end, -}) - -minetest.register_abm({ - label = "Cactus mechanisms", - nodenames = {"mcl_core:cactus"}, - interval = 1, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - for _, object in pairs(minetest.get_objects_inside_radius(pos, 0.9)) do - local entity = object:get_luaentity() - if entity and entity.name == "__builtin:item" then - object:remove() - end - end - local posses = { { 1, 0 }, { -1, 0 }, { 0, 1 }, { 0, -1 } } - for _, p in pairs(posses) do - local ndef = minetest.registered_nodes[minetest.get_node(vector.new(pos.x + p[1], pos.y, pos.z + p[2])).name] - if ndef and ndef.walkable then - local posy = pos.y - while minetest.get_node(vector.new(pos.x, posy, pos.z)).name == "mcl_core:cactus" do - local pos = vector.new(pos.x, posy, pos.z) - minetest.remove_node(pos) - minetest.add_item(vector.offset(pos, math.random(-0.5, 0.5), 0, math.random(-0.5, 0.5)), "mcl_core:cactus") - posy = posy + 1 - end - break - end - end - end, -}) - - -minetest.register_abm({ - label = "Sugar canes growth", - nodenames = {"mcl_core:reeds"}, - neighbors = {"group:soil_sugarcane"}, - interval = 25, - chance = 10, - action = function(pos) - mcl_core.grow_reeds(pos) - end, -}) - -- -- Sugar canes drop -- -local timber_nodenames={"mcl_core:reeds"} - -minetest.register_on_dignode(function(pos, node) - local i=1 - while timber_nodenames[i]~=nil do - local np={x=pos.x, y=pos.y+1, z=pos.z} - while minetest.get_node(np).name==timber_nodenames[i] do - minetest.remove_node(np) - minetest.add_item(np, timber_nodenames[i]) - np={x=np.x, y=np.y+1, z=np.z} - end - i=i+1 - end -end) - local function air_leaf(leaftype) if math.random(0, 50) == 3 then return {name = "air"} @@ -797,8 +605,6 @@ function mcl_core.generate_huge_jungle_tree(pos) end -local grass_spread_randomizer = PseudoRandom(minetest.get_mapgen_setting("seed")) - function mcl_core.get_grass_palette_index(pos) local biome_data = minetest.get_biome_data(pos) local index = 0 @@ -818,140 +624,6 @@ function mcl_core.get_grass_block_type(pos) return {name = "mcl_core:dirt_with_grass", param2 = mcl_core.get_grass_palette_index(pos)} end ------------------------------- --- Spread grass blocks and mycelium on neighbor dirt ------------------------------- -minetest.register_abm({ - label = "Grass Block and Mycelium spread", - nodenames = {"mcl_core:dirt"}, - neighbors = {"air", "group:grass_block_no_snow", "mcl_core:mycelium"}, - interval = 30, - chance = 20, - catch_up = false, - action = function(pos) - if pos == nil then - return - end - local above = {x=pos.x, y=pos.y+1, z=pos.z} - local abovenode = minetest.get_node(above) - if minetest.get_item_group(abovenode.name, "liquid") ~= 0 or minetest.get_item_group(abovenode.name, "opaque") == 1 then - -- Never grow directly below liquids or opaque blocks - return - end - local light_self = minetest.get_node_light(above) - if not light_self then return end - --[[ Try to find a spreading dirt-type block (e.g. grass block or mycelium) - within a 3×5×3 area, with the source block being on the 2nd-topmost layer. ]] - local nodes = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+3, z=pos.z+1}, "group:spreading_dirt_type") - local p2 - -- Nothing found ? Bail out! - if #nodes <= 0 then - return - else - p2 = nodes[grass_spread_randomizer:next(1, #nodes)] - end - - -- Found it! Now check light levels! - local source_above = {x=p2.x, y=p2.y+1, z=p2.z} - local light_source = minetest.get_node_light(source_above) - if not light_source then return end - - if light_self >= 4 and light_source >= 9 then - -- All checks passed! Let's spread the grass/mycelium! - local n2 = minetest.get_node(p2) - if minetest.get_item_group(n2.name, "grass_block") ~= 0 then - n2 = mcl_core.get_grass_block_type(pos) - end - minetest.set_node(pos, {name=n2.name}) - - -- If this was mycelium, uproot plant above - if n2.name == "mcl_core:mycelium" then - local tad = minetest.registered_nodes[minetest.get_node(above).name] - if tad and tad.groups and tad.groups.non_mycelium_plant then - minetest.dig_node(above) - end - end - end - end -}) - --- Grass/mycelium death in darkness -minetest.register_abm({ - label = "Grass Block / Mycelium in darkness", - nodenames = {"group:spreading_dirt_type"}, - interval = 8, - chance = 50, - catch_up = false, - action = function(pos, node) - local above = {x = pos.x, y = pos.y + 1, z = pos.z} - local name = minetest.get_node(above).name - -- Kill grass/mycelium when below opaque block or liquid - if name ~= "ignore" and (minetest.get_item_group(name, "opaque") == 1 or minetest.get_item_group(name, "liquid") ~= 0) then - minetest.set_node(pos, {name = "mcl_core:dirt"}) - end - end -}) - --- Turn Grass Path and similar nodes to Dirt if a solid node is placed above it -minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing) - if minetest.get_item_group(newnode.name, "solid") ~= 0 or - minetest.get_item_group(newnode.name, "dirtifier") ~= 0 then - local below = {x=pos.x, y=pos.y-1, z=pos.z} - local belownode = minetest.get_node(below) - if minetest.get_item_group(belownode.name, "dirtifies_below_solid") == 1 then - minetest.set_node(below, {name="mcl_core:dirt"}) - end - end -end) - -minetest.register_abm({ - label = "Turn Grass Path below solid block into Dirt", - nodenames = {"mcl_core:grass_path"}, - neighbors = {"group:solid"}, - interval = 8, - chance = 50, - action = function(pos, node) - local above = {x = pos.x, y = pos.y + 1, z = pos.z} - local name = minetest.get_node(above).name - local nodedef = minetest.registered_nodes[name] - if name ~= "ignore" and nodedef and (nodedef.groups and nodedef.groups.solid) then - minetest.set_node(pos, {name = "mcl_core:dirt"}) - end - end, -}) - -local SAVANNA_INDEX = 1 -minetest.register_lbm({ - label = "Replace legacy dry grass", - name = "mcl_core:replace_legacy_dry_grass_0_65_0", - nodenames = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt_with_dry_grass_snow"}, - action = function(pos, node) - local biome_data = minetest.get_biome_data(pos) - if biome_data then - local biome = biome_data.biome - local biome_name = minetest.get_biome_name(biome) - local reg_biome = minetest.registered_biomes[biome_name] - if reg_biome then - if node.name == "mcl_core:dirt_with_dry_grass_snow" then - node.name = "mcl_core:dirt_with_grass_snow" - else - node.name = "mcl_core:dirt_with_grass" - end - node.param2 = reg_biome._mcl_palette_index - -- Fall back to savanna palette index - if not node.param2 then - node.param2 = SAVANNA_INDEX - end - minetest.set_node(pos, node) - return - end - end - node.param2 = SAVANNA_INDEX - minetest.set_node(pos, node) - return - end, -}) - -------------------------- -- Try generate tree --- -------------------------- @@ -1109,252 +781,6 @@ function mcl_core.grow_sapling(pos, node) end end --- TODO: Use better tree models for everything --- TODO: Support 2×2 saplings - --- Oak tree -minetest.register_abm({ - label = "Oak tree growth", - nodenames = {"mcl_core:sapling"}, - neighbors = {"group:soil_sapling"}, - interval = 25, - chance = 2, - action = grow_oak -}) -minetest.register_lbm({ - label = "Add growth for unloaded oak tree", - name = "mcl_core:lbm_oak", - nodenames = {"mcl_core:sapling"}, - run_at_every_load = true, - action = grow_oak -}) - --- Dark oak tree -minetest.register_abm({ - label = "Dark oak tree growth", - nodenames = {"mcl_core:darksapling"}, - neighbors = {"group:soil_sapling"}, - interval = 25, - chance = 2, - action = grow_dark_oak -}) -minetest.register_lbm({ - label = "Add growth for unloaded dark oak tree", - name = "mcl_core:lbm_dark_oak", - nodenames = {"mcl_core:darksapling"}, - run_at_every_load = true, - action = grow_dark_oak -}) - --- Jungle Tree -minetest.register_abm({ - label = "Jungle tree growth", - nodenames = {"mcl_core:junglesapling"}, - neighbors = {"group:soil_sapling"}, - interval = 25, - chance = 2, - action = grow_jungle_tree -}) -minetest.register_lbm({ - label = "Add growth for unloaded jungle tree", - name = "mcl_core:lbm_jungle_tree", - nodenames = {"mcl_core:junglesapling"}, - run_at_every_load = true, - action = grow_jungle_tree -}) - --- Spruce tree -minetest.register_abm({ - label = "Spruce tree growth", - nodenames = {"mcl_core:sprucesapling"}, - neighbors = {"group:soil_sapling"}, - interval = 25, - chance = 2, - action = grow_spruce -}) -minetest.register_lbm({ - label = "Add growth for unloaded spruce tree", - name = "mcl_core:lbm_spruce", - nodenames = {"mcl_core:sprucesapling"}, - run_at_every_load = true, - action = grow_spruce -}) - --- Birch tree -minetest.register_abm({ - label = "Birch tree growth", - nodenames = {"mcl_core:birchsapling"}, - neighbors = {"group:soil_sapling"}, - interval = 25, - chance = 2, - action = grow_birch -}) -minetest.register_lbm({ - label = "Add growth for unloaded birch tree", - name = "mcl_core:lbm_birch", - nodenames = {"mcl_core:birchsapling"}, - run_at_every_load = true, - action = grow_birch -}) - --- Acacia tree -minetest.register_abm({ - label = "Acacia tree growth", - nodenames = {"mcl_core:acaciasapling"}, - neighbors = {"group:soil_sapling"}, - interval = 20, - chance = 2, - action = grow_acacia -}) -minetest.register_lbm({ - label = "Add growth for unloaded acacia tree", - name = "mcl_core:lbm_acacia", - nodenames = {"mcl_core:acaciasapling"}, - run_at_every_load = true, - action = grow_acacia -}) - -local function leafdecay_particles(pos, node) - minetest.add_particlespawner({ - amount = math.random(10, 20), - time = 0.1, - minpos = vector.add(pos, {x=-0.4, y=-0.4, z=-0.4}), - maxpos = vector.add(pos, {x=0.4, y=0.4, z=0.4}), - minvel = {x=-0.2, y=-0.2, z=-0.2}, - maxvel = {x=0.2, y=0.1, z=0.2}, - minacc = {x=0, y=-9.81, z=0}, - maxacc = {x=0, y=-9.81, z=0}, - minexptime = 0.1, - maxexptime = 0.5, - minsize = 0.5, - maxsize = 1.5, - collisiondetection = true, - vertical = false, - node = node, - }) -end - -local function vinedecay_particles(pos, node) - local dir = minetest.wallmounted_to_dir(node.param2) - local relpos1, relpos2 - if dir.x < 0 then - relpos1 = { x = -0.45, y = -0.4, z = -0.5 } - relpos2 = { x = -0.4, y = 0.4, z = 0.5 } - elseif dir.x > 0 then - relpos1 = { x = 0.4, y = -0.4, z = -0.5 } - relpos2 = { x = 0.45, y = 0.4, z = 0.5 } - elseif dir.z < 0 then - relpos1 = { x = -0.5, y = -0.4, z = -0.45 } - relpos2 = { x = 0.5, y = 0.4, z = -0.4 } - elseif dir.z > 0 then - relpos1 = { x = -0.5, y = -0.4, z = 0.4 } - relpos2 = { x = 0.5, y = 0.4, z = 0.45 } - else - return - end - - minetest.add_particlespawner({ - amount = math.random(8, 16), - time = 0.1, - minpos = vector.add(pos, relpos1), - maxpos = vector.add(pos, relpos2), - minvel = {x=-0.2, y=-0.2, z=-0.2}, - maxvel = {x=0.2, y=0.1, z=0.2}, - minacc = {x=0, y=-9.81, z=0}, - maxacc = {x=0, y=-9.81, z=0}, - minexptime = 0.1, - maxexptime = 0.5, - minsize = 0.5, - maxsize = 1.0, - collisiondetection = true, - vertical = false, - node = node, - }) -end - ---------------------- --- Vine generating -- ---------------------- -minetest.register_abm({ - label = "Vines growth", - nodenames = {"mcl_core:vine"}, - interval = 47, - chance = 4, - action = function(pos, node, active_object_count, active_object_count_wider) - - -- First of all, check if we are even supported, otherwise, let's die! - if not mcl_core.check_vines_supported(pos, node) then - minetest.remove_node(pos) - vinedecay_particles(pos, node) - minetest.check_for_falling(pos) - return - end - - -- Add vines below pos (if empty) - local function spread_down(origin, target, dir, node) - if math.random(1, 2) == 1 then - if minetest.get_node(target).name == "air" then - minetest.add_node(target, {name = "mcl_core:vine", param2 = node.param2}) - end - end - end - - -- Add vines above pos if it is backed up - local function spread_up(origin, target, dir, node) - local vines_in_area = minetest.find_nodes_in_area({x=origin.x-4, y=origin.y-1, z=origin.z-4}, {x=origin.x+4, y=origin.y+1, z=origin.z+4}, "mcl_core:vine") - -- Less then 4 vines blocks around the ticked vines block (remember the ticked block is counted by above function as well) - if #vines_in_area < 5 then - if math.random(1, 2) == 1 then - if minetest.get_node(target).name == "air" then - local backup_dir = minetest.wallmounted_to_dir(node.param2) - local backup = vector.subtract(target, backup_dir) - local backupnodename = minetest.get_node(backup).name - - -- Check if the block above is supported - if mcl_core.supports_vines(backupnodename) then - minetest.add_node(target, {name = "mcl_core:vine", param2 = node.param2}) - end - end - end - end - end - - local function spread_horizontal(origin, target, dir, node) - local vines_in_area = minetest.find_nodes_in_area({x=origin.x-4, y=origin.y-1, z=origin.z-4}, {x=origin.x+4, y=origin.y+1, z=origin.z+4}, "mcl_core:vine") - -- Less then 4 vines blocks around the ticked vines block (remember the ticked block is counted by above function as well) - if #vines_in_area < 5 then - -- Spread horizontally - local backup_dir = minetest.wallmounted_to_dir(node.param2) - if not vector.equals(backup_dir, dir) then - local target_node = minetest.get_node(target) - if target_node.name == "air" then - local backup = vector.add(target, backup_dir) - local backupnodename = minetest.get_node(backup).name - if mcl_core.supports_vines(backupnodename) then - minetest.add_node(target, {name = "mcl_core:vine", param2 = node.param2}) - end - end - end - end - end - - local directions = { - { { x= 1, y= 0, z= 0 }, spread_horizontal }, - { { x=-1, y= 0, z= 0 }, spread_horizontal }, - { { x= 0, y= 1, z= 0 }, spread_up }, - { { x= 0, y=-1, z= 0 }, spread_down }, - { { x= 0, y= 0, z= 1 }, spread_horizontal }, - { { x= 0, y= 0, z=-1 }, spread_horizontal }, - } - - local d = math.random(1, #directions) - local dir = directions[d][1] - local spread = directions[d][2] - - spread(pos, vector.add(pos, dir), dir, node) - end -}) - -- Returns true of the node supports vines function mcl_core.supports_vines(nodename) local def = minetest.registered_nodes[nodename] @@ -1380,137 +806,6 @@ mcl_core.leafdecay_enable_cache = true -- Spread the load of finding trunks mcl_core.leafdecay_trunk_find_allow_accumulator = 0 -minetest.register_globalstep(function(dtime) - --local finds_per_second = 5000 - mcl_core.leafdecay_trunk_find_allow_accumulator = math.floor(dtime * 5000) -end) - -minetest.register_abm({ - label = "Leaf decay", - nodenames = {"group:leafdecay"}, - neighbors = {"air", "group:liquid"}, - -- A low interval and a high inverse chance spreads the load - interval = 2, - chance = 5, - - action = function(p0, node, _, _) - local do_preserve = false - local d = minetest.registered_nodes[node.name].groups.leafdecay - if not d or d == 0 then - return - end - local n0 = minetest.get_node(p0) - if n0.param2 ~= 0 then - -- Prevent leafdecay for player-placed leaves. - -- param2 is set to 1 after it was placed by the player - return - end - local p0_hash = nil - if mcl_core.leafdecay_enable_cache then - p0_hash = minetest.hash_node_position(p0) - local trunkp = mcl_core.leafdecay_trunk_cache[p0_hash] - if trunkp then - local n = minetest.get_node(trunkp) - local reg = minetest.registered_nodes[n.name] - -- Assume ignore is a trunk, to make the thing work at the border of the active area - if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then - return - end - -- Cache is invalid - table.remove(mcl_core.leafdecay_trunk_cache, p0_hash) - end - end - if mcl_core.leafdecay_trunk_find_allow_accumulator <= 0 then - return - end - mcl_core.leafdecay_trunk_find_allow_accumulator = - mcl_core.leafdecay_trunk_find_allow_accumulator - 1 - -- Assume ignore is a trunk, to make the thing work at the border of the active area - local p1 = minetest.find_node_near(p0, d, {"ignore", "group:tree"}) - if p1 then - do_preserve = true - if mcl_core.leafdecay_enable_cache then - -- Cache the trunk - mcl_core.leafdecay_trunk_cache[p0_hash] = p1 - end - end - if not do_preserve then - -- Drop stuff other than the node itself - local itemstacks = minetest.get_node_drops(n0.name) - for _, itemname in pairs(itemstacks) do - local p_drop = { - x = p0.x - 0.5 + math.random(), - y = p0.y - 0.5 + math.random(), - z = p0.z - 0.5 + math.random(), - } - minetest.add_item(p_drop, itemname) - end - -- Remove node - minetest.remove_node(p0) - leafdecay_particles(p0, n0) - minetest.check_for_falling(p0) - - -- Kill depending vines immediately to skip the vines decay delay - local surround = { - { x = 0, y = 0, z = -1 }, - { x = 0, y = 0, z = 1 }, - { x = -1, y = 0, z = 0 }, - { x = 1, y = 0, z = 0 }, - { x = 0, y = -1, z = -1 }, - } - for s=1, #surround do - local spos = vector.add(p0, surround[s]) - local maybe_vine = minetest.get_node(spos) - --local surround_inverse = vector.multiply(surround[s], -1) - if maybe_vine.name == "mcl_core:vine" and (not mcl_core.check_vines_supported(spos, maybe_vine)) then - minetest.remove_node(spos) - vinedecay_particles(spos, maybe_vine) - minetest.check_for_falling(spos) - end - end - end - end -}) - --- Remove vines which are not supported by anything, similar to leaf decay. ---[[ TODO: Vines are supposed to die immediately when they supporting block is destroyed. -But doing this in Minetest would be too complicated / hacky. This vines decay is a simple -way to make sure that all floating vines are destroyed eventually. ]] -minetest.register_abm({ - label = "Vines decay", - nodenames = {"mcl_core:vine"}, - neighbors = {"air"}, - -- A low interval and a high inverse chance spreads the load - interval = 4, - chance = 8, - action = function(p0, node, _, _) - if not mcl_core.check_vines_supported(p0, node) then - -- Vines must die! - minetest.remove_node(p0) - vinedecay_particles(p0, node) - -- Just in case a falling node happens to float above vines - minetest.check_for_falling(p0) - end - end -}) - --- Melt snow -minetest.register_abm({ - label = "Top snow and ice melting", - nodenames = {"mcl_core:snow", "mcl_core:ice"}, - interval = 16, - chance = 8, - action = function(pos, node) - if minetest.get_node_light(pos, 0) >= 12 then - if node.name == "mcl_core:ice" then - mcl_core.melt_ice(pos) - else - minetest.remove_node(pos) - end - end - end -}) - --[[ Call this for vines nodes only. Given the pos and node of a vines node, this returns true if the vines are supported and false if the vines are currently floating. diff --git a/mods/ITEMS/mcl_core/init.lua b/mods/ITEMS/mcl_core/init.lua index c345d057bc..a36244beaa 100644 --- a/mods/ITEMS/mcl_core/init.lua +++ b/mods/ITEMS/mcl_core/init.lua @@ -20,11 +20,3 @@ mcl_autogroup.register_diggroup("hoey") local modpath = minetest.get_modpath(minetest.get_current_modname()) dofile(modpath.."/functions.lua") dofile(modpath.."/nodes_base.lua") -- Simple solid cubic nodes with simple definitions -dofile(modpath.."/nodes_liquid.lua") -- Liquids -dofile(modpath.."/nodes_cactuscane.lua") -- Cactus and sugar canes -dofile(modpath.."/nodes_trees.lua") -- Tree nodes: Wood, Planks, Sapling, Leaves -dofile(modpath.."/nodes_glass.lua") -- Glass -dofile(modpath.."/nodes_climb.lua") -- Climbable nodes -dofile(modpath.."/nodes_misc.lua") -- Other and special nodes -dofile(modpath.."/craftitems.lua") -dofile(modpath.."/crafting.lua") diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index 0e9b53d041..a718b79866 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -2,16 +2,6 @@ local S = minetest.get_translator(minetest.get_current_modname()) -- Simple solid cubic nodes, most of them are the ground materials and simple building blocks -local translucent_ice = minetest.settings:get_bool("mcl_translucent_ice", false) -local ice_drawtype, ice_texture_alpha -if translucent_ice then - ice_drawtype = "glasslike" - ice_texture_alpha = minetest.features.use_texture_alpha_string_modes and "blend" or true -else - ice_drawtype = "normal" - ice_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false -end - mcl_core.fortune_drop_ore = { discrete_uniform_distribution = true, min_count = 2, @@ -22,347 +12,27 @@ mcl_core.fortune_drop_ore = { minetest.register_node("mcl_core:stone", { description = S("Stone"), - _doc_items_longdesc = S("One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava."), - _doc_items_hidden = false, - tiles = {"default_stone.png"}, + tiles = {"default_cobble.png"}, -- Early stone looks like cobble is_ground_content = true, stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - drop = "mcl_core:cobble", - sounds = mcl_sounds.node_sound_stone_defaults(), + groups = {handy=1, shovely=1, stone=1, building_block=1, material_stone=1}, + drop = "mcl_core:stone", _mcl_blast_resistance = 6, _mcl_hardness = 1.5, _mcl_silk_touch_drop = true, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - if awards and awards.unlock and digger and digger:is_player() then - awards.unlock(digger:get_player_name(), "mcl:stoneAge") + on_construct = function (pos) + if pos.y == 0 then + minetest.set_node(pos, {name="mcl_core:dirt_with_grass"}) end - end, -}) - -minetest.register_node("mcl_core:stone_with_coal", { - description = S("Coal Ore"), - _doc_items_longdesc = S("Some coal contained in stone, it is very common and can be found inside stone in medium to large clusters at nearly every height."), - _doc_items_hidden = false, - tiles = {"mcl_core_coal_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, building_block=1, material_stone=1, xp=1, blast_furnace_smeltable=1}, - drop = "mcl_core:coal_lump", - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = mcl_core.fortune_drop_ore, -}) - -minetest.register_node("mcl_core:stone_with_iron", { - description = S("Iron Ore"), - _doc_items_longdesc = S("Some iron contained in stone, it is prety common and can be found below sea level."), - tiles = {"mcl_core_iron_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=3, building_block=1, material_stone=1, blast_furnace_smeltable=1}, - drop = "mcl_core:stone_with_iron", - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, -}) - - -minetest.register_node("mcl_core:stone_with_gold", { - description = S("Gold Ore"), - _doc_items_longdesc = S("This stone contains pure gold, a rare metal."), - tiles = {"mcl_core_gold_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=4, building_block=1, material_stone=1, blast_furnace_smeltable=1}, - drop = "mcl_core:stone_with_gold", - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, -}) - -local redstone_timer = 68.28 -local function redstone_ore_activate(pos) - minetest.swap_node(pos, {name="mcl_core:stone_with_redstone_lit"}) - local t = minetest.get_node_timer(pos) - t:start(redstone_timer) -end -minetest.register_node("mcl_core:stone_with_redstone", { - description = S("Redstone Ore"), - _doc_items_longdesc = S("Redstone ore is commonly found near the bottom of the world. It glows when it is punched or walked upon."), - tiles = {"mcl_core_redstone_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=4, building_block=1, material_stone=1, xp=7, blast_furnace_smeltable=1}, - drop = { - items = { - max_items = 1, - { - items = {"mesecons:redstone 4"}, - rarity = 2, - }, - { - items = {"mesecons:redstone 5"}, - }, - } - }, - sounds = mcl_sounds.node_sound_stone_defaults(), - on_punch = redstone_ore_activate, - on_walk_over = redstone_ore_activate, -- Uses walkover mod - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { - discrete_uniform_distribution = true, - items = {"mesecons:redstone"}, - min_count = 4, - max_count = 5, - } -}) - -local function redstone_ore_reactivate(pos) - local t = minetest.get_node_timer(pos) - t:start(redstone_timer) -end --- Light the redstone ore up when it has been touched -minetest.register_node("mcl_core:stone_with_redstone_lit", { - description = S("Lit Redstone Ore"), - _doc_items_create_entry = false, - tiles = {"mcl_core_redstone_ore.png"}, - paramtype = "light", - light_source = 9, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=4, not_in_creative_inventory=1, material_stone=1, xp=7, blast_furnace_smeltable=1}, - drop = { - items = { - max_items = 1, - { - items = {"mesecons:redstone 4"}, - rarity = 2, - }, - { - items = {"mesecons:redstone 5"}, - }, - } - }, - sounds = mcl_sounds.node_sound_stone_defaults(), - -- Reset timer after re-punching or stepping on - on_punch = redstone_ore_reactivate, - on_walk_over = redstone_ore_reactivate, -- Uses walkover mod - -- Turn back to normal node after some time has passed - on_timer = function(pos, elapsed) - minetest.swap_node(pos, {name="mcl_core:stone_with_redstone"}) - end, - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = {"mcl_core:stone_with_redstone"}, - _mcl_fortune_drop = { - discrete_uniform_distribution = true, - items = {"mesecons:redstone"}, - min_count = 4, - max_count = 5, - } -}) - -minetest.register_node("mcl_core:stone_with_lapis", { - description = S("Lapis Lazuli Ore"), - _doc_items_longdesc = S("Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world."), - tiles = {"mcl_core_lapis_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=3, building_block=1, material_stone=1, xp=6, blast_furnace_smeltable=1}, - drop = { - max_items = 1, - items = { - {items = {"mcl_dye:blue 8"},rarity = 5}, - {items = {"mcl_dye:blue 7"},rarity = 5}, - {items = {"mcl_dye:blue 6"},rarity = 5}, - {items = {"mcl_dye:blue 5"},rarity = 5}, - {items = {"mcl_dye:blue 4"}}, - } - }, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = mcl_core.fortune_drop_ore, -}) - -minetest.register_node("mcl_core:stone_with_emerald", { - description = S("Emerald Ore"), - _doc_items_longdesc = S("Emerald ore is the ore of emeralds. It is very rare and can be found alone, not in clusters."), - tiles = {"mcl_core_emerald_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=4, building_block=1, material_stone=1, xp=6, blast_furnace_smeltable=1}, - drop = "mcl_core:emerald", - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = mcl_core.fortune_drop_ore, -}) - -minetest.register_node("mcl_core:stone_with_diamond", { - description = S("Diamond Ore"), - _doc_items_longdesc = S("Diamond ore is rare and can be found in clusters near the bottom of the world."), - tiles = {"mcl_core_diamond_ore.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=4, building_block=1, material_stone=1, xp=4, blast_furnace_smeltable=1}, - drop = "mcl_core:diamond", - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = mcl_core.fortune_drop_ore, -}) - -minetest.register_node("mcl_core:stonebrick", { - description = S("Stone Bricks"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"default_stone_brick.png"}, - stack_max = 64, - groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:stonebrickcarved", { - description = S("Chiseled Stone Bricks"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"mcl_core_stonebrick_carved.png"}, - stack_max = 64, - groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:stonebrickcracked", { - description = S("Cracked Stone Bricks"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"mcl_core_stonebrick_cracked.png"}, - stack_max = 64, - groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:stonebrickmossy", { - description = S("Mossy Stone Bricks"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"mcl_core_stonebrick_mossy.png"}, - stack_max = 64, - groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:stone_smooth", { - description = S("Polished Stone"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"mcl_stairs_stone_slab_top.png"}, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:granite", { - description = S("Granite"), - _doc_items_longdesc = S("Granite is an igneous rock."), - tiles = {"mcl_core_granite.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:granite_smooth", { - description = S("Polished Granite"), - _doc_items_longdesc = S("Polished granite is a decorative building block made from granite."), - tiles = {"mcl_core_granite_smooth.png"}, - stack_max = 64, - is_ground_content = false, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:andesite", { - description = S("Andesite"), - _doc_items_longdesc = S("Andesite is an igneous rock."), - tiles = {"mcl_core_andesite.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:andesite_smooth", { - description = S("Polished Andesite"), - _doc_items_longdesc = S("Polished andesite is a decorative building block made from andesite."), - tiles = {"mcl_core_andesite_smooth.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:diorite", { - description = S("Diorite"), - _doc_items_longdesc = S("Diorite is an igneous rock."), - tiles = {"mcl_core_diorite.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_core:diorite_smooth", { - description = S("Polished Diorite"), - _doc_items_longdesc = S("Polished diorite is a decorative building block made from diorite."), - tiles = {"mcl_core_diorite_smooth.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 1.5, + end }) -- Grass Block minetest.register_node("mcl_core:dirt_with_grass", { description = S("Grass Block"), - _doc_items_longdesc = S("A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt."), - _doc_items_hidden = false, paramtype2 = "color", - tiles = {"mcl_core_grass_block_top.png", { name="default_dirt.png", color="white" }}, - overlay_tiles = {"mcl_core_grass_block_top.png", "", {name="mcl_core_grass_block_side_overlay.png", tileable_vertical=false}}, + tiles = {"mcl_core_grass_block_top.png"}, + overlay_tiles = {"mcl_core_grass_block_top.png"}, palette = "mcl_core_palette_grass.png", palette_index = 0, color = "#8EB971", @@ -374,702 +44,9 @@ minetest.register_node("mcl_core:dirt_with_grass", { spreading_dirt_type = 1, enderman_takable = 1, building_block = 1, compostability = 30, path_creation_possible=1 }, - drop = "mcl_core:dirt", - sounds = mcl_sounds.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.1}, - }), - on_construct = function(pos) - local node = minetest.get_node(pos) - if node.param2 == 0 then - local new_node = mcl_core.get_grass_block_type(pos) - if new_node.param2 ~= 0 or new_node.name ~= "mcl_core:dirt_with_grass" then - minetest.set_node(pos, new_node) - end - end - return mcl_core.on_snowable_construct(pos) - end, - _mcl_snowed = "mcl_core:dirt_with_grass_snow", + drop = "mcl_core:stone", + -- _mcl_snowed = "mcl_core:dirt_with_grass_snow", _mcl_blast_resistance = 0.5, _mcl_hardness = 0.6, _mcl_silk_touch_drop = true, }) -mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass", nil, nil, true, S("Dirt with Snow")) - -minetest.register_node("mcl_core:grass_path", { - tiles = {"mcl_core_grass_path_top.png", "default_dirt.png", "mcl_core_grass_path_side.png"}, - description = S("Grass Path"), - _doc_items_longdesc = S("Grass paths are a decorative variant of grass blocks. Their top has a different color and they are a bit lower than grass blocks, making them useful to build footpaths. Grass paths can be created with a shovel. A grass path turns into dirt when it is below a solid block."), - drop = "mcl_core:dirt", - is_ground_content = true, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - -- 15/16 of the normal height - {-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5}, - } - }, - groups = {handy=1,shovely=1, cultivatable=2, dirtifies_below_solid=1, dirtifier=1, deco_block=1 }, - sounds = mcl_sounds.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.1}, - }), - _mcl_blast_resistance = 0.65, - _mcl_hardness = 0.6, -}) - --- TODO: Add particles -minetest.register_node("mcl_core:mycelium", { - description = S("Mycelium"), - _doc_items_longdesc = S("Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt."), - tiles = {"mcl_core_mycelium_top.png", "default_dirt.png", {name="mcl_core_mycelium_side.png", tileable_vertical=false}}, - is_ground_content = true, - stack_max = 64, - groups = { handy = 1, shovely = 1, dirt = 2, spreading_dirt_type = 1, enderman_takable = 1, building_block = 1, soil_sapling = 2, path_creation_possible=1}, - drop = "mcl_core:dirt", - sounds = mcl_sounds.node_sound_dirt_defaults({ - footstep = {name="default_grass_footstep", gain=0.1}, - }), - - on_construct = mcl_core.on_snowable_construct, - _mcl_snowed = "mcl_core:mycelium_snow", - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.6, - _mcl_silk_touch_drop = true, -}) -mcl_core.register_snowed_node("mcl_core:mycelium_snow", "mcl_core:mycelium", nil, nil, false, S("Mycelium with Snow")) - -minetest.register_node("mcl_core:podzol", { - description = S("Podzol"), - _doc_items_longdesc = S("Podzol is a type of dirt found in taiga forests. Only a few plants are able to survive on it."), - tiles = {"mcl_core_dirt_podzol_top.png", "default_dirt.png", {name="mcl_core_dirt_podzol_side.png", tileable_vertical=false}}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=3, dirt=2,soil=1, soil_sapling=2, soil_sugarcane=1, enderman_takable=1, building_block=1,path_creation_possible=1}, - drop = "mcl_core:dirt", - sounds = mcl_sounds.node_sound_dirt_defaults(), - on_construct = mcl_core.on_snowable_construct, - _mcl_snowed = "mcl_core:podzol_snow", - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.6, - _mcl_silk_touch_drop = true, -}) -mcl_core.register_snowed_node("mcl_core:podzol_snow", "mcl_core:podzol", nil, nil, false, S("Podzol with Snow")) - -minetest.register_node("mcl_core:dirt", { - description = S("Dirt"), - _doc_items_longdesc = S("Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby."), - _doc_items_hidden = false, - tiles = {"default_dirt.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=1, dirt=1,soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, enderman_takable=1, building_block=1, path_creation_possible=1}, - sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, -}) - -minetest.register_node("mcl_core:coarse_dirt", { - description = S("Coarse Dirt"), - _doc_items_longdesc = S("Coarse dirt acts as a soil for some plants and is similar to dirt, but it will never grow a cover."), - tiles = {"mcl_core_coarse_dirt.png"}, - is_ground_content = true, - stack_max = 64, - groups = { handy = 1,shovely = 1, dirt = 3, soil = 1, soil_sugarcane = 1, cultivatable = 1, enderman_takable = 1, building_block = 1, soil_sapling = 2, path_creation_possible=1}, - sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, -}) - -minetest.register_node("mcl_core:gravel", { - description = S("Gravel"), - _doc_items_longdesc = S("This block consists of a couple of loose stones and can't support itself."), - tiles = {"default_gravel.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=1, falling_node=1, enderman_takable=1, building_block=1, material_sand=1}, - drop = { - max_items = 1, - items = { - {items = {"mcl_core:flint"},rarity = 10}, - {items = {"mcl_core:gravel"}} - } - }, - sounds = mcl_sounds.node_sound_dirt_defaults({ - footstep = {name="default_gravel_footstep", gain=0.45}, - }), - _mcl_blast_resistance = 0.6, - _mcl_hardness = 0.6, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { - [1] = { - max_items = 1, - items = { - {items = {"mcl_core:flint"},rarity = 7}, - {items = {"mcl_core:gravel"}} - } - }, - [2] = { - max_items = 1, - items = { - {items = {"mcl_core:flint"},rarity = 4}, - {items = {"mcl_core:gravel"}} - } - }, - [3] = "mcl_core:flint", - }, -}) - --- sandstone -- -minetest.register_node("mcl_core:sand", { - description = S("Sand"), - _doc_items_longdesc = S("Sand is found in large quantities at beaches and deserts."), - _doc_items_hidden = false, - tiles = {"default_sand.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1}, - sounds = mcl_sounds.node_sound_sand_defaults(), - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, -}) - -minetest.register_node("mcl_core:sandstone", { - description = S("Sandstone"), - _doc_items_hidden = false, - _doc_items_longdesc = S("Sandstone is compressed sand and is a rather soft kind of stone."), - tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_normal.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:sandstonesmooth", { - description = S("Cut Sandstone"), - _doc_items_longdesc = S("Cut sandstone is a decorative building block."), - tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_smooth.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:sandstonecarved", { - description = S("Chiseled Sandstone"), - _doc_items_longdesc = S("Chiseled sandstone is a decorative building block."), - tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_carved.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:sandstonesmooth2", { - description = S("Smooth Sandstone"), - _doc_items_hidden = false, - _doc_items_longdesc = S("Smooth sandstone is compressed sand and is a rather soft kind of stone."), - tiles = {"mcl_core_sandstone_top.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - --- red sandstone -- - -minetest.register_node("mcl_core:redsand", { - description = S("Red Sand"), - _doc_items_longdesc = S("Red sand is found in large quantities in mesa biomes."), - tiles = {"mcl_core_red_sand.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1}, - sounds = mcl_sounds.node_sound_sand_defaults(), - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, -}) - -minetest.register_node("mcl_core:redsandstone", { - description = S("Red Sandstone"), - _doc_items_longdesc = S("Red sandstone is compressed red sand and is a rather soft kind of stone."), - tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_normal.png"}, - is_ground_content = true, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:redsandstonesmooth", { - description = S("Cut Red Sandstone"), - _doc_items_longdesc = S("Cut red sandstone is a decorative building block."), - tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_smooth.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:redsandstonecarved", { - description = S("Chiseled Red Sandstone"), - _doc_items_longdesc = S("Chiseled red sandstone is a decorative building block."), - tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_carved.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - -minetest.register_node("mcl_core:redsandstonesmooth2", { - description = S("Smooth Red Sandstone"), - _doc_items_longdesc = S("Smooth red sandstone is a decorative building block."), - tiles = {"mcl_core_red_sandstone_top.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, - _mcl_hardness = 0.8, -}) - ---- - -minetest.register_node("mcl_core:clay", { - description = S("Clay"), - _doc_items_longdesc = S("Clay is a versatile kind of earth commonly found at beaches underwater."), - _doc_items_hidden = false, - tiles = {"default_clay.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,shovely=1, enderman_takable=1, building_block=1}, - drop = "mcl_core:clay_lump 4", - sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.6, - _mcl_hardness = 0.6, - _mcl_silk_touch_drop = true, -}) - -minetest.register_node("mcl_core:brick_block", { - -- Original name: “Bricks” - description = S("Brick Block"), - _doc_items_longdesc = S("Brick blocks are a good building material for building solid houses and can take quite a punch."), - tiles = {"default_brick.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 2, -}) - - -minetest.register_node("mcl_core:bedrock", { - description = S("Bedrock"), - _doc_items_longdesc = S("Bedrock is a very hard type of rock. It can not be broken, destroyed, collected or moved by normal means, unless in Creative Mode.").."\n".. - S("In the End dimension, starting a fire on this block will create an eternal fire."), - tiles = {"mcl_core_bedrock.png"}, - stack_max = 64, - groups = {creative_breakable=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - is_ground_content = false, - on_blast = function() end, - drop = "", - _mcl_blast_resistance = 3600000, - _mcl_hardness = -1, - - -- Eternal fire on top of bedrock, if in the End dimension - after_destruct = function(pos) - pos.y = pos.y + 1 - if minetest.get_node(pos).name == "mcl_fire:eternal_fire" then - minetest.remove_node(pos) - end - end, - _on_ignite = function(player, pointed_thing) - local pos = pointed_thing.under - local dim = mcl_worlds.pos_to_dimension(pos) - local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} - local fn = minetest.get_node(flame_pos) - local pname = player:get_player_name() - if minetest.is_protected(flame_pos, pname) then - return minetest.record_protection_violation(flame_pos, pname) - end - if dim == "end" and fn.name == "air" and pointed_thing.under.y < pointed_thing.above.y then - minetest.set_node(flame_pos, {name = "mcl_fire:eternal_fire"}) - return true - else - return false - end - end, -}) - -minetest.register_node("mcl_core:cobble", { - description = S("Cobblestone"), - _doc_items_longdesc = doc.sub.items.temp.build, - _doc_items_hidden = false, - tiles = {"default_cobble.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, building_block=1, material_stone=1, cobble=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 2, -}) - -minetest.register_node("mcl_core:mossycobble", { - description = S("Mossy Cobblestone"), - _doc_items_longdesc = doc.sub.items.temp.build, - tiles = {"default_mossycobble.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 2, -}) - -minetest.register_node("mcl_core:coalblock", { - description = S("Block of Coal"), - _doc_items_longdesc = S("Blocks of coal are useful as a compact storage of coal and very useful as a furnace fuel. A block of coal is as efficient as 10 coal."), - tiles = {"default_coal_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=1, flammable=1, building_block=1, material_stone=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, -}) - -minetest.register_node("mcl_core:ironblock", { - description = S("Block of Iron"), - _doc_items_longdesc = S("A block of iron is mostly a decorative block but also useful as a compact storage of iron ingots."), - tiles = {"default_steel_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=2, building_block=1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, -}) - -minetest.register_node("mcl_core:goldblock", { - description = S("Block of Gold"), - _doc_items_longdesc = S("A block of gold is mostly a shiny decorative block but also useful as a compact storage of gold ingots."), - tiles = {"default_gold_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=4, building_block=1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, -}) - -minetest.register_node("mcl_core:diamondblock", { - description = S("Block of Diamond"), - _doc_items_longdesc = S("A block of diamond is mostly a shiny decorative block but also useful as a compact storage of diamonds."), - tiles = {"default_diamond_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=4, building_block=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, -}) - -minetest.register_node("mcl_core:lapisblock", { - description = S("Lapis Lazuli Block"), - _doc_items_longdesc = S("A lapis lazuli block is mostly a decorative block but also useful as a compact storage of lapis lazuli."), - tiles = {"mcl_core_lapis_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=3, building_block=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 3, -}) - -minetest.register_node("mcl_core:emeraldblock", { - description = S("Block of Emerald"), - _doc_items_longdesc = S("A block of emerald is mostly a shiny decorative block but also useful as a compact storage of emeralds."), - tiles = {"mcl_core_emerald_block.png"}, - is_ground_content = false, - stack_max = 64, - groups = {pickaxey=4, building_block=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, -}) - -minetest.register_node("mcl_core:obsidian", { - description = S("Obsidian"), - _doc_items_longdesc = S("Obsidian is an extremely hard mineral with an enourmous blast-resistance. Obsidian is formed when water meets lava."), - tiles = {"default_obsidian.png"}, - is_ground_content = false, - sounds = mcl_sounds.node_sound_stone_defaults(), - stack_max = 64, - groups = {pickaxey=5, building_block=1, material_stone=1}, - _mcl_blast_resistance = 1200, - _mcl_hardness = 50, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - if awards and awards.unlock and digger and digger:is_player() then - awards.unlock(digger:get_player_name(), "mcl:obsidian") - end - end, -}) - -minetest.register_node("mcl_core:ice", { - description = S("Ice"), - _doc_items_longdesc = S("Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source."), - drawtype = ice_drawtype, - tiles = {"default_ice.png"}, - is_ground_content = true, - paramtype = "light", - use_texture_alpha = ice_texture_alpha, - stack_max = 64, - groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1}, - drop = "", - sounds = mcl_sounds.node_sound_glass_defaults(), - node_dig_prediction = "mcl_core:water_source", - after_dig_node = function(pos, oldnode) - mcl_core.melt_ice(pos) - end, - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, - _mcl_silk_touch_drop = true, -}) - -minetest.register_node("mcl_core:packed_ice", { - description = S("Packed Ice"), - _doc_items_longdesc = S("Packed ice is a compressed form of ice. It is opaque and solid."), - tiles = {"mcl_core_ice_packed.png"}, - is_ground_content = true, - stack_max = 64, - groups = {handy=1,pickaxey=1, slippery=3, building_block=1, ice=1}, - drop = "", - sounds = mcl_sounds.node_sound_glass_defaults(), - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, - _mcl_silk_touch_drop = true, -}) - --- Frosted Ice (4 nodes) -for i=0,3 do - local ice = {} - function ice.increase_age(pos, ice_near, first_melt) - -- Increase age of frosted age or turn to water source if too old - local nn = minetest.get_node(pos).name - local age = tonumber(string.sub(nn, -1)) - local dim = mcl_worlds.pos_to_dimension(pos) - if age == nil then return end - if age < 3 then - minetest.swap_node(pos, { name = "mcl_core:frosted_ice_"..(age+1) }) - else - if dim ~= "nether" then - minetest.set_node(pos, { name = "mcl_core:water_source" }) - else - minetest.remove_node(pos) - end - end - -- Spread aging to neighbor blocks, but not recursively - if first_melt and i == 3 then - for j=1, #ice_near do - ice.increase_age(ice_near[j], false) - end - end - end - local use_doc = i == 0 - local longdesc - if use_doc then - longdesc = S("Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.") - end - minetest.register_node("mcl_core:frosted_ice_"..i, { - description = S("Frosted Ice"), - _doc_items_create_entry = use_doc, - _doc_items_longdesc = longdesc, - drawtype = ice_drawtype, - tiles = {"mcl_core_frosted_ice_"..i..".png"}, - is_ground_content = false, - paramtype = "light", - use_texture_alpha = ice_texture_alpha, - stack_max = 64, - groups = {handy=1, frosted_ice=1, slippery=3, not_in_creative_inventory=1, ice=1}, - drop = "", - sounds = mcl_sounds.node_sound_glass_defaults(), - on_construct = function(pos) - local timer = minetest.get_node_timer(pos) - timer:start(1.5) - end, - on_timer = function(pos, elapsed) - local ice_near = minetest.find_nodes_in_area( - { x = pos.x - 1, y = pos.y - 1, z = pos.z - 1 }, - { x = pos.x + 1, y = pos.y + 1, z = pos.z + 1 }, - { "group:frosted_ice" } - ) - -- Check condition to increase age - if (#ice_near < 4 and minetest.get_node_light(pos) > (11 - i)) or math.random(1, 3) == 1 then - ice.increase_age(pos, ice_near, true) - end - local timer = minetest.get_node_timer(pos) - timer:start(1.5) - end, - _mcl_blast_resistance = 0.5, - _mcl_hardness = 0.5, - }) - - -- Add entry aliases for the Help - if minetest.get_modpath("doc") and i > 0 then - doc.add_entry_alias("nodes", "mcl_core:frosted_ice_0", "nodes", "mcl_core:frosted_ice_"..i) - end -end - -for i=1,8 do - local id, desc, longdesc, usagehelp, tt_help, help, walkable, drawtype, node_box - if i == 1 then - id = "mcl_core:snow" - desc = S("Top Snow") - tt_help = S("Stackable") - longdesc = S("Top snow is a layer of snow. It melts near light sources other than the sun with a light level of 12 or higher.").."\n"..S("Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.") - usagehelp = S("This block can only be placed on full solid blocks and on another top snow (which increases its height).") - walkable = false - else - id = "mcl_core:snow_"..i - help = false - if minetest.get_modpath("doc") then - doc.add_entry_alias("nodes", "mcl_core:snow", "nodes", id) - end - walkable = true - end - if i ~= 8 then - drawtype = "nodebox" - node_box = { - type = "fixed", - fixed = { -0.5, -0.5, -0.5, 0.5, -0.5 + (2*i)/16, 0.5 }, - } - end - local function on_place(itemstack, placer, pointed_thing) - -- Placement is only allowed on top of solid blocks - if pointed_thing.type ~= "node" then - -- no interaction possible with entities - return itemstack - end - local def = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name] - local above = pointed_thing.above - local under = pointed_thing.under - local unode = minetest.get_node(under) - - -- Check special rightclick action of pointed node - if def and def.on_rightclick then - if not placer:get_player_control().sneak then - return def.on_rightclick(under, unode, placer, itemstack, - pointed_thing) or itemstack, false - end - end - - -- Get position where snow would be placed - local target - if minetest.registered_nodes[unode.name].buildable_to then - target = under - else - target = above - end - local tnode = minetest.get_node(target) - - -- Stack snow - local g = minetest.get_item_group(tnode.name, "top_snow") - if g > 0 then - local itemstring = itemstack:get_name() - local itemcount = itemstack:get_count() - local fakestack = ItemStack(itemstring.." "..itemcount) - fakestack:set_name("mcl_core:snow_"..math.min(8, (i+g))) - itemstack = minetest.item_place(fakestack, placer, pointed_thing) - minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = pointed_thing.under}, true) - itemstack:set_name(itemstring) - return itemstack - end - - -- Place snow normally - local below = {x=target.x, y=target.y-1, z=target.z} - local bnode = minetest.get_node(below) - - if minetest.get_item_group(bnode.name, "solid") == 1 then - minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = below}, true) - return minetest.item_place_node(itemstack, placer, pointed_thing) - else - return itemstack - end - end - - minetest.register_node(id, { - description = desc, - _tt_help = tt_help, - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usagehelp, - _doc_items_create_entry = help, - _doc_items_hidden = false, - tiles = {"default_snow.png"}, - wield_image = "default_snow.png", - wield_scale = { x=1, y=1, z=i }, - is_ground_content = true, - paramtype = "light", - sunlight_propagates = true, - buildable_to = true, - node_placement_prediction = "", -- to prevent client flickering when stacking snow - drawtype = drawtype, - stack_max = 64, - walkable = walkable, - floodable = true, - on_flood = function(pos, oldnode, newnode) - local npos = {x=pos.x, y=pos.y-1, z=pos.z} - local node = minetest.get_node(npos) - mcl_core.clear_snow_dirt(npos, node) - end, - node_box = node_box, - groups = {shovely=1, attached_node=1,deco_block=1, dig_by_piston=1, snow_cover=1, top_snow=i}, - sounds = mcl_sounds.node_sound_snow_defaults(), - on_construct = mcl_core.on_snow_construct, - on_place = on_place, - after_destruct = mcl_core.after_snow_destruct, - drop = "mcl_throwing:snowball "..(i+1), - _mcl_blast_resistance = 0.1, - _mcl_hardness = 0.1, - _mcl_silk_touch_drop = {"mcl_core:snow " .. i}, - }) -end - -minetest.register_node("mcl_core:snowblock", { - description = S("Snow"), - _doc_items_longdesc = S("This is a full block of snow. Snow of this thickness is usually found in areas of extreme cold."), - _doc_items_hidden = false, - tiles = {"default_snow.png"}, - is_ground_content = true, - stack_max = 64, - groups = {shovely=1, building_block=1, snow_cover=1}, - sounds = mcl_sounds.node_sound_snow_defaults(), - on_construct = mcl_core.on_snow_construct, - after_destruct = mcl_core.after_snow_destruct, - drop = "mcl_throwing:snowball 4", - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - _mcl_silk_touch_drop = true, -}) - --- Add entry aliases for the Help -if minetest.get_modpath("doc") then - doc.add_entry_alias("nodes", "mcl_core:stone_with_redstone", "nodes", "mcl_core:stone_with_redstone_lit") - doc.add_entry_alias("nodes", "mcl_core:water_source", "nodes", "mcl_core:water_flowing") - doc.add_entry_alias("nodes", "mcl_core:lava_source", "nodes", "mcl_core:lava_flowing") -end diff --git a/mods/ITEMS/mcl_core/nodes_cactuscane.lua b/mods/ITEMS/mcl_core/nodes_cactuscane.lua deleted file mode 100644 index 62d5cc2b5f..0000000000 --- a/mods/ITEMS/mcl_core/nodes_cactuscane.lua +++ /dev/null @@ -1,138 +0,0 @@ --- Cactus and Sugar Cane - -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_node("mcl_core:cactus", { - description = S("Cactus"), - _tt_help = S("Grows on sand").."\n"..minetest.colorize(mcl_colors.YELLOW, S("Contact damage: @1 per half second", 1)), - _doc_items_longdesc = S("This is a piece of cactus commonly found in dry areas, especially deserts. Over time, cacti will grow up to 3 blocks high on sand or red sand. A cactus hurts living beings touching it with a damage of 1 HP every half second. When a cactus block is broken, all cactus blocks connected above it will break as well."), - _doc_items_usagehelp = S("A cactus can only be placed on top of another cactus or any sand."), - drawtype = "nodebox", - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "clip" or true, - tiles = {"mcl_core_cactus_top.png", "mcl_core_cactus_bottom.png", "mcl_core_cactus_side.png"}, - is_ground_content = true, - stack_max = 64, - groups = { - handy = 1, attached_node = 1, deco_block = 1, dig_by_piston = 1, - plant = 1, enderman_takable = 1, compostability = 50 - }, - sounds = mcl_sounds.node_sound_wood_defaults(), - paramtype = "light", - sunlight_propagates = true, - node_placement_prediction = "", - node_box = { - type = "fixed", - fixed = { - {-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main body - {-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes - {-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes - {-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes - {7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes - }, - }, - collision_box = { - type = "fixed", - fixed = {-7/16, -8/16, -7/16, 7/16, 7/16, 7/16}, -- Main body. slightly lower than node box - }, - selection_box = { - type = "fixed", - fixed = { - {-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, - }, - }, - -- Only allow to place cactus on sand or cactus - on_place = mcl_util.generate_on_place_plant_function(function(pos, node) - local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z}) - if not node_below then return false end - return (node_below.name == "mcl_core:cactus" or minetest.get_item_group(node_below.name, "sand") == 1) - end), - _mcl_blast_resistance = 0.4, - _mcl_hardness = 0.4, -}) - -minetest.register_node("mcl_core:reeds", { - description = S("Sugar Canes"), - _tt_help = S("Grows on sand or dirt next to water"), - _doc_items_longdesc = S("Sugar canes are a plant which has some uses in crafting. Sugar canes will slowly grow up to 3 blocks when they are next to water and are placed on a grass block, dirt, sand, red sand, podzol or coarse dirt. When a sugar cane is broken, all sugar canes connected above will break as well."), - _doc_items_usagehelp = S("Sugar canes can only be placed top of other sugar canes and on top of blocks on which they would grow."), - drawtype = "plantlike", - paramtype2 = "color", - tiles = {"mcl_core_papyrus.png"}, - palette = "mcl_core_palette_grass.png", - palette_index = 0, - inventory_image = "mcl_core_reeds.png", - wield_image = "mcl_core_reeds.png", - paramtype = "light", - walkable = false, - is_ground_content = true, - node_box = { - type = "fixed", - fixed = { - {-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main Body - {-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes - {-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes - {-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes - {7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-6/16, -8/16, -6/16, 6/16, 8/16, 6/16}, - }, - }, - stack_max = 64, - groups = { - dig_immediate = 3, craftitem = 1, deco_block = 1, dig_by_piston = 1, - plant = 1, non_mycelium_plant = 1, compostability = 50 - }, - sounds = mcl_sounds.node_sound_leaves_defaults(), - node_placement_prediction = "", - drop = "mcl_core:reeds", -- to prevent color inheritation - on_place = mcl_util.generate_on_place_plant_function(function(place_pos, place_node) - local soil_pos = {x=place_pos.x, y=place_pos.y-1, z=place_pos.z} - local soil_node = minetest.get_node_or_nil(soil_pos) - if not soil_node then return false end - local snn = soil_node.name -- soil node name - - -- Placement rules: - -- * On top of group:soil_sugarcane AND next to water or frosted ice. OR - -- * On top of sugar canes - -- * Not inside liquid - if snn == "mcl_core:reeds" then - return true - elseif minetest.get_item_group(snn, "soil_sugarcane") == 0 then - return false - end - local place_node = minetest.get_node(place_pos) - local pdef = minetest.registered_nodes[place_node.name] - if pdef and pdef.liquidtype ~= "none" then - return false - end - - -- Legal water position rules are the same as for decoration spawn_by rules. - -- This differs from MC, which does not allow diagonal neighbors - -- and neighbors 1 layer above. - local np1 = {x=soil_pos.x-1, y=soil_pos.y, z=soil_pos.z-1} - local np2 = {x=soil_pos.x+1, y=soil_pos.y+1, z=soil_pos.z+1} - if #minetest.find_nodes_in_area(np1, np2, {"group:water", "group:frosted_ice"}) > 0 then - -- Water found! Sugar canes are happy! :-) - return true - end - - -- No water found! Sugar canes are not amuzed and refuses to be placed. :-( - return false - - end), - on_construct = function(pos) - local node = minetest.get_node(pos) - if node.param2 == 0 then - node.param2 = mcl_core.get_grass_palette_index(pos) - if node.param2 ~= 0 then - minetest.set_node(pos, node) - end - end - end, - _mcl_blast_resistance = 0, - _mcl_hardness = 0, -}) diff --git a/mods/ITEMS/mcl_core/nodes_climb.lua b/mods/ITEMS/mcl_core/nodes_climb.lua deleted file mode 100644 index 1a6780618f..0000000000 --- a/mods/ITEMS/mcl_core/nodes_climb.lua +++ /dev/null @@ -1,173 +0,0 @@ --- Climbable nodes -local S = minetest.get_translator(minetest.get_current_modname()) - -local function rotate_climbable(pos, node, user, mode) - if mode == screwdriver.ROTATE_FACE then - local r = screwdriver.rotate.wallmounted(pos, node, mode) - node.param2 = r - minetest.swap_node(pos, node) - return true - end - return false -end - -minetest.register_node("mcl_core:ladder", { - description = S("Ladder"), - _doc_items_longdesc = S("A piece of ladder which allows you to climb vertically. Ladders can only be placed on the side of solid blocks and not on glass, leaves, ice, slabs, glowstone, nor sea lanterns."), - drawtype = "signlike", - is_ground_content = false, - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - sunlight_propagates = true, - paramtype2 = "wallmounted", - walkable = true, - climbable = true, - node_box = { - type = "wallmounted", - wall_side = { -0.5, -0.5, -0.5, -7/16, 0.5, 0.5 }, - }, - selection_box = { - type = "wallmounted", - wall_side = { -0.5, -0.5, -0.5, -7/16, 0.5, 0.5 }, - }, - stack_max = 64, - groups = {handy=1,axey=1, attached_node=1, deco_block=1, dig_by_piston=1}, - sounds = mcl_sounds.node_sound_wood_defaults(), - node_placement_prediction = "", - -- Restrict placement of ladders - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - -- no interaction possible with entities - return itemstack - end - - local under = pointed_thing.under - local node = minetest.get_node(under) - local def = minetest.registered_nodes[node.name] - if not def then - return itemstack - end - local groups = def.groups - - -- Don't allow to place the ladder at particular nodes - if (groups and (groups.glass or groups.leaves or groups.slab)) or - node.name == "mcl_core:ladder" or node.name == "mcl_core:ice" or node.name == "mcl_nether:glowstone" or node.name == "mcl_ocean:sea_lantern" then - return itemstack - end - - -- Check special rightclick action of pointed node - if def and def.on_rightclick then - if not placer:get_player_control().sneak then - return def.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack, false - end - end - local above = pointed_thing.above - - -- Ladders may not be placed on ceiling or floor - if under.y ~= above.y then - return itemstack - end - local idef = itemstack:get_definition() - local success = minetest.item_place_node(itemstack, placer, pointed_thing) - - if success then - if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) - end - end - return itemstack - end, - - _mcl_blast_resistance = 0.4, - _mcl_hardness = 0.4, - on_rotate = rotate_climbable, -}) - - -minetest.register_node("mcl_core:vine", { - description = S("Vines"), - _doc_items_longdesc = S("Vines are climbable blocks which can be placed on the sides of solid full-cube blocks. Vines slowly grow and spread."), - drawtype = "signlike", - tiles = {"mcl_core_vine.png"}, - inventory_image = "mcl_core_vine.png", - wield_image = "mcl_core_vine.png", - paramtype = "light", - sunlight_propagates = true, - paramtype2 = "wallmounted", - walkable = false, - climbable = true, - buildable_to = true, - selection_box = { - type = "wallmounted", - }, - stack_max = 64, - groups = { - handy = 1, axey = 1, shearsy = 1, swordy = 1, deco_block = 1, - dig_by_piston = 1, destroy_by_lava_flow = 1, compostability = 50, - flammable = 2, fire_encouragement = 15, fire_flammability = 100 - }, - sounds = mcl_sounds.node_sound_leaves_defaults(), - drop = "", - _mcl_shears_drop = true, - node_placement_prediction = "", - -- Restrict placement of vines - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - -- no interaction possible with entities - return itemstack - end - - local under = pointed_thing.under - local node = minetest.get_node(under) - local def = minetest.registered_nodes[node.name] - if not def then return itemstack end - - -- Check special rightclick action of pointed node - if def and def.on_rightclick then - if not placer:get_player_control().sneak then - return def.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack, false - end - end - - -- Only place on full cubes - if not mcl_core.supports_vines(node.name) then - return itemstack - end - - local above = pointed_thing.above - - -- Vines may not be placed on top or below another block - if under.y ~= above.y then - return itemstack - end - local idef = itemstack:get_definition() - local itemstack, success = minetest.item_place_node(itemstack, placer, pointed_thing) - - if success then - if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) - end - end - return itemstack - end, - - -- If dug, also dig a “dependant” vine below it. - -- A vine is dependant if it hangs from this node and has no supporting block. - on_dig = function(pos, node, digger) - local below = {x=pos.x, y=pos.y-1, z=pos.z} - local belownode = minetest.get_node(below) - minetest.node_dig(pos, node, digger) - if belownode.name == node.name and (not mcl_core.check_vines_supported(below, belownode)) then - minetest.registered_nodes[node.name].on_dig(below, node, digger) - end - end, - - - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - on_rotate = false, -}) diff --git a/mods/ITEMS/mcl_core/nodes_glass.lua b/mods/ITEMS/mcl_core/nodes_glass.lua deleted file mode 100644 index 8b3aea6891..0000000000 --- a/mods/ITEMS/mcl_core/nodes_glass.lua +++ /dev/null @@ -1,91 +0,0 @@ --- Glass nodes -local S = minetest.get_translator(minetest.get_current_modname()) -local mod_doc = minetest.get_modpath("doc") - -minetest.register_node("mcl_core:glass", { - description = S("Glass"), - _doc_items_longdesc = S("A decorative and mostly transparent block."), - drawtype = "glasslike_framed_optional", - is_ground_content = false, - tiles = {"default_glass.png", "default_glass_detail.png"}, - paramtype = "light", - paramtype2 = "glasslikeliquidlevel", - sunlight_propagates = true, - stack_max = 64, - groups = {handy=1, glass=1, building_block=1, material_glass=1}, - sounds = mcl_sounds.node_sound_glass_defaults(), - drop = "", - _mcl_blast_resistance = 0.3, - _mcl_hardness = 0.3, - _mcl_silk_touch_drop = true, -}) - ------------------------- --- Create Color Glass -- ------------------------- -local canonical_color = "yellow" -function mcl_core.add_stained_glass(desc, recipeitem, colorgroup, color) - - local longdesc, create_entry, entry_name - if mod_doc then - if color == canonical_color then - longdesc = S("Stained glass is a decorative and mostly transparent block which comes in various different colors.") - entry_name = S("Stained Glass") - else - create_entry = false - end - end - minetest.register_node("mcl_core:glass_"..color, { - description = desc, - _doc_items_create_entry = create_entry, - _doc_items_entry_name = entry_name, - _doc_items_longdesc = longdesc, - drawtype = "glasslike_framed_optional", - is_ground_content = false, - tiles = {"mcl_core_glass_"..color..".png", "mcl_core_glass_"..color.."_detail.png"}, - paramtype = "light", - paramtype2 = "glasslikeliquidlevel", - sunlight_propagates = true, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "blend" or true, - stack_max = 64, - -- TODO: Add color to groups - groups = {handy=1, glass=1, building_block=1, material_glass=1}, - sounds = mcl_sounds.node_sound_glass_defaults(), - drop = "", - _mcl_blast_resistance = 0.3, - _mcl_hardness = 0.3, - _mcl_silk_touch_drop = true, - }) - - minetest.register_craft({ - output = "mcl_core:glass_"..color.." 8", - recipe = { - {"mcl_core:glass","mcl_core:glass","mcl_core:glass"}, - {"mcl_core:glass",recipeitem,"mcl_core:glass"}, - {"mcl_core:glass","mcl_core:glass","mcl_core:glass"}, - } - }) - - if mod_doc and color ~= canonical_color then - doc.add_entry_alias("nodes", "mcl_core:glass_"..canonical_color, "nodes", "mcl_core:glass_"..color) - end - -end - ----- colored glass -mcl_core.add_stained_glass( S("Red Stained Glass"), "mcl_dye:red", "basecolor_red", "red") -mcl_core.add_stained_glass( S("Green Stained Glass"), "mcl_dye:dark_green", "unicolor_dark_green", "green") -mcl_core.add_stained_glass( S("Blue Stained Glass"), "mcl_dye:blue", "basecolor_blue", "blue") -mcl_core.add_stained_glass( S("Light Blue Stained Glass"), "mcl_dye:lightblue", "unicolor_light_blue", "light_blue") -mcl_core.add_stained_glass( S("Black Stained Glass"), "mcl_dye:black", "basecolor_black", "black") -mcl_core.add_stained_glass( S("White Stained Glass"), "mcl_dye:white", "basecolor_white", "white") -mcl_core.add_stained_glass( S("Yellow Stained Glass"), "mcl_dye:yellow", "basecolor_yellow", "yellow") -mcl_core.add_stained_glass( S("Brown Stained Glass"), "mcl_dye:brown", "unicolor_dark_orange", "brown") -mcl_core.add_stained_glass( S("Orange Stained Glass"), "mcl_dye:orange", "excolor_orange", "orange") -mcl_core.add_stained_glass( S("Pink Stained Glass"), "mcl_dye:pink", "unicolor_light_red", "pink") -mcl_core.add_stained_glass( S("Grey Stained Glass"), "mcl_dye:dark_grey", "unicolor_darkgrey", "gray") -mcl_core.add_stained_glass( S("Lime Stained Glass"), "mcl_dye:green", "basecolor_green", "lime") -mcl_core.add_stained_glass( S("Light Grey Stained Glass"), "mcl_dye:grey", "basecolor_grey", "silver") -mcl_core.add_stained_glass( S("Magenta Stained Glass"), "mcl_dye:magenta", "basecolor_magenta", "magenta") -mcl_core.add_stained_glass( S("Purple Stained Glass"), "mcl_dye:violet", "excolor_violet", "purple") -mcl_core.add_stained_glass( S("Cyan Stained Glass"), "mcl_dye:cyan", "basecolor_cyan", "cyan") diff --git a/mods/ITEMS/mcl_core/nodes_liquid.lua b/mods/ITEMS/mcl_core/nodes_liquid.lua deleted file mode 100644 index 0e0f71a112..0000000000 --- a/mods/ITEMS/mcl_core/nodes_liquid.lua +++ /dev/null @@ -1,245 +0,0 @@ --- Liquids: Water and lava - -local S = minetest.get_translator(minetest.get_current_modname()) - -local vector = vector -local math = math - ---local WATER_ALPHA = 179 -local WATER_VISC = 1 -local LAVA_VISC = 7 -local LIGHT_LAVA = minetest.LIGHT_MAX -local USE_TEXTURE_ALPHA = true - -if minetest.features.use_texture_alpha_string_modes then - USE_TEXTURE_ALPHA = "blend" -end - -minetest.register_node("mcl_core:water_flowing", { - description = S("Flowing Water"), - _doc_items_create_entry = false, - wield_image = "default_water_flowing_animated.png^[verticalframe:64:0", - drawtype = "flowingliquid", - tiles = {"default_water_flowing_animated.png^[verticalframe:64:0"}, - special_tiles = { - { - image="default_water_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0} - }, - { - image="default_water_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0} - }, - }, - sounds = mcl_sounds.node_sound_water_defaults(), - is_ground_content = false, - use_texture_alpha = USE_TEXTURE_ALPHA, - paramtype = "light", - paramtype2 = "flowingliquid", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - drowning = 4, - liquidtype = "flowing", - liquid_alternative_flowing = "mcl_core:water_flowing", - liquid_alternative_source = "mcl_core:water_source", - liquid_viscosity = WATER_VISC, - liquid_range = 7, - post_effect_color = {a=209, r=0x03, g=0x3C, b=0x5C}, - groups = { water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, - -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode - _mcl_hardness = -1, -}) - -minetest.register_node("mcl_core:water_source", { - description = S("Water Source"), - _doc_items_entry_name = S("Water"), - _doc_items_longdesc = -S("Water is abundant in oceans and also appears in a few springs in the ground. You can swim easily in water, but you need to catch your breath from time to time.").."\n\n".. -S("Water interacts with lava in various ways:").."\n".. -S("• When water is directly above or horizontally next to a lava source, the lava turns into obsidian.").."\n".. -S("• When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone.").."\n".. -S("• When water is directly below lava, the water turns into stone."), - _doc_items_hidden = false, - drawtype = "liquid", - tiles = { - {name="default_water_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0}} - }, - special_tiles = { - -- New-style water source material (mostly unused) - { - name="default_water_source_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=5.0}, - backface_culling = false, - } - }, - sounds = mcl_sounds.node_sound_water_defaults(), - is_ground_content = false, - use_texture_alpha = USE_TEXTURE_ALPHA, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - drowning = 4, - liquidtype = "source", - liquid_alternative_flowing = "mcl_core:water_flowing", - liquid_alternative_source = "mcl_core:water_source", - liquid_viscosity = WATER_VISC, - liquid_range = 7, - post_effect_color = {a=209, r=0x03, g=0x3C, b=0x5C}, - stack_max = 64, - groups = { water=3, liquid=3, puts_out_fire=1, freezes=1, not_in_creative_inventory=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, - -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode - _mcl_hardness = -1, -}) - -minetest.register_node("mcl_core:lava_flowing", { - description = S("Flowing Lava"), - _doc_items_create_entry = false, - wield_image = "default_lava_flowing_animated.png^[verticalframe:64:0", - drawtype = "flowingliquid", - tiles = {"default_lava_flowing_animated.png^[verticalframe:64:0"}, - special_tiles = { - { - image="default_lava_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=6.6} - }, - { - image="default_lava_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=6.6} - }, - }, - paramtype = "light", - paramtype2 = "flowingliquid", - light_source = LIGHT_LAVA, - is_ground_content = false, - sounds = mcl_sounds.node_sound_lava_defaults(), - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - --[[ Drowning in Minecraft deals 2 damage per second. - In Minetest, drowning damage is dealt every 2 seconds so this - translates to 4 drowning damage ]] - drowning = 4, - liquidtype = "flowing", - liquid_alternative_flowing = "mcl_core:lava_flowing", - liquid_alternative_source = "mcl_core:lava_source", - liquid_viscosity = LAVA_VISC, - liquid_renewable = false, - liquid_range = 3, - damage_per_second = 4*2, - post_effect_color = {a=245, r=208, g=73, b=10}, - groups = { lava=3, liquid=2, destroys_items=1, not_in_creative_inventory=1, dig_by_piston=1, set_on_fire=15}, - _mcl_blast_resistance = 100, - -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode - _mcl_hardness = -1, -}) - -local fire_text -local fire_enabled = minetest.settings:get_bool("enable_fire", true) -if fire_enabled then - fire_text = S("A lava source sets fire to a couple of air blocks above when they're next to a flammable block.") -else - fire_text = "" -end - -minetest.register_node("mcl_core:lava_source", { - description = S("Lava Source"), - _doc_items_entry_name = "Lava", - _doc_items_longdesc = -S("Lava is hot and rather dangerous. Don't touch it, it will hurt you a lot and it is hard to get out.").."\n".. -fire_text.."\n\n".. -S("Lava interacts with water various ways:").."\n".. -S("• When a lava source is directly below or horizontally next to water, the lava turns into obsidian.").."\n".. -S("• When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone.").."\n".. -S("• When lava is directly above water, the water turns into stone."), - drawtype = "liquid", - tiles = { - {name="default_lava_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} - }, - special_tiles = { - -- New-style lava source material (mostly unused) - { - name="default_lava_source_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}, - backface_culling = false, - } - }, - paramtype = "light", - light_source = LIGHT_LAVA, - is_ground_content = false, - sounds = mcl_sounds.node_sound_lava_defaults(), - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - drowning = 4, - liquidtype = "source", - liquid_alternative_flowing = "mcl_core:lava_flowing", - liquid_alternative_source = "mcl_core:lava_source", - liquid_viscosity = LAVA_VISC, - liquid_renewable = false, - liquid_range = 3, - damage_per_second = 4*2, - post_effect_color = {a=245, r=208, g=73, b=10}, - stack_max = 64, - groups = { lava=3, lava_source=1, liquid=2, destroys_items=1, not_in_creative_inventory=1, dig_by_piston=1, set_on_fire=15, fire_damage=1}, - _mcl_blast_resistance = 100, - -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode - _mcl_hardness = -1, -}) - -local function emit_lava_particle(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "lava_source") == 0 then - return - end - local ppos = vector.add(pos, { x = math.random(-7, 7)/16, y = 0.45, z = math.random(-7, 7)/16}) - --local spos = vector.add(ppos, { x = 0, y = -0.2, z = 0 }) - local vel = { x = math.random(-3, 3)/10, y = math.random(4, 7), z = math.random(-3, 3)/10 } - local acc = { x = 0, y = -9.81, z = 0 } - -- Lava droplet - minetest.add_particle({ - pos = ppos, - velocity = vel, - acceleration = acc, - expirationtime = 2.5, - collisiondetection = true, - collision_removal = true, - size = math.random(20, 30)/10, - texture = "mcl_particles_lava.png", - glow = LIGHT_LAVA, - }) -end - -if minetest.settings:get("mcl_node_particles") == "full" then - minetest.register_abm({ - label = "Lava particles", - nodenames = {"group:lava_source"}, - interval = 8.0, - chance = 20, - action = function(pos, node) - local apos = {x=pos.x, y=pos.y+1, z=pos.z} - local anode = minetest.get_node(apos) - -- Only emit partiles when directly below lava - if anode.name ~= "air" then - return - end - - minetest.after(math.random(0, 800)*0.01, emit_lava_particle, pos) - end, - }) -end diff --git a/mods/ITEMS/mcl_core/nodes_misc.lua b/mods/ITEMS/mcl_core/nodes_misc.lua deleted file mode 100644 index 5f5b005e20..0000000000 --- a/mods/ITEMS/mcl_core/nodes_misc.lua +++ /dev/null @@ -1,277 +0,0 @@ --- Other nodes -local S = minetest.get_translator(minetest.get_current_modname()) - -local mod_screwdriver = minetest.get_modpath("screwdriver") - -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - -local alldirs = {{x=0,y=0,z=1}, {x=1,y=0,z=0}, {x=0,y=0,z=-1}, {x=-1,y=0,z=0}, {x=0,y=-1,z=0}, {x=0,y=1,z=0}} - -minetest.register_node("mcl_core:bone_block", { - description = S("Bone Block"), - _doc_items_longdesc = S("Bone blocks are decorative blocks and a compact storage of bone meal."), - tiles = {"mcl_core_bone_block_top.png", "mcl_core_bone_block_top.png", "mcl_core_bone_block_side.png"}, - is_ground_content = false, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, -}) - -minetest.register_node("mcl_core:slimeblock", { - description = S("Slime Block"), - _doc_items_longdesc = S("Slime blocks are very bouncy and prevent fall damage."), - drawtype = "nodebox", - paramtype = "light", - is_ground_content = false, - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - } - }, - selection_box = { - type = "regular", - }, - tiles = {"mcl_core_slime.png"}, - use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "blend" or true, - stack_max = 64, - -- According to Minecraft Wiki, bouncing off a slime block from a height off 255 blocks should result in a bounce height of 50 blocks - -- bouncy=44 makes the player bounce up to 49.6. This value was chosen by experiment. - -- bouncy=80 was chosen because it is higher than 66 (bounciness of bed) - groups = {dig_immediate=3, bouncy=80,fall_damage_add_percent=-100,deco_block=1}, - sounds = { - dug = {name="slimenodes_dug", gain=0.6}, - place = {name="slimenodes_place", gain=0.6}, - footstep = {name="slimenodes_step", gain=0.3}, - }, - _mcl_blast_resistance = 0, - _mcl_hardness = 0, - mvps_sticky = function(pos, node, piston_pos) - local connected = {} - for n, v in ipairs(alldirs) do - local neighbor_pos = vector.add(pos, v) - local neighbor_node = minetest.get_node(neighbor_pos) - if neighbor_node then - if neighbor_node.name == "ignore" then - minetest.get_voxel_manip():read_from_map(neighbor_pos, neighbor_pos) - neighbor_node = minetest.get_node(neighbor_pos) - end - local name = neighbor_node.name - if name ~= "air" and name ~= "ignore" and not mesecon.mvps_unsticky[name] then - local piston, piston_side, piston_up, piston_down = false, false, false, false - if name == "mesecons_pistons:piston_sticky_off" or name == "mesecons_pistons:piston_normal_off" then - piston, piston_side = true, true - elseif name == "mesecons_pistons:piston_up_sticky_off" or name == "mesecons_pistons:piston_up_normal_off" then - piston, piston_up = true, true - elseif name == "mesecons_pistons:piston_down_sticky_off" or name == "mesecons_pistons:piston_down_normal_off" then - piston, piston_down = true, true - end - if not( (piston_side and (n-1==neighbor_node.param2)) or (piston_up and (n==5)) or (piston_down and (n==6)) ) then - if piston and piston_pos then - if piston_pos.x == neighbor_pos.x and piston_pos.y == neighbor_pos.y and piston_pos.z == neighbor_pos.z then - -- Loopback to the same piston! Preventing unwanted behavior: - return {}, true - end - end - table.insert(connected, neighbor_pos) - end - end - end - end - return connected, false - end, - -}) - -minetest.register_node("mcl_core:cobweb", { - description = S("Cobweb"), - _tt_help = S("Slows down movement"), - _doc_items_longdesc = S("Cobwebs can be walked through, but significantly slow you down."), - drawtype = "plantlike", - paramtype2 = "degrotate", - visual_scale = 1.1, - stack_max = 64, - tiles = {"mcl_core_web.png"}, - inventory_image = "mcl_core_web.png", - paramtype = "light", - liquid_viscosity = 14, - liquidtype = "source", - liquid_alternative_flowing = "mcl_core:cobweb", - liquid_alternative_source = "mcl_core:cobweb", - liquid_renewable = false, - liquid_range = 0, - walkable = false, - groups = {swordy_cobweb=1, shearsy_cobweb=1, fake_liquid=1, disable_jump=1, deco_block=1, dig_by_piston=1, dig_by_water=1,destroy_by_lava_flow=1,}, - drop = "mcl_mobitems:string", - _mcl_shears_drop = true, - sounds = mcl_sounds.node_sound_leaves_defaults(), - _mcl_blast_resistance = 4, - _mcl_hardness = 4, -}) - - -minetest.register_node("mcl_core:deadbush", { - description = S("Dead Bush"), - _doc_items_longdesc = S("Dead bushes are unremarkable plants often found in dry areas. They can be harvested for sticks."), - _doc_items_hidden = false, - drawtype = "plantlike", - waving = 1, - visual_scale = 1.0, - tiles = {"default_dry_shrub.png"}, - inventory_image = "default_dry_shrub.png", - wield_image = "default_dry_shrub.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - stack_max = 64, - buildable_to = true, - groups = {handy=1,shearsy=1, flammable=3,attached_node=1,plant=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1, fire_encouragement=60, fire_flammability=100}, - drop = { - max_items = 1, - items = { - { - items = {"mcl_core:stick 2"}, - rarity = 2, - }, - { - items = {"mcl_core:stick 1"}, - rarity = 2, - }, - } - }, - _mcl_shears_drop = true, - sounds = mcl_sounds.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-5/16, -8/16, -5/16, 5/16, 1/16, 5/16}, - }, - _mcl_blast_resistance = 0, - _mcl_hardness = 0, -}) - -minetest.register_node("mcl_core:barrier", { - description = S("Barrier"), - _doc_items_longdesc = S("Barriers are invisble walkable blocks. They are used to create boundaries of adventure maps and the like. Monsters and animals won't appear on barriers, and fences do not connect to barriers. Other blocks can be built on barriers like on any other block."), - _doc_items_usagehelp = S("When you hold a barrier in hand, you reveal all placed barriers in a short distance around you."), - drawtype = "airlike", - paramtype = "light", - inventory_image = "mcl_core_barrier.png", - wield_image = "mcl_core_barrier.png", - tiles = { "blank.png" }, - stack_max = 64, - sunlight_propagates = true, - is_ground_content = false, - groups = {creative_breakable=1, not_in_creative_inventory = 1, not_solid = 1 }, - on_blast = function() end, - drop = "", - _mcl_blast_resistance = 36000008, - _mcl_hardness = -1, - after_place_node = function(pos, placer, itemstack, pointed_thing) - if placer == nil then - return - end - minetest.add_particle({ - pos = pos, - expirationtime = 1, - size = 8, - texture = "mcl_core_barrier.png", - glow = 14, - playername = placer:get_player_name() - }) - end, - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - return itemstack - end - - -- Use pointed node's on_rightclick function first, if present - local node = minetest.get_node(pointed_thing.under) - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack - end - end - - local name = placer:get_player_name() - local privs = minetest.get_player_privs(name) - if not privs.maphack then - minetest.chat_send_player(name, "Placement denied. You need the “maphack” privilege to place barriers.") - return itemstack - end - local new_itemstack = minetest.item_place(itemstack, placer, pointed_thing) - return new_itemstack - end, -}) - --- Same as barrier, but non-pointable. This node is only to be used internally to separate realms. --- It must NOT be used for anything else. --- This node only exists because Minetest does not have support for “dimensions” yet and needs to --- be removed when support for this is implemented. -minetest.register_node("mcl_core:realm_barrier", { - description = S("Realm Barrier"), - _doc_items_create_entry = false, - drawtype = "airlike", - paramtype = "light", - inventory_image = "mcl_core_barrier.png^[colorize:#FF00FF:127^[transformFX", - wield_image = "mcl_core_barrier.png^[colorize:#FF00FF:127^[transformFX", - tiles = { "blank.png" }, - stack_max = 64, - -- To avoid players getting stuck forever between realms - damage_per_second = 8, - sunlight_propagates = true, - is_ground_content = false, - pointable = false, - groups = {not_in_creative_inventory = 1, not_solid = 1 }, - on_blast = function() end, - drop = "", - _mcl_blast_resistance = 36000008, - _mcl_hardness = -1, - -- Prevent placement to protect player from screwing up the world, because the node is not pointable and hard to get rid of. - node_placement_prediction = "", - on_place = function(pos, placer, itemstack, pointed_thing) - minetest.chat_send_player(placer:get_player_name(), minetest.colorize(mcl_colors.RED, "You can't just place a realm barrier by hand!")) - return - end, -}) - - - - --- The void below the bedrock. Void damage is handled in mcl_playerplus. --- The void does not exist as a block in Minecraft but we register it as a --- block here to make things easier for us. -minetest.register_node("mcl_core:void", { - description = S("Void"), - _doc_items_create_entry = false, - drawtype = "airlike", - paramtype = "light", - pointable = false, - walkable = false, - floodable = false, - buildable_to = false, - inventory_image = "mcl_core_void.png", - wield_image = "mcl_core_void.png", - stack_max = 64, - sunlight_propagates = true, - is_ground_content = false, - groups = { not_in_creative_inventory = 1 }, - on_blast = function() end, - -- Prevent placement to protect player from screwing up the world, because the node is not pointable and hard to get rid of. - node_placement_prediction = "", - on_place = function(pos, placer, itemstack, pointed_thing) - minetest.chat_send_player(placer:get_player_name(), minetest.colorize(mcl_colors.RED, "You can't just place the void by hand!")) - return - end, - drop = "", - -- Infinite blast resistance; it should never be destroyed by explosions - _mcl_blast_resistance = -1, - _mcl_hardness = -1, -}) diff --git a/mods/ITEMS/mcl_core/nodes_trees.lua b/mods/ITEMS/mcl_core/nodes_trees.lua deleted file mode 100644 index 54a43d6bfe..0000000000 --- a/mods/ITEMS/mcl_core/nodes_trees.lua +++ /dev/null @@ -1,275 +0,0 @@ --- Tree nodes: Wood, Wooden Planks, Sapling, Leaves, Stripped Wood -local S = minetest.get_translator(minetest.get_current_modname()) - -local mod_screwdriver = minetest.get_modpath("screwdriver") - -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - --- Register tree trunk (wood) and bark -local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_variant) - minetest.register_node("mcl_core:"..subname, { - description = description_trunk, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - tiles = {tile_inner, tile_inner, tile_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant, - }) - - minetest.register_node("mcl_core:"..subname.."_bark", { - description = description_bark, - _doc_items_longdesc = S("This is a decorative block surrounded by the bark of a tree trunk."), - tiles = {tile_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - _mcl_stripped_variant = stripped_variant.."_bark", - }) - - minetest.register_craft({ - output = "mcl_core:"..subname.."_bark 3", - recipe = { - { "mcl_core:"..subname, "mcl_core:"..subname }, - { "mcl_core:"..subname, "mcl_core:"..subname }, - } - }) -end - --- Register stripped trunk and stripped wood -local function register_stripped_trunk(subname, description_stripped_trunk, description_stripped_bark, longdesc, longdesc_wood, tile_stripped_inner, tile_stripped_bark) - minetest.register_node("mcl_core:"..subname, { - description = description_stripped_trunk, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - tiles = {tile_stripped_inner, tile_stripped_inner, tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) - - minetest.register_node("mcl_core:"..subname.."_bark", { - description = description_stripped_bark, - _doc_items_longdesc = longdesc_wood, - tiles = {tile_stripped_bark}, - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - stack_max = 64, - groups = {handy=1, axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - sounds = mcl_sounds.node_sound_wood_defaults(), - is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, - _mcl_hardness = 2, - }) - - minetest.register_craft({ - output = "mcl_core:"..subname.."_bark 3", - recipe = { - { "mcl_core:"..subname, "mcl_core:"..subname }, - { "mcl_core:"..subname, "mcl_core:"..subname }, - } - }) -end - -local function register_wooden_planks(subname, description, tiles) - minetest.register_node("mcl_core:"..subname, { - description = description, - _doc_items_longdesc = doc.sub.items.temp.build, - _doc_items_hidden = false, - tiles = tiles, - stack_max = 64, - is_ground_content = false, - groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, - sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 3, - _mcl_hardness = 2, - }) -end - -local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance) - if leafdecay_distance == nil then - leafdecay_distance = 4 - end - local apple_chances = {200, 180, 160, 120, 40} - local stick_chances = {50, 45, 30, 35, 10} - - local function get_drops(fortune_level) - local drop = { - max_items = 1, - items = { - { - items = {sapling}, - rarity = sapling_chances[fortune_level + 1] or sapling_chances[fortune_level] - }, - { - items = {"mcl_core:stick 1"}, - rarity = stick_chances[fortune_level + 1] - }, - { - items = {"mcl_core:stick 2"}, - rarity = stick_chances[fortune_level + 1] - }, - } - } - if drop_apples then - table.insert(drop.items, { - items = {"mcl_core:apple"}, - rarity = apple_chances[fortune_level + 1] - }) - end - return drop - end - - minetest.register_node("mcl_core:"..subname, { - description = description, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - drawtype = "allfaces_optional", - waving = 2, - place_param2 = 1, -- Prevent leafdecay for placed nodes - tiles = tiles, - paramtype = "light", - stack_max = 64, - groups = { - handy = 1, hoey = 1, shearsy = 1, swordy = 1, dig_by_piston = 1, - leaves = 1, leafdecay = leafdecay_distance, deco_block = 1, - flammable = 2, fire_encouragement = 30, fire_flammability = 60, - compostability = 30 - }, - drop = get_drops(0), - _mcl_shears_drop = true, - sounds = mcl_sounds.node_sound_leaves_defaults(), - _mcl_blast_resistance = 0.2, - _mcl_hardness = 0.2, - _mcl_silk_touch_drop = true, - _mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) }, - }) -end - -local function register_sapling(subname, description, longdesc, tt_help, texture, selbox) - minetest.register_node("mcl_core:"..subname, { - description = description, - _tt_help = tt_help, - _doc_items_longdesc = longdesc, - _doc_items_hidden = false, - drawtype = "plantlike", - waving = 1, - visual_scale = 1.0, - tiles = {texture}, - inventory_image = texture, - wield_image = texture, - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = selbox - }, - stack_max = 64, - groups = { - plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1, - deco_block = 1, dig_immediate = 3, dig_by_water = 1, dig_by_piston = 1, - destroy_by_lava_flow = 1, compostability = 30 - }, - sounds = mcl_sounds.node_sound_leaves_defaults(), - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_int("stage", 0) - end, - on_place = mcl_util.generate_on_place_plant_function(function(pos, node) - local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z}) - if not node_below then return false end - local nn = node_below.name - return minetest.get_item_group(nn, "grass_block") == 1 or - nn == "mcl_core:podzol" or nn == "mcl_core:podzol_snow" or - nn == "mcl_core:dirt" or nn == "mcl_core:mycelium" or nn == "mcl_core:coarse_dirt" - end), - node_placement_prediction = "", - _mcl_blast_resistance = 0, - _mcl_hardness = 0, - }) -end - ---------------------- - -register_tree_trunk("tree", S("Oak Wood"), S("Oak Bark"), S("The trunk of an oak tree."), "default_tree_top.png", "default_tree.png", "mcl_core:stripped_oak") -register_tree_trunk("darktree", S("Dark Oak Wood"), S("Dark Oak Bark"), S("The trunk of a dark oak tree."), "mcl_core_log_big_oak_top.png", "mcl_core_log_big_oak.png", "mcl_core:stripped_dark_oak") -register_tree_trunk("acaciatree", S("Acacia Wood"), S("Acacia Bark"), S("The trunk of an acacia."), "default_acacia_tree_top.png", "default_acacia_tree.png", "mcl_core:stripped_acacia") -register_tree_trunk("sprucetree", S("Spruce Wood"), S("Spruce Bark"), S("The trunk of a spruce tree."), "mcl_core_log_spruce_top.png", "mcl_core_log_spruce.png", "mcl_core:stripped_spruce") -register_tree_trunk("birchtree", S("Birch Wood"), S("Birch Bark"), S("The trunk of a birch tree."), "mcl_core_log_birch_top.png", "mcl_core_log_birch.png", "mcl_core:stripped_birch") -register_tree_trunk("jungletree", S("Jungle Wood"), S("Jungle Bark"), S("The trunk of a jungle tree."), "default_jungletree_top.png", "default_jungletree.png", "mcl_core:stripped_jungle") - -register_stripped_trunk("stripped_oak", S("Stripped Oak Log"), S("Stripped Oak Wood"), S("The stripped trunk of an oak tree."), S("The stripped wood of an oak tree."), "mcl_core_stripped_oak_top.png", "mcl_core_stripped_oak_side.png") -register_stripped_trunk("stripped_acacia", S("Stripped Acacia Log"), S("Stripped Acacia Wood"), S("The stripped trunk of an acacia tree."), S("The stripped wood of an acacia tree."), "mcl_core_stripped_acacia_top.png", "mcl_core_stripped_acacia_side.png") -register_stripped_trunk("stripped_dark_oak", S("Stripped Dark Oak Log"), S("Stripped Dark Oak Wood"), S("The stripped trunk of a dark oak tree."), S("The stripped wood of a dark oak tree."), "mcl_core_stripped_dark_oak_top.png", "mcl_core_stripped_dark_oak_side.png") -register_stripped_trunk("stripped_birch", S("Stripped Birch Log"), S("Stripped Birch Wood"), S("The stripped trunk of a birch tree."), S("The stripped wood of a birch tree."), "mcl_core_stripped_birch_top.png", "mcl_core_stripped_birch_side.png") -register_stripped_trunk("stripped_spruce", S("Stripped Spruce Log"), S("Stripped Spruce Wood"), S("The stripped trunk of a spruce tree."), S("The stripped wood of a spruce tree."), "mcl_core_stripped_spruce_top.png", "mcl_core_stripped_spruce_side.png") -register_stripped_trunk("stripped_jungle", S("Stripped Jungle Log"), S("Stripped Jungle Wood"), S("The stripped trunk of a jungle tree."), S("The stripped wood of a jungle tree."),"mcl_core_stripped_jungle_top.png", "mcl_core_stripped_jungle_side.png") -register_wooden_planks("wood", S("Oak Wood Planks"), {"default_wood.png"}) -register_wooden_planks("darkwood", S("Dark Oak Wood Planks"), {"mcl_core_planks_big_oak.png"}) -register_wooden_planks("junglewood", S("Jungle Wood Planks"), {"default_junglewood.png"}) -register_wooden_planks("sprucewood", S("Spruce Wood Planks"), {"mcl_core_planks_spruce.png"}) -register_wooden_planks("acaciawood", S("Acacia Wood Planks"), {"default_acacia_wood.png"}) -register_wooden_planks("birchwood", S("Birch Wood Planks"), {"mcl_core_planks_birch.png"}) - - -register_sapling("sapling", S("Oak Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time."), - S("Needs soil and light to grow"), - "default_sapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("darksapling", S("Dark Oak Sapling"), - S("Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings required"), - "mcl_core_sapling_big_oak.png", {-5/16, -0.5, -5/16, 5/16, 7/16, 5/16}) -register_sapling("junglesapling", S("Jungle Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "default_junglesapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("acaciasapling", S("Acacia Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time."), - S("Needs soil and light to grow"), - "default_acacia_sapling.png", {-5/16, -0.5, -5/16, 5/16, 4/16, 5/16}) -register_sapling("sprucesapling", S("Spruce Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "mcl_core_sapling_spruce.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) -register_sapling("birchsapling", S("Birch Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time."), - S("Needs soil and light to grow"), - "mcl_core_sapling_birch.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) - - -register_leaves("leaves", S("Oak Leaves"), S("Oak leaves are grown from oak trees."), {"default_leaves.png"}, "mcl_core:sapling", true, {20, 16, 12, 10}) -register_leaves("darkleaves", S("Dark Oak Leaves"), S("Dark oak leaves are grown from dark oak trees."), {"mcl_core_leaves_big_oak.png"}, "mcl_core:darksapling", true, {20, 16, 12, 10}) -register_leaves("jungleleaves", S("Jungle Leaves"), S("Jungle leaves are grown from jungle trees."), {"default_jungleleaves.png"}, "mcl_core:junglesapling", false, {40, 26, 32, 24, 10}) -register_leaves("acacialeaves", S("Acacia Leaves"), S("Acacia leaves are grown from acacia trees."), {"default_acacia_leaves.png"}, "mcl_core:acaciasapling", false, {20, 16, 12, 10}) -register_leaves("spruceleaves", S("Spruce Leaves"), S("Spruce leaves are grown from spruce trees."), {"mcl_core_leaves_spruce.png"}, "mcl_core:sprucesapling", false, {20, 16, 12, 10}) -register_leaves("birchleaves", S("Birch Leaves"), S("Birch leaves are grown from birch trees."), {"mcl_core_leaves_birch.png"}, "mcl_core:birchsapling", false, {20, 16, 12, 10}) - - - --- Node aliases - -minetest.register_alias("default:acacia_tree", "mcl_core:acaciatree") -minetest.register_alias("default:acacia_leaves", "mcl_core:acacialeaves") diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_1.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_1.mts deleted file mode 100644 index 8685bc85507b3f3aa0ebdbbb5baefe2c4adc0706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeYb3HD`RVc=%qWZ;D z;yj11T(6?+ZpN(S+GjL>)xni-KCC_^vNd1hxlh;^Vg23Q+Mmoz*h2QN{UVQGFngVc&wft`QRwqGhdQneQsv3S&Xs!ji$fe T*KRWNJe1y_kjDHVTRi~)^>Sd! diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_3.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_3.mts deleted file mode 100644 index 38831c3cf9fbb6f0019ae4d04a7d6f2c51f6145f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeYb3HD`RVc=xoVBoB`uLlDLW(MZO%pwNS+~l12UQl}8R5ahwYlSZ;CbN$b{W7lTf}kk2VCRJI2I2MJUn diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_4.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_4.mts deleted file mode 100644 index d3c98b43731b46be0e475c721779d3dc2ed86cc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeYb3HD`RVPI$AWMHqiw@;}D0S0CU=ETe*2GQK)ocQGYqExHIbO=aF+%|M>;&inwtrVC&K|z=SodG!mgbhZCJqblYx4XIG_YV`=vl0G F7XZBqLKFZ1 diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_5.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_5.mts deleted file mode 100644 index 8c709f73bd32bb0b293bb79d69dce8d88b0d5245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250 zcmeYb3HD`RVc=%qV&JZ~PppRk24)84#LOZF(cI*m_~iVeRI9|~#N^DxoYcg!)M5r< zG~tq>)YOVOZ>Q|$Yf#{EZ9RB0KlR-;|L>v(N!`a7d|mmtw;3MKzL*%$`*F1`Pvl#N z&61aXvP}yKx_N2yl?l_IJ=hg9>xY)#qq*dA*68vxcnO)N_- zW)MabE-6Y)t(fyR*paV6frt6tF86}lmj$O-xGxiGeAuYxnCZ2axhJr}c6Hop{?lDE z%ykWmi|k6n|0xGqEqiBez3)kcU-*+LTY}C_d~wtN?3{Yr`IFySt99hePL1McP?e6~ wlmDT`!r`Es_mR6M>3pU9pLlK>Z+`g7Qt7$*`FVe3HooWPHow8}|B^Ek05&sK6#xJL diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_weirdo.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_acacia_weirdo.mts deleted file mode 100644 index 63b0c35e54ba09e7a99ff6d781ca860d2263940b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeYb3HD`RVPIq6U|_9>0tRLV=ETe*2GQK)ocQGYqExHIxO^RCGQVoLKE?b!s#f3d}CUE)`7|%5DQM)g{WXDXK&73>d%c-AW nb4qeF6Jd6=5m0LWAHk8L_ERl6wD)1!rsn(=3=GST6&?WqYnU=M diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_birch_tall.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_birch_tall.mts deleted file mode 100644 index 1c39cd2ab45c45aed3de41636395be67c6f53bd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeYb3HD`RVPIw8WnlHJx37l-24)84#LOZFk=*2*_~iVeRI8-SqU4O6)WovXVg?~p z(UPLn)QUOD2@4bxSe!$|Y#EisI$nvj%$|{Pi0S4LmhH1S53_FJ7Y{nrur1FaHL;;; ql7pE*5YwiG5*&{j1tkBdPjW~Ly3Xn{yFrl6r2o`J1_r*Ur5OO^$u`^o diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_dark_oak.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_dark_oak.mts deleted file mode 100644 index de1121e60c0cfc039e1e96fa1aaf594b3cbcd492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeYb3HD`RVc=lkX5gr|uZIB!W(MZO%pwNi+~l12ZntcAn`+s)%-dB6>{ZCx~=>GQd+_UY|)gDV|yn8M`t2=`C zRL`53IWM}Eg+yhnz1A14f7B=I@?VC{^zUxTKQs5-*Z3~K@p|g~_s`0n#>xk(r^F=P F1^|k=VPgOQ diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_jungle_bush_oak_leaves.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_jungle_bush_oak_leaves.mts deleted file mode 100644 index 894001866df1f59fb9c8309d38e09a41c7caa891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeYb3HD`RVPFN}dgl6i24)84#LOZF{@mo8_~iVeRI8lS#In?424T2BR%u>(PHIU} zYHG!t6>|C`VJ)OFPyUkn-u|`s&NapR{LU90I9(VY z^?HWNI(h#)Li?tr=ylBP_cT&ld_FhUbT6-=?ds+G?kBA)znlGRSLC&&!C&s(F+O$o zt76%;-NB}nah-)fqzaO&oPMjmudI8)_0GP%LCnLlt?$|)JMSM-0XIHdimu)M-0=Cc z`KAwE?aNG!JHEqe^23+&GIwtOp!Y(&V!PIqN9Pg*uCPC6N;ZpKJVo7Xihg_0yc><5 zlmzzGN@V?f_5E5P`@Y8Rehl>)}=6zCq_H)Jm zUe0@;@7(>j_0y3n65g*aJ)bgVvU^a}6ubKVb??qP#4<229C-fm!MOyPU6-rW%+H+p h{EhLcq+j;6_`-7ICp_lY?Y3NFV7MTuziqAZW&j-O_YeR8 diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_jungle_tree_huge_2.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_jungle_tree_huge_2.mts deleted file mode 100644 index df0114f6bdce5634c8d48a524955b62bb5fbfcb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmeYb3HD`RVc=tsW8kYdH8rgV11KX8!~wBAfiwd%19M_#5rb%Ma!!15eo?AbR%u>( zPHIkSVp(c2gD{$KNl|KQ#hka(949p^2)JH!4ZB$t*LP0BR8ZuCXMj{izt_};)C{}* znM)a@mPt!9)Oc^t{AbRfaORrpy7UhcOO_q`{HXZitDYUluQVQJ_*Sy2f6g?ca~J>Z zS#S4Z`Hz2(7eC(36}7bg%+$i5UkN-PrJr)iw_Xpr9&>u*b<6Aex&3cNtKZoE%Ui8o zxBBP0PW|&S8Fg~s!?h~bJh6wae92}-To!J_)-ME1;$vKeBFHCxaNw{-Jr?8 zwmM(^{3mSp!$p@K+IbyaU(P3|C4I%4HIC7PHEt!-+T!&Li(as1D?H9R(0r}WL!)fk z?{BWz?n`=;vXmuiE*!f#jr-e+&F?3(9b+-MwR2Tw&*j|-!EFcs?aQ9>S!!pIWU;&d z{JPD1=54EPHeBtoS?lxV*FTS{9CduQ+g*9Ly`ZddB=Q_4K zDUaFIHG{I+W*U}RTg_Z3m$Lnos?giTQshw diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_balloon.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_balloon.mts deleted file mode 100644 index bcbd9beaf78be54e33ebccbf872c402071e7e719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143 zcmeYb3HD`RVPIuoXJD;|00w3T=ETe*2L9aSocQGYqExG#)WovXVg_EgKuJ+*YQ>zZ z0nuCx3LM`0?=I>t74Pi)YwFl`ZljheLq?^}zPPIO)BGCR9Fs4^7Q`(q>QEF<% zoa6)rDT5|Ot?rrw9juFH^=xSDu)L8SK@==$fJCkDPpFI!|AMYO! vS!>I|EPCwvac0&7QU{LIr!3m{&)!3DLW4xt>6ACmCcfXdkb|MILp~h<_W3!3 diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_1.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_1.mts deleted file mode 100644 index 4dc118964a288d8d13b8a0b69e3296c9d0b7bdae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeYb3HD`RVPI$AWnizjuSWm|W(MZO%pwN<+~l12QEF<% zoU0+xd<_ab#dQ_&eis%eS6E#TbZ}YA87sOy&vE)w!vG=S%c@iNnKMuF7hW4UKXhMt z8vi8!Rr{i diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_2.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_2.mts deleted file mode 100644 index 8e859e3dfb5539da99729e02674dcd405256a458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmeYb3HD`RVc=xoW8kbu0SwFx%!!#r4E(vtIq}K)MX6RfsflH&#SFY~fs&%s)QUN8 zgBgXI6?mBC@92Md$uqO{QrW4tydBDS@>JVBgD>t>eE4`$^-0UE`;}jX#HoI@o)aP^ zY1IBcZOJE%39@oevm%dMm9ig?&`Y>xH*Jg8x7NRZ%AAbi-sYs$OSS&xefRO+{?_v4 z7f*?Ni(6rRZRJ1pOztmdx8{AeILY`@zER`1ijbf2*{qcetInA1y35EI#;>q>O}nV_ z?H5JIGdle$6&J8rGoM-6qkg_?OS9Gny+wW;v#UF_4{Al&ujvi>mg;}FX69X^yXXIL yCbUk@zqy0q$DGL0x4Z7{6bXLv_rjdD?taDRFWk3|`M=lS$H!;O1IA01d)NWOdyfwQ diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_3.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_3.mts deleted file mode 100644 index bddcaefd4b08d988359f6f1c8f8a202c8c78a258..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 207 zcmeYb3HD`RVPI$AV_>hhuLpzVWDv!`%)p$OS;WAfo17D$oL`h`m6MuSmRiif3l}IU zN=>bp^EM=!uR(z)IcAT$`(uuqO2#LGg?IHYODW3^m^+)rNHjLJbY1J-S>DxQAHhz A&j0`b diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_4.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_large_4.mts deleted file mode 100644 index b1bc17ac11742af8b44f4f637ea778333e52d0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeYb3HD`RVc=xoW#Fv0uSWm|W(MZO%pwN<+~l12QEF<% zoVQbN^0g}Pxagk$^SP$VRBP%|miJe8$tUHgFL~UuBDS1!#S71i@7%S;Pp*1@@mWl7 zn4Z_PeeSc3Gt-?S!_QCs?s(UHw{cKLfX1tguuCy|RYlWvg1+UP&O83gSl2jW&dWlZ z@3y*?r?-bcmir&vVm(3gTbx6PQEF<% zoaBTBTnR3XTNqC~TYS4c%e*wksk7EcLrw5F^UHK6!}*yPe&uW2Xuq3x%GY--dt-=D z=@O$W&J4}W6ABU%3Raw0U2tGM|020%{7yz83@5oZ=(t?0_gS^?pZ&6ZHVQM{J8Q3e Tmv=JHd}zt_f{kJIJG;XGW6(ul diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_oak_v6.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_oak_v6.mts deleted file mode 100644 index 4c9e09940ad1a69206c4067fed1d218cc4df191d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128 zcmeYb3HD`RVPIuoXJD;|00w3T=ETe*2L9aSocQGYqExG#)WovXVg_EgKuJ+*YQ>!7 z1O*0(z#BaUhHg7Jl$WXT7)wm_n4#yx!Q@jA`$A^|m)edfHIum~(gezQcgYoka&s2n7W;GQhD-BRS9xwDsrHK;2AofB$@)wU|ME`j zQ^^`H^~>cKR^HEhz#|g3%I9fN)0zhhPZjT7dHlyC+qE};)?d>(r3?FQ*1YSp^gm*>cyYkMDg?C;CR5;^u~IDc`QEd~IipQ(w44%ikep~_aQ(m>#^T86?74|=c+bAvDwe(PwfsLt#Y26TMa7MR zMdqbO@hhuLpv>(%RB0AkDzcz?_&_#2}iRoD-j%UzBQ9Tu@Y+oSKuG zSe9DMAdDtlQk0rnG3RaYZN38nJi7MpE}z}d?I)UgQ|P$!-@iOX}+;_)t7y_x}VHBT7J(dpYZtq|HBsh zBUknsGP|A1Id30g6jib0@Bzb#r(${f7YJdnKtyCiX|Hg@A3{42JnnFGWTAt+D1U;W>CsrI`g^8`k% zlgsQT&V2K0%GnEN*}^BSdRx;y!_!AG?P=g0CD-39&Hht=KDTk7^ZQy@Ki|9uHr)WU C%U(hN diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_5.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_5.mts deleted file mode 100644 index bc0512f84c38f86dfb827e3453ccda610d4977ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeYb3HD`RVPIw8WMHkYuc$AsFD|ZNU}j)W%q(IM%}vgUPtGq&wJI(sDosw!Nlh$E zEoKl#6D}!AO|6)doS-0O(4?4X806zJ;~>ZLheFP*J{1u?4r0nzMATMj-Z(0-PW_tr zlpQl8q&4`T|N2$MBi1IR5g5-O)_lk*?34VFAMyN(uNqx!jkt4aY)`69e)%ksli{|P Gati|V(J*Ik)aV|pp#m&2oS)vJ@vSADxa$Nu$aqia7uJ9?Tvzx+OMSG87eh__vC zeC@OPYu$!xuSWe|TALmHDZu;Z9mnF`q4rUl-Y+KCKDK=XQj_+#>elDu^X&7_|4vx4 zJGM;rZQlFVKXbh8?iH9`TYcWN*lzN%OYDU+ibLZVJ{Uavxi7x**7NMI&lw8bqxLH@ PGB7Yau;ISk%r+MQt)PU_ diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_2.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_2.mts deleted file mode 100644 index 2ffb6c6cee98bfd25660be47773db8d21e6f47fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeYb3HD`RVc=pAX5gx~Pe`Z-g8YPp{QCU*Dj<`AnSnVmvxq@7H#sLhIlm~?s<@!2 zG&waVHL)zUm_Zm#xTGjGwPMcOsSmjt6nNOS$L(=9SMIvv%j3MfZo7SxzO2m4akt%~{=b*at;^Z<`lWw)`GX@HUo6?YY4L%; zV;3K56qs6Xx)@pXdHeP=Z|=*S-jcaL?6Q7FzRIj`i653(Gn{@r=jiI7U-vW5-eumv Tw)g*61_p)$Z)7$_pQ{4^VI623 diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_3.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_3.mts deleted file mode 100644 index d3b80b1933587caacdb131c61d64ab2106ac34b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 270 zcmeYb3HD`RVc=qrV&JN`x3{kcgM|9}1Q3ML49pD7iJ3(VqPfXA@yYo`saC}WMWxB9 zIjM5$si_rn-cEbVcSwQ9H9G!|`+VarMW;mhEbTd$?N9r@&)DH>Hj(qf z)&#v%XTC=6-DjNcpmXYs>FTifpzQoNa}z7S`@DT9JJqPTR(rL6cy@jcP{@9N`2HIw zPe=V!zoP$r=oFpv8E+iz9$&PTVBE*Otz0kZ y>9+JN{`V(b&h!3J*sd4O(4ckN=-uV8Kk8riGc(MPeE&a$0SG!y@}6w4kN^PG5OpvB diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_4.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_4.mts deleted file mode 100644 index 538b96d67b108113db690b9483fede3aea632fc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeYb3HD`RVc=pAXW**0x333*l$3f91kv^NRVfV249tm{MGT_3$vN@K`9-N##RWyB z$*DQ1iDjw948mx_B}J*J6?5KB3lwTr;BoQPe|K^1+R`;C%p76CcaHaOX7;?nkjybx z@$v_meuXE-TZDec-|k=hc}pT i<>MR2!)LvIZJj*5MSwr%?|WAc#TJ1gHUC$6^AiAr!;dxq diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_1.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_1.mts deleted file mode 100644 index 02bf912c3f5873575fe12e8b999ef005936c9c44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeYb3HD`RVc=kpVBn~?hk}HPdJsqkllAos%nZzlnMDkuxyd>4$@xX8R>cKHrOBx| zsflH&#SFq|!X-tisTFhHP6^~|P~dTH7r%e;dC4LP$7CKOr~7uZ9{GoNxHxcHmCIdG z$qD|nWB#m`l%jwAzh{;l`*Q8cqs#aB{nh;?{dX^Ks^2GXU;F26?H79^xqtS_&2`bn zMf=aBzvW5emfO0yc7|@nmG8fg6i;MZrRb{jdsRx7e2)CrDKApx*Z*8PAwFjB`uFdb X8}5C&_d;|W0|Nu!490a&W<>%3AV+BV diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_2.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_2.mts deleted file mode 100644 index fc4b91f2abc4e18a33bedaf9cc67533810637aee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeYb3HD`RVc=qrVBo5^hk|+tum@8K^$g4m%!!#r45GQoIq}K)MX6TB1x2OFsX3{M zWvRss!f3)JMX9M3bKXu16lzxBaakyS{$ggR1`G4Cjaf^6|Io;r%vsoY(Xv1yz9;?& zqxX-jf>>$x%^_1YAW;gfF_uM^S_wwHLcRap_E-Bhz Za(C)20}sBgWlRh}&>&sGtex{I5No`C=W diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_3.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_huge_up_3.mts deleted file mode 100644 index 55a9a5ff45b9b73c5599016363f47babd61a629d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmeYb3HD`RVc=j8XW*!}M}T?+U|?ooPRuM~5Y0`_iBHZiO0_C3C@M`(%}GrxOD$#) zMiVY6N=>bp^LCmeUxNY<%fbH7U$iD9F}ry+MV;~EPwQ<@Y+g~EAfV4?)4Sg79`onS z-}`R8-}`NQ@&r@M?^2uJ%-&q%W)}B7Ki&4)=Q;Ztr&&JdywLRi>FqzC>kU-)ZIe)A z5sUZUUon60^3>V$-~Uw{O<9U3 N|2VQSa7`DT002AYEm;5n diff --git a/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_tall.mts b/mods/ITEMS/mcl_core/schematics/mcl_core_spruce_tall.mts deleted file mode 100644 index ef2190142a1df90a1d4cd2b60465850f989baefb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeYb3HD`RVPI$AXJD_72ZDMaum=&049pD7iJ3(VqPfXA@yYo`saC}WMWxB9IjM5$si_rn-cGs5bwGi`^{o8+%XgjbEOXp2@#do2&LJ0GCa?<3DcNc|DP(v0 zKk4ig?X#BI0-D;9T+*b5_D7-Z7zRuRKs{=!>Rl5uSE8UqQvV6jxLM9=@hnZPn mvb8VI^>#WQQ8*RwvFgS?qgRYY>o0DI-oDwmn6EtClotR-q*fFF diff --git a/mods/ITEMS/mcl_core/sounds/slimenodes_dug.1.ogg b/mods/ITEMS/mcl_core/sounds/slimenodes_dug.1.ogg deleted file mode 100644 index a8bc4b2e6781442b6d7fd8f69acf0599484ad4d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6218 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 YOD=^Nu#H6C?mI4Bbi2)aT1NK&0I!tJPyhe` diff --git a/mods/ITEMS/mcl_core/sounds/slimenodes_place.1.ogg b/mods/ITEMS/mcl_core/sounds/slimenodes_place.1.ogg deleted file mode 100644 index b766c1e38b3a66559e69408be621c9a681007b79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8076 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 Rx97OJR>cfRWP~vQ{}19yVPF6N diff --git a/mods/ITEMS/mcl_core/sounds/slimenodes_step.1.ogg b/mods/ITEMS/mcl_core/sounds/slimenodes_step.1.ogg deleted file mode 100644 index e32996fba84cdc4bc7bcfb76522c3d3bc025bd85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5969 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 XG7i5tW>GCl^z+LPuIT`lE9CwkHg4`H diff --git a/mods/ITEMS/mcl_core/sounds/slimenodes_step.3.ogg b/mods/ITEMS/mcl_core/sounds/slimenodes_step.3.ogg deleted file mode 100644 index 92d6cd3676172e057cf2e89efa3268c7cfa00ec2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5775 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 T$bd!Nvm+x(1>7!#KLz|B|Kq6{ diff --git a/mods/ITEMS/mcl_core/sounds/slimenodes_step.4.ogg b/mods/ITEMS/mcl_core/sounds/slimenodes_step.4.ogg deleted file mode 100644 index 47b9cd68cb86b3b111ad4f0013cf1c142540368a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6657 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 diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png b/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png deleted file mode 100644 index a24e58f165128f94801d9fbff9c05b24c0db719b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW-F&z>#zna{%d99$x4qJK z)8XRNz2}60vTP+me!;B&fq=FAPL@AVB-hi$F{FY~^ps;?lY@xs#oxgO>*Z%vvYUPQ z@K8pXd%>cu|JSZauj%0GRtkJ~{PgXXH{2GTZ=PCQjWj-c`w-Kyu*O9XB_FN-VHj;K z7kx>R@zhDB9e;nzP2L#2?Tv$fm+6G7`x9T4pSdpOkk|Q@ab`UKtt6AVc0h|6JYD@< J);T3K0RZ$5R&W3S diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_sapling.png b/mods/ITEMS/mcl_core/textures/default_acacia_sapling.png deleted file mode 100644 index b708c8098bb8c8df61fbb3ccd74a5e41113ed849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv4DbnY1=9J^+D*A;Kr+NdF)2VT zH_o@IG-X?B*ZJqpW{>hLJk{&fTX7d!^*tJ`G zQ|kUVY^$E`UT4=J{aSm`l$eD}LVoWRS7nx2wwS-CykrMkh)`{j`yx}8-K(GW%zvuB s#_z6?)tU%*$zLJb{Bv1^wn+Ts{~XS{+Ai($3!udep00i_>zopr0Mo5V?f?J) diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_tree_top.png b/mods/ITEMS/mcl_core/textures/default_acacia_tree_top.png deleted file mode 100644 index 471aaa700c423dfd1cc31eacb77af797325a066d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUwa`)Ww9!vCS7`Foof&Pl zqQGNoV`yKX@j=J#%|JEfo-U3d6^yJ04^C`0;BmO9KXc~Zn?}(N3z~g?y;sydP|znB zbAna-J>yjafw|fKmHEwk7v)Yiv0b{V$3HM)xlCS`>i$}G(SOgs9GIf;&ezGa{K4Zz z*0ZuQLlZTxuHm`3Yx?4a2Q#vdO)a*wdpB=Mz5f5t-U7^r>fiDiwwAoE_5?bC!PC{x JWt~$(696a%Q7ixe diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_wood.png b/mods/ITEMS/mcl_core/textures/default_acacia_wood.png deleted file mode 100644 index 106304997b4d1a8ba8293234d88a76ed55cc62be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWZSgUhneMiHBYYx2**s4d$B+s}RUcC!CIeHv sU2@>__zz_o>#prOti*LzRl~W`{)e2HR`ot5knPG)hwzGE!lvI6;>1s;*b z3=DjGK$vmro+3}6phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7?o^h|r-*ljw)1EGl zAr}6r6E|`(849?3_7>~vjfnawIV~w&TjN^$)U`jB?)%WUQ}xh<+jDQ;^x5&vD(7JC z{<=6nk@=7LLM8@~Z&HQP6 b`7isl2l@#=olRZgTe~DWM4fS~-B^ diff --git a/mods/ITEMS/mcl_core/textures/default_clay.png b/mods/ITEMS/mcl_core/textures/default_clay.png deleted file mode 100644 index 63d2ff18c5a2c3aacfada864df0e5bf5923c3a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b?e6YwYHF&kt}ZSv&dtr8 zxNIvwP%7Kg#WAFUk@r|&;}HcOmJ6KaOjZdBDxwUNwIW`{Uw-$y${;;jSIi=M{xW9K z;-de_{WYPxlOwDC@acby@yVBWEl za%TS>B|Lj7df#4axO9?%*+HYDDV$U3f$%P$=^PDw@nVbr9*z>}Ut_-6`EjXfXO!_Txey8621JXKY-e14LG>_G==LxsY!eA~9#RpgB@c7TyXKR>p ugDvL*zYurT1)&9UYgF0(|LvXofVHP(=aC4F3Im|47(8A5T-G@yGywplkx1YG diff --git a/mods/ITEMS/mcl_core/textures/default_clay_lump.png b/mods/ITEMS/mcl_core/textures/default_clay_lump.png deleted file mode 100644 index 6b50f4143194c6202eb771598be286f8621415dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ)zHvbv}n=U8I~@Q3 diff --git a/mods/ITEMS/mcl_core/textures/default_coal_block.png b/mods/ITEMS/mcl_core/textures/default_coal_block.png deleted file mode 100644 index cf3579499fb5605c7b7e0006b0d55064f4dd2433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-t{Up9Ru;CBVq$^bfma1u z;(_9ko-U3d6^zLVB?Soy1wI0)sRD_jrKucSxB4b%n0`!8-H>`gAoYRJQ-MSdF8c#V z0)*@Ta5(q;`ODA4vu05%&lDJ7nlVxV^* zCkMyeQ_oX?vWz7`e!&b5&u*jvIZmD~jv*C{$p^S3L>KZX3Nvyz-{ep_@@mZ@F0rJN zA|YM|Lnc;H=7T({fq{+&&PNSJlvJOHNO1+Ok&xmr74Ue>%pmBrdk$V;R;@b1tUG1T!hOdjGOS-Yr_R3rg5B9=;W5umYhOH{!69LPXzzt|&pivC xt@rTic3l4DK~hT~qlEOl+wWfWy?cGlp5>>I$u-sZWk7owJYD@<);T3K0RUV!lvI6;>1s;*b z3=Dj`L74IQk1HTWk|nMYCBgY=CFO}lsSE{)nRz98d8s7|CVB>XMus01GN%F+ZSiz* z46*Rfon**&$U%VleQb$H$ix*H?-)NY-aD{==4F?@<_T>lwr9VW3p`ex_i0yrbbICQ zC9M*c7d%XNbsO28XTMM|DR15{sqWuXPrR7+zIkt^7{FEOI=-s(K|lBXgJCQD=|SHy&$dQev@6yK$NA+P_z zHoh5=;X$o4WD@O?YHRA%J=cf6S-;hL?d}~jZi|P{XPbZh;?7c_`x!i4{an^LB{Ts5 DE^m4^ diff --git a/mods/ITEMS/mcl_core/textures/default_dry_grass.png b/mods/ITEMS/mcl_core/textures/default_dry_grass.png deleted file mode 100644 index e610678a629d2b865eac6e1b443c9479e07d17d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uE}ABX{pw^rA`rkTFi@{ z_W{MDJY5_^Dj1U!I06!q68J98IB?*fQ?aeH_VMuSw$>hL6NzaXOj8VE(pPt;Thx5z zRc3xYm30x1)V59~9-fVTd^}2wO}speYaU5UL`2?RZ?J-EYnP#pVCGXMhKyWMm9%Pg Q8=x%=p00i_>zopr0Cv(co&W#< diff --git a/mods/ITEMS/mcl_core/textures/default_dry_grass_side.png b/mods/ITEMS/mcl_core/textures/default_dry_grass_side.png deleted file mode 100644 index b12d06e7b7f09a73a9a68add444a8fe907b51243..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWjf^mkPqPg3*3Kw#@UT$; z3cr5rxe-XQl?3?({|5nv&HI<^2a5Q4x;TbZF!CJS%Gh8a;&4#><$m3UYZ?7-_Y3c2 z_SNmWy(4d)jC85BoAid*V7a$yey_jYHvSwruVU3leG`)dCnGLil{~><)F^R=W9b}5 Zh6UH;Zd40Qr~#VH;OXk;vd$@?2>@=9K`a0O diff --git a/mods/ITEMS/mcl_core/textures/default_dry_shrub.png b/mods/ITEMS/mcl_core/textures/default_dry_shrub.png deleted file mode 100644 index e1e84079cd187449dba205ccc59f648f861b34ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VW1=9cj|DRkKR2}V|>0=XQ zYcy}!VPBvqQ%R6tFatx`{|SGL8TM diff --git a/mods/ITEMS/mcl_core/textures/default_flint.png b/mods/ITEMS/mcl_core/textures/default_flint.png deleted file mode 100644 index 7c5876b2534c65e0910d4f6c95aa3a2f53bac28d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ1=4QL4$}m%CWh%L z3Em#Ao&j9Pff9@*L4Lsu4$p3+0Xb2gE{-7;jL8nHOaZe3B~KLuwOr6~YGg}jOHNu~ z9MKvzOKFDUk{Mzvk{Cn+yu7)11Q}Lw@bYpockZz0(pbP0l+XkK(3CTO diff --git a/mods/ITEMS/mcl_core/textures/default_glass.png b/mods/ITEMS/mcl_core/textures/default_glass.png deleted file mode 100644 index adb4bec8a9590cd4478644cde76181450261a0bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-uJ`YM05bpo|G)9dEd|FD zD}WrPk|4j}{|ryJ8+ZYER-P`7Ar*|t2?-nt2?D&lyomyHrDh!x5Ru6x2BBH{k wcIaYffPtZ@$y7%jlM*ct!;q$p|Nhl890(L%yJd@UDbN%KPgg&ebxsLQ0B#U1yZ`_I diff --git a/mods/ITEMS/mcl_core/textures/default_glass_detail.png b/mods/ITEMS/mcl_core/textures/default_glass_detail.png deleted file mode 100644 index 6205f84a588ec196f612f886fef310a1baffb8a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0Z{Thy}zZP z$7KIShN8(Im<$;Gb8ba0S!3Zf-`!7iIeS^s_xX|8yp>K-a+3-QLQ;>M+BH$zE>Dcf yX!4sTR`K#V&lk!Riiz!gWV`QKd_~Uf+yA}oB?V@s?^p!1o59o7&t;ucLK6VT`%1+C diff --git a/mods/ITEMS/mcl_core/textures/default_gold_ingot.png b/mods/ITEMS/mcl_core/textures/default_gold_ingot.png deleted file mode 100644 index a940ac531ba6a145446c55b2c08d7e1df7396e8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU1=9a7m%cifw5vyJNrlpt z<)+h8RNBLYm=)MQ0p%D=g8YIR9G=}s19HMWT^vIy7?T~CdYA&*CK!b{+&sZ}hQr9r zjM12fH8k{~liI3<3lkOGJSTN`doxWqI4|wdqepB)THd^TW^J67>JBY2XSgH|I30T_ laQO742Bw6CMJnbD3`ZOJCmwhH8UeI|!PC{xWt~$(696ElJ=y>O diff --git a/mods/ITEMS/mcl_core/textures/default_gravel.png b/mods/ITEMS/mcl_core/textures/default_gravel.png deleted file mode 100644 index 8108db7168e5d8c2d06a1e72cf4d35f49a0c1388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a4e)f$PK|4-DNT-vm@&CC zHauu*Z^wq!ORddJ^*#y}0F||Px;TbZF!G+>$aTm-g!RJjrn{5dSN7FT=jz)i8>9Mw zU!%;dW9{PL=UjC==KXb;rE+to(gI}@_W&=yobU~2i(m5Jb8J&Gd&SDcS(vB%MMg@W zC*YcXx+tUE>H6~@uD5J`$)a^PZVgj@q<^iD#r}%xC2bRy{=dbsC(^!b2HPF`jRo3Y Z`4v2c?<8os3IW~2;OXk;vd$@?2>_88R676w diff --git a/mods/ITEMS/mcl_core/textures/default_ice.png b/mods/ITEMS/mcl_core/textures/default_ice.png deleted file mode 100644 index e741bccc6b62de69cc0f1b9ded17344b8c385cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b?b?5@WbL(uSKe-Z@+Ecp zVcpr^wSZErB|(0{yFfs^<^CL?K&+>WV@L&~>@n6vRzm^Ti<5gATp1aeH}|&uy8h+m z!>2joQ$M+{4Lp+MA`*E;van#v#E*9@mfu(?BUHN9c8k1SR!!9LE7#X4_9tg7UFvbG ne#XWZ=}}DL$2BdZJkLu1E@!{Tsyllx&>{v;S3j3^P66tYqd+xGB|(0{tgO|2XFmaXwVp1HAr*|Q2OYbb4J3|VoUfL$t*^N8 z18?s3jsI_yu3-HBmeu9pR*(1o_ZJ&Zy;yT_=7mps84VjW440akt+sk~f7K;vo7kX# zofqVOSXEz)GuoafY@sXm&E?s~X4eoY>t*3b!prw(efS{VR{Pqhr}3UZ+?35~D?X>& d{SW@hbmW&P+sjYfSAh;;@O1TaS?83{1OUj2T08&% diff --git a/mods/ITEMS/mcl_core/textures/default_junglesapling.png b/mods/ITEMS/mcl_core/textures/default_junglesapling.png deleted file mode 100644 index c66730738f8f337cf455eaef1cf4b7d2166b5015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;VYf-eTvyrlWrnYIgvPY=_ zQ277<|D|D$sr}0ra)OgYxOe+HoFy>#kuKc`WbUaOj!+7$6pfU2Q&t#9Ha@v zU|=|M;Oa*puhP@SF{FYq_jD^`LjVU$z$?F;@A232{&MmQTuhz0t5wrM)8>q+&9fTT zB)wFZs&kEjUJAwMl8zaK1To6ZJMCA%8t-;Vsiw7QW65>9Ze0Zfqctn%y4()C)VO5x z`bzeq47~&TUrZZBpRkKb`K>T}F*}WY-Gwi{dzsW<9%IYn+urI2bOeK^tDnm{r-UW| D(HmS3 diff --git a/mods/ITEMS/mcl_core/textures/default_jungletree.png b/mods/ITEMS/mcl_core/textures/default_jungletree.png deleted file mode 100644 index 54fd0ccbdc07e26ac111df895aa55917c2726ac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b4Kq*IBscF4%)n_8JQo}E7LyTYFryVM)*=j}Qw`Z>>Ez^VLox|4XXr`1IrnW=&; lx|(c{mi3=u+?T=EXRr92+r9b58y=vo44$rjF6*2UngH=LLrVYv diff --git a/mods/ITEMS/mcl_core/textures/default_jungletree_top.png b/mods/ITEMS/mcl_core/textures/default_jungletree_top.png deleted file mode 100644 index a2fa3a33faa253c33427a9d1ee8dceed08a8a942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZwbD@wGf_?Su+9l|>Q4(; zR~~VwB{?LkzXPbC&eO#)q=J#>>{iAWpw~mZ$4dqg~RII^mE_8o>TkwQn=y2Jcj`TLz=wQ_Ww2ivw<#Q N@O1TaS?83{1OQ$7RZ{=} diff --git a/mods/ITEMS/mcl_core/textures/default_junglewood.png b/mods/ITEMS/mcl_core/textures/default_junglewood.png deleted file mode 100644 index 8f180e0050f1eed00c3297a7bd999dd787e610fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ&GWG;3$bgCa}74uj6F;44r;nx~6nNCl(rnS;EC3Nv=&x@z7X)o*5EGw$DHw-FQ(i&)Vu2egsF)78&qol`;+0Jl9y?EnA( diff --git a/mods/ITEMS/mcl_core/textures/default_ladder.png b/mods/ITEMS/mcl_core/textures/default_ladder.png deleted file mode 100644 index e9fc364a921cd71dd952687a67de704aa9222098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU{r~^JjlNnzh-0{mNwSZ% zi@CP9wVsZSPPd-IT%a1pk|4ie28U-i(tw-*PZ!6K3dY_uhJ1_$A`BPQv%){|KUi*9 z+|1V-xn4oYyr6EEbWVPi%!3x?7|q37&s@w+x+eAc-0MT%defKR5leW;n7)7h8M9rn gHM3XzuAj&6eV+U1!BvsBfo3y!y85}Sb4q9e0L$M&T>t<8 diff --git a/mods/ITEMS/mcl_core/textures/default_lava_flowing_animated.png b/mods/ITEMS/mcl_core/textures/default_lava_flowing_animated.png deleted file mode 100644 index decf3322e5a0b5aedfc30b9df070d7f4461c710b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0t^f+3{1>G)>Ib5Dj>xZ;1lAyMw?(@?pl?EXr-?=P${T@S9t)VgADh&CdULeEzXB zNk~1Kc~>Hb<;QlT8}TQer@RO(Nl4yt;Cb<^hesdEFt+K-D)kaXzegrj>2_%y?PUfO}1x#^Sobwysh3_ z_1468MXzn_OT9{q`JCTgzbT$A zo~{3Z;v2_cy>WnUC)LH5@!B!U>>u;Bm*_<*y-^ma>>$8XkNvYltxwMm@OdF`q9op{ zJM%R0ragL7dZQ%gG0GgtJo32ooD{v=9UQ2SS)_BGh4_g5`x@$fBv;*l`P5lH0~MF^ z2psJLJ(pfpyvOt|zC5zt^6d|e^KB$K-~SbQwJesmFDy)s4l1xKy433qnNK&-x7TO+ zan##^sKYqcm<_($)||7J+SBl`o0oaChs>AvP-C)gLN`{)GE7^LFT^wl28O^Lc3E)ny*4hgQrluG;i29bM+} z)1ddnd?UHHyP0=RuWT9FeA8LZH}36U!3py%xev*w(QC5a*9Uq-TbKKt(7TQK z9*kGG&*GJ<>|bC`=&e`jX?Hn#yx(b${i}yNlFz31r%rDo{c~gK#Aj6!N}fYl~siqj`1H)=em{&dami?px*AyPK_O z(u{k*=P!-hkTt-=5R0#ivu zK~yNuJ(9ss6G0TlzfO1CPPe;kn+?sj76~*VrW6vC#3 zT#UCyJXAPHQ%Xy-Ze50Tx9e;foO+nZJH5>OzIkun`!es}z3ue}j&0>B1u)}WB>={r zUw5kqqO))9Qp4zWPns*s*_!Lt-KwVRW6zJLNwJXEbX_UG;B1Z7H%mo~FE%Uyf%K>0P5Koiyi_wh`@ifs?-^YdF>agrK8b!mnnoIzMjD?H=2*T)h6t6DT z-A02a3E4cqM@*7+$%19FAW$^tJP0E-U&poHV2#f=bu(wV1)#3a4Y*Y2wK`h&V#Rr#yT&WGveAdPmOK34S|X5kt^ z8f7;gtfib^dVVMFoe_VnP*Vl#!mQQYg>qR4q33c!2tQx|$ek~88->5WZhHMe$XKsG zP@BG*Op1n~nC8lIyWJvgqoFJyWBGdXnX;B+TU+Up;;tqWZ#4RN-Jym7KvUCwkv@bD swR|5?M<0d`RV!Z diff --git a/mods/ITEMS/mcl_core/textures/default_obsidian.png b/mods/ITEMS/mcl_core/textures/default_obsidian.png deleted file mode 100644 index a7f1d8896e2ec390565519fb55b66b5f2eb10bad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMpx`%8 z7sn8d^T|)13nwQeBqUErN=W!|^g|D${)7h`)1M_g_v3z1^X19i@A2>V)l`3d{$1YW z$XTuPXAW>r{PpLtp)tGl_si=0-|xTm@$>g;ALZ-i_bf}kJprm#*i`@jZxYbh-~ZlP zGZ#L%|9`(vhErFP+@F|JGrWH8oTB*Xh15HszK^$KeR!R0Rtd1}^lQ59aiP^mAaF-- z#)0!ky*u1RBl(4ynVsW5ip1p2*rD_O?)2Ly_8oe}?rO+y;(DSk0qDSKq9s57|F^e! zWLLAd*;GhULgJtCpXC;h3K%O262CJ8L0G;+?vL;P^<^AGoDcEpb*y1$5N4mRyYkqI RR$vG)c)I$ztaD0e0suQ$l7IjJ diff --git a/mods/ITEMS/mcl_core/textures/default_paper.png b/mods/ITEMS/mcl_core/textures/default_paper.png deleted file mode 100644 index af90416b58967d79e291995d11c66a12092e5689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Gd*1#Ln;`P7I6Le|KEP4#IpWV zY-jX({_!8GUN+^={tdgt+Z<~Q?p>M2Iqi5RLjYsfvES@s2MsnQ?%;K}_T$&3Gzm9z zj_HgX&T;k@Jzb1*CpWS&CK7N(cOuJnp?@7xN!UW9DmhtF;xZBbR699QftzyZZco2KHLH)QBgC!aRYFWbkzL Kb6Mw<&;$TpK2fUx diff --git a/mods/ITEMS/mcl_core/textures/default_sand.png b/mods/ITEMS/mcl_core/textures/default_sand.png deleted file mode 100644 index 7fc254aa232078d5edd22ecf598146297d5f740d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGL736~_k^`TLCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33JtM=93Yk-ZigtLq zIEGmGw@y6B$>hl68vHeG4@cAYwFlU2s^hsgFiUS}-uv^A{J%CHC7WrAmG;7Ek4vpP zzyIZ#e|+gC`}JG4l`>{3CrC3}thkiZv5ZSpbVUGXd~QZYmh2lr$qlC}w@qB}n!9oN zid&nb-tw$4Zw|>9o3psj{P!UH-kY6wZ15gK0Pu9PW{XnrgPZ!6K3dZCF z5fP&hK@pLJ1QEXCvOpFiF4r?Lmz#JUd!DF-3Y#k&)(PEu^NeT1!W)`5t{%Cf(zx)% zT3u6BC)dVC!>cDWLU~uT9bBOqbXljfv9VFL_^8Tb2DUb)WlP?L@tP|%H#R1h77NWd qxHY(w@lZxWgF)C~iMw+hq!{=f%cM=Z+s6)c34^DrpUXO@geCw^w^tDW diff --git a/mods/ITEMS/mcl_core/textures/default_snow.png b/mods/ITEMS/mcl_core/textures/default_snow.png deleted file mode 100644 index 81526cbd93a834856eea3322ccec359bad78ba2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-t`A()}9MN*9B67SY;|9ie*-+ixnjg5}KHJIxsdzopr0J^P3+5i9m diff --git a/mods/ITEMS/mcl_core/textures/default_steel_block.png b/mods/ITEMS/mcl_core/textures/default_steel_block.png deleted file mode 100644 index a2e061eca4d268708c60f59e77d1f72751018438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDU-MDJitp5Jiii(@pu6_LQ zAtca0#MieXH}`j}sya|jp{I*uNCl&6&q3Zp1|mm!LM@&zU%O+Qe^R5%DTb%~7v41N z`p;3*=x-OnR&-Cr(6l_i&fw!?h2@vOSZOc0n{!v|^IDIYekKdQCHOf*Np4t}X$v;6G; z%zopr0JdK@*#H0l diff --git a/mods/ITEMS/mcl_core/textures/default_stone.png b/mods/ITEMS/mcl_core/textures/default_stone.png deleted file mode 100644 index 8831ffb9b5217e3aceb2526ed2734a9dd91edd08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWtt%;PZ>U*1eZu6<=7OBG z?8L-9(R$55*$ht?$B+s})t-yIhYSRc%G_dnryAS9`)LYmQ;94?=il^)0`s?}Fq_yq zTi74gX0o0lU9on-S2owAlP2?LyU0X6+GBpj^-iusZcWk1^sw3ETp)z4*}Q$iB}+b&7E diff --git a/mods/ITEMS/mcl_core/textures/default_stone_brick.png b/mods/ITEMS/mcl_core/textures/default_stone_brick.png deleted file mode 100644 index 318b91b3d72ba0f65978c86fd5c0eddfc2bc629e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUEyziWiww_BOpNq%_jR;t zZ>Xs&DYUV+UiD_h6rh?KPZ!6K3PzsJjl72(cwFlpUcN1MiMl=Wfq@Y75#|drrXo8z zCv39&zH0e*1H;|+x47S0{4#&uHX&&a$CX!3E193NZkP1d!pRJ6C9Rwz?{9ir)?yT1r7}RQS7090ZC*7jGkwNqA z6g4M<#qj|wh4+6RU17V$ye{q*+qMWM`9*&Z&B>5ml3w-b9^)Yk|7-7ePN~y#{`^m} z=GB9H_Qw`q+8Z8wa&_ID;|sWpE36l1XmaNG|E`z26r8(AT;EwZ;x%vecAz5|JYD@< J);T3K0RZC>QdIx| diff --git a/mods/ITEMS/mcl_core/textures/default_tree_top.png b/mods/ITEMS/mcl_core/textures/default_tree_top.png deleted file mode 100644 index 9a781d7e92ceed1c39d22ab9d3f2737d90b3ff47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUbu-tFa5GH{v@42somLXk zm*>B|Gxp4k46j8S-vQM$c)B=-R50@TZ52K2!1K3_F)7EFxn;fCZr zf${^EZUqj8?RVzN$Id)#n)LGa>qF~}J9P!_@{}r@cVwiWjh_DFw%}=t*N2Yp{-V9) z%JahQtO-wQj4$_G`P7|hqcklpJkaugoXISvcfGl%mI#L0|GKNjF2K@v?FaL14|(Tu T-;4&JTNpfD{an^LB{Ts5x4~Cj diff --git a/mods/ITEMS/mcl_core/textures/default_water_flowing_animated.png b/mods/ITEMS/mcl_core/textures/default_water_flowing_animated.png deleted file mode 100644 index 7c2ffaba1281e2219b4186b435d830fb9bc2caf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 888 zcmeAS@N?(olHy`uVBq!ia0vp^0t^f+3@pq*mXynpTR@5>-O<;Pfnj4m_n$;oAYUQb zBgmJ5p-PQ`p`nF=;TKS-;RORjsR0ASs{{rHs~HRo;stYd1=;{5fit0~g1_mZ4PZ!6KjC*HqIA%R|5MjCS>cq#K-`xpoYn%CX z({)d&`B;d_Bol;ss3QvH4BkDm&NWqJi0M$&%yqsI)^`S9WnIM ze7`~PsBHQZL*@+}>bK=Mv*uOrP@4NF~>3MQ1*UftDnm{r-UW|Xb^7Z diff --git a/mods/ITEMS/mcl_core/textures/default_water_source_animated.png b/mods/ITEMS/mcl_core/textures/default_water_source_animated.png deleted file mode 100644 index 5d45822441ee7fb27bcd195def5820a3e6422838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmV;n0ZIOeP)Hw@+i)WH)Y;fNKKwleedHa z_jVMg-l!gnH!m^u)22p`)k9$vjTVoRcW}j2p~QoF-9MvHb{cn;O&$D>*XE;mGm1I2 zQYugCdG$heDTlKi#qrLmJ=@eN5PI_Pwi`tsqckUqRbo3 gDB=}P&7_L=2cp>LVe{rm=l}o!07*qoM6N<$g0ua~`~Uy| diff --git a/mods/ITEMS/mcl_core/textures/default_wood.png b/mods/ITEMS/mcl_core/textures/default_wood.png deleted file mode 100644 index ee97b8d8a1f26833f881a52d5723a2bf38ff4611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUP4c!b40D-S5L6TI)0yQL z>1OU{XW(R_8Del&5vV55)5S5Qg3-puSG38ILq^(yU-$vr1oL>N>0BWP*z#&EPqzMK z&r^BNFz=M@g$MhLwzsT$w{BJ7w!L>{C(UqdRQoLI^4;?O`OH80MKd$|HYi+f>HOj& z`ej#9nV62;lBR%|{g#@IZ_&@&P+>g z?`w+=4L%Z@@&Kry+|$J|q=J$4;6}bC1A&Hz`(;x1UEVSOE%y|*vMa}K8dyx8_2FOt zgYS(`S>2jHNSVi*#gz4%I$f&Ra%=8Mj@+)kKO9yYl1+Cew;o8~4Ay(PGDucuf8`0z z`6bVmf* diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png deleted file mode 100644 index ff082af623818be592054f565a53f4a75c25b7a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZt!b%l?`z8}F3e0zPR_}U zii?g84c7T^=|50Gwx^3@NCl(li9o?-2OhSE_JIt1msEopA1JW07Fay^I6-%0WGmH*$`ff^9ZR@!IYM$>y?~Wa!A%4fTIZHpC tnz!@f*OQAiO3&WZN~-$uHuuVJdHuDb^_sIkKLT3I;OXk;vd$@?2>`3zO~wEK diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png b/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png deleted file mode 100644 index 639afd908980aa3ea8a9e5a33e7b0412b492ae17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmV0T1>eJNI3W4-={-U1A@*tGyJ^s@kU*sTcX$g%5!^FxUN4n zld-zxyx^H&T;yEO1Do9>G(;*a#DVC?d?~IU`_?Z$d}6OcV`xD2fgI6quV1_ODKx$O waA;SGW7Q0o_J;yfS_0lMZfpAKvHmHm>EUig;o_UjK!-7Sy85}Sb4q9e00(SPH~;_u diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png b/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png deleted file mode 100644 index a96b21aca008d81df94dc932d8db716b712f0426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bEl7_^4s~-f)Cu#j@v$*U zX?9itO67REIEGX(iuP`0JZiwhs&CMcy4TLc!Qq|rz51p6e;HFgUzxq&{?uR5OX^mJ z*QNWUZGV&~es=Ar57VybPCX+tP4i2SY!+A2Yw7IV#Kqw}lY-rf8C)rm8k zr|sZ~Z~;o0dAc};R4^tdq=bZ-g@`0N8b~zoFsn*53#uGtm?Fet+%lDS>VYmto*jBT jZA@y-tm@8!os0}$=W|uAoG!`&G=ag>)z4*}Q$iB}{~0N; diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png deleted file mode 100644 index 9fc994cc3fab119917c43eb4d008a31f46acff32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWy>V#Kqw}lY-rf8C)rm8k zr_JlEJWzLM2T(TK)5S5Qf>HGBM&82)JT4dYo!|JfzjM}-RCvb3^MEnL<@b7_m6m&6 z*~y3rW-Z{Jp2(Gx_v4(c2JdsXI+Jy?0yq~b?S1BA#KwJpGdK5BmF#Vu<{W-G>!-xc rIsS1@`>Pd)WTIvJ` diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png deleted file mode 100644 index 610a0aec50cf80163ced0e14697af02ff79602b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX{r~^JRfxQfyR>(jMtYOg zp0&kKZ>>4DqyF~!*_V%WmLHPo0IFmx3GxeOaCmkj4ah0=ba4!+U^F?nQSguh56gkw z?wT)R7`JIBNZeW`8nr=#AaTMv&KlMIxwZQc z*YD=%zP(M>%()?NS9MEua0#{@xs=4G>?f^u;z6$BJc|#nW%t|G|C%$=lToA4|AYJ; aNrvzKYSZiHc<%r@fWgz%&t;ucLK6TDOj;)Z diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png deleted file mode 100644 index 1a75eacdf3841751e3c9048fc531d401c7dc0cbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=3a_^4@70I_}cxO;*kG ze9!D#ef!$E^>bQfOocpe%_;(_U@Qsp3ubV5b|VeQY4&t+45?rgJ-tz=$$*F90t2^p zW1Yj2=H%$B$-b99&$0a1c(r)J>Us7T{I}h`_i4e*qi?=FdJu3h{tMr)zyg7y3q7l! z?nux0(b03C$ts?+mi6wll?s6-EsBozE{B(YXyh|rY-W*>I{VAVa~HA>8i%a$ycvFC okx|Nv5S!C~S?7AZ?EcNX*I35gWsUhqpmP{JUHx3vIVCg!0My@NQ2+n{ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png deleted file mode 100644 index 988ce176f600ecd3b12640c1df4f3f807e6fd685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX{r~^Jj=QvXnnrq)m5iy- z?Q7@G>|1RWBENo4Yx6wc-HT`L1FB>!3GxeOaCmkj4ajNqba4!+V6;7J$alzqr!|pX zYol7*DcMfrlybcQ#k__qvJ2%D^nxNb7cltsi2n$$zt&u@=hAchGEd%~#W}0no!@2p z{^ik2edi@76Pk0y<_&kS>bDKiDsj`2o*ng{bHwL_RMZAx@w2I4zWsB&xLtCN+@_h5 mEAB}=<~cmogiZSISJvYbL{9UbohuA<41=eupUXO@geCwk1Y8^d diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png b/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png deleted file mode 100644 index 9e2ae284e0ef5da2920a2fd201cd6a36ee55e511..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`MV>B>Ar*{C63Y%8z4yzWqx-{W z##yS&JPnB&ZSzvtcn(Nx_FVdQ&MBb@050%9?EnA( diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_coal_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_coal_ore.png deleted file mode 100644 index 2695ae001e605c06d9910e8ca534813d5211cf9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?btt%;PZ>U*1eZu6<=Iq48 zf}Auf3tKf+D(m8 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png b/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png deleted file mode 100644 index a39ccef812b372e8e4f3f584e7d0eb6d5f05783e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxL735kHCP2GC|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJq(MA#*BF(HBn_ z#}EsD-wTF$haCi*FWOGG7GKG;gNtW}_hT6a%}YB=ORg?KauDPxgz+hYcC+OWJ%7wf%bknft6Im-8dbuS(idatTsZwt4SY zUbV}wZN^CAa6C TOv@^u{~0`8{an^LB{Ts5_zshd diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_diamond_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_diamond_ore.png deleted file mode 100644 index 9f0ea24b07288fad4e1847bd23831eba0bf7d874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF4e$wZtt%;PZ>U*1eZu6<=7OBG z?8L-`F#p@{{*<5l9qH#DzwU->?Y!XW2Ynr_=3n{wZuytzK#h|V{l}R zhLbU~gapeGC!_N@qA3Om31|0Q-sm&K@qp@@Jb+&x><0}~Xl zsOqF$^-FVRa};DdS-O@ELqsq(lBkx zE%{%*JxlB`T-7F6d{cPuJ;7J=rp#{(xEDC>*1_a{b{vZ<+mx zUUN+j+0)LQ2PaLhR6H~*a{f)mi8;|`J(FIz9}hM8y>V{Fa?xE|^;KqwZ;fsC{R4Ca NgQu&X%Q~loCIG~1SUUg! diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png deleted file mode 100644 index 0d89941ff74f3ca773154fc1fa4903bc8459b47e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDU^)gWkvQmq2Hi&jN$O^WJ z4>k3-Gm7@K$p~^Uj|-|u3hc^@o>86Jk{uIhXF9Vk|HRTFMxb8CByV>Yh7ML)4Eal|ab2|Akn6C4h_k3u z`D~REb6F#+FD!ccGEoY$Qp*aqi4Qf6 zb~o@{?6ndoTjJ^B7*fH=>veo#tAc>c2F6SGZvMQ#c_m{qBiEPvr;;D5NK~Ag#?b!M zoL}t%>@lQc7p0fR|csB3&^{so7 zTw5wuZSGjT%&gAk@rVB>R#wDq_<3c0c}Q`+{i066oC(t#T7dR5c)I$ztaD0e0s!tn BQ`GS>$1bH z=62?+`qwo;**s4d$B+s}*%JrXHX8`EJiPzt=R4OuOcGiQ<{PF>v!3|qU-U_}=@-rI zk2Y-L`jwd`r21@*pmn$K;cb(ju1tK}UTt#Ab>_tf@to@JH>6j@+gLp0{QucXa5cN( ut5zlF-TYg6B|cAe-Rte{zI*Md?~G^ag;HLdFSrb}nZeW5&t;ucLK6T|c1w8x diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_emerald_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_emerald_ore.png deleted file mode 100644 index 04ebdf482a45d68e97ea0bd26a9fa17a4a8e1cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 418 zcmV;T0bTxyP)TSmY)6|yGwlT|CkCLRM}pe2b*0e z;PFD}9T1G)C&32dw%MCcQZ1rM0kMIBjQDx{?Tz~aP#daqp^sC}gOo~9ni;zbY{>8_ zx3eWD0;&i+#>!im*zHZkhOxK7>$t6UwKuY7^a=)c1;-B>(^b diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_0.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_0.png deleted file mode 100644 index 5b33471d9e9cf34ac643048e46325abee1856214..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|u3h`@m8`wC@XFhom=-&r zAahBOU+}J7yVw;M?*MWGJzX3_Di~Q0ZscuH5OBD7UUh;+1FvY=rqBZ^i6(pr zYt}C)^181a>(F+9C)nU~^NicfyLAkhF6~_C)tdi8<9XXkjkP;IuM!v1b_xE=sAejV UbWo9L572N1Pgg&ebxsLQ045eYg8%>k diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png deleted file mode 100644 index fd3756ebfd6a098e50f2beaefa1d9327a8206f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ?b?5@WbL(uSKgj{^XJ9) z|LbnQpL+E6chRGNfeP45g8YJaLBRg|!W}@N1Wy;okP1fCuC0vBh78Q-e|_EDk5{PuRb%iMz|>(2b*6%mLS@f4v_0Ca-;c_UApx_0x~LWjSnn y9?Is^e%x?}M9Kyijx8ry7=?R;5BykqM%r4B!*$w+`XfNQ7(8A5T-G@yGywomt5<;l diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png deleted file mode 100644 index e90d8dd8fec905e23c0ea83342828ea31dad9de5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ?b?5@WbL(uSKgj{^Jm@d z_b{%^m~_HyI7a)ucPUCom>yl37X?HqBG@9H;$yV=up56#=U!fnOU z%xNu?%eINM_n)9|h&*THw?L*nzfx^4@qF1(qIc-qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#r>u7wP~2 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_brown.png deleted file mode 100644 index 3f898ef4c80ba57b7f4c1a23c66f113eda3f63f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|t9-j^ETsYe#C%Ew) zOFh7%Wa8&w*x+-PgZadjIc{MR7tS>VGP?;2sY)6JulKV`F7x^J&mxW#BhqSoy2)Aumu3gQu&X%Q~lo FCIC diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_cyan.png deleted file mode 100644 index 24382900c25d0a70ffbbc59f686b0bae734e9906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tA6Cw<>=5EHR_K-K zIo-hNk};q)Udo`k21V+codasmT0pBNh>9~&zpn@@ulD+9j?!^&TU4|#!V7(8A5T-G@y GGywqA=omTx diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_gray.png deleted file mode 100644 index 70b0a43592cd5678f4efa4a17d9419b501f3d8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tA3lDxbm451oZ!ZH zEcF13l8K*#VS~?E4(1bA=D3APTsYSd$m}L8q$VGP?;2sY)<>ww*eIb=9T_pk@Y7S3j3^P6F44$rjF6*2U FngHAb7+L@T diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue.png deleted file mode 100644 index eef2edf1fa0e138f36a8cb4d9bc96451d908c083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|t9^4%8=#9+uvLQYG&|s^>bP0l+XkK D!jc<1 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_light_blue_detail.png deleted file mode 100644 index 842441a2c6252409b1b5ed2517dc03a9094dbe0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9Yud~kK&0?Cb_Y;|sU*lR zIBmjK>q)Udo`k21V+codasmT0pBNh>9~&zpn@@ulD+9j?!^&TU4|#!V7(8A5T-G@y GGywn+=@}dV diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_lime.png deleted file mode 100644 index dbf7da166bb990acb91078ad6f4ce5a01a6933e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tE9{jkJA`qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#r7`7lQx* diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta.png deleted file mode 100644 index 9c7af074ef56b91ef1c50a287f8f7417c9e01a30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tH=Yzf7EqN)bC9x> zn9eBNalwM|D1(uyGLJ%Vu~cNDgEg}ouY|A1lmv$Vw}Y3jc=Iv^sF}gj)z4*}Q$iB} D04W@Y diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_magenta_detail.png deleted file mode 100644 index cd2d234587336d898dc1968f608d8d13d6436708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>n5KYKs0Ygyc|%3sU*lR zIBmjK>q)Udo`k21V+codasmT0pBNh>9~&zpn@@ulD+9j?!^&TU4|#!V7(8A5T-G@y GGywqjXc(&i diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange.png deleted file mode 100644 index 64f931864b55914f42bd90cb7e198c071e7e29a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tI|B1-I)r$P6?$cQ zPB(D6WXx$uVwgEgkZrWftndSUHx3vIVCg! E08m^Wp8x;= diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_orange_detail.png deleted file mode 100644 index 930992769a3f188200b55cba43384d33fa10397c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>y3J2APW1PUJVpsDhcun zPMfgRdQvQqC*kSh7{U>qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#tsO7?S`1 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_pink.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_pink.png deleted file mode 100644 index 9f666075c4b639d2d6a71bb575e7c919bfbeb61a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tKSK6@5m1##bC9x> zn9eBNalwM|D1(uyGLJ%Vu~cNDgEg}ouY|A1lmv!Z9g~-*_MTJ$YG&|s^>bP0l+XkK D;`bW* diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_pink_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_pink_detail.png deleted file mode 100644 index d06f90f6b517ba853842ec7404d8951d09dae161..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>!qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#s>*7%Kn( diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_purple.png deleted file mode 100644 index ea106b29b5dcc1c7063bcc2f27c2b4088b13bcc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tE4JS+=@8;ER_K-K zIo-hNk};qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#sJX7ybYM diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_red.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_red.png deleted file mode 100644 index 5de6aadc95824e03f15389d4fc9d79bfffe6409a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tGct2(I)r$P6?$cQ zPB(D6WXx$uVwgEgkZrr7)~AX3VB!vYjxDhcun zPMfgRdQvQqC*kSh7{U>qoWQ`$C&tFe$HvOY=F_0X%D`{Ju<}>oLtda722WQ%mvv4F FO#pOt7Q_Gm diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_silver.png deleted file mode 100644 index 632c318df4cd0687dc2d665daaf7512d41d91ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`hMq2tAr*|tGc1drDS8>4X)q}= z&|_8;SXju^#h8-iCgHH`naQR@4P|USQUr60+IMj0-D8f_{?vpk@Y7S3j3^P6S0 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_white_detail.png deleted file mode 100644 index e7e0db92d08c9f7c14c0b0ec193609130bea2d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>who^t@)Y*6k#d}@(WIz zu+@4}ERZMR>Eal|5uKdCz|1Gc#>mIU%E;!^pvB6-Z^E$hSK&impc)2GS3j3^P6 zn9eBNalwM|D1(uyGLJ%Vu~cNDgEg}ouY|A1lmrG1sjB61i7p3#ni)J@{an^LB{Ts5 D+$$O+ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png b/mods/ITEMS/mcl_core/textures/mcl_core_glass_yellow_detail.png deleted file mode 100644 index b3fc7c8933760046e65e536cd552c125bf75fcee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;TYyi9>(i&kKy+zK#4Df(Q%R6t zaN2~e){|m^JPA)1#}JO_#N=@KtP=D+%#U+ga^Y*1YCg8e4nC7wemJDJj~IhsxVy#p1mGPHc2 z9-`4`%4~Qt(V;J`g)zlKmeEc&_|SpFA`A>KD~p!R?v1<-w28sf)z4*}Q$iB}U*1eZu6<=7OBG z?8L-`F#kwD_x3QMT|HV$DwM7)H+^+5>Hm!uUq`EHDJm6pcbI^BCwRIzhEy=J9#rHw z@D}Euerw; z$~n}%y)4i;^H0|*VO5>)4{xY<^%!Pm+HUOF?k3|LI@|gO^Oh^}o9Z{4UIV&~!PC{x JWt~$(69BS8Z!-V@ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_granite.png b/mods/ITEMS/mcl_core/textures/mcl_core_granite.png deleted file mode 100644 index e06aebfde61ac6d258f30a370ecd6e57dcffbf38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a?M#WDS6e(GJ1ILltfwk{ zO?$=8DNX%Z3H>!?Y7x#efXdoET^vIy7+DW4y~X6nzf zeDUhNWm(3z$SALhfYaMgYg~vswsf)LyhrQbetF8D96RH-eE5f@?9X4Z{VrfuyQ^>a eEbH7``~BTsk_GxEH(mmr#Ng@b=d#Wzp$P!6`e1?p diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_granite_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_granite_smooth.png deleted file mode 100644 index 003aa83717dc7689978d84d77cbc2122eb92ccff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJ>zek8ol}}7WGBt5E$*)= z%Z?7~sxRm%FX*XCpW9Z^nG)TSnN*)1-&K^kptELXO;J;JN=t59dri))XC2W%L)tuD z978G?UHe#>4jXW|a`Nx;`1`LtcEM!%+8rJ7p3BVG^4P+bN4jVA)|2kR;vq9%$3(H( z@F<)ploR!K=3J+){=XyLi23up*h%?^4+Ye$@_)Mc7n_MN%jGkls~!Vg#Ng@b=d#Wz Gp$PzK^!lvI6;>1s;*b z3=DjGL736~_k^`TL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3(J<}BT2$0FkJY5_^ zEc~bT8FDcN^0*YcdrN2YE8OUA-5OEJu<;J}x_$iqkJLK^=Xs`0`YFBrbYkoAzc#D> zu8-`MGFkrk-)5KnHtU;f)=W2jCivihpsn|}sqg=YHgr1pH|Ph(o@3noHmyRLfmtBd zfG6TeG5`4o58nUfX0EYpe_C+(OVeY?>3?$KpEAsq)vA&-aDK4HQ?pFtDBsc>3q`D_ mB((><3Fwmb`dELhf^o@$>j_$qr`ZBs%;4$j=d#Wzp$Pz*j%~jH diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png deleted file mode 100644 index ac25e45c4cf3ea37b65dfb77681521abb1f44385..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G^rh1>#+YnAtw0tMMiJbhi+?=y<<8mfAzt!)7cNtC!olmzFem6RtIr7{#GX6BXX z<)xM=nCKbm876DZ@dm27=jq}YV&T7Z!fviZ4k9k!`;WL!J$J~7DXb|Xb8+ibg$(^0 zzfOlgJJmT^H6p`sXa7vwlgnI=#A|)Ota5I4mOgqHGli9V&COC3~aJN>jnN! zIDd!v#FeI*<|~ED4%AtC=`$Ls=yF~$sC@E-QLjp8_IGvXtBUQGG7@nYAHH4WxpF$k z$D4csp=|4A!av)@T$eiWW?t6LoZA&L*A{AV1{`L{T=&_PncKXE|Ag@smLE;`p68#^ z{-d<+GV_nS?ce^zTQ$tGY7qJGdWX9m;|v*zS+VcFt_x`Ay!O{UcMrpgL!lvI6;>1s;*b z3=G_SAk65n?;%ihC1j6!f9c!vyTA72X&z6GexsWH;BN%yj7}f5)deg@>Ju(aS=8^+yin0!I^A{J=Ib0Y z6dn3?E}Aign}3>Wa=z3)g(JXu75fLn#fs|7yjthSa|-)*l&@$D;SX6mkJ%?#;p}|- z*z!uk5{trRcMjG_dl$iRBJ*lPKJcu^y{w`Zi19OiM&`M;%4lfiP^Q*Oq1 WQMYfmP11l~VDNPHb6Mw<&;$VLgK>la diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png deleted file mode 100644 index 9830db7eb67c78c10df1ce480761fd4229244b5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUz4h?frJMI&eg5&_<+~%7 zZY|n;Fxt~5BgnmP-rDlGpc&PvU3t+h*)bJKfq{0WGwbqMO7FY@>Savwc6VXuV3qX% zaySb-B8wRqxP?KOkzv*x37{Z*iKnkC`(qwnaVw3a*QRPfp&CyY#}JO|qTLrcn+-%< z`;V|5VfEVOkhIJ34M(iwNv1Y-*#*KXHU)~?Uw!^}r`R%v%_fmS#=oh5g3jr~zADR7 zIoTRtJQqnX-qXaboZ@zD&!@=E)zjnM`+w~XvEKbA%>2sP1zNuA7G0WBmvwiEsLzR; kON(w?TCM%v+4U>GTDW$i|92TdpgR~mUHx3vIVCg!0P;|6-T(jq diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png b/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png deleted file mode 100644 index 7623d45de92dec769ccb6e82370a3751e75567f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?bU2x$^-@&_^?!4ds>PzE> zb5)Y9H z`OIUok9FTVDJr)iJ?b}qR_z+Ty;%|p=UysxJ4AnSi*o-Q!!a+bX2IJ3@76y|E4#fV l;%4f>qs6s`Mz7<3F>cY|+<#KEEe&WVgQu&X%Q~loCIF^>Ox*wg diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png b/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png deleted file mode 100644 index bbb89d6a3d07d60846fa4ab517ed6dddb0b13515..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C|TkfQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXJ~ol+NKnsq8d*Z z#}EturRNR#92^8%AKI>TTPU#fMF`i_W0EC8=>eU=y)%<0`95Rqf8_mSd%mmC#Q21i z11B0LGAc74yR%Kt$bYfjqwfa0KHoTcCswFwb70-U3+1yO?-ZEBZ~wQ6x2JY%uGY%a rPQ^Cq311#wz5&(g#@6%Ra~DJF-0$c6g6eC4?qKkA^>bP0l+XkKX%t+t diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png deleted file mode 100644 index f83b8303ea77a633b5568f2541211c3cc45c5912..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmV)f^6cTGcWX^SI=Igt7XSbNjY&j7 zRCoa$%pu6aP!vGn^Zs9qa_=76?ZwOM@PxO%;kI5>%c=|ZU}r(>!JY%Z}z4cFr5H=oxgGwQq>+Z(!gm!qD@bel@k$iJE75xxlK90OgxwO9ZE002ovPDHLk FV1oKWa2x;t diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_lapis_block.png b/mods/ITEMS/mcl_core/textures/mcl_core_lapis_block.png deleted file mode 100644 index 9ccd753e956e5a076b28f9341d5d09091a2b1099..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWZCP?TqUnHj_7?TXr7||1 zBHBsr?9vB-vMHV}jv*C{qQ?Roj~H+`IKFz2AtJ&PQ?as-&J+Z3=G#RGbqLKk+=jRzn4#eGHzielF{r5}E)~M@BaQ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png deleted file mode 100644 index f4bc61c8e19de5b3d22131698342056cad7bf093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VWtt%;PZ>U*1eZu6<=7OBG z?8L-KKX>)WrPkS7d>yS?mRweFoh@V28PRm0@UbSyh$)^fjv*C{$qYc&hi&?SeJdIhAm)7U!i>4%q7@XTtdi82! zqoaez8tnrS6Am_*I%tHrM9gr^3D00)_SO(~{t=u0anp^}JUoU=+a7LTrf-^3z*~4? zU!m2_3623Rio5=1G;lXhSg_#sHx@^BwzLIn6&^FZ-mIk7qqOJ_(0vS^u6{1-oD!M< DT@qYb diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png deleted file mode 100644 index 859d14ac8375d0b6d31a9f84ecaa374fb58b1bbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b^_b)?>LMj#DlX)&Bo?Z& zUeIL@P>Qi6$S;`HphxE=kdy4`;uuoFsM;CIc*KCGZGVdJgf-RroEn@KU-DlXd{BPy z^1tQ-Gl!ns$U>D3Gp8|fKRIE3;me)e{dISl9Ck%iy?Ah2@QmQ)DpBUhmYEh0eAcxx qG2Cnn{-(EDc;1!9k~>>0KCoq+i87ZmQdD)-)9^Dg z%dpQqz4aMTma!zrFPPP!N9QGwlkMr^7*fH=d+H)5lc50H!;`zd&pXUENtKl&>Og%W zH%HO8`(2e%Y<3M%oE5uYpKOV}q#8Bz$3m4;e9k~?89ZJ6T-G@yGywo^ Cmr4)- diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png b/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png deleted file mode 100644 index 9b7a85ce9e8f154145b725effa38d3fa6f5b44c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWb+<7M^>oltkj;n+tjS5V z)YH&u6R$|?682<$Km&SA-3x>>ntaD zT@qOo?8}{etd=*o=V9#8?!!)Ymv=jBt&|PgEYQ!+81-e-<8?Qh%BrixmZj$FbOgC_ z{1;DOUCbVF?veAx+P9kbg4b>2+AiWcWzTjs#Xl zpM(EaPpdjn>tbmhROGT+sMOef&&#ii-HNAdt+{gfkT09;=TnJGi&*~NXNo>)T*xV) z?KkUtlS|=)4>}#1pXx8}_;Kx*Ci9JCC*k@HaSt^v{by>_ynkH$f}-@NOJ<9%1Kq*k M>FVdQ&MBb@0DERs!2kdN diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png b/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png deleted file mode 100644 index b53eb796eedb587c67df898ff1a51b17dddfd764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWo!MRY=;pb%&mU$dMw~gY zdDVhx0_L2DfwG03E{-7;jG{i`8yf_`_-MPIdhS0ooU}-`RH;GEZmxdZ>!Q z#eT6llT8%=JvY|OTdjHKDlt>f@~$YZt6j}soef{@n?umn}t$%kPQqJqKJm|Dkx^AkDpmCGu!VsY444$rjF6*2UngIW~PZaiKVwD@| z-Cr2zY^t}SCGFtsnylS+d_ZL_o-U3d6^y*Trc8$zczDbnuldn)zVzmXmM`o*5vu$v zY-jJd@3?sVwi#a+KCR;KpCh})_E)M?bVjhKu(;ZqMLc_5aw08?z(FME!Jr@Bd)H!OlKwi2 zXAZ~L-2PbCRMMSUt}vgw@~hlr-y>5+jjTGqcEx|(aklU;<2ob3Xy&U|wgO$j;OXk; Jvd$@?2>>vJP?G=v diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_log_spruce_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_log_spruce_top.png deleted file mode 100644 index 965e2e294bf9c916ae43410bb5c5912e31d5b77b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a)mD@!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P_o1|q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&&cqjLgrMUqWhjM zjv*HQu@h{)nH@!3pWEMD>YbSAq|>A@TZHYK{hDrjc;asT#?!ZdzdL?r zLvGFA8Ggn;s%FnvbN#USgz)QIkGlP`{C}wbcX`?`2H6`g%_S}+L>VXsE70k3>5#Hk{>{ecp-U#*p2k!ir^BP!_GN!a xxuaEncg8aD5Z=2V6&`(BGV8*+C-R5C@hhwn|L5eiyaVV}22WQ%mvv4FO#okGk;ni5 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png deleted file mode 100644 index 6581f19cdf467c5d7bd69ae89977428707b5485d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P_o1|q9iy!t)x7$D3zfgF*C13FE6!3!9>qM&&cqjLgrMUq8pwr zjv*HQsgpMH9dh7telH!Vbud6B#L%Ebt9bgl52yFMQ2fp{iM20T-O_RQoOcOQ&*awM zmR@t6cOBz`fNjTrdMex6zkS)wq_FiM!-Q<6GhFe4xtt z4?cGNo$hz(VAlcjCvUh6INkTNA6a`|;>m8uj3$){TMe(&pPbh`SLIGlxO6IOlF@{> pj8@emxA&hcICfaE>#{*T!^bJsj-9MOwgLUf;OXk;vd$@?2>`U6f~f!i diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_papyrus.png b/mods/ITEMS/mcl_core/textures/mcl_core_papyrus.png deleted file mode 100644 index c928402f9507ddf95b93d2c43f31738a09356b81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1953 zcmV;S2VVGzP)dQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bva_uM#{nsjb2}mG@hbmgMZ{A^acz&Z-cc;E)z_kD1ukV6~+^l8PEAcE#abvJwT$;((B`= zi*tSyJ)bWuADFIs@N9SXemsrLL(xTfIyeTVF$u_Jc{_mWGeDOhFA46^ z-_kAk6sKO_VrgfLM0g!QzUlRLL!XZIMnu;ECgmQ>nRjc&w^onUMPntRc4pKFHZC(V zF-gevc+E<4a?r^sIpLAR8~n^#(*TOG(dv|BQ~s~&zJ?Gp-N7AqAWypo!5>6 zW!-r)yN{5NWc;=QKJZqW9(jQw0!If!1 zLL|Ofz@Qcelts;GQ8^-qC~@>cP!!}Odm{-0$V^2*lF`}{IP%ne%R3IoTw=1+)l!>; z2-a3R;U?%PWEsPfKhAi`p~#vIGh24-fdfaYt+8yab+#9|=(IDAopsK67hLq(8_(W) z=e-X;1`1kgAO{;<@F9d438FZPVk^r0D4Ik`CzCkYZARFHJq%`V5-k^n>Epb zbISzwa>AW6VT=q4A71$$0e<$jgitwe@j`VsuK4s0(u7 zsoCpPo{~A{3;lv+z3Sra)qAgVdhr-l^e|=bX{&#WF7^&iaY()`srtve62&P}Wi;}q zP&UYr>z3l%2fX z9^9TzfuEWBmYC|hecQJy+;^#s<*~Boc75g@yhP*`TYTmKf0jLX*1J{5D8Kli_5~)` z;KD8*XKhGyrrntWJBQDGTrE79c&T$|+}=vn;i1#tbh+%mQTNl%S$bA+U1=BcQfKk+ zhs8QJns&c9$}YzY^fT#@7ldl|$t3?&Eh}pW={>)lugYl#Z^zlmE5^N;(jKRiJJBlG zM`%4gZA0`$->BRVLikGzFVW8a9)`vXGSGP*wer|cXPsAH^sD~E*z_v{c?UOV`?KJ! zC4hWUZB`fHu!O>2e+k@rxO}OcYqw|IOnZsjW;5HkzK?ePH2aXsUTbhqbDw0w7p&?N z+g@Ii55NHb0rKVdsEA7Gga7~mBWXiJP)S2WAaHVTW@&6?004NLosh9g!%!54zt*6o z=pc%NIAm}wxY)_1Dg?noj1{a-Y0_dbH-;po_y)d-K1>He@C|$c1!w;o9URQ!g~R`G zIOqTGz0h=%$P~^Vn6%8jpf|i6Ub!o8v~Xy%juS>j*7N;SYR~5@4XZC5>s3GZ=UI-& zMI>FQ(kRPIXdH;U^D?unV)J$o9El&qZfw$6{3PCuO>Eij1}2$BKc4nBtK;?W~N)s{PT@p ze(g{&OXGLf00002VoOIv0RM-N%)bBt010qNS#tmY3ljhU3ljkVnw%H_000McNliru zJW z5!M=4p|}gHJkzK>s?s$55*MF_8PIp6v@-6Dmgt?QD3a#kN6Rd1`|0WIz*?K%#0|wP zv>NjOJ6Ym1RcWc&<_AFK#qBlYv=?zZ%v!be2AB@8e6A3SyVub6C0m nbCC~|&|}%PnKH2=sF@vo+Cr zu%%=hP%6aJ#WAFUQP-D~vBg0kNt);SgJli;W(B{~g-V{+GamR+TK=#*h3CfGU1=`w zQ$7@Y5!^i6Tj5EB)A#v?{vtR39xRGD&h|Oc!{+I`39)be>b{;``@vTF5dRs6<6@72 P<}-M@`njxgN@xNA6(K&N diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png b/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png deleted file mode 100644 index ab3ae8f7fd399df3fd728def74be52a88318c675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^4e$wZ?ad3x_HkI%ma(xvuQJMK zc5U3G;^_YyZT|xmRCu~LhEy<$_8jCrtRTR0ebUtbiQxqrng_xid3X~lE1N}L>~EP< zuYLASLT6h0t!(JPoD1w~R+SZ*6>-cJ%ejJ6DTy81GJFVdQ I&MBb@00=!*^Z)<= diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_planks_spruce.png b/mods/ITEMS/mcl_core/textures/mcl_core_planks_spruce.png deleted file mode 100644 index 74fc6908c14ad9753a6c77852b6d711a61943d87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa4)6(a4RoE;uuoFDBF9T@sI(JOZ+YSB<4K~Ps0rEhpb(YBjA7F zo<`XE@`U3-r%ujT;=N1aSAxMRegEivQx7M^PN;umdKI;Vst0Qt8| A2LJ#7 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png deleted file mode 100644 index 4305cffa2bedf0f2ef1cc24f84a494a03d4262f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|3dtTpz6=aistgPb%?u1b{{!il z3=E|P3=FRl7#OT(FffScPl`Y422{&g;1OBOz`)H1!i*049y$UAB}-f*N`mv#O3D+9 zQW**oGxJLH@={9_O!N%&j0`_2WKIPt+UDuv7-HeyI?<5tkOL3P-}@XH!3UT#elppg zRIXrDt&KW%>+-QroQl1RCfmN=toL!(+#|p1+Ri@?x;Z~Q>h`XNErJ_*8D&B;&0K<8 zySPGDw5&HXG1g=1c$thTwBI=WwzrgbMAA2?owZKvRM~QW%OKE zHLr)OXr0Q-^}5G4hedmDv%M?Jc<|WSb>&^k4R0$qzcN3;VC!x5f0L#B`X>&Xd*}Rn hJd1^=tUP+U{)B5c+Zw8VYXN=0;OXk;vd$@?2>=kCe;fb+ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png deleted file mode 100644 index f6e6ea499e864420eca14012065cf2fd7415fefc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G`-Aj~-FC-YLEAbW|YuPggK4pts@`Moo>egK6eN?apKg7ec#$`gxH8440J^Gfvc zQcDy}^bGY(Q`{p!mYwu;aSXBWFP*TP_mG2tOY90~8N~uG2G$8dOj{gSMI2dMo-EmO z+4}6{W!lvI6;>1s;*b z3=G`-Aj~-FC-YLEAbW|YuPggK4mK_k?Yg=QMWB#GiEBhjaDG}zd16s2LqTF@UWr~_ zYKel0o}r#;ihBgevJ0Lrjv*HQr4x4Z9&!+1ja8j^vY_RFCZmW$*Aun{tXc~=v=mg- zQ`cDPRP$1k1K7TDLY%=s+)y2q!&dYnZTyp))Hw=A1$ zQoUTV;R3NJ-rnU#0Y0Z)3*@Q-#Q&XgSlhR5g88fd##t*A?>Bk`GaKmkPcwL8Trcs6 zB`e@!lvI6;>1s;*b z3=G_SAk65n?;%i~dWL$YDee&<%g%YaIEGmG=T6$ld&oe<#a30cBw*o$X-zy1-A9--n;g#ms2TC^wU1QTYt2@%naSWZGU*yi666G zw)lKqx5n#)a3F)VtND?+4nC&E4P5j2xcbZ_<6qr(Z)SYoWuknp_2*(!T|3nywyar< wQJNM9O>ac~_$f8(-KY1xImdQe^4%3*z_^@&_v6hBpwAdQUHx3vIVCg!0JhhM0ssI2 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png deleted file mode 100644 index f6e6ea499e864420eca14012065cf2fd7415fefc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=G`-Aj~-FC-YLEAbW|YuPggK4pts@`Moo>egK6eN?apKg7ec#$`gxH8440J^Gfvc zQcDy}^bGY(Q`{p!mYwu;aSXBWFP*TP_mG2tOY90~8N~uG2G$8dOj{gSMI2dMo-EmO z+4}6{W!lvI6;>1s;*b z3=G`-Aj~-FC-YLEAbW|YuPggK4ptrwg`RY2kbx2aJKZ3YL16V{qEaCWOl2PN; zWKwwUb?p44^s4)M>r3xl{(5CXRZwl*d5`(OFUh_#NS${**)s5r@xt^~%y~@GX9CjK z@GV;Z_+Ef)$$Mkza-RJS%0E00@|?0zJ;}7BPddi-MT2zkv9lAe9R14cuyps$rA+4x zADUghE1IBNeBetz*OQIwXU+@hG(Nh6T{S`K(`=2l!Zmk!PyPtjl)K}6;Gu=l>p!ec X>-R57Tq_y~^aF#ZtDnm{r-UW|{waEm diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png deleted file mode 100644 index f26a9cd7f2dd05dc02a1b3f0915b1c15b7db19a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?btt%;PZ>U*1eZu6<=7OBG z?8L-KKlka(%-7X*GnkmxD{3_H^7=YjHC@x(0n{?t)5S5Qf|0jZb=F}AhSvBK{ukc! z8pZPoTsxh;{mib6)4T4RGMfE~vugFR{|pR0Kipgb-n%bjQ(Q2mqfVwFS3ogRobi1B zf4(#&))wFQmwpQz%$Obh=;Bs}wXv0A=XgpIBPFJ1%XHXh^-Om+`*8X3?I+@n@#nvK ziyd8`zVhZb^VSs(f1=xLJQlsE{Z||HplNkJqkck~GAr|+lFdNpF?hQAxvXa81{GY0j_fx^?xLDzP-bn{n&OYK)n9Kj**#pfb7AfZ$Wj1}!nDlEIyO&rmOH@Mj z%Ktn2a!(e|mzwtG(E~Hx70&YtS25PTJ2xl#z>|w@+dp)f$EUi_Fi~!6eZiJKiP?~~ tG?DS*@2p>TDgg_pUz7PO6}jREWA}22$~xI8aX`l~c)I$ztaD0e0syd@UUmQg diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png deleted file mode 100644 index 51d4174d4de27a8bbe2b15465c9755ab81c89ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxK$!8B)5ZfpL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3(J<}BT2$0DqJY5_^ zEc{C+TJs$;5O68Jb4A2MkXMLTSAD^PrLA`257=TFfB---)=Bs+#W2 zo3w13@QXdW7TRt#pTXBKae{O9UoW@7b$tELlZ|p3y6=5Bpc~BaHqIwE!DwaFGkd*= W`)A_$AM6JDiNVv=&t;ucLK6Vym3(CY diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png deleted file mode 100644 index bbe724c5e2102a9e6dbb2da06afc6ee43e2cf61b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DkxK$!8B)5ZfpL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3(J<}BT2$0F=JzX3_ zEc{C+*m5085MV71-CfeuDv-k>9W5Qr9Uc94Z-e;yT z&p&2ZfBKw?g%^v7EGz#GdGl>XeHsfi4}adWRN?1y!)c6LFU&Ih?8Ec?E7zjUd-(R= zm@gsX+S{?w<*#vou;AGx4Gzo(tNQ(9w?^+^yEsKrd`7CFG4GewN&lWSaV>GnxO!yQ z1*t2E4F4IUJ3n*pYm2?A_K&$}CHISv>;{#Sy^9-7y$&8d#O1&BtWm@k=Ey3y=4P>7 er!lvI6;>1s;*b z3=DjGK$vmro+3}6phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7?o@t7E1jytIo-U3d z7XGOd4EYW@@UZ+1-BmJCV}jBw50fn>TST^GE_}}Xr-A&r#i7RcpIOAFsw!lvI6;>1s;*b z3=DkxK$!8B)5ZfpL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3(J<}BT2$0DqJY5_^ zEc{C+TJs$;5O68Jb4A2MkXMLTSAD^PrLA`257=TFfB---)=Bs+#W2 zo3w13@QXdW7TRt#pTXBKae{O9UoW@7b$tELlZ|p3y6=5Bpc~BaHqIwE!DwaFGkd*= W`)A_$AM6JDiNVv=&t;ucLK6Vym3(CY diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png deleted file mode 100644 index cb3e7aa1cf6dac67a50e5459a69402638f6d7b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjGK$vmro+3}6phSslL`iUdT1k0gQ7S`0VrE{6US4X6f{C7?o@t7E1jyt)o-U3d z7XGyp4EdN0d05_`6$yxO^!9eGl(m1r=yBzWO?&6DTP~I@Ch3;1x6Zxu>E1Ql^|v(* zZPvRdWg8d^e)_V)Mvq+~Qir{N{%^@+EHZ)8a~xenUDp;m=YP=Adi>+V?~A+C16LjF z-Pw6v+Iztz^Cc6~`k(Cxy%j&p?Ue`1U8`*7nf`a;WmD%|HM6j@(8=oy;;ortY@H|T zwpwacW5z+1ybg`8FTVIJxGm;?Kfy8ng88ej)2ICVa-}eOe{#dU)Y`1AsX%`)c)I$z JtaD0e0swLNcQF6} diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sapling_big_oak.png b/mods/ITEMS/mcl_core/textures/mcl_core_sapling_big_oak.png deleted file mode 100644 index 1700e5082c3a146294272256203d2d453dd9d857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa3-AeX1=8OARc?imPJzMRalw{) z8tyixItsF(o(>sNfoFEzaR91dED7=pW^j0RBMrz&^mK6ysbEZYU~*DmVL8*Jrqsmd zz&3f(!cCKmCoIf(vm{4_BZXrXhqU!721&m|O z8Z*1=vJ)fD9N7Hm<~fmRDZha#7)yfuf*Bm1-ADs+qCH(4Ln;`P8JHB=Gy=o~7%z7% zJG3sLEqOsV(~O5gE3z2U40g9HYshd5R-Ep@JfUIbN`V;%54_WPCB%@lp<`LQQG;Y! vE~~&~<68^ELevgOI7oJgOgVUMBA*IltSE0bw^Knm&>99$S3j3^P6+D|H$hSN4IGo5 ztGW~-#GTU{g{K%cGM;(xpvf>z)IlypD}`A5tN zjGP-3vmi8dreE~@kc1_XsVn2cI{o7pM`Wx?j9nO(zB(aiLu$wj-?F`h`I|E`*Cs{H z3r<@VpS(OKe0D(GqHyhd;!;49rAmVQf_rd+;Fmn=KvhkiE{-7;jJE!)LM;wF+pKM@tTYKqrijZ{G zI+6P`COzVB7JnjXJz@GfpHBw_Ur&0!s=;vjX=e48VIHOuPsh?FTayH~}o*cQ??e_M)|Nq~Nyx}Nikzn}4@sn#)+fzaRif6Kwy&0R0ZdXrVa_D2+ z5d-U^+DXnu(~WvF8_Y!&&jx=GyuLirapV7Ej*stO;|-hx>lWge_^ zn1Ax@{ZOql2YNOA%a`uGR4{Lb^jf`bZWsPCJb4(k=l+Mchef{ZiCmGl`|G#=>rRU^ XyRm8cvn`klbR&bOtDnm{r-UW|TrY37 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png b/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png deleted file mode 100644 index 38fcb1e8ca579f7f8f1a34f7e6aa7925a41ff33f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPGa2=EDUEyziWiwyU5w2Jg|Z*Qon zD=ExQOti7KZg-Qu094cL>Eakt!6jUTUdd*;#&J9bch->w{Sl zJ*!I$>hC}LaIO6qSG>g?foV=!xed4GbUPS!lrL6cuexM)VrBxLopdDEncpJMHER!^ z*?O(lu>Qi`X`HWnGYyR##FenWm#su5V*)E%86F52${Ir;B4q1taUhM)pGvBJ2<1=dvBVXQp*P z*M|E9E8~X-h8~7Yi33`ajESZPw3ZwQGGP@c_#bnhU7+=$il3mk>(1$Gn!O)oPV!+~ z+y9>9_lhqs0=3m*t~UoSv2fDAlAe1{&gDo{w|HM=-Tdk8Z0{!By>Ze1N-p0viN3&M z`IX;zGp;KvKg;Bj`M^qB!SHha(jLZ?YkP0b|HJs>kqY0-*-^$oH!^s-`njxgN@xNA DzF1!_ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_side.png deleted file mode 100644 index 2b57a0863e404e0ee1177fd4562bffecc5a3e527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2171 zcmV->2!!{EP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b@vLh!9{Ld+J1SAk2$6=VEYHzT|PXiKu&wkme zq~a-iFatvBZb`O#e*YToFT9wjxG1@#nv%yW)>ye=Q2c)FJNdXi^^3Q`w|RFSFs1_T zVSi1Ju5Xx^*M=N*{`x-ea#uS=4Vh&%80N{0fvziRDDa*q{qCynYw=4s`W~IvW4ZRD z_wO+Sj9XwYu;V9C@c1nAlrY~E8t$?_3l>qxXGTK$89R4|Z{VHL8+N|weE1H9^GO$^ zH;i*J1)v$!Sm)${JxI;EZ8yOSm%Lf^l9~ z#Z?eu2V*zbyl{0#l^AFbigZ(>LC?B(>Togg!x?wx4i4sA37ISRFe!-hqQN=TaJx{z zQwM7S(|mlPb#7hfbt*XdCagp=%uZ&cn(-6K03csgYvBg01?g>I70yp_(VY{ zkej8o1FQ|ND5)FMl#8{X)*=|<3lWi4tFo+{>Yn?_^){5e`3x} z>i!Sr+@wyK`{eBh*6y}CN>~KVES#A7Fi_YYgweQQTO4Q$&-&scP>VtWeES;3;!9i4 zlK46&1fAlRy(&6aaiMwP~1 zXB$u+ySj$d-DgH-S?ep>eXDWG3;QQ*Bvd!uw6pWR=@prdsd}6aAyP` z(_SPEI=s{&N^0QRz9t}a?*mJ}M4e!9NxevVWMbASSj!gY9zfSw{V>ofI9sPfkioBw zg%0k7p~7uMdD(7E*OY-ei`;rREx3(YFv2P;`(#)Ljl)0tJc!4jj5}K9*lzdcGnt85 zkj+Hb0p)#6^(TDu%DWUE4c0LC8op@~bdV1EQJ50!y9wA;r3IBEtC&EIj(jpxUey<+ zsvwdy9km(0+dL{XaO)t!7T9>h2CMb#Sk+ZT=pF^0hi1*JA$yp76w4_yTM8SE-PD~X z6!56L)S*%&-2V1)YbNu!r(y6XgQhF#2|YVDCe(z65>23 z*!?l*Hxx5YC9Mmd&SQ;#X-tZ zS2qe?1z|hqmUjk;RX*ZV$1E)0u20|ME{aTON2hX}RJ*GBM(Hu&RA~4udmnT49Lige zQ1uTeWi3+HFuXp(uJTw3RN10yH@CqDms=`$>J5))6Fr-bVxOd(8m=WcY1wfr<+QH4Jcwi<+=$I3O{&q;rE8{mDNp{hdyeL`eO7BqCqI?q)BTe-4Vqri=M@wmi~IPoVD;M? zIJAB#O5VER{ErFG+}~s^+mqQMMvVXf00v@9M??Vs0RI60puMM)00009a7bBm001r{ z001r{0eGc9b^rhX2XskIMF-^t2o?o6%GVSZ00064Nkl}nj9g=3cn*^{2`i2M`P?ZV&_wPS-jDcD4{x*nfLc#HIaDJYsH8P6ht#OQw zHRtQkH?QxLKhGPxqqwdc1Bzn&e2|q`bF3MeMIVk35y?C!0L`7sq5;fInj7miaW_oj z`n>4lKr4uAk#00O>k3M6u3+?r%@w>oI+6gmzF+w0^!EdqkZI3=WK<*tcyr8!_2x7; zkdXEwBB(5oFksyaC=iT~0YGJ8ZdeIcB-$sC32(;zI+^Fq^}IkutVKL0eRLuc6I3J? zD-b(=KN?kHU4hJqnV30w2b4H|4qm@s^v8jjVR9^@$SMF<1XYC}h64JdW6iMUATh56 z68F7my#ZiFa?h1CzLU;-(oE#$U~~y{qcVwW0cC&CCbTM`k}B|{^XATaEo!HwjgCyj zxsVxSILbymFU-KQl4CT?M9dAbYQMC(vDU7X6z=<_?{i{;xdMw!KA&@ITR|15i`VaO z71(?KmKRCY@6$u6riAsFEZjR=(U+)j@Yw|rC xKaTBPF52VZIw$LSaXbc6Q4~THfp;TU@;}m>L&kpLdwu`_002ovPDHLkV1jdt1=|1s diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_acacia_top.png deleted file mode 100644 index bd10499c811843193bf35170c6ebb4bd8cd290dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2025 zcmV zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1b<(&Q!#{m&_K1SAm4aaioC+#tu#0|eclyJxB< zm3Fm_Wzh1TkZg1P^Y?B3!jH+a@e)(WAz1u;_L&O?$*$kJlJ)bfH+Bzx$jy1c5IJ1k zx(%1kFObV?LG&uGKjkJi)ss}w)~pKMu*?|fyrha8FFEPG$-1uiw{Y}-H=d8Bu1C*% z9|1-e=yPoNa^x(|X;^XNPp;r9^PDh=TwG(Ez4PC(GiUe!?~ESU*`jjy6AEL4P6!W- zR8I08yNS?)wQc#w1G;Ur@4t8K?w;=ZTG16BfK)IV)DC5iFcENiHw+|I2X{-Sd9Gl9M7Wc=!HshPK|%;Ij2cyPOLyxAXo_o3ILMmPUk}F*C zN>{$hja<9k?Qglm9q)AKyByY()t{`^ExLO z8LerEpmr(rj;c!dv4+6OPk~*6=21rGYSi5U3`Xf?dh6Skz|$Bw%BnE=W6JEw(q~Ml z#%+y;TG_H?4XQM7t5>H{6m${A0=YX?`b6rQXZx{iO~!v~&a89Ip2WAPxAX`ogc%3I zdO@}4hN#c1QQvHktZ`6TP~a8EFE6oWu5GU_9TXn=%})b5Ew#3NZ)NGv<@iHu&_-ii znL)XmIh3Q!w(8bX>-@qBj;RbqIQ6w)Y}vRRr<_`0GpvE}x}U$8eUZJFWOTY`&N;ix z85n!9e3-YfZwF;N7}P;jliC%iLr65T5OW+BoXAyG+ji2hTN2peWyt44wk~tVInta$ zEBT#ky)6+^rzvw*;!?w{8rm>sg#@8q8>Sbs_&B3`KZLAc^C-Nl44{(h(hy!4yzOLC z4^JwD)<-?UOQO#~6B(~Sst+~0^quDKZXe<}ZGRRZL~k``p1NDh;4ex~FDy zQUSZQ?%kT-IDCur;C~|CJFH>S*?xZ^?+g(kFK7#&IaXXt$=G)WHt$A=e zIr-5m4B|f1ibjdIMO77a4`4y<>f*COQdsnt@j0MAYfHh4hpNJ7ftFt+|1L0zWWkP? z`4g=<0p$(F?o}19smHOp9ZQ!|_h@>ijIU7bZ1v$h`Jk&v+X-{uY@F`!1tY(0XeLO~ zuFbpcVf4%hzvwkcYApt@PD1XZwbx&_f6eS~`;ir+)6RpMO8U}6NjsXQzB8Nl+fP6Hd}wxjn45nA_2JIY2>7#~00006VoOIv0RI600RN!9r;`8x z010qNS#tmYE+YT{E+YYWr9XB6000McNliru~QHb3pV>&RM=_Bwayccg-28IqbO^HK%m&FgqsuMW>R?=S1IV<_{`I8p} zEkYC-z%xNa0Eo0=7zX_LDl!IurgIph4L7O1Na)(0XkqZ)BO=(;a>xs!#hB>Nm721` z;0FNKH|x;(kQa1qkBM}6oMuV512B;WKxw7uJ2wWam}tEUkEe5OW3-Ja4`rAFz~fQE z8?+K$zU3@8mfgc$ptb+{j1nRFuw#3lUC=eth}y<}ORR}D&u`ls{u;eD`HL`buQG)u5|w`}h-Y-$k^y!V$BfS|Zq#bF;N8?_Sl z-}5k~h@g}jM|Wk7J#XZ%$Da&U9r(Jk#+5b4r+wH;05^EdHPxg;`PT1tIZ0TIW;vko%2Ce?>%kP(f2(~-Li}qW5K~w zoEuz!C26>~03h7@@0bT^8P ztis*sD#C+okPl~!z}=yX%wlB{9+(-mCS$wt>*r5Af~q1SFd8tlMPLRr%$1zy3Bbw) zz+5LEj}NvH&>%AawtXYQ&vKyV}!X>JT#^~;+!$xJ&U01AYVkRPjs!MT%qgBmZi|R&Z zR2gP4k3SfYRTzeKBZ;bfrf}g!7j8llS#AICMi7)yDC7&=}`Rwr!BrR5x+8 x?PVP7+Xi|O0VclO--xkM>qHXP&6?M)`~`88C+khq9Z3KH002ovPDHLkV1j_E3-bT~ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_birch_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_birch_top.png deleted file mode 100644 index 69d2e0bfdffc760bed2d9936723cbe5d8803207b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^NrP) zKI-R>@1nIrDTSvr+S3?M^S@Wu4FH$AK@i$jFrKFg{2Tm%=?kY5+sB*CUFBPsb7vDa znWNZO7_C$qRCo3db-A0Z>|@)vI_oj@Ul0xHQt`{teTK z#nT?=^BJ31c4f)XAF^7eOeYqF!WiQ*omke(l>5g|9LpWm>BQl1KzkmSy2iihJc`1u zvxu*;h5`JiTJU9~kEAEpZexpFOc!%m7#~Q*2@p z0bMs8U88{p5nl3wBb$!)Tb#p1P`6 zVH8G;!swl6Ev9W+M1;Dj5fSntzk=rt=kC-Yt3}F(`;W}h8BNoo1vnfl1_PfYPS8p- z3_^xM$Y|Vk(@HT4BUX!)IEtwbCDVyT0MoWD`{RkGZ7KH$?k1M%P?8rpNt}@71-CZg zSng;v#fBw>h%bQ~N{7pilO@jS}ob3b~%-ykBma@{lX#==W+K-!i+SU4n=LjB=M P00000NkvXXu0mjfM+!1R diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_dark_oak_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_dark_oak_side.png deleted file mode 100644 index 32a8bfebd2cd0b3954d8c6a0c35e28a25673e9bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2007 zcmV;|2PpW7P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bxvg{@d{AU$e0uqSFaxgYk*+G_{220G?_vBV3 zm2sUhBZFSuG(PV7>(Al-z=wTGE=n$`rsVO7HCApI6n}s2JNdZ2^@q2?!|wJ2hAH44 z?w{$>`3-jYEXYyq$J6d|S3gA^nP+tvW@N@d=M{An__mY&c2(E4_*IVnjn3<_9QUL5 z@0ihyQ{XSK<10|`_%1U_n12)+?y|lsCQ(Qj$58Rjq5j-Ew}-Fh?a`}uzNtMtTj6}t z3F*}%wUhkZyVao=Y8LtNVDug0*WQh@jB(x7wV2SUhF-uN4=aOq~C6rjCq>@W1wY17LK*FS^nq4im z*47ZT!F9vxh8e9Le1sz&a-<_4<)}yNpihrodg{5CUVA(F3@5h#na=Faa@Mn5bb(4& zyyQw(zRFdvHo&zJMjSHI$fJxp+D1)LeWFG$#YB1+)E@;Y$Ow527 zM*`w`A^<}3#LO3pktcE!GhZ2-LKvu#OmI$`hylTP5zC;B-3Phf;^rj&E8O^>kaH8d z{{uNUp;P33#q9^w&bCgJumGC7aQ4)P0b#p5;&W*|o~5QWgp9R$pNGZ~g`xziVcrQn z3A`pjjn8Gl-WGCe2#npAA&>Y?b8SI6bJU&GDXs7z)}N8t*x|i7w5TKDWu`LB^;x(Fw9yN=i5V}aIb?& z%TwRQk9P;8xx3y<8mwd;^s2QnAGfJ{t5(xSj)%o+PV)xU@6@QKUHSQ}7u~VkvejmT z;`C99;px$vAGr3K(z}!FKiN734DGU6a#;t4dMcu`lT~ui6S(<)WIajmE*Yt)+?)iD zPa~(b)OW+ybwz;8R-g|`0ZnPXO=6;ObtjKI>*Jf>#7rEHr-j7&WQ;VZ$ zQ8wJl?w;7H)h!q;$6)xy&2G2T)+CXU?g?83Y=UjCoxi#ElJ1lobkkDtnq@yW1I9DT z&dsNgo+&x-?y$i0+8m}KAb=rAe&=+lOIdr$t!;T2<+ns+BdQb=reO(Z6DG-@&37}~ zd)u+m$auc`2ws+QwRM{Y47k4F+5vQ$vm+$e9S^`LwKoSVtVP4pQ7y)@Mt2yFVRM8tRqql zl3+-FqG@R#5ekOQrgeP6w*HsV!9J=;9f1=56%FUHbwmzLpc{a`T*hld$%#2g&E#9b ziTri`-Mtkf;MU&51jeM+H+cyzma``9y_aI~cNd7riptl4fV8Jjqd=T6(&noM@U?|qiy{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jv9` z6)_!v1L~Uq00G-cL_t(I%T1HXb=@!wMK3^*`mzhkHU*^rN)lTlF=RpIpX`A*0`lwU zkLrE!`EjD6^wEh3A`>%1fXqZhm}~KQo?Q3M?>}E$_ZOB~wAMfbZH@2iLRHB~tQp_; z%`ihvsVpK3K^S8o0@|%1A^>78(7ORbJyina(*gpcA81if1r(zhBCwW&2=2l0)V194<){jgK^3?!G!sgMtj#J2 z=j%l`BQk-VfvN&KJb*1!P#y(qO(GKyXU-caj?r1}d|%faWVvsf1-XM2+cp29bd_;V;khDq^!P4y^zH002ovPDHLkV1ff@Cm~v{cabNrkHfe z>G2t}`Mf5$f-xCIRpPoXp0!HgJGib#J01|Vnz)XOs%4XBoF1P6aM*vq;jqVH@moT#kmQDxMbt;Oq(q zjTWvO;CUf8w>Na+h>P=cs;XjX5=4aQ!(yvwf@)cZ3Xquk#m^rW>B1u?f8JD9Wd7kZi#l#I2!c#%kvzk z$7kIAy#-*sDe*kFwqVlLeqF7tXh#udmEnj`Rux522P-0+ot$qU`t$Ues>)*06?vZF zI1aylU(=3T9QJwyzDKrR6GttUi9uD#)+vq%2zaXCID!Z~7Q3}m5|fgcbT5B0oncj} dc{N!r{09N8D$|RsG+h7y002ovPDHLkV1nVIG|vD4 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_jungle_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_jungle_side.png deleted file mode 100644 index c656696558567389d95946817c7f4eeaa03f6d21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)Q1T_pqpCr4Mt|7P<*WgTClbB)X=~`?{;-ebyr$QlR>ZRq6-+#+>p7?cJ zFg1!m(d6S}oEfiHGIx0X_A%M)JniAnWpHJ#Ekw6T`tdNKG34J(tms{PBFtha1Tl;2oSuz>#bVt9?$leY3IeduFUgHZyi;|-D&-z z)nNIaZ~KurmEMkFQ% znP?`s59V6guSRks{&_wD7%{kx#`f6oNUjn0f04Ws8-O5mA5=3UoYoqt$^0IdZ04GL%Cc8*C7g5TMm=9v=s%cm)IEtUyz!P9z!VhmvzGP@cf67ZVu8epF7F&@UFe)A!~&1Ar0 znIOiXVhmv*s4A;8XWZ>jRThA5q-YSlQ@)uDn$N-@Kr{>y5msr=hu(>-s;DYI9$%XG zIeFNM0Wg6>#slFd9)J+w7VAo3|ld(3Y-A< zvnh*ZLg%e-t$pW%a~6qID0at2rB)xdViwDU#Ag;c3nM_bc8* zC^Z=izA$c+^_U z{#Z6soX1&T=(#}MFRi7l{K>@au3&d8i8LS%1;MaQvJ)^l0 zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bye=Ab!90H~F|e^@q2?$Gkf?7*he? zVgJmxu5Xx6uMH*Y{Pj8SN>@9ghRm`W4AV1XpzA~p1>W%;XAF*ibWJM#&ONy^LOmr8GeCxMqk+Zrt{$w3g@#f z$X^)gJf+{UTL^uzW}ZK8gy4&Rf4yV(40)b=XV+o|QrT%zmdYAoA>fQ*ZOga{-U;Kf zu8K>LVh3XbY+ks!qe=|4ABr@n(L?w8?$i-tb9q2;$Of1L!L2Vo@>j1hMHxZH1(|I2j@JC8f?1GY^Vc?UC3|_B_EyNr9ow=0YC)b3BgbR13pto zl*t$7LIfNI{4_+)A@T(VC?y``9&i&v206mhH}(`-YdP_rMr&CGl0yMCH8hYFV}gE4 z6lkcWkfKW|9x1PBMg-P$fLL+qmFjd4JqC6 zPItb`EqA@!1Fb#biBEd+QyzKh(++FO>L+XT#oRx$M#|b`EUtCs#TuqdF%vY~Nt&F2 zF^&Yr%VYq8=E<2CijgOClQUl#MUfb+QJUlonv8+LcoV0G4tFo+{*gDA;=kgJ|HPb| z)crr0bCWt{?k8`*ur}H{QNkiM)I-k6`e#_u;P*69EYn${JvE zT>~_zG3FeqtopP@E~3jVLse!`%{c~7YhCPMe%=%KwnaHFPpGS~N5j_;np@*51asy? zvxRBd0KmQOEj~vL(ws)gy52!DWjSjSbq*(>#zCwT@lSzO&uy7>5E08xDT2klvoT0l zkLlifDP~<)tGSHxxnm^~99@>ucF~Av1LUO)HO4j*HK3liA5USU&M1*h2~L~7eYXyg z4UJI@x^(TEF!dZxa#IwgII~Qe9ve@JJ{wTk$LDj#`+9Gn2+F>{66!H;coGiKWa)bK zCs*0D!Asj|`hJB8_7a?7aIASH{GiDsUGWj)!7ET}wcDEE>wwaY>2?B(*|>}!QB1b@ z**hItOgb>CqVVjp<47X90}d?6^g@9(W4}^+r}dSaZ1AA6dQ=wMQJD&(an}(H4Grkx zSKwq}9DAgcQDuY3?s=?CZdNt<1B`_xM{y^{_Nd^f>WHcw*}J4&$ zRkpRMcI2_0vsbt!Lah@V=D}_njv~zxC>D{*YYOck>DZDo)bJ>DKr04Xwwsl$pqN% z=;36FkKesFa2qCbKD{Nqhvt@it$~Of?~QNUp~Pa2e%3#0V|GVq@*}c%05xDRb-I_9 zuJ2prZhB;GXkrJ$g-2ooZM;fxSf>6pTsKP;vDi{0>$zLtaAWk?S zjh(lW?{%M+oAr%ALnRS|#pn%3Yn0BP1L2&w(oSL7 z2+v8$Y@En&JiYjI#-j=L6q&z%gprSItpHi$Z|FysufI<*Tg_-si@%;vS)U`&4)7qg zd$!M7Q|By{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jv9`6)i15t%qs= z00H(%L_t(I%SDq*jvO}-L|+8Ss-704g#qn!8lOZr(RuBS1PGq)E;2K{;K1G!!55#@ zkMDohx38c1ss>mvgxSfM0f%ebW3NjM+PEZuZ*&EVF zh}}jA1X-I1ZPds@+Tlq>W|0Z6l^ng{$mBH_sAx9NYciT?-hoCIE0Xg#$OI#rg;cCe zJenEZbTDw+M^dFp;}|fU`Gx+a%s| z?es1r@pg1p1h$aC7Qg?wcswV!;hn3tSQZ$>(FOIPXmO6t@5jZ8WHd8IW96Q-fY(eO zuSqlb70FydZ+pkj*Q5&W=U}d)HF5ODXy%%0AJs~(8O)V*fVS&qWgn}QI(vdQJ6Us8)gKrRa7Pa0ytJTh#dVDX8-^I07*qo IM6N<$f@A3O?EnA( diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_oak_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_oak_top.png deleted file mode 100644 index e060862e7a66b485affc10e0f6d74f20bdc2b298..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P) zK~y-)Rg+&+(@+q_e|wXr3GGnpGy>BRWspJCXL)k;gZNGSdc64OQ9ux>B9%V@N=log zZF1L#v{m+H@9fN;yL--A`SAX&A^_kxE&_;@1qICX4WO!6Ys;*Ps>Kx%0?)xQf~r#W zeLSy9HqJpOtUYS*^C}^zdW^>zX_BF;jPim>A-G}$#|VDlv)OI}5H@N=@sQ)o1kZIa z6uf@cB8rD}qLe%@u>F|a7PyXa0PZ#K?44q95X~_r0N|oGV5wOL;K#)f#~6$#2EY$| z_Pc!mcJ@wr+^VzHUPMIrb)6w197hRJJOp5Usm5ZX0V0?gVO#A*c2BOE^zDxjE3j>TX zCBQ7aio^PHo#lshF5{HjyNs{DZ)w*3Qf6bwi-Jy+a?tGo;LgxauVRkQZt<%DR+WAn zQ&_kgBz*pHg@~|wa)mJlwK?%%^bg?Uw=))em-XcbIF6xN_xXI3Q?)s@1)ry3ox^UA zm#Zy0Q976O)4_SU!uInOUaqz{?@t&_a+1-6cdyz2JZaVDT+GIf;vxIpKB`k0J5h=; z!uCeUpWcY$%Y?I=J1P~gWPIw6*}7q)hVNBSz*SYo;|vJ6=nZ)DVuiw5j0lI*9}l`c zI#GIWihg{HT3Z5SX~x%+9$W3k+$;b=u)vqY3tn$7&ujmKSZhlX^TJYODM#m}CuXr0 z21GY8ohY4~3Lr}}a;qqcYprFhf-y3cW;6$gZsL0xps*IE=M2JMna@6R%Q>@N00000 LNkvXXu0mjf^cP7D diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stripped_spruce_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_stripped_spruce_side.png deleted file mode 100644 index 55cb4cec3fdd8d2c466b30ddbf75a2aa6748b050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2054 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 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sugar.png b/mods/ITEMS/mcl_core/textures/mcl_core_sugar.png deleted file mode 100644 index 8d76a0e885676fc3a1339df1a275d1253d8197f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EuJopAr*{C5_cFba7xZ`5MeUh z@;@o(@NUvDDA!9Z4UM+UjM)56Ax2V_RglA z#SK@DTq=TBZ@$fBx}>FFtjR3ke^|PHLdXvu0kJLH&aaS?QLHOXJbTCchTxSF*3XM~ or-k0Vz36F1#VnOM=l{t&t(*1rciyE{K=&|sy85}Sb4q9e04uLc)&Kwi diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_vine.png b/mods/ITEMS/mcl_core/textures/mcl_core_vine.png deleted file mode 100644 index 831f9d2a9832e2cbcbdcdd7efc8e20a019398719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHV5AX?b1=7N%!s5;nGJZ1rTKv!L z(j9<8j3q&S!3+-1ZlnP@QJyZ2Ar*|gCjt{&4R{z1cy~2Sk@UF9vZ0;vL;kD6`Rz(w zXJUPx$fV~96yD;?>9`;K@8ymAd(*yo{W<dL1w`NKKk fU-_@vWd-cp%+7Z8!f&Qnpe+oZu6{1-oD!M5eK_HU$MY oymFe((78o~?c|y(stJ=Byn02wihs5(1{%iT>FVdQ&MBb@0DF)v2LJ#7 diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_web.png b/mods/ITEMS/mcl_core/textures/mcl_core_web.png deleted file mode 100644 index e2233c1b2e28235a6ae9593cc5bb20de82490491..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPE^3h)VWJ-U6~wR1axy#N3IZ<*2j z;_;Qs@uw?+e3p_Rzu^D>85l0}g|q?r37#&FAr*|G$2R7+8c47mI4|~P+Em86_yzq& zjET(~{u}tmlxCK!xw8J)cmF>7uMy!fm)ES9yXB#LE^nQ?&azmZt=7>+t7okal3Azb uzCF_U$^K};>};9^0|^rP{q09~hnZ_)hN-_{#~ji^0>?&t;ucLK6TIY)^^+ diff --git a/mods/ITEMS/mcl_enchanting/enchantments.lua b/mods/ITEMS/mcl_enchanting/enchantments.lua index f137b42304..4ab39b1279 100644 --- a/mods/ITEMS/mcl_enchanting/enchantments.lua +++ b/mods/ITEMS/mcl_enchanting/enchantments.lua @@ -29,25 +29,6 @@ mcl_enchanting.enchantments.bane_of_arthropods = { inv_tool_tab = false, } --- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.channeling = { - name = S("Channeling"), - max_level = 1, - primary = {trident = true}, - secondary = {}, - disallow = {}, - incompatible = {riptide = true}, - weight = 1, - description = S("Channels a bolt of lightning toward a target. Works only during thunderstorms and if target is unobstructed with opaque blocks."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{25, 50}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - -- implemented in mcl_death_drop mcl_enchanting.enchantments.curse_of_vanishing = { name = S("Curse of Vanishing"), @@ -127,18 +108,6 @@ mcl_enchanting.enchantments.fire_aspect = { inv_tool_tab = false, } -minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) - if hitter and hitter:is_player() then - local wielditem = hitter:get_wielded_item() - if wielditem then - local fire_aspect_level = mcl_enchanting.get_enchantment(wielditem, "fire_aspect") - if fire_aspect_level > 0 then - mcl_burning.set_on_fire(player, fire_aspect_level * 4) - end - end - end -end) - mcl_enchanting.enchantments.flame = { name = S("Flame"), max_level = 1, @@ -194,43 +163,6 @@ mcl_enchanting.enchantments.frost_walker = { inv_combat_tab = true, inv_tool_tab = false, } - -walkover.register_global(function(pos, _, player) - local boots = player:get_inventory():get_stack("armor", 5) - local frost_walker = mcl_enchanting.get_enchantment(boots, "frost_walker") - if frost_walker <= 0 then - return - end - local radius = frost_walker + 2 - local minp = {x = pos.x - radius, y = pos.y, z = pos.z - radius} - local maxp = {x = pos.x + radius, y = pos.y, z = pos.z + radius} - local positions = minetest.find_nodes_in_area_under_air(minp, maxp, "mcl_core:water_source") - for _, p in ipairs(positions) do - if vector.distance(pos, p) <= radius then - minetest.set_node(p, {name = "mcl_core:frosted_ice_0"}) - end - end -end) - --- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.impaling = { - name = S("Impaling"), - max_level = 5, - primary = {trident = true}, - secondary = {}, - disallow = {}, - incompatible = {}, - weight = 2, - description = S("Trident deals additional damage to ocean mobs."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{1, 21}, {9, 29}, {17, 37}, {25, 45}, {33, 53}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - -- implemented in mcl_bows mcl_enchanting.enchantments.infinity = { name = S("Infinity"), @@ -268,23 +200,6 @@ mcl_enchanting.enchantments.knockback = { inv_combat_tab = true, inv_tool_tab = false, } - -local old_calculate_knockback = minetest.calculate_knockback -function minetest.calculate_knockback(player, hitter, time_from_last_punch, tool_capabilities, dir, distance, damage) - local knockback = old_calculate_knockback(player, hitter, time_from_last_punch, tool_capabilities, dir, distance, damage) - local luaentity - if hitter then - luaentity = hitter:get_luaentity() - end - if hitter and hitter:is_player() then - local wielditem = hitter:get_wielded_item() - knockback = knockback + 3 * mcl_enchanting.get_enchantment(wielditem, "knockback") - elseif luaentity and luaentity._knockback then - knockback = knockback + luaentity._knockback - end - return knockback -end - -- implemented in mcl_mobs and mobs_mc mcl_enchanting.enchantments.looting = { name = S("Looting"), @@ -303,26 +218,6 @@ mcl_enchanting.enchantments.looting = { inv_combat_tab = true, inv_tool_tab = false, } - --- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.loyalty = { - name = S("Loyalty"), - max_level = 3, - primary = {trident = true}, - secondary = {}, - disallow = {}, - incompatible = {riptide = true}, - weight = 5, - description = S("Trident returns after being thrown. Higher levels reduce return time."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{12, 50}, {19, 50}, {26, 50}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - -- implemented in mcl_fishing mcl_enchanting.enchantments.luck_of_the_sea = { name = S("Luck of the Sea"), @@ -379,52 +274,6 @@ mcl_enchanting.enchantments.mending = { inv_combat_tab = true, inv_tool_tab = true, } - -mcl_experience.register_on_add_xp(function(player, xp) - local inv = player:get_inventory() - - local candidates = { - {list = "main", index = player:get_wield_index()}, - {list = "armor", index = 2}, - {list = "armor", index = 3}, - {list = "armor", index = 4}, - {list = "armor", index = 5}, - {list = "offhand", index = 1}, - } - - local final_candidates = {} - for _, can in ipairs(candidates) do - local stack = inv:get_stack(can.list, can.index) - local wear = stack:get_wear() - if mcl_enchanting.has_enchantment(stack, "mending") and wear > 0 then - can.stack = stack - can.wear = wear - table.insert(final_candidates, can) - end - end - - if #final_candidates > 0 then - local can = final_candidates[math.random(#final_candidates)] - local stack, list, index, wear = can.stack, can.list, can.index, can.wear - local uses = mcl_util.calculate_durability(stack) - local multiplier = 2 * 65535 / uses - local repair = xp * multiplier - local new_wear = wear - repair - - if new_wear < 0 then - xp = math.floor(-new_wear / multiplier + 0.5) - new_wear = 0 - else - xp = 0 - end - - stack:set_wear(math.floor(new_wear)) - inv:set_stack(list, index, stack) - end - - return xp -end, 0) - mcl_enchanting.enchantments.multishot = { name = S("Multishot"), max_level = 1, @@ -518,45 +367,6 @@ mcl_enchanting.enchantments.quick_charge = { inv_combat_tab = true, inv_tool_tab = false, } - --- unimplemented ---[[mcl_enchanting.enchantments.respiration = { - name = S("Respiration"), - max_level = 3, - primary = {armor_head = true}, - secondary = {}, - disallow = {non_combat_armor = true}, - incompatible = {}, - weight = 2, - description = S("Extends underwater breathing time."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{10, 40}, {20, 50}, {30, 60}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - --- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.riptide = { - name = S("Riptide"), - max_level = 3, - primary = {trident = true}, - secondary = {}, - disallow = {}, - incompatible = {channeling = true, loyalty = true}, - weight = 2, - description = S("Trident launches player with itself when thrown. Works only in water or rain."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{17, 50}, {24, 50}, {31, 50}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - -- implemented via on_enchant mcl_enchanting.enchantments.sharpness = { name = S("Sharpness"), @@ -632,26 +442,6 @@ mcl_enchanting.enchantments.soul_speed = { inv_combat_tab = true, inv_tool_tab = false, } - --- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.sweeping_edge = { - name = S("Sweeping Edge"), - max_level = 3, - primary = {sword = true}, - secondary = {}, - disallow = {}, - incompatible = {}, - weight = 2, - description = S("Increases sweeping attack damage."), - curse = false, - on_enchant = function() end, - requires_tool = false, - treasure = false, - power_range_table = {{5, 20}, {14, 29}, {23, 38}}, - inv_combat_tab = true, - inv_tool_tab = false, -}]]-- - -- for tools & weapons implemented via on_enchant; for bows implemented in mcl_bows; for armor implemented in mcl_armor and mcl_tt; for fishing rods implemented in mcl_fishing mcl_enchanting.enchantments.unbreaking = { name = S("Unbreaking"), diff --git a/mods/ITEMS/mcl_tools/aliases.lua b/mods/ITEMS/mcl_tools/aliases.lua deleted file mode 100644 index 7aadabc15c..0000000000 --- a/mods/ITEMS/mcl_tools/aliases.lua +++ /dev/null @@ -1,21 +0,0 @@ -minetest.register_alias("mcl_core:pick_wood", "mcl_tools:pick_wood") -minetest.register_alias("mcl_core:pick_stone", "mcl_tools:pick_stone") -minetest.register_alias("mcl_core:pick_iron", "mcl_tools:pick_iron") -minetest.register_alias("mcl_core:pick_gold", "mcl_tools:pick_gold") -minetest.register_alias("mcl_core:pick_diamond", "mcl_tools:pick_diamond") -minetest.register_alias("mcl_core:shovel_wood", "mcl_tools:shovel_wood") -minetest.register_alias("mcl_core:shovel_stone", "mcl_tools:shovel_stone") -minetest.register_alias("mcl_core:shovel_iron", "mcl_tools:shovel_iron") -minetest.register_alias("mcl_core:shovel_gold", "mcl_tools:shovel_gold") -minetest.register_alias("mcl_core:shovel_diamond", "mcl_tools:shovel_diamond") -minetest.register_alias("mcl_core:axe_wood", "mcl_tools:axe_wood") -minetest.register_alias("mcl_core:axe_stone", "mcl_tools:axe_stone") -minetest.register_alias("mcl_core:axe_iron", "mcl_tools:axe_iron") -minetest.register_alias("mcl_core:axe_gold", "mcl_tools:axe_gold") -minetest.register_alias("mcl_core:axe_diamond", "mcl_tools:axe_diamond") -minetest.register_alias("mcl_core:sword_wood", "mcl_tools:sword_wood") -minetest.register_alias("mcl_core:sword_stone", "mcl_tools:sword_stone") -minetest.register_alias("mcl_core:sword_iron", "mcl_tools:sword_iron") -minetest.register_alias("mcl_core:sword_gold", "mcl_tools:sword_gold") -minetest.register_alias("mcl_core:sword_diamond", "mcl_tools:sword_diamond") -minetest.register_alias("mcl_core:shears", "mcl_tools:shears") diff --git a/mods/ITEMS/mcl_tools/crafting.lua b/mods/ITEMS/mcl_tools/crafting.lua deleted file mode 100644 index 07032b184b..0000000000 --- a/mods/ITEMS/mcl_tools/crafting.lua +++ /dev/null @@ -1,338 +0,0 @@ -minetest.register_craft({ - output = "mcl_tools:pick_wood", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"", "mcl_core:stick", ""}, - {"", "mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:pick_stone", - recipe = { - {"group:cobble", "group:cobble", "group:cobble"}, - {"", "mcl_core:stick", ""}, - {"", "mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:pick_iron", - recipe = { - {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - {"", "mcl_core:stick", ""}, - {"", "mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:pick_gold", - recipe = { - {"mcl_core:gold_ingot", "mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"", "mcl_core:stick", ""}, - {"", "mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:pick_diamond", - recipe = { - {"mcl_core:diamond", "mcl_core:diamond", "mcl_core:diamond"}, - {"", "mcl_core:stick", ""}, - {"", "mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shovel_wood", - recipe = { - {"group:wood"}, - {"mcl_core:stick"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shovel_stone", - recipe = { - {"group:cobble"}, - {"mcl_core:stick"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shovel_iron", - recipe = { - {"mcl_core:iron_ingot"}, - {"mcl_core:stick"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shovel_gold", - recipe = { - {"mcl_core:gold_ingot"}, - {"mcl_core:stick"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shovel_diamond", - recipe = { - {"mcl_core:diamond"}, - {"mcl_core:stick"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:axe_wood", - recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "mcl_core:stick"}, - {"", "mcl_core:stick"}, - } -}) -minetest.register_craft({ - output = "mcl_tools:axe_wood", - recipe = { - {"group:wood", "group:wood"}, - {"mcl_core:stick", "group:wood"}, - {"mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:axe_stone", - recipe = { - {"group:cobble", "group:cobble"}, - {"group:cobble", "mcl_core:stick"}, - {"", "mcl_core:stick"}, - } -}) -minetest.register_craft({ - output = "mcl_tools:axe_stone", - recipe = { - {"group:cobble", "group:cobble"}, - {"mcl_core:stick", "group:cobble"}, - {"mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:axe_iron", - recipe = { - {"mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - {"mcl_core:iron_ingot", "mcl_core:stick"}, - {"", "mcl_core:stick"}, - } -}) -minetest.register_craft({ - output = "mcl_tools:axe_iron", - recipe = { - {"mcl_core:iron_ingot", "mcl_core:iron_ingot"}, - {"mcl_core:stick", "mcl_core:iron_ingot"}, - {"mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:axe_gold", - recipe = { - {"mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot", "mcl_core:stick"}, - {"", "mcl_core:stick"}, - } -}) -minetest.register_craft({ - output = "mcl_tools:axe_gold", - recipe = { - {"mcl_core:gold_ingot", "mcl_core:gold_ingot"}, - {"mcl_core:stick", "mcl_core:gold_ingot"}, - {"mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:axe_diamond", - recipe = { - {"mcl_core:diamond", "mcl_core:diamond"}, - {"mcl_core:diamond", "mcl_core:stick"}, - {"", "mcl_core:stick"}, - } -}) -minetest.register_craft({ - output = "mcl_tools:axe_diamond", - recipe = { - {"mcl_core:diamond", "mcl_core:diamond"}, - {"mcl_core:stick", "mcl_core:diamond"}, - {"mcl_core:stick", ""}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:sword_wood", - recipe = { - {"group:wood"}, - {"group:wood"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:sword_stone", - recipe = { - {"group:cobble"}, - {"group:cobble"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:sword_iron", - recipe = { - {"mcl_core:iron_ingot"}, - {"mcl_core:iron_ingot"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:sword_gold", - recipe = { - {"mcl_core:gold_ingot"}, - {"mcl_core:gold_ingot"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:sword_diamond", - recipe = { - {"mcl_core:diamond"}, - {"mcl_core:diamond"}, - {"mcl_core:stick"}, - } -}) - -minetest.register_craft({ - output = "mcl_tools:shears", - recipe = { - { "mcl_core:iron_ingot", "" }, - { "", "mcl_core:iron_ingot", }, - } -}) -minetest.register_craft({ - output = "mcl_tools:shears", - recipe = { - { "", "mcl_core:iron_ingot" }, - { "mcl_core:iron_ingot", "" }, - } -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:pick_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:shovel_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:sword_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:axe_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_nugget", - recipe = "mcl_tools:sword_gold", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_nugget", - recipe = "mcl_tools:axe_gold", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_nugget", - recipe = "mcl_tools:shovel_gold", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:gold_nugget", - recipe = "mcl_tools:pick_gold", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_nugget", - recipe = "mcl_tools:sword_iron", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_nugget", - recipe = "mcl_tools:axe_iron", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_nugget", - recipe = "mcl_tools:shovel_iron", - cooktime = 10, -}) - -minetest.register_craft({ - type = "cooking", - output = "mcl_core:iron_nugget", - recipe = "mcl_tools:pick_iron", - cooktime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:pick_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:shovel_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:sword_wood", - burntime = 10, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mcl_tools:axe_wood", - burntime = 10, -}) diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index cbee8e3d0f..a91c3acd34 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -1,5 +1,4 @@ local modname = minetest.get_current_modname() -local modpath = minetest.get_modpath(modname) local S = minetest.get_translator(modname) -- mods/default/tools.lua @@ -62,555 +61,3 @@ minetest.register_tool(":", { shearsy_cobweb = { speed = 1, level = 0, uses = 0 }, } }) - --- Help texts -local pickaxe_longdesc = S("Pickaxes are mining tools to mine hard blocks, such as stone. A pickaxe can also be used as weapon, but it is rather inefficient.") -local axe_longdesc = S("An axe is your tool of choice to cut down trees, wood-based blocks and other blocks. Axes deal a lot of damage as well, but they are rather slow.") -local sword_longdesc = S("Swords are great in melee combat, as they are fast, deal high damage and can endure countless battles. Swords can also be used to cut down a few particular blocks, such as cobwebs.") -local shovel_longdesc = S("Shovels are tools for digging coarse blocks, such as dirt, sand and gravel. They can also be used to turn grass blocks to grass paths. Shovels can be used as weapons, but they are very weak.") -local shovel_use = S("To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the top or side of a grass block. This only works when there's air above the grass block.") -local shears_longdesc = S("Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting.") -local shears_use = S("To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks.") - -local wield_scale = mcl_vars.tool_wield_scale - --- Picks -minetest.register_tool("mcl_tools:pick_wood", { - description = S("Wooden Pickaxe"), - _doc_items_longdesc = pickaxe_longdesc, - _doc_items_hidden = false, - inventory_image = "default_tool_woodpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=2, enchantability=15 }, - tool_capabilities = { - -- 1/1.2 - full_punch_interval = 0.83333333, - max_drop_level=1, - damage_groups = {fleshy=2}, - punch_attack_uses = 30, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:wood", - _mcl_toollike_wield = true, - _mcl_diggroups = { - pickaxey = { speed = 2, level = 1, uses = 60 } - }, -}) -minetest.register_tool("mcl_tools:pick_stone", { - description = S("Stone Pickaxe"), - _doc_items_longdesc = pickaxe_longdesc, - inventory_image = "default_tool_stonepick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=3, enchantability=5 }, - tool_capabilities = { - -- 1/1.2 - full_punch_interval = 0.83333333, - max_drop_level=3, - damage_groups = {fleshy=3}, - punch_attack_uses = 66, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:cobble", - _mcl_toollike_wield = true, - _mcl_diggroups = { - pickaxey = { speed = 4, level = 3, uses = 132 } - }, -}) -minetest.register_tool("mcl_tools:pick_iron", { - description = S("Iron Pickaxe"), - _doc_items_longdesc = pickaxe_longdesc, - inventory_image = "default_tool_steelpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=4, enchantability=14 }, - tool_capabilities = { - -- 1/1.2 - full_punch_interval = 0.83333333, - max_drop_level=4, - damage_groups = {fleshy=4}, - punch_attack_uses = 126, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:iron_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - pickaxey = { speed = 6, level = 4, uses = 251 } - }, -}) -minetest.register_tool("mcl_tools:pick_gold", { - description = S("Golden Pickaxe"), - _doc_items_longdesc = pickaxe_longdesc, - inventory_image = "default_tool_goldpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=6, enchantability=22 }, - tool_capabilities = { - -- 1/1.2 - full_punch_interval = 0.83333333, - max_drop_level=2, - damage_groups = {fleshy=2}, - punch_attack_uses = 17, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:gold_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - pickaxey = { speed = 12, level = 2, uses = 33 } - }, -}) -minetest.register_tool("mcl_tools:pick_diamond", { - description = S("Diamond Pickaxe"), - _doc_items_longdesc = pickaxe_longdesc, - inventory_image = "default_tool_diamondpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=5, enchantability=10 }, - tool_capabilities = { - -- 1/1.2 - full_punch_interval = 0.83333333, - max_drop_level=5, - damage_groups = {fleshy=5}, - punch_attack_uses = 781, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:diamond", - _mcl_toollike_wield = true, - _mcl_diggroups = { - pickaxey = { speed = 8, level = 5, uses = 1562 } - }, -}) - -local function make_grass_path(itemstack, placer, pointed_thing) - -- Use pointed node's on_rightclick function first, if present - local node = minetest.get_node(pointed_thing.under) - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack - end - end - - -- Only make grass path if tool used on side or top of target node - if pointed_thing.above.y < pointed_thing.under.y then - return itemstack - end - - if (minetest.get_item_group(node.name, "path_creation_possible") == 1) then - local above = table.copy(pointed_thing.under) - above.y = above.y + 1 - if minetest.get_node(above).name == "air" then - if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then - minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) - return itemstack - end - - if not minetest.is_creative_enabled(placer:get_player_name()) then - -- Add wear (as if digging a shovely node) - local toolname = itemstack:get_name() - local wear = mcl_autogroup.get_wear(toolname, "shovely") - itemstack:add_wear(wear) - end - minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true) - minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"}) - end - end - return itemstack -end - -local carve_pumpkin -if minetest.get_modpath("mcl_farming") then - function carve_pumpkin(itemstack, placer, pointed_thing) - -- Use pointed node's on_rightclick function first, if present - local node = minetest.get_node(pointed_thing.under) - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) or itemstack - end - end - - -- Only carve pumpkin if used on side - if pointed_thing.above.y ~= pointed_thing.under.y then - return - end - if node.name == "mcl_farming:pumpkin" then - if not minetest.is_creative_enabled(placer:get_player_name()) then - -- Add wear (as if digging a shearsy node) - local toolname = itemstack:get_name() - local wear = mcl_autogroup.get_wear(toolname, "shearsy") - itemstack:add_wear(wear) - end - minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true) - local dir = vector.subtract(pointed_thing.under, pointed_thing.above) - local param2 = minetest.dir_to_facedir(dir) - minetest.set_node(pointed_thing.under, {name="mcl_farming:pumpkin_face", param2 = param2}) - minetest.add_item(pointed_thing.above, "mcl_farming:pumpkin_seeds 4") - end - return itemstack - end -end - --- Shovels -minetest.register_tool("mcl_tools:shovel_wood", { - description = S("Wooden Shovel"), - _doc_items_longdesc = shovel_longdesc, - _doc_items_usagehelp = shovel_use, - _doc_items_hidden = false, - inventory_image = "default_tool_woodshovel.png", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=2, enchantability=15 }, - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=1, - damage_groups = {fleshy=2}, - punch_attack_uses = 30, - }, - on_place = make_grass_path, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:wood", - _mcl_toollike_wield = true, - _mcl_diggroups = { - shovely = { speed = 2, level = 1, uses = 60 } - }, -}) -minetest.register_tool("mcl_tools:shovel_stone", { - description = S("Stone Shovel"), - _doc_items_longdesc = shovel_longdesc, - _doc_items_usagehelp = shovel_use, - inventory_image = "default_tool_stoneshovel.png", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=3, enchantability=5 }, - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=3, - damage_groups = {fleshy=3}, - punch_attack_uses = 66, - }, - on_place = make_grass_path, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:cobble", - _mcl_toollike_wield = true, - _mcl_diggroups = { - shovely = { speed = 4, level = 3, uses = 132 } - }, -}) -minetest.register_tool("mcl_tools:shovel_iron", { - description = S("Iron Shovel"), - _doc_items_longdesc = shovel_longdesc, - _doc_items_usagehelp = shovel_use, - inventory_image = "default_tool_steelshovel.png", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=4, enchantability=14 }, - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=4, - damage_groups = {fleshy=4}, - punch_attack_uses = 126, - }, - on_place = make_grass_path, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:iron_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - shovely = { speed = 6, level = 4, uses = 251 } - }, -}) -minetest.register_tool("mcl_tools:shovel_gold", { - description = S("Golden Shovel"), - _doc_items_longdesc = shovel_longdesc, - _doc_items_usagehelp = shovel_use, - inventory_image = "default_tool_goldshovel.png", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=6, enchantability=22 }, - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=2, - damage_groups = {fleshy=2}, - punch_attack_uses = 17, - }, - on_place = make_grass_path, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:gold_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - shovely = { speed = 12, level = 2, uses = 33 } - }, -}) -minetest.register_tool("mcl_tools:shovel_diamond", { - description = S("Diamond Shovel"), - _doc_items_longdesc = shovel_longdesc, - _doc_items_usagehelp = shovel_use, - inventory_image = "default_tool_diamondshovel.png", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=5, enchantability=10 }, - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=5, - damage_groups = {fleshy=5}, - punch_attack_uses = 781, - }, - on_place = make_grass_path, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:diamond", - _mcl_toollike_wield = true, - _mcl_diggroups = { - shovely = { speed = 8, level = 5, uses = 1562 } - }, -}) - --- Axes -local function make_stripped_trunk(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then return end - - local node = minetest.get_node(pointed_thing.under) - local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name] - - if not placer:get_player_control().sneak and noddef.on_rightclick then - return minetest.item_place(itemstack, placer, pointed_thing) - end - if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then - minetest.record_protection_violation(pointed_thing.under, placer:get_player_name()) - return itemstack - end - - if noddef._mcl_stripped_variant == nil then - return itemstack - else - minetest.swap_node(pointed_thing.under, {name=noddef._mcl_stripped_variant, param2=node.param2}) - if not minetest.is_creative_enabled(placer:get_player_name()) then - -- Add wear (as if digging a axey node) - local toolname = itemstack:get_name() - local wear = mcl_autogroup.get_wear(toolname, "axey") - itemstack:add_wear(wear) - end - end - return itemstack -end - -minetest.register_tool("mcl_tools:axe_wood", { - description = S("Wooden Axe"), - _doc_items_longdesc = axe_longdesc, - _doc_items_hidden = false, - inventory_image = "default_tool_woodaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=2, enchantability=15 }, - tool_capabilities = { - full_punch_interval = 1.25, - max_drop_level=1, - damage_groups = {fleshy=7}, - punch_attack_uses = 30, - }, - on_place = make_stripped_trunk, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:wood", - _mcl_toollike_wield = true, - _mcl_diggroups = { - axey = { speed = 2, level = 1, uses = 60 } - }, -}) -minetest.register_tool("mcl_tools:axe_stone", { - description = S("Stone Axe"), - _doc_items_longdesc = axe_longdesc, - inventory_image = "default_tool_stoneaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=3, enchantability=5 }, - tool_capabilities = { - full_punch_interval = 1.25, - max_drop_level=3, - damage_groups = {fleshy=9}, - punch_attack_uses = 66, - }, - on_place = make_stripped_trunk, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:cobble", - _mcl_toollike_wield = true, - _mcl_diggroups = { - axey = { speed = 4, level = 3, uses = 132 } - }, -}) -minetest.register_tool("mcl_tools:axe_iron", { - description = S("Iron Axe"), - _doc_items_longdesc = axe_longdesc, - inventory_image = "default_tool_steelaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=4, enchantability=14 }, - tool_capabilities = { - -- 1/0.9 - full_punch_interval = 1.11111111, - max_drop_level=4, - damage_groups = {fleshy=9}, - punch_attack_uses = 126, - }, - on_place = make_stripped_trunk, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:iron_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - axey = { speed = 6, level = 4, uses = 251 } - }, -}) -minetest.register_tool("mcl_tools:axe_gold", { - description = S("Golden Axe"), - _doc_items_longdesc = axe_longdesc, - inventory_image = "default_tool_goldaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=6, enchantability=22 }, - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=2, - damage_groups = {fleshy=7}, - punch_attack_uses = 17, - }, - on_place = make_stripped_trunk, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:gold_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - axey = { speed = 12, level = 2, uses = 33 } - }, -}) -minetest.register_tool("mcl_tools:axe_diamond", { - description = S("Diamond Axe"), - _doc_items_longdesc = axe_longdesc, - inventory_image = "default_tool_diamondaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=5, enchantability=10 }, - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=5, - damage_groups = {fleshy=9}, - punch_attack_uses = 781, - }, - on_place = make_stripped_trunk, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:diamond", - _mcl_toollike_wield = true, - _mcl_diggroups = { - axey = { speed = 8, level = 5, uses = 1562 } - }, -}) - --- Swords -minetest.register_tool("mcl_tools:sword_wood", { - description = S("Wooden Sword"), - _doc_items_longdesc = sword_longdesc, - _doc_items_hidden = false, - inventory_image = "default_tool_woodsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=2, enchantability=15 }, - tool_capabilities = { - full_punch_interval = 0.625, - max_drop_level=1, - damage_groups = {fleshy=4}, - punch_attack_uses = 60, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:wood", - _mcl_toollike_wield = true, - _mcl_diggroups = { - swordy = { speed = 2, level = 1, uses = 60 }, - swordy_cobweb = { speed = 2, level = 1, uses = 60 } - }, -}) -minetest.register_tool("mcl_tools:sword_stone", { - description = S("Stone Sword"), - _doc_items_longdesc = sword_longdesc, - inventory_image = "default_tool_stonesword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=3, enchantability=5 }, - tool_capabilities = { - full_punch_interval = 0.625, - max_drop_level=3, - damage_groups = {fleshy=5}, - punch_attack_uses = 132, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "group:cobble", - _mcl_toollike_wield = true, - _mcl_diggroups = { - swordy = { speed = 4, level = 3, uses = 132 }, - swordy_cobweb = { speed = 4, level = 3, uses = 132 } - }, -}) -minetest.register_tool("mcl_tools:sword_iron", { - description = S("Iron Sword"), - _doc_items_longdesc = sword_longdesc, - inventory_image = "default_tool_steelsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=4, enchantability=14 }, - tool_capabilities = { - full_punch_interval = 0.625, - max_drop_level=4, - damage_groups = {fleshy=6}, - punch_attack_uses = 251, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:iron_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - swordy = { speed = 6, level = 4, uses = 251 }, - swordy_cobweb = { speed = 6, level = 4, uses = 251 } - }, -}) -minetest.register_tool("mcl_tools:sword_gold", { - description = S("Golden Sword"), - _doc_items_longdesc = sword_longdesc, - inventory_image = "default_tool_goldsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=6, enchantability=22 }, - tool_capabilities = { - full_punch_interval = 0.625, - max_drop_level=2, - damage_groups = {fleshy=4}, - punch_attack_uses = 33, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:gold_ingot", - _mcl_toollike_wield = true, - _mcl_diggroups = { - swordy = { speed = 12, level = 2, uses = 33 }, - swordy_cobweb = { speed = 12, level = 2, uses = 33 } - }, -}) -minetest.register_tool("mcl_tools:sword_diamond", { - description = S("Diamond Sword"), - _doc_items_longdesc = sword_longdesc, - inventory_image = "default_tool_diamondsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=5, enchantability=10 }, - tool_capabilities = { - full_punch_interval = 0.625, - max_drop_level=5, - damage_groups = {fleshy=7}, - punch_attack_uses = 1562, - }, - sound = { breaks = "default_tool_breaks" }, - _repair_material = "mcl_core:diamond", - _mcl_toollike_wield = true, - _mcl_diggroups = { - swordy = { speed = 8, level = 5, uses = 1562 }, - swordy_cobweb = { speed = 8, level = 5, uses = 1562 } - }, -}) - ---Shears -minetest.register_tool("mcl_tools:shears", { - description = S("Shears"), - _doc_items_longdesc = shears_longdesc, - _doc_items_usagehelp = shears_use, - inventory_image = "default_tool_shears.png", - wield_image = "default_tool_shears.png", - stack_max = 1, - groups = { tool=1, shears=1, dig_speed_class=4, }, - tool_capabilities = { - full_punch_interval = 0.5, - max_drop_level=1, - }, - on_place = carve_pumpkin, - sound = { breaks = "default_tool_breaks" }, - _mcl_toollike_wield = true, - _mcl_diggroups = { - shearsy = { speed = 1.5, level = 1, uses = 238 }, - shearsy_wool = { speed = 5, level = 1, uses = 238 }, - shearsy_cobweb = { speed = 15, level = 1, uses = 238 } - }, -}) - - -dofile(modpath.."/crafting.lua") -dofile(modpath.."/aliases.lua") diff --git a/mods/ITEMS/mcl_tools/sounds/mcl_tools_shears_cut.ogg b/mods/ITEMS/mcl_tools/sounds/mcl_tools_shears_cut.ogg deleted file mode 100644 index 8c32a649ab0f3ad09eedab9ebab6a45c5907b3d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21194 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 diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_diamondaxe.png b/mods/ITEMS/mcl_tools/textures/default_tool_diamondaxe.png deleted file mode 100644 index 5dcc296897686a5931b97dd1b59d12c8aa4ddf37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`Yx%j~SC*UJe)ng^qyL_s zp3@eu1&YM4yYc@&hznGuqoWf%{h+O_t)r=Spo3{)lsk|S>uHl7|5`vGmM6{{lUSLrm>+gj5c;8cBKZ$}!w=Gh%80 diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_diamondpick.png b/mods/ITEMS/mcl_tools/textures/default_tool_diamondpick.png deleted file mode 100644 index ccdd2fcf6a25c3b84fe0e5b441215f2afc026df9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`tEZ>u|NsAWbaWg|wU<;V zt$6hR_PakouC1*tP%3`ijq-E9gQp(^DtE1&7wBLb>uFOMQ0YnS_JQw-HJVT%JXkKYG$fFFNu6{1-oD!M< DFmP#z diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png deleted file mode 100644 index 6cc561115ad541eaceb1949adb1bf129451d2452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`yF6VSLn;`P3QVr1Y1n_4W@h)d z_Yg_@@&CX5MYcP2-=F{Qa{vGT`1;+9#|oG`7!=Mb@Fw)G+xj_xMHuYPF3){kl}Zsqe-thxYfYKmBDn;Ca}^ qk?A#4Tgx)l4QdtbDz`mSz2!H@my_oEx8MDVUw320qyNFv z4+4eD&;53-o%jF$e;pkiPft%yiqk|NsBLI+*n7a^;of zra<992h&(jn_WFxj;7i`+4LZn!YKEu6t9U5@o|m@xq&v*QdDftCD#I#vXun+0ZjrL zz%W<-#DAbjyr+v}NCji)iK~nU95`44r)@a0_J5M{bMyMoDl87{N9P~eXCC}3;=%7s zqq&Maj)(nw1dL<1v=+vyUFLfIOhtY2JNt?M8aaMHJR|V`3_oZ6MyG#V`{v~&Mx~b} cm|IscIy11G*LtZp8E6%Qr>mdKI;Vst0PGG{TmS$7 diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_goldpick.png b/mods/ITEMS/mcl_tools/textures/default_tool_goldpick.png deleted file mode 100644 index ceaa1d1d194cfd3160ff3511066bfa43d7bd4ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJ>;M1%fy`Y!TCWZ!eY#v3 z=wKS_X>(<{siUcOoTI^#3MC+;Fv>kW$fYX9Yhpt@P%t;pW?G6$m&&#!K%G1#L4H8P zfX09T!+(Z`REal0@k~z_$B+uf&~sZE4+Mxf1y%@s|6AT$yI*!WQ$3HOYF510`w6c? zL#t#1RQGZ=8nP_d?pc-8xAA&;bYtF3hT6u3rG;T1-d3{xV!8cpj(wogn`Y5Hzf)S| rIIIu+`MYpEd-jCV1Xkr=-MltZ%UCYHt_tu6TFT(*>gTe~DWM4fgwbCs diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_goldshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_goldshovel.png deleted file mode 100644 index 72ccd7f057081647e8a0e41fa08f35c7051bbfed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJYn-FOk_x3ymn&Z#Oah7l z*}HnQt}HkG|Nnoir%ig0OJS6Ipo3{uir2)3c%b6kKpRI>?P)10$_?pdKnvg~-apQAEMVNdb_hmP|s4nO{V;{3_Y`su&I9sd~{0}ehqz*d*k Z%+1lp((*Cz&2#D@6XK$|#6gOapmwLm%6k|4ie2A~E8!%HXc0|i1nT^vIy7?T~C zd$RstuUVR%90wG8 z`s6`Kp#S8)jz9;~(%kgIDEC-T8%I;^)Gx(-Kxx*JAirP+pdJRpODFFG1p+-?978G? zlMnDoOyyDFQA~9cTj3xuW8soxt5}i@L{(W;M1%pFVkT^7z5^YnD## z>i`M|I+(_K+O*V_m*%EBnrde!#}!7orw6&%+S+=0dg|!t%)Q7I2~@{c666=m0M!4V zA-tNu7$_3w>Eakt!RXu5D#*gf!_@iw&#(M%bAKA_lF$e=<>{Omox*!~uXuFh53l$) zyI6S{J|-Q%-?6PMSW0lKexun1i*G#)G7>Tj_OA}dx7+mIxjut!rkh;+vcgH3G37qY Z{%_k@jE`j)NCItQ@O1TaS?83{1OOSxQF;IX diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_steelpick.png b/mods/ITEMS/mcl_tools/textures/default_tool_steelpick.png deleted file mode 100644 index 343cebc8cace97f80dc445719f62d60ef6b00cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!S%6Q7>;M1%r!8K)e$CR8#}7Vz z@?dgb2T&%^!8F#>rlqdDG&kMRR69F4t}x0yJ;=q@*4ES0Q%6TfT4k9eP#t?okRQ+_ zpc(%ea&|u21r$p5ba4!+U<^Ic%6LG5hvA^WTIS#S(RWnq8S>&qC(P({dFwGjOjt>9 zp7=e!E&7(Na;M1%oBL-yee&Ss@q;aO z<=M$`rMc;o`#RRISqfAV>uFOM<(?ko66j#+XsYdRrfq9$>*?vKqob4gRR0sm#F8LC zpkY8`KmbBBB%2>E0m_AYx;TbZF#2|}G68KrQu6)3{OY+Uc{eS1z~577c(~PbDX-$U zL+#mp30F#f{uM~GYI<-fJzz@O;gjELu%}GSU_*mM_PUZ?4K91`?fT)*X!tC)u#mAkWQT(U Z!*VC7$5SIVDFSU{@O1TaS?83{1OS65QC;M1%=gpbk*VEC`*c2BT zUS3jsbo;zO2h&(j8=#WhysT^Ib~>7BZ<*2j;_;RAAeX`@_gTT!Z-8=KB|(0{3_$%L z{GVaFe}FhpG|tn-F{Fag_e3k>5d{I4K$&aX|EHbLpVWDvo^|!t>P6A{`(IbA-*)r) zt@J5Q^F!ZFZWVQyoBPw~K=$m^ZPGhlW_@iksQk;WP;^=L+-}B<1Aa@nFEq%`XZs^v cV8>g*B)FLEPV*`bEuc*dp00i_>zopr0MmV53jhEB diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_stonepick.png b/mods/ITEMS/mcl_tools/textures/default_tool_stonepick.png deleted file mode 100644 index 45715aaab678d42d0f67ca7a3d89ae277afebb4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!S%6Q7>;M1%`+7R&&6!?aQryzm z1QZT*Fpc%JIl6sbc0#11srHr`%`YBbxpr=6dXP(QURGh0JCJd4=BfmsQlXL{zhDNS z5&yvihyer)e!5RZfwJ+QE{-7;jJc<~xegm}v_7ox&z@cS{{JT7BM%m|&;HNex1CXm z>91frV|Ub@NsAX$&f&D2Ki!*svGmS^Ppud;4}Xe&a@hS~RY=m}I34Q;)>Yy!ioM!j jF~wfx+|8X+eu!VPmgQpYtUYZ&s~9|8{an^LB{Ts5_JU@+ diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_stoneshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_stoneshovel.png deleted file mode 100644 index 7cd8ca42a17a94118db19629ecf36f579da10a14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Wq?nJ>y{bK^X5$N>*@Ia|9@^? zR(VNrOJfsIGCLvi+PR%T?$Pb@UOc`6RF)p(QW)hP=wKS_Y2#?B&3SVk$Sm%XAirRS z|Nnsqgc(*?P4Wi{M|-+BhEy;n9bjkhJ<-g_V94WevCZ`R{jWV!e)2P%RNJ(`>iK+D z371A*nX>|QA3naBVs~Qcql@xe=Gp$1_mX}7{otC5(KBi*xEJgHZ_f31IoDtIl|4Lq dM!NJ3#y#$AHKJ)hHUO<*@O1TaS?83{1OQ>~UV#7r diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_stonesword.png b/mods/ITEMS/mcl_tools/textures/default_tool_stonesword.png deleted file mode 100644 index b319829dbd57cd609a5ee43f94e0ad867734cddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmV;|04V>7P)q!_N5umK3o zAdO(BgZRW7fUp^?IX5qhbOT^EXD3AB)tnyWf@#3Db2~w{!Znj*z|rmV{=ay9nx6EipXeMj`LNk!_-_cb2KLcTaYyhTak_`Yl8?Kog0{}<*CZfu+ R@4Wy3002ovPDHLkV1i?LSXKZ4 diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_woodaxe.png b/mods/ITEMS/mcl_tools/textures/default_tool_woodaxe.png deleted file mode 100644 index 33de850f4a097d49b54374c0f18e9df32f1477ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VW{r~@eVU&CMx!>tQE`biF z!P5^O-98T}>1e8b?cB~-Pn#_>nqNG=a%H*c9*^E{KncE*AirRS{|x_u2uJ_{!*mVi zcA!kUr;B4q1!FP;qaz!es=(QdB!-lhwl=n1J1n&gr%azNzPlu2sZ0i1$>8bg=d#Wzp$PzrMOgy? diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_woodpick.png b/mods/ITEMS/mcl_tools/textures/default_tool_woodpick.png deleted file mode 100644 index 33fde14e1c32e8e7c24d661d89edbda92915cd1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFv5AX?b{r~@eVU&A%kV~M0Y5BR| zv7RgTe~DWM4fTnt)X diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png deleted file mode 100644 index e1855b5aee7f5aa0d2ebe61d5a3f51173674bdf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`D?D8sLn;`PfBgS%?>a-}=u1bv z|ID&J|0kz9Bu=r8C|;}h={>^#{Ta$1gBcKEk2F3H@t>5fQ?A#a15aEvh{^MqvPVB=1<24>!MGi8_= YR;_YB|Mz^hDbURfp00i_>zopr01`e^r2qf` diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_woodsword.png b/mods/ITEMS/mcl_tools/textures/default_tool_woodsword.png deleted file mode 100644 index 8f583e0c093b7aad1faa79f81196b5cfe3d13c5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF4e$wZO%HMjo__HE|NlTnVU#;i zIM&l9(81KvRQuYwo#p3#AKgCh#p5emW;9<}ZmJbF^*&Gqe@T#EFp&QLABZ3X!^2ao zE0ksuM5WDRR>qn4(InLCwc2u_M&N!&40n^7`>aY51shl~XZ z&IJ>^BDFgN=dFtq1oDJ1rlqtv aNifu3(6G2I&U+eYAA_f>pUXO@geCwd+*Eb| diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 8e46682a9b..688bee07ac 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -13,7 +13,7 @@ local function register_classic_superflat_biome() name = "flat", node_top = "mcl_core:dirt_with_grass", depth_top = 1, - node_filler = "mcl_core:dirt", + node_filler = "mcl_core:dirt_with_grass", depth_filler = 0, node_stone = "mcl_core:stone", y_min = mcl_vars.mg_overworld_min - 21, -- Gap between build limit and floor diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index 8f47c1c6ca..a8863d31f7 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -11,13 +11,9 @@ local lvm_buffer = {} minetest.register_alias("mapgen_air", "air") minetest.register_alias("mapgen_stone", "mcl_core:stone") minetest.register_alias("mapgen_dirt_with_grass", "mcl_core:dirt_with_grass") -local mg_name = minetest.get_mapgen_setting("mg_name") +minetest.register_alias("mapgen_water_source", "mcl_core:dirt_with_grass") -- Content IDs -local c_stone = minetest.get_content_id("mcl_core:stone") -local c_void = minetest.get_content_id("mcl_core:void") -local c_air = minetest.CONTENT_AIR - local mg_flags = minetest.settings:get_flags("mg_flags") -- Inform other mods of dungeon setting for MCL2-style dungeons diff --git a/mods/MAPGEN/mcl_shipwrecks/init.lua b/mods/MAPGEN/mcl_shipwrecks/init.lua deleted file mode 100644 index 9227680b40..0000000000 --- a/mods/MAPGEN/mcl_shipwrecks/init.lua +++ /dev/null @@ -1,134 +0,0 @@ -local modname = minetest.get_current_modname() -local modpath = minetest.get_modpath(modname) ---local S = minetest.get_translator(modname) - -local mgp = minetest.get_mapgen_params() -local pr = PseudoRandom(mgp.seed) - ---schematics by chmodsayshello -local schems = { - "shipwreck_full_damaged", - "shipwreck_full_normal", - "shipwreck_full_back_damaged", - "shipwreck_half_front", - "shipwreck_half_back", -} - -local function get_supply_loot() - return { - stacks_min = 3, - stacks_max = 10, - items = { - --{ itemstring = "TODO:sus_stew", weight = 10, amount_min = 1, amount_max = 1 }, - { itemstring = "mcl_core:paper", weight = 8, amount_min = 1, amount_max = 12 }, - { itemstring = "mcl_farming:wheat_item", weight = 7, amount_min = 8, amount_max = 21 }, - { itemstring = "mcl_farming:carrot_item", weight = 7, amount_min = 4, amount_max = 8 }, - { itemstring = "mcl_farming:potato_item_poison", weight = 7, amount_min = 2, amount_max = 6 }, - { itemstring = "mcl_farming:potato_item", weight = 7, amount_min = 2, amount_max = 6 }, - --{ itemstring = "TODO:moss_block", weight = 7, amount_min = 1, amount_max = 4 }, - { itemstring = "mcl_core:coal_lump", weight = 6, amount_min = 2, amount_max = 8 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 5, amount_min = 5, amount_max = 24 }, - { itemstring = "mcl_farming:potato_item", weight = 3, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_armor:helmet_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:chestplate_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:leggings_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:boots_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - --{ itemstring = "TODO:bamboo", weight = 2, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_farming:pumpkin", weight = 2, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_tnt:tnt", weight = 1, amount_min = 1, amount_max = 2 }, - - } - } -end - -local function get_treasure_loot() - return { - stacks_min = 3, - stacks_max = 10, - items = { - { itemstring = "mcl_core:iron_ingot", weight = 8, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:iron_nugget", weight = 8, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:emerald", weight = 8, amount_min = 1, amount_max = 12 }, - { itemstring = "mcl_dye:blue", weight = 8, amount_min = 1, amount_max = 12 }, - { itemstring = "mcl_core:gold_ingot", weight = 8, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:gold_nugget", weight = 8, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_experience:bottle", weight = 8, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:diamond", weight = 8, amount_min = 1, amount_max = 10 }, - } - } -end - -local function fill_chests(p1,p2) - for _,p in pairs(minetest.find_nodes_in_area(p1,p2,{"mcl_chests:chest_small"})) do - if minetest.get_meta(p):get_string("infotext") ~= "Chest" then - minetest.registered_nodes["mcl_chests:chest_small"].on_construct(p) - end - local inv = minetest.get_inventory( {type="node", pos=p} ) - local loot = get_supply_loot() - if pr:next(1,10) == 1 then loot = get_treasure_loot() end - mcl_loot.fill_inventory(inv, "main", mcl_loot.get_multi_loot({loot}, pr), pr) - end -end - -local function get_ocean_biomes() - local r = {} - for k,_ in pairs(minetest.registered_biomes) do - if k:find("_ocean") then table.insert(r,k) end - end - return r -end -local function get_beach_biomes() - local r = {} - for k,_ in pairs(minetest.registered_biomes) do - if k:find("_beach") or k:find("_shore") then table.insert(r,k) end - end - return r -end - -minetest.register_node("mcl_shipwrecks:structblock", {drawtype="airlike", walkable = false, pointable = false,groups = {structblock=1,not_in_creative_inventory=1}}) - -minetest.register_decoration({ - decoration = "mcl_shipwrecks:structblock", - deco_type = "simple", - place_on = {"group:sand","mcl_core:gravel"}, - spawn_by = {"group:water"}, - num_spawn_by = 4, - sidelen = 80, - fill_ratio = 0.00002, - flags = "place_center_x, place_center_z, force_placement", - biomes = get_ocean_biomes(), - y_max=mgp.water_level-4, -}) - ---rare beached variant -minetest.register_decoration({ - decoration = "mcl_shipwrecks:structblock", - deco_type = "simple", - place_on = {"group:sand","mcl_core:gravel","group:dirt"}, - spawn_by = {"group:water","air"}, - num_spawn_by = 4, - sidelen = 80, - fill_ratio=0.000001, - flags = "place_center_x, place_center_z, force_placement", - biomes = get_beach_biomes(), - y_max = mgp.water_level + 4, - y_min = mgp.water_level - 1, -}) - -minetest.register_lbm({ - name = "mcl_shipwrecks:struct_lbm", - run_at_every_load = true, - nodenames = {"mcl_shipwrecks:structblock"}, - action = function(pos, node) - minetest.set_node(pos,{name="air"}) - local file = modpath.."/schematics/"..schems[pr:next(1,#schems)]..".mts" - local pp = vector.offset(pos,0,pr:next(-4,-2),0) - mcl_structures.place_schematic(pp, file, "random", nil, true, "place_center_x,place_center_z", function() - fill_chests(vector.offset(pos,-20,-5,-20),vector.offset(pos,20,15,20)) - end,pr) - end -}) diff --git a/mods/MAPGEN/mcl_shipwrecks/mod.conf b/mods/MAPGEN/mcl_shipwrecks/mod.conf deleted file mode 100644 index 79940c7448..0000000000 --- a/mods/MAPGEN/mcl_shipwrecks/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = mcl_shipwrecks -author = cora -depends = mcl_loot, mcl_structures, mcl_enchanting diff --git a/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_back_damaged.mts b/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_back_damaged.mts deleted file mode 100644 index 12f3c9b1397a55b114129633349306c427bef496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1203 zcmeYb3HD`RVNhg{WZ0{D?YyI4lgO*pctQXX;XI?^i0)ZQ#{aV$N&O19v6LA z>McLP!0M>hJPZYOEC0IAlXO zztu&23?83X&#XJIw)btR>f5h#-(;rI`g;})5o_QwjhzK%(jVW`M+-_d{h z`HUCuALqQEk@5cVj3d7--dX>j#nU6pa3KF*Owq02qrZQz`DuKv?9$iBw_DAxPiCIQ zvvx}Q)jPMD8TwLwiS&K@Y_a#s`NulHcmJJ#oRMKpY~Ov$1I8D?feIuZFud9&=Dg32 z!D7m;wcWRh*31jDVm_wwca?*~Ix*%-mhx9e`}A|)bgh_P<2&Qt`MVqss~L*8-)}M$ zT(~QOrNZy@lS?yomu4SyToQh+;=uRmeS%8Mc1_fB&RE?msKn5?=Q{Uu&qF68#0}5< zc^*~v>}^oiLfOwe@9MJW?7Y8p9=ppFv90YJew^y^*lMm+-mkos*<;E>pR*jva|(O& zdz8zvE=jaI9o*QmPW3zEBRl(LAKrcm>Z-DH`(!F?A-++kg(159a6Q8oiH%_Yd^kHb z_2>TC3^KkqueoNjHZ?IGE2+P!;}XShGh9v#SL$1yrOQ(vk z^=Y}sy0p~%m=-?&>>FbNLyaRG4;DW88`!1s?fDM_=Z7j!0=6hWiY@wcH*ik;R7EAF zBex$<`C?I_cGZFJjG$m(jb4n*f#Q|N4pn)i{$$dSsWHFWBk{=JIg_E-uvU_R;lSh{ K>?#)@iUR;mO&+xX diff --git a/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_damaged.mts b/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_full_damaged.mts deleted file mode 100644 index 5c8a3e105cee2ff2ec228e7b5e4e786cea5fd6a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmeYb3HD`RVNhg{WZ>$ ztMR?aoKRyT#kL`v$HpWy{8~VHs%*CIn)io)eP?8N5V~@XQEu*=_cmLDwKhIFw{=6# zS@~$)T>EWz;=JwqQpL)yZ?b#G$Z)4iE9g}8Dbd|}G3I}_NpFmMzuD~0H}+^XzN2ER z-ko6o>>T(+XUm&5`I~nB^4Z5Wu_W;@+?n_ExWpHJy8 zUt&>`{-}0#+16icW5TUm&Ruioc2^HO;(hAa#b^9^X+@j9{*8anDP48Mk~4OX{MQeg zw~IwvuWPk?G-uu0$2Yw_k65POzr3eaY^{7<+vfLGTc)$U*|DTIc0rHpoR@QNu9M(o zsIkwR`FP5jBZ_svR6*Y11?fU#r*3LOOtH+}F z{o@zk6QA8V9?A5*kl{h~2aEHoPO7s%vs=B)bx!5^RhfeA=~o#T;uy`3`?YS z{$bJCbH~V;)}GF%{bTMr2Mz+@wN7*3q>vyq?5MD9dDd@rbB$yp__Ma#LhZkvH5aviC?Nr z{l~@K^QtRsJJ0;`6pR;d;(KVHpgHraVW*bIFIQo|lDma5`wcD??pd57>n^+XmBqTy z>qW_b!hf4b^1oOz$LZQ>&ow`e-supw>ifB=Lz!(Mcc;aMmMQmZGW(3*aGY(}y5Wd_A`_N|w0i!~M0Uo$ju{O!7C zXJ&u&0b9>st`$O}T6XQ%tyUNKvRRugd*S_~P^Lnn=%bU*@6B=X$5k%nulvKhO+W5w z`icp1fu7O~-<|zl|EW2nspY@WsxR$u-SXPk7W;T@r<{4+p5_tgQqB6HXlKRhzp87* zKmVJwl3&$T@Hl_6i%bQZ9$(hl?UEth`!xbI+BF+x*yeRDNpH1oRocHeVhIo=e2Hi0*XM&v~3-?$ts+I9cKw}{0 zqSy=K#3#iY;gTweH>#NPb}n!DVgmtJ=Bs5}U+=2syEgxH{CzVAPqoSXUV$sVyXAVu zsX0o@ZH(w`3=O_%)P8GP<(XcCdcM#5`574cy`D}f%r5^sYk8U1(kYpOZ5DainJkOH z=`Vi$y+m*O*Y`>`^H0~@XJ&}tdaDy#woGoyL&@D=_PqXnm-YIO-#I+n|2yg~71Xl+ zbns7*$W9LNdB4wZsGoN(yRC@3f`>up{M)*ZMwj(d&L>u@yceJPT=-W0)NeEQ?tBry z{^Gol^Pcgaf3KbO_(>S=*3wywGU>T8+*#X>Y)j{le!A~<_e;Z7b+Lvkte?!(-+D|! zsi$wTt3l^X9%cTw&5z&Y?6mn^tJm(*bLoC!=-yAhod&Ju(T6O1>Nf8`XgkmL{NehV z0-1(B@%4WSy}FwB3cdgJL+)Yx?c?jW@ju^u@8A=e<$lL1HYe|i+j`e4`Aplpo7qZj z?<|a(JkKnCXaD_r$8?M1n{P|Jwm5#Tu^^|SW)SN__YHS4j@?r`5? zo_C?l3>7Rf{kJ>Q|Ja_p!tuwJkKw?l5A&F1_dI7n1tJ%>z4d9FDXVDDazOl2)Gzk8 zFLGEp9k;LK?70`};^AjByP6?b!)Apt*G&|)9!gmW^F_B=+ zdh{i9t>EX3fEYr=C zRCN=4RX#h#xp*E;{~wVqn&%O?(bzTr(Entiba|V|3Yi%`=k%Kn?>o80yHm|TKIyl~ zmHFpB_4}{nFkZx!Y$Kp@?iDBh>pvegM0dZQ-ghc^Md#w)pqsDk3jav#n))OysYW5<_Gu=$BMn0Tt3W1?6 zrZ_WllTpAEZ7)`PwL*rT`Q^J-b4J>Ttbfd~L*??*?iJbpj%!1Fo73^%_Uvg70H#i? A82|tP diff --git a/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_back.mts b/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_back.mts deleted file mode 100644 index f58376f3009eb49fb9bbb3e71668aee3205aa9ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1248 zcmeYb3HD`RVNhg{WZ$H!}{I@5+GeGy1i&snG z{Nq-$;|gomo|#y`PX50C=eK7CKJHpkc}1QfI!^p;`2CX5|C4vj-@HbAv(9Vqh(0fy zedjo1!{Rr8Be#CBw%oS!-X~kv?4y#}Y3=7%F&?lyyZY{FzWx2liT}SGF={Hlw(I2k z#|#HPKbXlZcU}e@;6UQR%dNSyEf1u+UodC96L`D$Vdzc1O>8G#$8kUSqc_R&#>5@3 zZiPi&i>iOakQllB?*5J|Jm0v38yN~8ZZr1UFJt#-^OX5o&z}8pl@NHPUbtcVog*{8 zo?@P3aG-alu#AFy^BvjH%Sy@*e+z`w?OwzyuxRz{@`FbTgCDUd*Yt*J+?2iJl2dcQ zdxb^RqX_MDQ!F0FhV(hUTlVOIz@u4So;rq2QzQ;=_`t`v{uINy!VdvSpBC}%d#Lk$ z*NUnK)s^AA_dBPF7n(@S zHZJ3IobQ~DJ%#Hg?mo$3Gh;<+?R;Ghe~Ej#g(n=|EXjPbxi;tMM*bHX;tp%dZ5Aw3 z|Kc_I>z*6yR}}U(FTdomQdM=X{D#|g6D)rCNg00J*LF8Gy}|h6=T{Y}C*$uhGcfG_ K!EU%o(E|2 diff --git a/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_front.mts b/mods/MAPGEN/mcl_shipwrecks/schematics/shipwreck_half_front.mts deleted file mode 100644 index 41efb386b3ca718e4788f051e050a0d8405208ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 903 zcmeYb3HD`RVNhg{WZ2D<~CHD;!E-i7-Z000<#n>3-&ZjH`r$|X$A?n zGmA@#G7Ab)Q=pz;5Ch9(q!yPHTP1_2_~P8eoE(S_m|-BNz|5+c^Y-q=yju2Xqw+g2GQ23znQSx??-}bG3 zB|X!``gVI)PYlhjSa(!aSMefe^y%B8Tix7OE?ro7>32k#u*iptS9^WtTq=Cz^1DIq zQT80Z>;E3ATo8Wab2-&@+vZtHiww)917D|GKo+{V!Ku)zIE`{`iVV6VB`~^D|qVE6?k0*>bxf yNKaNv%F9Ql>`Bqfi{`wdyl2^WU%V7yYvmn(FkWx^j-O|gL6+S+nSU%V(*yuqfRd5` diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua deleted file mode 100644 index 5d3ecac6c2..0000000000 --- a/mods/MAPGEN/mcl_structures/init.lua +++ /dev/null @@ -1,630 +0,0 @@ -local modname = minetest.get_current_modname() -local S = minetest.get_translator(modname) -local modpath = minetest.get_modpath(modname) - -mcl_structures = {} - -local rotations = { - "0", - "90", - "180", - "270" -} - -local function ecb_place(blockpos, action, calls_remaining, param) - if calls_remaining >= 1 then return end - minetest.place_schematic(param.pos, param.schematic, param.rotation, param.replacements, param.force_placement, param.flags) - if param.after_placement_callback and param.p1 and param.p2 then - param.after_placement_callback(param.p1, param.p2, param.size, param.rotation, param.pr, param.callback_param) - end -end - -function mcl_structures.place_schematic(pos, schematic, rotation, replacements, force_placement, flags, after_placement_callback, pr, callback_param) - local s = loadstring(minetest.serialize_schematic(schematic, "lua", {lua_use_comments = false, lua_num_indent_spaces = 0}) .. " return schematic")() - if s and s.size then - local x, z = s.size.x, s.size.z - if rotation then - if rotation == "random" and pr then - rotation = rotations[pr:next(1,#rotations)] - end - if rotation == "random" then - x = math.max(x, z) - z = x - elseif rotation == "90" or rotation == "270" then - x, z = z, x - end - end - local p1 = {x=pos.x , y=pos.y , z=pos.z } - local p2 = {x=pos.x+x-1, y=pos.y+s.size.y-1, z=pos.z+z-1} - minetest.log("verbose", "[mcl_structures] size=" ..minetest.pos_to_string(s.size) .. ", rotation=" .. tostring(rotation) .. ", emerge from "..minetest.pos_to_string(p1) .. " to " .. minetest.pos_to_string(p2)) - local param = {pos=vector.new(pos), schematic=s, rotation=rotation, replacements=replacements, force_placement=force_placement, flags=flags, p1=p1, p2=p2, after_placement_callback = after_placement_callback, size=vector.new(s.size), pr=pr, callback_param=callback_param} - minetest.emerge_area(p1, p2, ecb_place, param) - end -end - -function mcl_structures.get_struct(file) - local localfile = modpath.."/schematics/"..file - local file, errorload = io.open(localfile, "rb") - if errorload then - minetest.log("error", "[mcl_structures] Could not open this struct: "..localfile) - return nil - end - - local allnode = file:read("*a") - file:close() - - return allnode -end - --- Call on_construct on pos. --- Useful to init chests from formspec. -local function init_node_construct(pos) - local node = minetest.get_node(pos) - local def = minetest.registered_nodes[node.name] - if def and def.on_construct then - def.on_construct(pos) - return true - end - return false -end - --- The call of Struct -function mcl_structures.call_struct(pos, struct_style, rotation, pr) - minetest.log("action","[mcl_structures] call_struct " .. struct_style.." at "..minetest.pos_to_string(pos)) - if not rotation then - rotation = "random" - end - if struct_style == "desert_temple" then - return mcl_structures.generate_desert_temple(pos, rotation, pr) - elseif struct_style == "desert_well" then - return mcl_structures.generate_desert_well(pos, rotation) - elseif struct_style == "igloo" then - return mcl_structures.generate_igloo(pos, rotation, pr) - elseif struct_style == "witch_hut" then - return mcl_structures.generate_witch_hut(pos, rotation) - elseif struct_style == "ice_spike_small" then - return mcl_structures.generate_ice_spike_small(pos, rotation) - elseif struct_style == "ice_spike_large" then - return mcl_structures.generate_ice_spike_large(pos, rotation) - elseif struct_style == "boulder" then - return mcl_structures.generate_boulder(pos, rotation, pr) - elseif struct_style == "fossil" then - return mcl_structures.generate_fossil(pos, rotation, pr) - elseif struct_style == "end_exit_portal" then - return mcl_structures.generate_end_exit_portal(pos, rotation) - elseif struct_style == "end_exit_portal_open" then - return mcl_structures.generate_end_exit_portal_open(pos, rotation) - elseif struct_style == "end_gateway_portal" then - return mcl_structures.generate_end_gateway_portal(pos, rotation) - elseif struct_style == "end_portal_shrine" then - return mcl_structures.generate_end_portal_shrine(pos, rotation, pr) - end -end - -function mcl_structures.generate_desert_well(pos, rot) - local newpos = {x=pos.x,y=pos.y-2,z=pos.z} - local path = modpath.."/schematics/mcl_structures_desert_well.mts" - return mcl_structures.place_schematic(newpos, path, rot or "0", nil, true) -end - -function mcl_structures.generate_igloo(pos, rotation, pr) - -- Place igloo - local success, rotation = mcl_structures.generate_igloo_top(pos, pr) - -- Place igloo basement with 50% chance - local r = pr:next(1,2) - if r == 1 then - -- Select basement depth - local dim = mcl_worlds.pos_to_dimension(pos) - --local buffer = pos.y - (mcl_vars.mg_lava_overworld_max + 10) - local buffer - if dim == "nether" then - buffer = pos.y - (mcl_vars.mg_lava_nether_max + 10) - elseif dim == "end" then - buffer = pos.y - (mcl_vars.mg_end_min + 1) - elseif dim == "overworld" then - buffer = pos.y - (mcl_vars.mg_lava_overworld_max + 10) - else - return success - end - if buffer <= 19 then - return success - end - local depth = pr:next(19, buffer) - local bpos = {x=pos.x, y=pos.y-depth, z=pos.z} - -- trapdoor position - local tpos - local dir, tdir - if rotation == "0" then - dir = {x=-1, y=0, z=0} - tdir = {x=1, y=0, z=0} - tpos = {x=pos.x+7, y=pos.y-1, z=pos.z+3} - elseif rotation == "90" then - dir = {x=0, y=0, z=-1} - tdir = {x=0, y=0, z=-1} - tpos = {x=pos.x+3, y=pos.y-1, z=pos.z+1} - elseif rotation == "180" then - dir = {x=1, y=0, z=0} - tdir = {x=-1, y=0, z=0} - tpos = {x=pos.x+1, y=pos.y-1, z=pos.z+3} - elseif rotation == "270" then - dir = {x=0, y=0, z=1} - tdir = {x=0, y=0, z=1} - tpos = {x=pos.x+3, y=pos.y-1, z=pos.z+7} - else - return success - end - local function set_brick(pos) - local c = pr:next(1, 3) -- cracked chance - local m = pr:next(1, 10) -- chance for monster egg - local brick - if m == 1 then - if c == 1 then - brick = "mcl_monster_eggs:monster_egg_stonebrickcracked" - else - brick = "mcl_monster_eggs:monster_egg_stonebrick" - end - else - if c == 1 then - brick = "mcl_core:stonebrickcracked" - else - brick = "mcl_core:stonebrick" - end - end - minetest.set_node(pos, {name=brick}) - end - local ladder_param2 = minetest.dir_to_wallmounted(tdir) - local real_depth = 0 - -- Check how deep we can actuall dig - for y=1, depth-5 do - real_depth = real_depth + 1 - local node = minetest.get_node({x=tpos.x,y=tpos.y-y,z=tpos.z}) - local def = minetest.registered_nodes[node.name] - if not (def and def.walkable and def.liquidtype == "none" and def.is_ground_content) then - bpos.y = tpos.y-y+1 - break - end - end - if real_depth <= 6 then - return success - end - -- Generate ladder to basement - for y=1, real_depth-1 do - set_brick({x=tpos.x-1,y=tpos.y-y,z=tpos.z }) - set_brick({x=tpos.x+1,y=tpos.y-y,z=tpos.z }) - set_brick({x=tpos.x ,y=tpos.y-y,z=tpos.z-1}) - set_brick({x=tpos.x ,y=tpos.y-y,z=tpos.z+1}) - minetest.set_node({x=tpos.x,y=tpos.y-y,z=tpos.z}, {name="mcl_core:ladder", param2=ladder_param2}) - end - -- Place basement - mcl_structures.generate_igloo_basement(bpos, rotation, pr) - -- Place hidden trapdoor - minetest.after(5, function(tpos, dir) - minetest.set_node(tpos, {name="mcl_doors:trapdoor", param2=20+minetest.dir_to_facedir(dir)}) -- TODO: more reliable param2 - end, tpos, dir) - end - return success -end - -function mcl_structures.generate_igloo_top(pos, pr) - -- FIXME: This spawns bookshelf instead of furnace. Fix this! - -- Furnace does ot work atm because apparently meta is not set. :-( - local newpos = {x=pos.x,y=pos.y-1,z=pos.z} - local path = modpath.."/schematics/mcl_structures_igloo_top.mts" - local rotation = tostring(pr:next(0,3)*90) - return mcl_structures.place_schematic(newpos, path, rotation, nil, true), rotation -end - -local function igloo_placement_callback(p1, p2, size, orientation, pr) - local chest_offset - if orientation == "0" then - chest_offset = {x=5, y=1, z=5} - elseif orientation == "90" then - chest_offset = {x=5, y=1, z=3} - elseif orientation == "180" then - chest_offset = {x=3, y=1, z=1} - elseif orientation == "270" then - chest_offset = {x=1, y=1, z=5} - else - return - end - --local size = {x=9,y=5,z=7} - local lootitems = mcl_loot.get_multi_loot({ - { - stacks_min = 1, - stacks_max = 1, - items = { - { itemstring = "mcl_core:apple_gold", weight = 1 }, - } - }, - { - stacks_min = 2, - stacks_max = 8, - items = { - { itemstring = "mcl_core:coal_lump", weight = 15, amount_min = 1, amount_max = 4 }, - { itemstring = "mcl_core:apple", weight = 15, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_farming:wheat_item", weight = 10, amount_min = 2, amount_max = 3 }, - { itemstring = "mcl_core:gold_nugget", weight = 10, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 10 }, - { itemstring = "mcl_tools:axe_stone", weight = 2 }, - { itemstring = "mcl_core:emerald", weight = 1 }, - } - }}, pr) - - local chest_pos = vector.add(p1, chest_offset) - init_node_construct(chest_pos) - local meta = minetest.get_meta(chest_pos) - local inv = meta:get_inventory() - mcl_loot.fill_inventory(inv, "main", lootitems, pr) -end - -function mcl_structures.generate_igloo_basement(pos, orientation, pr) - -- TODO: Add brewing stand - -- TODO: Add monster eggs - -- TODO: Spawn villager and zombie villager - local path = modpath.."/schematics/mcl_structures_igloo_basement.mts" - mcl_structures.place_schematic(pos, path, orientation, nil, true, nil, igloo_placement_callback, pr) -end - -function mcl_structures.generate_boulder(pos, rotation, pr) - -- Choose between 2 boulder sizes (2×2×2 or 3×3×3) - local r = pr:next(1, 10) - local path - if r <= 3 then - path = modpath.."/schematics/mcl_structures_boulder_small.mts" - else - path = modpath.."/schematics/mcl_structures_boulder.mts" - end - - local newpos = {x=pos.x,y=pos.y-1,z=pos.z} - - return minetest.place_schematic(newpos, path, rotation) -- don't serialize schematics for registered biome decorations, for MT 5.4.0, https://github.com/minetest/minetest/issues/10995 -end - -local function spawn_witch(p1,p2) - local c = minetest.find_node_near(p1,15,{"mcl_cauldrons:cauldron"}) - if c then - local nn = minetest.find_nodes_in_area_under_air(vector.new(p1.x,c.y-1,p1.z),vector.new(p2.x,c.y-1,p2.z),{"mcl_core:sprucewood"}) - local witch = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:witch"):get_luaentity() - local cat = minetest.add_entity(vector.offset(nn[math.random(#nn)],0,1,0),"mobs_mc:cat"):get_luaentity() - witch._home = c - witch.can_despawn = false - cat.object:set_properties({textures = {"mobs_mc_cat_black.png"}}) - cat.owner = "!witch!" --so it's not claimable by player - cat._home = c - cat.can_despawn = false - return - end -end - -local function hut_placement_callback(p1, p2, size, orientation, pr) - if not p1 or not p2 then return end - local legs = minetest.find_nodes_in_area(p1, p2, "mcl_core:tree") - for i = 1, #legs do - while minetest.get_item_group(mcl_vars.get_node({x=legs[i].x, y=legs[i].y-1, z=legs[i].z}, true, 333333).name, "water") ~= 0 do - legs[i].y = legs[i].y - 1 - minetest.swap_node(legs[i], {name = "mcl_core:tree", param2 = 2}) - end - end - spawn_witch(p1,p2) -end - -function mcl_structures.generate_witch_hut(pos, rotation, pr) - local path = modpath.."/schematics/mcl_structures_witch_hut.mts" - mcl_structures.place_schematic(pos, path, rotation, nil, true, nil, hut_placement_callback, pr) -end - -function mcl_structures.generate_ice_spike_small(pos, rotation) - local path = modpath.."/schematics/mcl_structures_ice_spike_small.mts" - return minetest.place_schematic(pos, path, rotation or "random", nil, false) -- don't serialize schematics for registered biome decorations, for MT 5.4.0 -end - -function mcl_structures.generate_ice_spike_large(pos, rotation) - local path = modpath.."/schematics/mcl_structures_ice_spike_large.mts" - return minetest.place_schematic(pos, path, rotation or "random", nil, false) -- don't serialize schematics for registered biome decorations, for MT 5.4.0 -end - -function mcl_structures.generate_fossil(pos, rotation, pr) - -- Generates one out of 8 possible fossil pieces - local newpos = {x=pos.x,y=pos.y-1,z=pos.z} - local fossils = { - "mcl_structures_fossil_skull_1.mts", -- 4×5×5 - "mcl_structures_fossil_skull_2.mts", -- 5×5×5 - "mcl_structures_fossil_skull_3.mts", -- 5×5×7 - "mcl_structures_fossil_skull_4.mts", -- 7×5×5 - "mcl_structures_fossil_spine_1.mts", -- 3×3×13 - "mcl_structures_fossil_spine_2.mts", -- 5×4×13 - "mcl_structures_fossil_spine_3.mts", -- 7×4×13 - "mcl_structures_fossil_spine_4.mts", -- 8×5×13 - } - local r = pr:next(1, #fossils) - local path = modpath.."/schematics/"..fossils[r] - return mcl_structures.place_schematic(newpos, path, rotation or "random", nil, true) -end - -function mcl_structures.generate_end_exit_portal(pos, rot) - local path = modpath.."/schematics/mcl_structures_end_exit_portal.mts" - return mcl_structures.place_schematic(pos, path, rot or "0", {["mcl_portals:portal_end"] = "air"}, true) -end - -function mcl_structures.generate_end_exit_portal_open(pos, rot) - local path = modpath.."/schematics/mcl_structures_end_exit_portal.mts" - return mcl_structures.place_schematic(pos, path, rot or "0", nil, true) -end - -function mcl_structures.generate_end_gateway_portal(pos, rot) - local path = modpath.."/schematics/mcl_structures_end_gateway_portal.mts" - return mcl_structures.place_schematic(pos, path, rot or "0", nil, true) -end - -local function shrine_placement_callback(p1, p2, size, rotation, pr) - -- Find and setup spawner with silverfish - local spawners = minetest.find_nodes_in_area(p1, p2, "mcl_mobspawners:spawner") - for s=1, #spawners do - --local meta = minetest.get_meta(spawners[s]) - mcl_mobspawners.setup_spawner(spawners[s], "mobs_mc:silverfish") - end - - -- Shuffle stone brick types - local bricks = minetest.find_nodes_in_area(p1, p2, "mcl_core:stonebrick") - for b=1, #bricks do - local r_bricktype = pr:next(1, 100) - local r_infested = pr:next(1, 100) - local bricktype - if r_infested <= 5 then - if r_bricktype <= 30 then -- 30% - bricktype = "mcl_monster_eggs:monster_egg_stonebrickmossy" - elseif r_bricktype <= 50 then -- 20% - bricktype = "mcl_monster_eggs:monster_egg_stonebrickcracked" - else -- 50% - bricktype = "mcl_monster_eggs:monster_egg_stonebrick" - end - else - if r_bricktype <= 30 then -- 30% - bricktype = "mcl_core:stonebrickmossy" - elseif r_bricktype <= 50 then -- 20% - bricktype = "mcl_core:stonebrickcracked" - end - -- 50% stonebrick (no change necessary) - end - if bricktype then - minetest.set_node(bricks[b], { name = bricktype }) - end - end - - -- Also replace stairs - local stairs = minetest.find_nodes_in_area(p1, p2, {"mcl_stairs:stair_stonebrick", "mcl_stairs:stair_stonebrick_outer", "mcl_stairs:stair_stonebrick_inner"}) - for s=1, #stairs do - local stair = minetest.get_node(stairs[s]) - local r_type = pr:next(1, 100) - if r_type <= 30 then -- 30% mossy - if stair.name == "mcl_stairs:stair_stonebrick" then - stair.name = "mcl_stairs:stair_stonebrickmossy" - elseif stair.name == "mcl_stairs:stair_stonebrick_outer" then - stair.name = "mcl_stairs:stair_stonebrickmossy_outer" - elseif stair.name == "mcl_stairs:stair_stonebrick_inner" then - stair.name = "mcl_stairs:stair_stonebrickmossy_inner" - end - minetest.set_node(stairs[s], stair) - elseif r_type <= 50 then -- 20% cracky - if stair.name == "mcl_stairs:stair_stonebrick" then - stair.name = "mcl_stairs:stair_stonebrickcracked" - elseif stair.name == "mcl_stairs:stair_stonebrick_outer" then - stair.name = "mcl_stairs:stair_stonebrickcracked_outer" - elseif stair.name == "mcl_stairs:stair_stonebrick_inner" then - stair.name = "mcl_stairs:stair_stonebrickcracked_inner" - end - minetest.set_node(stairs[s], stair) - end - -- 50% no change - end - - -- Randomly add ender eyes into end portal frames, but never fill the entire frame - local frames = minetest.find_nodes_in_area(p1, p2, "mcl_portals:end_portal_frame") - local eyes = 0 - for f=1, #frames do - local r_eye = pr:next(1, 10) - if r_eye == 1 then - eyes = eyes + 1 - if eyes < #frames then - local frame_node = minetest.get_node(frames[f]) - frame_node.name = "mcl_portals:end_portal_frame_eye" - minetest.set_node(frames[f], frame_node) - end - end - end -end - -function mcl_structures.generate_end_portal_shrine(pos, rotation, pr) - local offset = {x=6, y=4, z=6} - --local size = {x=13, y=8, z=13} - local newpos = { x = pos.x - offset.x, y = pos.y, z = pos.z - offset.z } - - local path = modpath.."/schematics/mcl_structures_end_portal_room_simple.mts" - mcl_structures.place_schematic(newpos, path, rotation or "0", nil, true, nil, shrine_placement_callback, pr) -end - -local function temple_placement_callback(p1, p2, size, rotation, pr) - - -- Delete cacti leftovers: - local cactus_nodes = minetest.find_nodes_in_area_under_air(p1, p2, "mcl_core:cactus") - if cactus_nodes and #cactus_nodes > 0 then - for _, pos in pairs(cactus_nodes) do - local node_below = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}) - if node_below and node_below.name == "mcl_core:sandstone" then - minetest.swap_node(pos, {name="air"}) - end - end - end - - -- Find chests. - -- FIXME: Searching this large area just for the chets is not efficient. Need a better way to find the chests; - -- probably let's just infer it from newpos because the schematic always the same. - local chests = minetest.find_nodes_in_area(p1, p2, "mcl_chests:chest") - - -- Add desert temple loot into chests - for c=1, #chests do - local lootitems = mcl_loot.get_multi_loot({ - { - stacks_min = 2, - stacks_max = 4, - items = { - { itemstring = "mcl_mobitems:bone", weight = 25, amount_min = 4, amount_max=6 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 25, amount_min = 3, amount_max=7 }, - { itemstring = "mcl_mobitems:spider_eye", weight = 25, amount_min = 1, amount_max=3 }, - { itemstring = "mcl_books:book", weight = 20, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}, pr) - end }, - { itemstring = "mcl_mobitems:saddle", weight = 20, }, - { itemstring = "mcl_core:apple_gold", weight = 20, }, - { itemstring = "mcl_core:gold_ingot", weight = 15, amount_min = 2, amount_max = 7 }, - { itemstring = "mcl_core:iron_ingot", weight = 15, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:emerald", weight = 15, amount_min = 1, amount_max = 3 }, - { itemstring = "", weight = 15, }, - { itemstring = "mcl_mobitems:iron_horse_armor", weight = 15, }, - { itemstring = "mcl_mobitems:gold_horse_armor", weight = 10, }, - { itemstring = "mcl_mobitems:diamond_horse_armor", weight = 5, }, - { itemstring = "mcl_core:diamond", weight = 5, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_core:apple_gold_enchanted", weight = 2, }, - } - }, - { - stacks_min = 4, - stacks_max = 4, - items = { - { itemstring = "mcl_mobitems:bone", weight = 10, amount_min = 1, amount_max = 8 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 10, amount_min = 1, amount_max = 8 }, - { itemstring = "mcl_mobitems:gunpowder", weight = 10, amount_min = 1, amount_max = 8 }, - { itemstring = "mcl_core:sand", weight = 10, amount_min = 1, amount_max = 8 }, - { itemstring = "mcl_mobitems:string", weight = 10, amount_min = 1, amount_max = 8 }, - } - }}, pr) - init_node_construct(chests[c]) - local meta = minetest.get_meta(chests[c]) - local inv = meta:get_inventory() - mcl_loot.fill_inventory(inv, "main", lootitems, pr) - end - - -- Initialize pressure plates and randomly remove up to 5 plates - local pplates = minetest.find_nodes_in_area(p1, p2, "mesecons_pressureplates:pressure_plate_stone_off") - local pplates_remove = 5 - for p=1, #pplates do - if pplates_remove > 0 and pr:next(1, 100) >= 50 then - -- Remove plate - minetest.remove_node(pplates[p]) - pplates_remove = pplates_remove - 1 - else - -- Initialize plate - minetest.registered_nodes["mesecons_pressureplates:pressure_plate_stone_off"].on_construct(pplates[p]) - end - end -end - -function mcl_structures.generate_desert_temple(pos, rotation, pr) - -- No Generating for the temple ... Why using it ? No Change - local path = modpath.."/schematics/mcl_structures_desert_temple.mts" - local newpos = {x=pos.x,y=pos.y-12,z=pos.z} - --local size = {x=22, y=24, z=22} - if newpos == nil then - return - end - mcl_structures.place_schematic(newpos, path, rotation or "random", nil, true, nil, temple_placement_callback, pr) -end - -local registered_structures = {} - ---[[ Returns a table of structure of the specified type. -Currently the only valid parameter is "stronghold". -Format of return value: -{ - { pos = , generated= }, -- first structure - { pos = , generated= }, -- second structure - -- and so on -} - -TODO: Implement this function for all other structure types as well. -]] -function mcl_structures.get_registered_structures(structure_type) - if registered_structures[structure_type] then - return table.copy(registered_structures[structure_type]) - else - return {} - end -end - --- Register a structures table for the given type. The table format is the same as for --- mcl_structures.get_registered_structures. -function mcl_structures.register_structures(structure_type, structures) - registered_structures[structure_type] = structures -end - -local function dir_to_rotation(dir) - local ax, az = math.abs(dir.x), math.abs(dir.z) - if ax > az then - if dir.x < 0 then - return "270" - end - return "90" - end - if dir.z < 0 then - return "180" - end - return "0" -end - --- Debug command -minetest.register_chatcommand("spawnstruct", { - params = "desert_temple | desert_well | igloo | witch_hut | boulder | ice_spike_small | ice_spike_large | fossil | end_exit_portal | end_exit_portal_open | end_gateway_portal | end_portal_shrine | nether_portal | dungeon", - description = S("Generate a pre-defined structure near your position."), - privs = {debug = true}, - func = function(name, param) - local player = minetest.get_player_by_name(name) - if not player then return end - local pos = player:get_pos() - if not pos then return end - pos = vector.round(pos) - local dir = minetest.yaw_to_dir(player:get_look_horizontal()) - local rot = dir_to_rotation(dir) - local pr = PseudoRandom(pos.x+pos.y+pos.z) - local errord = false - local message = S("Structure placed.") - if param == "desert_temple" then - mcl_structures.generate_desert_temple(pos, rot, pr) - elseif param == "desert_well" then - mcl_structures.generate_desert_well(pos, rot) - elseif param == "igloo" then - mcl_structures.generate_igloo(pos, rot, pr) - elseif param == "witch_hut" then - mcl_structures.generate_witch_hut(pos, rot, pr) - elseif param == "boulder" then - mcl_structures.generate_boulder(pos, rot, pr) - elseif param == "fossil" then - mcl_structures.generate_fossil(pos, rot, pr) - elseif param == "ice_spike_small" then - mcl_structures.generate_ice_spike_small(pos, rot, pr) - elseif param == "ice_spike_large" then - mcl_structures.generate_ice_spike_large(pos, rot, pr) - elseif param == "end_exit_portal" then - mcl_structures.generate_end_exit_portal(pos, rot, pr) - elseif param == "end_exit_portal_open" then - mcl_structures.generate_end_exit_portal_open(pos, rot, pr) - elseif param == "end_gateway_portal" then - mcl_structures.generate_end_gateway_portal(pos, rot, pr) - elseif param == "end_portal_shrine" then - mcl_structures.generate_end_portal_shrine(pos, rot, pr) - elseif param == "dungeon" and mcl_dungeons and mcl_dungeons.spawn_dungeon then - mcl_dungeons.spawn_dungeon(pos, rot, pr) - elseif param == "nether_portal" and mcl_portals and mcl_portals.spawn_nether_portal then - mcl_portals.spawn_nether_portal(pos, rot, pr, name) - elseif param == "" then - message = S("Error: No structure type given. Please use “/spawnstruct ”.") - errord = true - else - message = S("Error: Unknown structure type. Please use “/spawnstruct ”.") - errord = true - end - minetest.chat_send_player(name, message) - if errord then - minetest.chat_send_player(name, S("Use /help spawnstruct to see a list of avaiable types.")) - end - end -}) diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.de.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.de.tr deleted file mode 100644 index 3245b934cc..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.de.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Erzeugt ein vordefiniertes Gebäude in Ihrer Nähe. -Structure placed.=Gebäude platziert. -Error: No structure type given. Please use “/spawnstruct ”.=Fehler: Kein Gebäudetyp angegeben. Bitte benutzen Sie „/spawnstruct “. -Error: Unknown structure type. Please use “/spawnstruct ”.=Fehler: Unbekannter Gebäudetyp. Bitte benutzen Sie „/spawnstruct “. -Use /help spawnstruct to see a list of avaiable types.=Benutzen Sie „/help spawnstruct“, um eine Liste der vorhandenen Typen zu sehen. diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr deleted file mode 100644 index d73d81466d..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Genere una estructura predefinida cerca de su posición. -Structure placed.=Estructura colocada. -Error: No structure type given. Please use “/spawnstruct ”.=Error: no se especifica ningún tipo de estructura. Utilice "/spawnstruct ". -Error: Unknown structure type. Please use “/spawnstruct ”.=Error: tipo de estructura desconocido. Utilice "/spawnstruct ". -Use /help spawnstruct to see a list of avaiable types.=Utiliza "/help spawnstruct" para ver una lista de los tipos disponibles. diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr deleted file mode 100644 index 56b3c3ae0d..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Générez une structure prédéfinie près de votre position. -Structure placed.=Structure placée. -Village built. WARNING: Villages are experimental and might have bugs.=Village construit. AVERTISSEMENT: les villages sont expérimentaux et peuvent avoir des bogues. -Error: No structure type given. Please use “/spawnstruct ”.=Erreur: Aucun type de structure indiqué. Veuillez utiliser "/spawnstruct ". -Error: Unknown structure type. Please use “/spawnstruct ”.=Erreur: Type de structure inconnu. Veuillez utiliser "/spawnstruct ". -Use /help spawnstruct to see a list of avaiable types.=Utilisez /help spawnstruct pour voir une liste des types disponibles. diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.pl.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.pl.tr deleted file mode 100644 index a0a1c69f2a..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.pl.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Wygeneruj predefiniowaną strukturę nieopodal twojej pozycji. -Structure placed.=Struktura postawiona. -Village built. WARNING: Villages are experimental and might have bugs.=Wioska zbudowana. UWAGA: Wioski są eksperymentalne i mogą występować błędy. -Error: No structure type given. Please use “/spawnstruct ”.=Błąd: Nie podano typu struktury. Użyj "/spawnstruct ". -Error: Unknown structure type. Please use “/spawnstruct ”.=Błąd: Nieznany typ struktury. Użyj "/spawnstruct ". -Use /help spawnstruct to see a list of avaiable types.=Użyj /help spawnstruct aby zobaczyć listę dostępnych typów. - diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.ru.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.ru.tr deleted file mode 100644 index 248de695ce..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.ru.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Генерирует поблизости заранее определённое строение. -Structure placed.=Строение размещено. -Village built. WARNING: Villages are experimental and might have bugs.=Деревня построена. ВНИМАНИЕ: Деревни экспериментальны и могут содержать ошибки. -Error: No structure type given. Please use “/spawnstruct ”.=Ошибка: Не задан тип строения. Пожалуйста, используйте “/spawnstruct <тип>”. -Error: Unknown structure type. Please use “/spawnstruct ”.=Ошибка: Неизвестный тип строения. Пожалуйста, используйте “/spawnstruct <тип>”. -Use /help spawnstruct to see a list of avaiable types.=Используйте /help spawnstruct, чтобы увидеть список доступных типов. diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.zh_TW.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.zh_TW.tr deleted file mode 100644 index 49796e5209..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.zh_TW.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=在你的位置附近生成一個預定義的結構。 -Structure placed.=結構已生成。 -Village built. WARNING: Villages are experimental and might have bugs.=村莊已生成。警告:村莊是實驗性的,可能會有錯誤。 -Error: No structure type given. Please use “/spawnstruct ”.=錯誤:未提供結構類型。請使用「/spawnstruct <種類>」。 -Error: Unknown structure type. Please use “/spawnstruct ”.=錯誤:未知結構類型。請使用「/spawnstruct <種類>」。 -Use /help spawnstruct to see a list of avaiable types.=使用「/help spawnstruct」以查看可用結構列表。 diff --git a/mods/MAPGEN/mcl_structures/locale/template.txt b/mods/MAPGEN/mcl_structures/locale/template.txt deleted file mode 100644 index 76f85c4c9b..0000000000 --- a/mods/MAPGEN/mcl_structures/locale/template.txt +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.= -Structure placed.= -Village built. WARNING: Villages are experimental and might have bugs.= -Error: No structure type given. Please use “/spawnstruct ”.= -Error: Unknown structure type. Please use “/spawnstruct ”.= -Use /help spawnstruct to see a list of avaiable types.= diff --git a/mods/MAPGEN/mcl_structures/mod.conf b/mods/MAPGEN/mcl_structures/mod.conf deleted file mode 100644 index 3150c7cec0..0000000000 --- a/mods/MAPGEN/mcl_structures/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -name = mcl_structures -author = Wuzzy -description = Structures for MCL2 -depends = mcl_loot diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder.mts deleted file mode 100644 index 0f4aa6daa510c40c1d9111ac9fcd54e8fc0d90ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87 zcmeYb3HD`RVPFQ~`ii`I1||mP#LOZFk=*2*_~iVeRIA+l;^NBW{G_Cu)QUOD2?+@) o42*6DX)Tuw%+!u7-6z))^g38FNb*%8!x2{@bv6cuv@6_(08OnMNdN!< diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder_small.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_boulder_small.mts deleted file mode 100644 index 8340a9fe3bdf251d5fa20130aa603d3098356e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59 zcmeYb3HD`RVPIllW?-sMt!H3l5Xnu>iBHZiO0~+(FD|Z3&QD6pNv)WZoN$2eRilE5 Oh?7z`GedG6t1kf7!x4f2 diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_temple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_temple.mts deleted file mode 100644 index 79a58637b9a9959bf06f1186a4eb65bb143614cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1460 zcmah`3sjP482*hmXK0uemKIRU=`vc>w1$>l%xc0qscmW)BK&0v{PzENAyd|<+0snZ zv`!XUX{oiDqcAlPPk1++smp6=X_|@}X@LkcJG*qw+TL@%^PKncJkR@mAJxa33d{zu zz#;%E_&@-20V@uZO=m(dNJbc37Q%zLAYk!c4L~st!N8*TYBO^P2ZDIPz_NE8HUtN; zA!aB-4rahCkPEWtOg4j0he6iAk(mrQV!A_kOGbFp4hVS$=zpz2hr)Rv4A^{l0$B0i z))36#9t45K|5RWzg8sGuEN29QL4=2pnQ!6$B>5nl4MhUzw>%z~N1i^w8V-nnOo)rn z!(b3W!eKCs&ESCu`OlO-lTTlB`f=&dfdf$)!x`~ud27tKJN9pQ(E-Wio92*Ti6oy( zUMX7rR#(6dcGPue)4eixeRH1uz2Zw0C+JLQ?CH==L_9v(*Tz02MCB(r7|xHaxwEVS z0~=#=2U+x4oRugJJjb)E*gN%Gn|Zud7OMW11}O*!8>Qdmq4_Y7*H^6Dy8t_dE8ANLicW8`xGB30QtBE@|aV+hTqgxp1SN+mP_%~;n8(Q|Llz%p& zy}Yu(!?x}9<)vbcd4>S!trFus`nL7Pp*2}AQ31br8T5fY@y~vzX#4h-Kl`}tYNvKv z(StCyZaKetz3kJ&x3ffR=_xziW(_(wd^TB!?;x#p;2HuiK!ztR`97!gmMaer;!49C ziPbL42MfuIn>%%!nsqAhOht=+G%!_t-9OfG)x0YL^!D_T62Zlo*sYcIYnvt-?`c!j z4x%%;Z^nEtaGoA4Y)W|Xn3ZgPix!z|iPVLMc9M374(LZWF3y%zo{A1oEje!>1*#lV zcNjRKy}VUoW0gde}-6abq2~c0I>*;Ob#|N!|Fe-pe8fH=KLyNfS+60aj!BH5F1R z@7)OK(f#Ngg0+Q7we;&`Q8JSM-#9k0$=kHL4Q2?G2UqhtC~cw)gL=z{qgg4T~~4#2H@(G zsgw-th?o*=RJgzBZeN)_nT0hMH0%$N`IO^iT$7r4**fBPxy#W%5lw6{EQYA7V}FfO zh)@X5xTx(g)+OcsXe;1vJ8_2YAG!n00@F}m>bzdjNIR|v`czZcwM;qQXuQ; z7Tw(7hJ_SYb5u`vk~yjv2LPKLc_b%Ofc3;ltTe*_@1h^Ae}Ezv8M8iVzLcb#!rVPn TD=IRY^xu#hyR8c!w(I`@-rmB0 diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_well.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_desert_well.mts deleted file mode 100644 index 60cb373ad06499963d5aa101bfa53a9744c92802..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeYb3HD`RVPIuoXJD;|03b&wH#sLhIlm~?syHz(rMM(NFO@+OBvxFKm|0Y8Rh*NU z6pxT%1`0BW!S$3UmZTQNr{(0AXXd3dh@y!X=a&{Gr&i2KPB_3QaZp8gqJVuuQ*w%! zvc#gm8@U9as2u9TZ-4u>DbJYK~g=kcDCU^zbDBRdz#a diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_exit_portal.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_exit_portal.mts deleted file mode 100644 index bc24f800a6de0e4265fdbe08808c9720061b8490..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeYb3HD`RVPI!qWnixd0U(1pF|&w4FgH0TJ~c1J3W(#2OY-wl83aH=$@xX8R!ONT zMfu6u3}PUWg8ZVA#GGO)2o2H$5iiLvO3p|vwgS`f<%u~t6?67Zy32Jyful9}cJci1 z`4Nsmt5cGn$8;pf|C=(Y>x^$sU)L+^RXm2rEqVhjdOw~yd0eDy%Dic&uPyg1I8yyH zO~3W?FE<7=#tl0-et5I*%~5yCuvOaK+coXSeq%5FGkVh6GdgztnH3o08erZh5UT|M Dl|EWe diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_gateway_portal.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_gateway_portal.mts deleted file mode 100644 index 24b06a1c8feb879c7480ccaacebb07c0fa405ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109 zcmeYb3HD`RVPIxpWniuc0U(n(F|&w4AU8QDJ~_WA)ha19r6@l+n?VXBQjlL%l9*F$ z1)<~96H8Ld6Dup`Bqua5xv{Z0q#HLWGBXPcNzbpcSmCbt`t|FFD!X(v85s6$WNQKd D{xKuw diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_portal_room_simple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_end_portal_room_simple.mts deleted file mode 100644 index 73c327ce73e9ea7c6d3f375b843f5f3fb35e6db1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmeYb3HD`RVc=!pVBoEX0tQY7;oRh$_~iVeRIB2W{JhkpqRixM2Ij=fA_o47g2cSk zVymRYqWH9aM(xYC@&vc&k}{L-T2R0c(mXmJTpM={U{AO+;W42sV$ElDk6kjA5g zK?WpQkY7}im{V+(nwJ7)$EOt~=B6?T!0k**O)1I;x=kD;lAE7YT##6vmkP2J!l;<@ zc3L-IvjUInLecH}zg;)C+IS+xkY}}-ZSTel9y?ds%(>nA|5fA9k2Cl8P5Jk8LHFmg zZ!d>`D+F`(D?|*gJ3ExvzHEfakHk%J&>LbDN!W z^5wM~)2d|l{rVqi|pEMgGOP0oo=&M!)}O3KemjZezSPtLBGGq>N9?|=da z!*Oo)|F6GCi>_EwkfFFnS)g&-m83HtD!i&Qx3vn$`yG1p%-($8|KuJ+U)jqtIf_AV nA5P8HRDUI{#I(2Ain;sl%~b*WZ?nDWoSd>~Pa&g7uBti!IgvKg diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_3.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_3.mts deleted file mode 100644 index 17e6a615d87580d711ef4623cd1f6164be40cf66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171 zcmV;c095}?R8vg=1ONp91po(se}8{}00IC5VQF#z6K!K`Ut@1_WjbPSZe?F$Y;R+0 zc$}S2I~Kqo2#ZT5@5}XDpepzq8lH#&0{|#yiWZe_=qE=dywLy8(a!$-$TJ{tx#~96 zPA_hL-ZEol_MAgR+=-ZnKG8TU7;fO4_!R7JRF)cb-aNHzV_}U9^>bAbc#_L*T0y3a Zg?tm-Cr~*_(Nv%Zv7yV~@c<;bD`WFHNS*)y diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_4.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_fossil_skull_4.mts deleted file mode 100644 index c3be1676eb169ef84b5b9203fe032c7a28064324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 157 zcmV;O0Al}5R8vg=1ONvB1pozqe}8{}00ICLZDVX-V{dY0I%02bWnW@!Z)0l!17T@$ zc$}S2TMmFA3@bl;abK@*+#}oSz{D0Ev!zS`1Mx71DXfndvv$q|dAt428=1RXzGmqr z?q~V;4}}+m4nUUe4cd{@{OO&)iZdVKln72KhZ_j%!KPD8tLcG1D%t diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_large.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_large.mts deleted file mode 100644 index 75b0865574c57052ad219dfa9153aa7e10818d54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmeYb3HD`RVPIv@Wnith#{%jxfTE%zP>g|zfjKd=h(S0vIVV0jzbMtJATc>RH6=bX zIkjTW+sT1^2LuFMcFvK0`#ol_ce9zTl`Z|l*oBT9**|~&1MwH%6ck&|JYn)Yu$&nHVINnW diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_small.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ice_spike_small.mts deleted file mode 100644 index 7407c8f72b5ec9c330a2b88f4dfed43f355d315f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmV;H0BQeCR8vg=1ONvB2ml9ve}83bZhwCO0ssSHX>tG)ZDVX-V{dY0I&fiQYh`3# zX=7!0oMT`B14ah=0Y*4P<|E6~(mwpQ6VD@T8$>m=Y)20lbanLdAN}KxR%YS?_GIa* z2LX`odWimd()8H_NqY#F0fT~>iR?(QK6{vUnC)1#!`uQBBga0n{YP$ij)Fk}09r*V E0VJF}<^TWy diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_basement.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_basement.mts deleted file mode 100644 index c2a774e78276a64af756aa0cd43a0e33cc16b413..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 537 zcmeYb3HD`RVc=w7Wnixd0S0~s;oRh$_~iVeRIB2W{JhkpqRixM1}Q9p$wi6D*{LZE z%!!#r3=&urn3DtXPjLy*<;7OTIf+T}#RWyB$*JY}`9MS9=I11)q@)%xNP`4mia~miRSSSs z1C0lI4P;9R#5+Kfa;%C{Q-FRfDo8DC&yY);A!uV;=ixUD!<=SpnJQ9)@OgFUF_?cnFT{4Tu zxP4aU@|C~0*a+V(Iy=dR+h9-fhVMa7zeQf-XK(-fFnWvau`=s1mYQyq7pD2yYe7C=egC@5KMaR|Zhi9hFk|5VZMr$<`2x-FO}{@g F9{^Sq++6?w diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_top.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_igloo_top.mts deleted file mode 100644 index e3705236e497348663f2acc0202607ae49b09e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeYb3HD`RVc=w7V_>fb0|pKT=ETe*2BF;KocQGYqExHmy!`T{oc!c$24Rp`Qht7R zu@#uiNXP8FG|j^f^s3e`20KuMX*UliD@O7dFk;biAg!BR>>$_ z22qfb^8EZ9tMZJ@lGOO*#G-=K5(aUweW@ux>rzwVi-0&OzoaBTmq7$Wq9nhdV$RW! zXubmq9L(RX%);XzZCYugW_9*df0&nRFN2_jvb%gRds?9}qgVvD+S8(Aulw9`{1>b^ zAh~|`aqoBj=T6W18@Kq^qdLv%_T&$>k(R~x6a_=sXT69rVVgDQRlpOu(4g%rwyc$U byXV{0>bCifiD6Ic8`sKbO8b2ZPoDz-v~q(u diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_witch_hut.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_witch_hut.mts deleted file mode 100644 index ee5f967312d2ac472f8afa895c5fba3d14f92f74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 363 zcmeYb3HD`RVc=w7V_>fb10b6@F|&w4F*i9UzPJR)EVcqu@x=v2rOBz~`S~gF`K2YP zMGVq-lrZpuB$M-tQmsmgQd1d(;ar3<3<4m*wA8%h)M6_z1+g``C^4-hGcP^9Brz!` z)e4o%AO;2eK>X9G%q7*Py`RD){!} z^?y~LXD$-6ifW(AvqMSpK)S|(LsR-+&bgYRtE@Kbb4JSRRR-Y}&fg??4aIN9n@rl< zHz#}b((0?$+rLzuyn8)zW!Uqmh2Q1-HY6YT)%1f!Jyk9w*tRav^X$=|ZN_)ZmtO9E cxWdV(ZCT~2gPhYtKNSZWEO^KyX;iik0QUu!xc~qF diff --git a/mods/MISC/findbiome/README.md b/mods/MISC/findbiome/README.md deleted file mode 100644 index 04c63199a4..0000000000 --- a/mods/MISC/findbiome/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Minetest mod: findbiome - -## Description -This is a mod to help with mod/game development for Minetest. -It adds a command (“findbiome”) to find a biome nearby and teleport you to it -and another command (“listbiomes”) to list biomes. - -Version: 1.0.1 - -## Known limitations -There's no guarantee you will always find the biome, even if it exists in the world. -This can happen if the biome is very obscure or small, but usually you should be -able to find the biome. - -If the biome could not be found, just move to somewhere else and try again. - -## Authors -- paramat (MIT License) -- Wuzzy (MIT License) - -See license.txt for license information. - -This mod is based on the algorithm of the "spawn" mod from Minetest Game 5.0.0. diff --git a/mods/MISC/findbiome/init.lua b/mods/MISC/findbiome/init.lua deleted file mode 100644 index 8560d1607e..0000000000 --- a/mods/MISC/findbiome/init.lua +++ /dev/null @@ -1,320 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -local mod_biomeinfo = minetest.get_modpath("biomeinfo") -local mg_name = minetest.get_mapgen_setting("mg_name") -local water_level = tonumber(minetest.get_mapgen_setting("water_level")) - --- Calculate the maximum playable limit -local mapgen_limit = tonumber(minetest.get_mapgen_setting("mapgen_limit")) -local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) -local playable_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0) - --- Parameters -------------- - --- Resolution of search grid in nodes. -local res = 64 --- Number of points checked in the square search grid (edge * edge). -local checks = 128 * 128 - --- End of parameters --------------------- - --- Direction table - -local dirs = { - {x = 0, y = 0, z = 1}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = -1}, - {x = 1, y = 0, z = 0}, -} - --- Returns true if pos is within the world boundaries -local function is_in_world(pos) - return not (math.abs(pos.x) > playable_limit or math.abs(pos.y) > playable_limit or math.abs(pos.z) > playable_limit) -end - --- Checks if pos is within the biome's boundaries. If it isn't, places pos inside the boundaries. -local function adjust_pos_to_biome_limits(pos, biome_id) - local bpos = table.copy(pos) - local biome_name = minetest.get_biome_name(biome_id) - local biome = minetest.registered_biomes[biome_name] - if not biome then - minetest.log("error", "[findbiome] adjust_pos_to_biome_limits non-existing biome!") - return bpos, true - end - local axes = {"y", "x", "z"} - local out_of_bounds = false - for a=1, #axes do - local ax = axes[a] - local min, max - if biome[ax.."_min"] then - min = biome[ax.."_min"] - else - min = -playable_limit - end - if biome[ax.."_max"] then - max = biome[ax.."_max"] - else - max = playable_limit - end - min = tonumber(min) - max = tonumber(max) - if bpos[ax] < min then - out_of_bounds = true - bpos[ax] = min - if max-min > 16 then - bpos[ax] = math.max(bpos[ax] + 8, -playable_limit) - end - end - if bpos[ax] > max then - out_of_bounds = true - bpos[ax] = max - if max-min > 16 then - bpos[ax] = math.min(bpos[ax] - 8, playable_limit) - end - end - end - return bpos, out_of_bounds -end - --- Find the special default biome -local function find_default_biome() - local all_biomes = minetest.registered_biomes - local biome_count = 0 - for b, biome in pairs(all_biomes) do - biome_count = biome_count + 1 - end - -- Trivial case: No biomes registered, default biome is everywhere. - if biome_count == 0 then - local y = minetest.get_spawn_level(0, 0) - if not y then - y = 0 - end - return { x = 0, y = y, z = 0 } - end - local pos = {} - -- Just check a lot of random positions - -- It's a crappy algorithm but better than nothing. - for i=1, 100 do - pos.x = math.random(-playable_limit, playable_limit) - pos.y = math.random(-playable_limit, playable_limit) - pos.z = math.random(-playable_limit, playable_limit) - local biome_data = minetest.get_biome_data(pos) - if biome_data and minetest.get_biome_name(biome_data.biome) == "default" then - return pos - end - end - return nil -end - -local function find_biome(pos, biomes) - pos = vector.round(pos) - -- Pos: Starting point for biome checks. This also sets the y co-ordinate for all - -- points checked, so the suitable biomes must be active at this y. - - -- Initial variables - - local edge_len = 1 - local edge_dist = 0 - local dir_step = 0 - local dir_ind = 1 - local success - local spawn_pos - local biome_ids - - -- Get next position on square search spiral - local function next_pos() - if edge_dist == edge_len then - edge_dist = 0 - dir_ind = dir_ind + 1 - if dir_ind == 5 then - dir_ind = 1 - end - dir_step = dir_step + 1 - edge_len = math.floor(dir_step / 2) + 1 - end - - local dir = dirs[dir_ind] - local move = vector.multiply(dir, res) - - edge_dist = edge_dist + 1 - - return vector.add(pos, move) - end - - -- Position search - local function search() - local attempt = 1 - while attempt < 3 do - for iter = 1, checks do - local biome_data = minetest.get_biome_data(pos) - -- Sometimes biome_data is nil - local biome = biome_data and biome_data.biome - for id_ind = 1, #biome_ids do - local biome_id = biome_ids[id_ind] - pos = adjust_pos_to_biome_limits(pos, biome_id) - local spos = table.copy(pos) - if biome == biome_id then - local good_spawn_height = pos.y <= water_level + 16 and pos.y >= water_level - local spawn_y = minetest.get_spawn_level(spos.x, spos.z) - if spawn_y then - spawn_pos = {x = spos.x, y = spawn_y, z = spos.z} - elseif not good_spawn_height then - spawn_pos = {x = spos.x, y = spos.y, z = spos.z} - elseif attempt >= 2 then - spawn_pos = {x = spos.x, y = spos.y, z = spos.z} - end - if spawn_pos then - local _,outside = adjust_pos_to_biome_limits(spawn_pos, biome_id) - if is_in_world(spawn_pos) and not outside then - return true - end - end - end - end - - pos = next_pos() - end - attempt = attempt + 1 - end - return false - end - local function search_v6() - if not mod_biomeinfo then return - false - end - for iter = 1, checks do - local found_biome = biomeinfo.get_v6_biome(pos) - for i = 1, #biomes do - local searched_biome = biomes[i] - if found_biome == searched_biome then - local spawn_y = minetest.get_spawn_level(pos.x, pos.z) - if spawn_y then - spawn_pos = {x = pos.x, y = spawn_y, z = pos.z} - if is_in_world(spawn_pos) then - return true - end - end - end - end - - pos = next_pos() - end - - return false - end - - if mg_name == "v6" then - success = search_v6() - else - -- Table of suitable biomes - biome_ids = {} - for i=1, #biomes do - local id = minetest.get_biome_id(biomes[i]) - if not id then - return nil, false - end - table.insert(biome_ids, id) - end - success = search() - end - return spawn_pos, success - -end - -local mods_loaded = false -minetest.register_on_mods_loaded(function() - mods_loaded = true -end) - --- Regiver chat commands -do - minetest.register_chatcommand("findbiome", { - description = S("Find and teleport to biome"), - params = S(""), - privs = { debug = true, teleport = true }, - func = function(name, param) - if not mods_loaded then - return false - end - local player = minetest.get_player_by_name(name) - if not player then - return false, S("No player.") - end - local pos = player:get_pos() - local invalid_biome = true - if mg_name == "v6" then - if not mod_biomeinfo then - return false, S("Not supported. The “biomeinfo” mod is required for v6 mapgen support!") - end - local biomes = biomeinfo.get_active_v6_biomes() - for b=1, #biomes do - if param == biomes[b] then - invalid_biome = false - break - end - end - else - if param == "default" then - local biome_pos = find_default_biome() - if biome_pos then - player:set_pos(biome_pos) - return true, S("Biome found at @1.", minetest.pos_to_string(biome_pos)) - else - return false, S("No biome found!") - end - end - local id = minetest.get_biome_id(param) - if id then - invalid_biome = false - end - end - if invalid_biome then - return false, S("Biome does not exist!") - end - local biome_pos, success = find_biome(pos, {param}) - if success then - player:set_pos(biome_pos) - return true, S("Biome found at @1.", minetest.pos_to_string(biome_pos)) - else - return false, S("No biome found!") - end - end, - }) - - minetest.register_chatcommand("listbiomes", { - description = S("List all biomes"), - params = "", - privs = { debug = true }, - func = function(name, param) - if not mods_loaded then - return false - end - local biomes - local b = 0 - if mg_name == "v6" then - if not mod_biomeinfo then - return false, S("Not supported. The “biomeinfo” mod is required for v6 mapgen support!") - end - biomes = biomeinfo.get_active_v6_biomes() - b = #biomes - else - biomes = {} - for k,v in pairs(minetest.registered_biomes) do - table.insert(biomes, k) - b = b + 1 - end - end - if b == 0 then - return true, S("No biomes.") - else - table.sort(biomes) - for b=1, #biomes do - minetest.chat_send_player(name, biomes[b]) - end - return true - end - end, - }) -end diff --git a/mods/MISC/findbiome/license.txt b/mods/MISC/findbiome/license.txt deleted file mode 100644 index a466aabdc3..0000000000 --- a/mods/MISC/findbiome/license.txt +++ /dev/null @@ -1,24 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2018 paramat - -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. - -For more details: -https://opensource.org/licenses/MIT diff --git a/mods/MISC/findbiome/locale/findbiome.de.tr b/mods/MISC/findbiome/locale/findbiome.de.tr deleted file mode 100644 index d62332eaf3..0000000000 --- a/mods/MISC/findbiome/locale/findbiome.de.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Ein Biom finden und hinteleportieren -= -No player.=Kein Spieler -Biome does not exist!=Biom existiert nicht! -Biome found at @1.=Biom gefunden bei @1. -No biome found!=Kein Biom gefunden! -List all biomes=Alle Biome auflisten -No biomes.=Keine Biome. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Nicht unterstützt. Die Mod „biomeinfo“ wird für Unterstützung des v6-Kartengenerators benötigt. diff --git a/mods/MISC/findbiome/locale/findbiome.fr.tr b/mods/MISC/findbiome/locale/findbiome.fr.tr deleted file mode 100644 index 0fc6aa5780..0000000000 --- a/mods/MISC/findbiome/locale/findbiome.fr.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Rechercher et se téléporter sur le biome -= -No player.=Aucun joueur. -Biome does not exist!=Le biome n'existe pas! -Biome found at @1.=Biome trouvé à @1. -No biome found!=Aucun biome trouvé! -List all biomes=Lister tous les biomes -No biomes.=Aucun biomes. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Non supporté. Le mod «biomeinfo» est requis pour le support de mapgen v6! diff --git a/mods/MISC/findbiome/locale/findbiome.pl.tr b/mods/MISC/findbiome/locale/findbiome.pl.tr deleted file mode 100644 index bc25b57584..0000000000 --- a/mods/MISC/findbiome/locale/findbiome.pl.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Znajdź i teleportuj do biomu -= -No player.=Brak gracza. -Biome does not exist!=Biom nie istnieje! -Biome found at @1.=Nie znaleziono biomu w @1. -No biome found!=Nie znaleziono biomu! -List all biomes=Lista biomów. -No biomes.=Brak biomów. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Nie wspierane. Aby wspierać generator map v6 wymagany jest mod "biomeinfo"! diff --git a/mods/MISC/findbiome/locale/findbiome.ru.tr b/mods/MISC/findbiome/locale/findbiome.ru.tr deleted file mode 100644 index c37371820f..0000000000 --- a/mods/MISC/findbiome/locale/findbiome.ru.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Найти и телепортироваться к биому -=<биом> -No player.=Нет игрока. -Biome does not exist!=Биом не существует! -Biome found at @1.=Биом найден в @1. -No biome found!=Биом не найден! -List all biomes=Список всех биомов -No biomes.=Нет биомов. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Не поддерживается. Для поддержки мэпгена v6 требуется мод “biomeinfo”! diff --git a/mods/MISC/findbiome/locale/findbiome.zh_TW.tr b/mods/MISC/findbiome/locale/findbiome.zh_TW.tr deleted file mode 100644 index d84abda867..0000000000 --- a/mods/MISC/findbiome/locale/findbiome.zh_TW.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=找尋和傳送至生態域 -=<生態域> -No player.=沒有玩家。 -Biome does not exist!=生態域不存在! -Biome found at @1.=生態域在 @1 找到。 -No biome found!=生態域找不到! -List all biomes=列出所有生態域 -No biomes.=沒有生態域。 -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=不支援。「biomeinfo」MOD要求v6世界生成器! diff --git a/mods/MISC/findbiome/locale/template.txt b/mods/MISC/findbiome/locale/template.txt deleted file mode 100644 index f3dcc19583..0000000000 --- a/mods/MISC/findbiome/locale/template.txt +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome= -= -No player.= -Biome does not exist!= -Biome found at @1.= -No biome found!= -List all biomes= -No biomes.= -Not supported. The “biomeinfo” mod is required for v6 mapgen support!= diff --git a/mods/MISC/findbiome/mod.conf b/mods/MISC/findbiome/mod.conf deleted file mode 100644 index 918f18436b..0000000000 --- a/mods/MISC/findbiome/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -name = findbiome -author = paramat -description = Add commands to list and find biomes -optional_depends = biomeinfo diff --git a/mods/MISC/mcl_commands/LICENSE b/mods/MISC/mcl_commands/LICENSE deleted file mode 100644 index 2c4afabdb6..0000000000 --- a/mods/MISC/mcl_commands/LICENSE +++ /dev/null @@ -1,117 +0,0 @@ -CC0 1.0 Universal - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator and -subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for the -purpose of contributing to a commons of creative, cultural and scientific -works ("Commons") that the public can reliably and without fear of later -claims of infringement build upon, modify, incorporate in other works, reuse -and redistribute as freely as possible in any form whatsoever and for any -purposes, including without limitation commercial purposes. These owners may -contribute to the Commons to promote the ideal of a free culture and the -further production of creative, cultural and scientific works, or to gain -reputation or greater distribution for their Work in part through the use and -efforts of others. - -For these and/or other purposes and motivations, and without any expectation -of additional consideration or compensation, the person associating CC0 with a -Work (the "Affirmer"), to the extent that he or she is an owner of Copyright -and Related Rights in the Work, voluntarily elects to apply CC0 to the Work -and publicly distribute the Work under its terms, with knowledge of his or her -Copyright and Related Rights in the Work and the meaning and intended legal -effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not limited -to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, communicate, - and translate a Work; - - ii. moral rights retained by the original author(s) and/or performer(s); - - iii. publicity and privacy rights pertaining to a person's image or likeness - depicted in a Work; - - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - - v. rights protecting the extraction, dissemination, use and reuse of data in - a Work; - - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation thereof, - including any amended or successor version of such directive); and - - vii. other similar, equivalent or corresponding rights throughout the world - based on applicable law or treaty, and any national implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention of, -applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and -unconditionally waives, abandons, and surrenders all of Affirmer's Copyright -and Related Rights and associated claims and causes of action, whether now -known or unknown (including existing as well as future claims and causes of -action), in the Work (i) in all territories worldwide, (ii) for the maximum -duration provided by applicable law or treaty (including future time -extensions), (iii) in any current or future medium and for any number of -copies, and (iv) for any purpose whatsoever, including without limitation -commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes -the Waiver for the benefit of each member of the public at large and to the -detriment of Affirmer's heirs and successors, fully intending that such Waiver -shall not be subject to revocation, rescission, cancellation, termination, or -any other legal or equitable action to disrupt the quiet enjoyment of the Work -by the public as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason be -judged legally invalid or ineffective under applicable law, then the Waiver -shall be preserved to the maximum extent permitted taking into account -Affirmer's express Statement of Purpose. In addition, to the extent the Waiver -is so judged Affirmer hereby grants to each affected person a royalty-free, -non transferable, non sublicensable, non exclusive, irrevocable and -unconditional license to exercise Affirmer's Copyright and Related Rights in -the Work (i) in all territories worldwide, (ii) for the maximum duration -provided by applicable law or treaty (including future time extensions), (iii) -in any current or future medium and for any number of copies, and (iv) for any -purpose whatsoever, including without limitation commercial, advertising or -promotional purposes (the "License"). The License shall be deemed effective as -of the date CC0 was applied by Affirmer to the Work. Should any part of the -License for any reason be judged legally invalid or ineffective under -applicable law, such partial invalidity or ineffectiveness shall not -invalidate the remainder of the License, and in such case Affirmer hereby -affirms that he or she will not (i) exercise any of his or her remaining -Copyright and Related Rights in the Work or (ii) assert any associated claims -and causes of action with respect to the Work, in either case contrary to -Affirmer's express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - - b. Affirmer offers the Work as-is and makes no representations or warranties - of any kind concerning the Work, express, implied, statutory or otherwise, - including without limitation warranties of title, merchantability, fitness - for a particular purpose, non infringement, or the absence of latent or - other defects, accuracy, or the present or absence of errors, whether or not - discoverable, all to the greatest extent permissible under applicable law. - - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without limitation - any person's Copyright and Related Rights in the Work. Further, Affirmer - disclaims responsibility for obtaining any necessary consents, permissions - or other rights required for any use of the Work. - - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to this - CC0 or use of the Work. - -For more information, please see - - diff --git a/mods/MISC/mcl_commands/alias.lua b/mods/MISC/mcl_commands/alias.lua deleted file mode 100644 index 5c9ee9f3ce..0000000000 --- a/mods/MISC/mcl_commands/alias.lua +++ /dev/null @@ -1,30 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -local function register_chatcommand_alias(alias, cmd) - local def = minetest.chatcommands[cmd] - minetest.register_chatcommand(alias, def) -end - -local function rename_chatcommand(newname, cmd) - local def = minetest.chatcommands[cmd] - minetest.register_chatcommand(newname, def) - minetest.unregister_chatcommand(cmd) -end - -if minetest.settings:get_bool("mcl_builtin_commands_overide", true) then - register_chatcommand_alias("?", "help") - register_chatcommand_alias("pardon", "unban") - rename_chatcommand("stop", "shutdown") - register_chatcommand_alias("tell", "msg") - register_chatcommand_alias("w", "msg") - register_chatcommand_alias("tp", "teleport") - rename_chatcommand("clear", "clearinv") - - minetest.register_chatcommand("banlist", { - description = S("List bans"), - privs = minetest.chatcommands["ban"].privs, - func = function(name) - return true, S("Ban list: @1", minetest.get_ban_list()) - end, - }) -end \ No newline at end of file diff --git a/mods/MISC/mcl_commands/init.lua b/mods/MISC/mcl_commands/init.lua deleted file mode 100644 index a287c29269..0000000000 --- a/mods/MISC/mcl_commands/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -local modpath = minetest.get_modpath(minetest.get_current_modname()) - -dofile(modpath.."/kill.lua") -dofile(modpath.."/setblock.lua") -dofile(modpath.."/seed.lua") -dofile(modpath.."/summon.lua") -dofile(modpath.."/say.lua") -dofile(modpath.."/list.lua") -dofile(modpath.."/sound.lua") - -dofile(modpath.."/alias.lua") \ No newline at end of file diff --git a/mods/MISC/mcl_commands/kill.lua b/mods/MISC/mcl_commands/kill.lua deleted file mode 100644 index 5478e6bf69..0000000000 --- a/mods/MISC/mcl_commands/kill.lua +++ /dev/null @@ -1,43 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -local function handle_kill_command(suspect, victim) - if minetest.settings:get_bool("enable_damage") == false then - return false, S("Players can't be killed right now, damage has been disabled.") - end - local victimref = minetest.get_player_by_name(victim) - if victimref == nil then - return false, S("Player @1 does not exist.", victim) - elseif victimref:get_hp() <= 0 then - if suspect == victim then - return false, S("You are already dead") - else - return false, S("@1 is already dead", victim) - end - end - -- DIE! - victimref:set_hp(0, {_mcl_type = "out_of_world"}) - -- Log - if not suspect == victim then - minetest.log("action", string.format("%s killed %s using /kill", suspect, victim)) - else - minetest.log("action", string.format("%s committed suicide using /kill", victim)) - end - return true -end - -if minetest.registered_chatcommands["kill"] then - minetest.unregister_chatcommand("kill") -end -minetest.register_chatcommand("kill", { - params = S("[]"), - description = S("Kill player or yourself"), - privs = {server=true}, - func = function(name, param) - if(param == "") then - -- Selfkill - return handle_kill_command(name, name) - else - return handle_kill_command(name, param) - end - end, -}) diff --git a/mods/MISC/mcl_commands/list.lua b/mods/MISC/mcl_commands/list.lua deleted file mode 100644 index 5661454b4c..0000000000 --- a/mods/MISC/mcl_commands/list.lua +++ /dev/null @@ -1,14 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_chatcommand("list", { - description = S("Show who is logged on"), - params = "", - privs = {}, - func = function(name) - local players = "" - for _, player in ipairs(minetest.get_connected_players()) do - players = players..player:get_player_name().."\n" - end - minetest.chat_send_player(name, players) - end -}) \ No newline at end of file diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.de.tr b/mods/MISC/mcl_commands/locale/mcl_commands.de.tr deleted file mode 100644 index 68d2675179..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.de.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Spieler können jetzt nicht getötet werden, der Schaden wurde deaktiviert. -Player @1 does not exist.=Spieler @1 existiert nicht. -You are already dead=Sie sind schon tot -@1 is already dead=@1 ist schon tot -@1 committed suicide.=@1 beging Selbstmord. -@1 was killed by @2.=@1 wurde von @2 getötet. -[]=[] -Kill player or yourself=Spieler oder sich selbst töten -Can use /say=Kann „/say“ benutzen -= -Send a message to every player=Nachricht an alle Spieler senden -Invalid usage, see /help say.=Falsche Benutzung, siehe „/help say“. -,, =,, -Set node at given position=Node (Block) an der gegebenen Position platzieren -Invalid node=Unültiger Node -@1 spawned.=@1 gespawnt. -Invalid parameters (see /help setblock)=Ungültige Parameter (siehe „/help setblock”) -List bans=Bannliste anzeigen -Ban list: @1=Bannliste: @1 -Show who is logged on=Anzeigen, wer eingeloggt ist -Displays the world seed=Den Seed der Welt anzeigen -Only peaceful mobs allowed!=Nur friedliche Mobs erlaubt! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.es.tr b/mods/MISC/mcl_commands/locale/mcl_commands.es.tr deleted file mode 100644 index 91b21eb91c..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Los jugadores no pueden ser asesinados en este momento, el daño ha sido desactivado. -Player @1 does not exist.=El jugador @1 no existe. -You are already dead=Ya estas muerto -@1 is already dead=@1 ya esta muerto -@1 committed suicide.=@1 se suicidó. -@1 was killed by @2.=@1 fue asesinado por @2. -[]=[] -Kill player or yourself=Mata al jugador o a ti mismo -Can use /say=Puedes usar /say -= -Send a message to every player=Envía un mensaje a todos los jugadores -Invalid usage, see /help=Uso no válido, (Revisa el comando "/help say") -,, =,, -Set node at given position=Establecer nodo en la posición dada -Invalid node=Nodo no válido -@1 spawned.=@1 generado. -Invalid parameters (see /help setblock)=Parámetros no válidos (Revisa el comando "/help setblock") -List bans=Lista de prohibiciones -Ban list: @1=Lista de baneados: @1 -Show who is logged on=Mostrar quién ha iniciado sesión -Displays the world seed=Muestra la semilla del mundo -Only peaceful mobs allowed!=¡Solo se permiten animales pacíficos! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr b/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr deleted file mode 100644 index a655368bf4..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Les joueurs ne peuvent pas être tués pour le moment, les dégâts ont été désactivés. -Player @1 does not exist.=Le joueur @1 n'existe pas. -You are already dead=Tu es déjà mort -@1 is already dead=@1 est déjà mort -@1 committed suicide.=@1 s'est suicidé. -@1 was killed by @2.=@1 a été tué par @2. -[]=[] -Kill player or yourself=Tuez un joueur ou vous-même -Can use /say=Peut utiliser /say -= -Send a message to every player=Envoyez un message à chaque joueur -Invalid usage, see /help say.=Utilisation non valide, voir /help say. -,, =,, -Set node at given position=Placer le noeud à une position donnée -Invalid node=Noeud non valide -@1 spawned.=@1 est apparu. -Invalid parameters (see /help setblock)=Paramètres invalides (voir /help setblock) -List bans=Liste des interdictions -Ban list: @1=Liste d'interdiction: @1 -Show who is logged on=Afficher qui est connecté -Displays the world seed=Affiche la graine du monde -Only peaceful mobs allowed!=Seuls les mobs pacifiques sont autorisées! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.pl.tr b/mods/MISC/mcl_commands/locale/mcl_commands.pl.tr deleted file mode 100644 index 4a3ad181cf..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.pl.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Gracze nie mogą się zabić, obrażenia zostały wyłączone. -Player @1 does not exist.=Gracz @1 nie istnieje. -You are already dead=Już nie żyjesz -@1 is already dead=@1 już nie żyje -@1 committed suicide.=@1 popełniła samobójstwo. -@1 was killed by @2.=@1 została zabita przez @2. -[]=[] -Kill player or yourself=Zabij gracza lub siebie -Can use /say=Może używać /say -= -Send a message to every player=Wyślij wiadomość do każdego gracza -Invalid usage, see /help say.=Niepoprawne użyciu, zobacz /help say. -,, =,, -Set node at given position=Ustaw node w danej pozycji -Invalid node=Niepoprawny node -@1 spawned.=@1 przywołany. -Invalid parameters (see /help setblock)=Niepoprawne parametry (zobacz /help setblock) -List bans=Pokaż zbanowanych -Ban list: @1=Lista zbanowanych: @1 -Show who is logged on=Pokaż zalogowanych -Displays the world seed=Wyświetl ziarno świata -Only peaceful mobs allowed!=Tylko pokojowe moby dozwolone! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.ru.tr b/mods/MISC/mcl_commands/locale/mcl_commands.ru.tr deleted file mode 100644 index fb700cfab8..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.ru.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Игроки не могут быть убиты прямо сейчас, урон отключён. -Player @1 does not exist.=Игрок @1 не существует. -You are already dead=Вы уже мертвы -@1 is already dead=@1 уже мертв(а) -@1 committed suicide.=@1 совершил(а) роскомнадзор. -@1 was killed by @2.=@1 был(а) убит(а) @2. -[]=[<имя>] -Kill player or yourself=Убить игрока или себя -Can use /say=Можно использовать /say -=<сообщение> -Send a message to every player=Отправляет сообщение всем игрокам -Invalid usage, see /help say.=Недопустимое использование, см. /help say. -,, =,, <ИмяБлока> -Set node at given position=Устанавливает блок в заданной позиции -Invalid node=Неправильный блок -@1 spawned.=@1 возродился(ась). -Invalid parameters (see /help setblock)=Недопустимые параметры (см. /help setblock) -List bans=Список банов -Ban list: @1=Бан-лист: @1 -Show who is logged on=Показывает, кто подключён -Displays the world seed=Показывает значение зерна мира (seed) -Only peaceful mobs allowed!=Включены только мирные мобы! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.zh_TW.tr b/mods/MISC/mcl_commands/locale/mcl_commands.zh_TW.tr deleted file mode 100644 index 0f3885cfe7..0000000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.zh_TW.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=玩家現在不能被殺死,傷害已被禁用。 -Player @1 does not exist.=玩家 @1 不存在。 -You are already dead=你已經死了 -@1 is already dead=@1 已經死了。 -@1 committed suicide.=@1 自殺了。 -@1 was killed by @2.=@1 被 @2 殺死了。 -[]=[<名字>] -Kill player or yourself=殺死玩家或自己 -Can use /say=可以使用 /say -=<信息> -Send a message to every player=廣播信息給每個玩家 -Invalid usage, see /help say.=無效用法,見 /help say -,, =,, <方塊名稱> -Set node at given position=在指定位置放置指定方塊 -Invalid node=無效方塊 -@1 spawned.=@1 已生成。 -Invalid parameters (see /help setblock)=無效參數(見 /help setblock) -List bans=查看封鎖列表 -Ban list: @1=封鎖列表:@1 -Show who is logged on=列出在線玩家 -Displays the world seed=顯示種子碼 -Only peaceful mobs allowed!=只允許和平生物! diff --git a/mods/MISC/mcl_commands/locale/template.txt b/mods/MISC/mcl_commands/locale/template.txt deleted file mode 100644 index 5b4370b8fb..0000000000 --- a/mods/MISC/mcl_commands/locale/template.txt +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.= -Player @1 does not exist.= -You are already dead= -@1 is already dead= -@1 committed suicide.= -@1 was killed by @2.= -[]= -Kill player or yourself= -Can use /say= -= -Send a message to every player= -Invalid usage, see /help say.= -,, = -Set node at given position= -Invalid node= -@1 spawned.= -Invalid parameters (see /help setblock)= -List bans= -Ban list: @1= -Show who is logged on= -Displays the world seed= -Only peaceful mobs allowed!= diff --git a/mods/MISC/mcl_commands/mod.conf b/mods/MISC/mcl_commands/mod.conf deleted file mode 100644 index dba1305646..0000000000 --- a/mods/MISC/mcl_commands/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -name = mcl_commands -author = Wuzzy -description = MCL2 commands -depends = mcl_colors diff --git a/mods/MISC/mcl_commands/say.lua b/mods/MISC/mcl_commands/say.lua deleted file mode 100644 index 9fd53c174e..0000000000 --- a/mods/MISC/mcl_commands/say.lua +++ /dev/null @@ -1,18 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_privilege("announce", { - description = S("Can use /say"), - give_to_singleplayer = false, -}) -minetest.register_chatcommand("say", { - params = S(""), - description = S("Send a message to every player"), - privs = {announce=true}, - func = function(name, param) - if not param then - return false, S("Invalid usage, see /help say.") - end - minetest.chat_send_all(("["..name.."] "..param)) - return true - end, -}) \ No newline at end of file diff --git a/mods/MISC/mcl_commands/seed.lua b/mods/MISC/mcl_commands/seed.lua deleted file mode 100644 index 2ebb044748..0000000000 --- a/mods/MISC/mcl_commands/seed.lua +++ /dev/null @@ -1,10 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_chatcommand("seed", { - description = S("Displays the world seed"), - params = "", - privs = {}, - func = function(name) - minetest.chat_send_player(name, "Seed: ["..minetest.colorize(mcl_colors.GREEN, ""..minetest.get_mapgen_setting("seed")).."]") - end -}) \ No newline at end of file diff --git a/mods/MISC/mcl_commands/setblock.lua b/mods/MISC/mcl_commands/setblock.lua deleted file mode 100644 index 95acdd35dd..0000000000 --- a/mods/MISC/mcl_commands/setblock.lua +++ /dev/null @@ -1,22 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_chatcommand("setblock", { - params = S(",, "), - description = S("Set node at given position"), - privs = {give=true, interact=true}, - func = function(name, param) - local p = {} - local nodestring - p.x, p.y, p.z, nodestring = param:match("^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+) +(.+)$") - p.x, p.y, p.z = tonumber(p.x), tonumber(p.y), tonumber(p.z) - if p.x and p.y and p.z and nodestring then - local itemstack = ItemStack(nodestring) - if itemstack:is_empty() or not minetest.registered_nodes[itemstack:get_name()] then - return false, S("Invalid node") - end - minetest.set_node(p, {name=nodestring}) - return true, S("@1 spawned.", nodestring) - end - return false, S("Invalid parameters (see /help setblock)") - end, -}) \ No newline at end of file diff --git a/mods/MISC/mcl_commands/sound.lua b/mods/MISC/mcl_commands/sound.lua deleted file mode 100644 index 5833676f3b..0000000000 --- a/mods/MISC/mcl_commands/sound.lua +++ /dev/null @@ -1,43 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -minetest.register_chatcommand("playsound",{ - params = S(" "), --TODO:add source - description = S("Play a sound. Arguments: : name of the sound. : Target."), - privs = {server = true}, - func = function(name, rawparams) - local P = {} - local i = 0 - for str in string.gmatch(rawparams, "([^ ]+)") do - i = i + 1 - P[i] = str - end - local params = {} - if P[1] == tostring(P[1]) then - params.name = P[1] - else - return false, S("Sound name is invalid!") --TODO: add mc chat message - end - if P[2] == tostring(P[2]) and minetest.player_exists(P[2]) then - params.target = P[2] - else - return false, S("Target is invalid!!") - end - -- if P[3] then - -- params.pos = nil --TODO:position - -- else - -- params.pos = nil - -- end - -- if P[4] == tonumber(P[4]) then - -- params.gain = P[4] - -- else - -- params.gain = 1.0 - -- end - -- if P[5] == tonumber(P[5]) then - -- params.pitch = P[5] - -- else - -- params.pitch = 1.0 - -- end - minetest.sound_play({name = params.name}, {to_player = params.target}, true) --TODO: /stopsound - return true - end, -}) \ No newline at end of file diff --git a/mods/MISC/mcl_commands/summon.lua b/mods/MISC/mcl_commands/summon.lua deleted file mode 100644 index 118d3e23b9..0000000000 --- a/mods/MISC/mcl_commands/summon.lua +++ /dev/null @@ -1,15 +0,0 @@ -local S = minetest.get_translator(minetest.get_current_modname()) - -local orig_func = minetest.registered_chatcommands["spawnentity"].func -local cmd = table.copy(minetest.registered_chatcommands["spawnentity"]) -cmd.func = function(name, param) - local ent = minetest.registered_entities[param] - if minetest.settings:get_bool("only_peaceful_mobs", false) and ent and ent.is_mob and ent.type == "monster" then - return false, S("Only peaceful mobs allowed!") - else - local bool, msg = orig_func(name, param) - return bool, msg - end -end -minetest.unregister_chatcommand("spawnentity") -minetest.register_chatcommand("summon", cmd) \ No newline at end of file diff --git a/mods/MISC/mcl_privs/init.lua b/mods/MISC/mcl_privs/init.lua index ddca9f9460..de08183747 100644 --- a/mods/MISC/mcl_privs/init.lua +++ b/mods/MISC/mcl_privs/init.lua @@ -9,12 +9,8 @@ minetest.register_on_joinplayer(function(player) local meta = player:get_meta() if meta:get_int("mcl_privs:fly_changed") == 1 then return end - local fly = nil - if minetest.is_creative_enabled(name) then - fly = true - end local player_privs = minetest.get_player_privs(name) - player_privs.fly = fly + player_privs.fly = nil minetest.set_player_privs(name, player_privs) end) @@ -43,4 +39,4 @@ for _, action in pairs({"grant", "revoke"}) do end end end) -end \ No newline at end of file +end diff --git a/mods/PLAYER/mcl_criticals/init.lua b/mods/PLAYER/mcl_criticals/init.lua deleted file mode 100644 index 27d09abb20..0000000000 --- a/mods/PLAYER/mcl_criticals/init.lua +++ /dev/null @@ -1,30 +0,0 @@ -mcl_damage.register_modifier(function(obj, damage, reason) - if reason.type == "player" then - local hitter = reason.direct - if mcl_sprint.is_sprinting(hitter) then - obj:add_velocity(hitter:get_velocity()) - elseif (hitter:get_velocity() or hitter:get_player_velocity()).y < 0 then - local pos = mcl_util.get_object_center(obj) - minetest.add_particlespawner({ - amount = 15, - time = 0.1, - minpos = {x=pos.x-0.5, y=pos.y-0.5, z=pos.z-0.5}, - maxpos = {x=pos.x+0.5, y=pos.y+0.5, z=pos.z+0.5}, - minvel = {x=-0.1, y=-0.1, z=-0.1}, - maxvel = {x=0.1, y=0.1, z=0.1}, - minacc = {x=0, y=0, z=0}, - maxacc = {x=0, y=0, z=0}, - minexptime = 1, - maxexptime = 2, - minsize = 1.5, - maxsize = 1.5, - collisiondetection = false, - vertical = false, - texture = "mcl_particles_crit.png^[colorize:#bc7a57:127", - }) - minetest.sound_play("mcl_criticals_hit", {object = obj}) - -- the minecraft wiki is actually wrong about a crit dealing 150% damage, see minecraft source code - return damage + math.random(0, math.floor(damage * 1.5 + 2)) - end - end -end, -100) diff --git a/mods/PLAYER/mcl_criticals/mod.conf b/mods/PLAYER/mcl_criticals/mod.conf deleted file mode 100644 index 5b0b91330f..0000000000 --- a/mods/PLAYER/mcl_criticals/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = mcl_criticals -depends = mcl_damage diff --git a/mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.0.ogg b/mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.0.ogg deleted file mode 100644 index 8184d10768996a9faac5fcf83e29dc0f5c7445b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 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 diff --git a/mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.1.ogg b/mods/PLAYER/mcl_criticals/sounds/mcl_criticals_hit.1.ogg deleted file mode 100644 index aed998162308c4764cb2998cf700cf4abe1ae2b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12936 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 R9JjpLI<;hq0oMP}{tuJDua5u# diff --git a/mods/PLAYER/mcl_player_init/init.lua b/mods/PLAYER/mcl_player_init/init.lua deleted file mode 100644 index 52967a4412..0000000000 --- a/mods/PLAYER/mcl_player_init/init.lua +++ /dev/null @@ -1,4 +0,0 @@ -minetest.register_on_joinplayer(function(player) - -- Settable hand - player:get_inventory():set_size("hand", 1) -end) diff --git a/mods/PLAYER/mcl_player_init/mod.conf b/mods/PLAYER/mcl_player_init/mod.conf deleted file mode 100644 index d7a86c4384..0000000000 --- a/mods/PLAYER/mcl_player_init/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = mcl_player_init -author = Wuzzy -description = Initialize player gameplay stuff that are neither model nor HUD-related