From 58456db0abbbc87669ae424fb852a1d35360e0ac Mon Sep 17 00:00:00 2001 From: D00Med Date: Mon, 3 Jul 2017 08:09:07 +1000 Subject: [PATCH] Stuff --- minetest.conf | 1 + .../textures/3d_armor_boots_steel.png | Bin 11504 -> 664 bytes .../textures/3d_armor_boots_steel_preview.png | Bin 896 -> 353 bytes .../textures/3d_armor_chestplate_steel.png | Bin 11507 -> 2822 bytes .../3d_armor_chestplate_steel_preview.png | Bin 2333 -> 1473 bytes .../textures/3d_armor_helmet_steel.png | Bin 11499 -> 877 bytes .../3d_armor_helmet_steel_preview.png | Bin 810 -> 384 bytes .../textures/3d_armor_leggings_steel.png | Bin 2823 -> 1351 bytes .../3d_armor_leggings_steel_preview.png | Bin 1317 -> 875 bytes mods/bows/arrow.lua | 21 +- mods/default/textures/default_acacia_wood.png | Bin 180 -> 201 bytes mods/default/textures/default_apple.png | Bin 464 -> 461 bytes mods/default/textures/default_book.png | Bin 192 -> 227 bytes .../default/textures/default_book_written.png | Bin 220 -> 234 bytes mods/default/textures/default_clay_brick.png | Bin 1151 -> 277 bytes mods/default/textures/default_copper_lump.png | Bin 177 -> 375 bytes mods/default/textures/default_diamond.png | Bin 497 -> 370 bytes .../textures/default_diamond_block.png | Bin 545 -> 734 bytes mods/default/textures/default_gold_lump.png | Bin 165 -> 345 bytes mods/default/textures/default_gravel.png | Bin 509 -> 649 bytes mods/default/textures/default_iron_lump.png | Bin 160 -> 340 bytes .../textures/default_iron_lump_old.png | Bin 0 -> 264 bytes .../default_lava_flowing_animated.png | Bin 645 -> 531 bytes .../textures/default_lava_source_animated.png | Bin 974 -> 2261 bytes .../default/textures/default_mese_crystal.png | Bin 637 -> 292 bytes .../default/textures/default_mineral_coal.png | Bin 141 -> 248 bytes .../textures/default_mineral_copper.png | Bin 134 -> 345 bytes .../textures/default_mineral_diamond.png | Bin 262 -> 384 bytes .../default/textures/default_mineral_gold.png | Bin 126 -> 300 bytes .../default/textures/default_mineral_iron.png | Bin 172 -> 363 bytes .../default/textures/default_mineral_mese.png | Bin 546 -> 281 bytes mods/default/textures/default_stone.png | Bin 669 -> 591 bytes .../textures/default_tool_bronzeshovel.png | Bin 325 -> 361 bytes .../textures/default_tool_diamondshovel.png | Bin 325 -> 369 bytes .../textures/default_tool_meseshovel.png | Bin 323 -> 372 bytes .../textures/default_tool_steelshovel.png | Bin 304 -> 332 bytes .../textures/default_tool_stoneshovel.png | Bin 309 -> 332 bytes .../textures/default_tool_woodshovel.png | Bin 326 -> 358 bytes .../default_water_source_animated.png | Bin 1136 -> 683 bytes mods/experience/init.lua | 16 +- .../farming/textures/farming_baked_potato.png | Bin 321 -> 312 bytes mods/farming/textures/farming_bread.png | Bin 552 -> 339 bytes mods/farming/textures/farming_carrot.png | Bin 591 -> 334 bytes mods/farming/textures/farming_carrot_1.png | Bin 159 -> 161 bytes mods/farming/textures/farming_carrot_2.png | Bin 212 -> 178 bytes mods/farming/textures/farming_carrot_3.png | Bin 245 -> 189 bytes mods/farming/textures/farming_carrot_4.png | Bin 287 -> 208 bytes mods/farming/textures/farming_carrot_5.png | Bin 287 -> 240 bytes mods/farming/textures/farming_carrot_6.png | Bin 322 -> 259 bytes mods/farming/textures/farming_carrot_7.png | Bin 322 -> 270 bytes mods/farming/textures/farming_carrot_8.png | Bin 322 -> 274 bytes mods/farming/textures/farming_carrot_gold.png | Bin 532 -> 327 bytes mods/farming/textures/farming_cookie.png | Bin 566 -> 357 bytes mods/farming/textures/farming_potato.png | Bin 252 -> 262 bytes mods/farming/textures/farming_wheat.png | Bin 241 -> 392 bytes mods/hyrule_mapgen/init.lua | 398 ++++-- mods/hyrule_mapgen/mapgen.lua | 74 +- mods/hyrule_mapgen/textures/default_stone.png | Bin 669 -> 749 bytes .../textures/hyrule_mapgen_boulder.png | Bin 0 -> 637 bytes .../textures/hyrule_mapgen_butterfly1.png | Bin 440 -> 484 bytes .../textures/hyrule_mapgen_butterfly2.png | Bin 448 -> 500 bytes .../textures/hyrule_mapgen_butterfly3.png | Bin 445 -> 547 bytes .../textures/hyrule_mapgen_chillshroom.png | Bin 0 -> 337 bytes .../textures/hyrule_mapgen_coconut.png | Bin 240 -> 370 bytes .../textures/hyrule_mapgen_dragonfly1.png | Bin 0 -> 322 bytes .../textures/hyrule_mapgen_dragonfly2.png | Bin 0 -> 328 bytes .../textures/hyrule_mapgen_dragonfly3.png | Bin 0 -> 333 bytes ...onfly.png => hyrule_mapgen_dragonfly4.png} | Bin .../textures/hyrule_mapgen_moldorm_stone.png | Bin 0 -> 354 bytes .../textures/hyrule_mapgen_octorock_stone.png | Bin 0 -> 375 bytes .../textures/hyrule_mapgen_rock2.png | Bin 0 -> 374 bytes .../textures/hyrule_mapgen_rushroom.png | Bin 0 -> 348 bytes .../textures/hyrule_mapgen_sunshroom.png | Bin 0 -> 344 bytes .../textures/hyrule_mapgen_wild_tree.png | Bin 591 -> 358 bytes .../textures/hyrule_mapgen_wild_tree_top.png | Bin 516 -> 487 bytes .../textures/hyrule_mapgen_wildberry.png | Bin 0 -> 353 bytes .../textures/hyrule_mapgen_wildberry_bush.png | Bin 0 -> 341 bytes .../textures/hyrule_mapgen_zapshroom.png | Bin 0 -> 306 bytes .../depends.txt | 0 mods/hyrule_weather/init.lua | 208 +++ .../textures/hyrule_weather_dust_1.png | Bin 0 -> 127 bytes .../textures/hyrule_weather_ice.png | Bin 0 -> 843 bytes .../textures/hyrule_weather_pollen_1.png} | Bin .../textures/hyrule_weather_pollen_2.png} | Bin .../textures/hyrule_weather_rain_1.png | Bin 0 -> 119 bytes .../textures/hyrule_weather_rain_2.png | Bin 0 -> 113 bytes .../textures/hyrule_weather_rain_3.png | Bin 0 -> 112 bytes .../textures/hyrule_weather_snow_1.png | Bin 0 -> 137 bytes .../textures/hyrule_weather_snow_2.png | Bin 0 -> 161 bytes mods/hyruletools/depends.txt | 5 +- mods/hyruletools/init.lua | 882 ++++++++----- mods/hyruletools/schematics/moldorms_lair.mts | Bin 0 -> 1795 bytes .../textures/hyruletools_beacon.png | Bin 0 -> 526 bytes .../textures/hyruletools_beacon_box.png | Bin 0 -> 183 bytes .../textures/hyruletools_beacon_boxb.png | Bin 0 -> 183 bytes .../textures/hyruletools_beacon_center.png | Bin 0 -> 20996 bytes .../textures/hyruletools_beacon_centerb.png | Bin 0 -> 21135 bytes .../textures/hyruletools_beaconb.png | Bin 0 -> 527 bytes .../textures/hyruletools_bombeffect.png | Bin 243 -> 471 bytes .../textures/hyruletools_climbing_gloves.png | Bin 0 -> 347 bytes .../textures/hyruletools_crest.png | Bin 0 -> 626 bytes .../textures/hyruletools_crest_block.png | Bin 0 -> 595 bytes .../textures/hyruletools_crest_block2.png | Bin 0 -> 1021 bytes .../textures/hyruletools_dungeon_spawner.png | Bin 0 -> 347 bytes .../textures/hyruletools_dungeon_spawner2.png | Bin 0 -> 447 bytes .../textures/hyruletools_firestack.png | Bin 351 -> 1066 bytes .../hyruletools_goddess_longsword.png | Bin 0 -> 751 bytes .../textures/hyruletools_goddess_sword.png | Bin 0 -> 778 bytes .../hyruletools_goddess_white_sword.png | Bin 0 -> 737 bytes .../textures/hyruletools_goron_tunic.png | Bin 1963 -> 2198 bytes .../textures/hyruletools_lantern.png | Bin 272 -> 376 bytes .../textures/hyruletools_lightning2.png | Bin 350 -> 1554 bytes .../hyruletools_mastersword_incomplete.png | Bin 0 -> 650 bytes .../textures/hyruletools_obsidian_sword.png | Bin 0 -> 744 bytes .../textures/hyruletools_swdbeam_light.png | Bin 308 -> 521 bytes .../textures/hyruletools_swdbeam_trail.png | Bin 632 -> 543 bytes .../textures/hyruletools_sword.png | Bin 849 -> 511 bytes .../textures/hyruletools_tool_obaxe.png | Bin 1085 -> 1076 bytes .../textures/hyruletools_zora_tunic.png | Bin 1979 -> 2186 bytes .../textures/mastersword_sword.png | Bin 826 -> 646 bytes .../textures/mastersword_sword_light.png | Bin 867 -> 882 bytes mods/lightning/init.lua | 63 +- mods/mana/init.lua | 8 +- .../mobs_animal/textures/mobs_cucco_chick.png | Bin 0 -> 4319 bytes mods/mobs_fairy/init.lua | 28 +- mods/mobs_loz/armos.lua | 2 +- mods/mobs_loz/biri.lua | 3 +- mods/mobs_loz/bongobongo.lua | 32 +- mods/mobs_loz/business_scrub.lua | 2 +- mods/mobs_loz/chuchu.lua | 2 +- mods/mobs_loz/darknut.lua | 2 +- mods/mobs_loz/deku_baba.lua | 9 +- mods/mobs_loz/deku_scrub.lua | 2 +- mods/mobs_loz/dodongo.lua | 39 +- mods/mobs_loz/ganon.lua | 64 +- mods/mobs_loz/goron.lua | 2 +- mods/mobs_loz/hiploop.lua | 2 +- mods/mobs_loz/keese.lua | 2 +- mods/mobs_loz/leever.lua | 2 +- mods/mobs_loz/madscrub.lua | 2 +- mods/mobs_loz/midna.lua | 40 +- mods/mobs_loz/mimic.lua | 4 +- mods/mobs_loz/models/zora_female.b3d | Bin 0 -> 83328 bytes .../models/{zora.b3d => zora_male.b3d} | Bin mods/mobs_loz/moldorm.lua | 73 +- mods/mobs_loz/octorock.lua | 26 +- mods/mobs_loz/peahat.lua | 4 +- mods/mobs_loz/redead.lua | 2 +- mods/mobs_loz/scrub.lua | 2 +- mods/mobs_loz/skulltula.lua | 2 +- mods/mobs_loz/stalchid.lua | 2 +- mods/mobs_loz/subrosian.lua | 2 +- mods/mobs_loz/tektite.lua | 4 +- mods/mobs_loz/textures/mobs_biri2.png | Bin 0 -> 1396 bytes mods/mobs_loz/textures/mobs_dekubaba2.png | Bin 0 -> 2203 bytes mods/mobs_loz/textures/mobs_great_moldorm.png | Bin 0 -> 709 bytes mods/mobs_loz/textures/mobs_octorock.png | Bin 1768 -> 1800 bytes mods/mobs_loz/textures/mobs_octorock2.png | Bin 1670 -> 1722 bytes mods/mobs_loz/textures/mobs_poe2.png | Bin 1560 -> 1559 bytes mods/mobs_loz/textures/mobs_poe3.png | Bin 1581 -> 1585 bytes mods/mobs_loz/textures/mobs_poe_soul.png | Bin 603 -> 264 bytes mods/mobs_loz/textures/mobs_zora_female.png | Bin 0 -> 4229 bytes .../{mobs_zora.png => mobs_zora_male.png} | Bin mods/mobs_loz/tingle.lua | 4 +- mods/mobs_loz/volvagia.lua | 32 +- mods/mobs_loz/wolfos.lua | 4 +- mods/mobs_loz/zol.lua | 4 +- mods/mobs_loz/zora.lua | 88 +- mods/mobs_npc/trader.lua | 24 +- mods/mobs_redo/api.lua | 1133 +++++++++-------- mods/mobs_redo/api.txt | 87 +- mods/mobs_redo/locale/tr.txt | 39 + mods/mobs_redo/mount.lua | 83 +- mods/mobs_redo/readme.MD | 4 +- mods/mobs_redo/spawner.lua | 18 +- mods/mobs_redo/textures/mobs_meat.png | Bin 408 -> 357 bytes mods/mobs_redo/textures/mobs_meat_raw.png | Bin 403 -> 357 bytes mods/moreplants/init.lua | 4 +- mods/noairblocks/init.lua | 230 ---- mods/noairblocks/readme.txt | 12 - mods/quartz/textures/quartz.png | Bin 199 -> 328 bytes mods/quartz/textures/quartz_crystal_full.png | Bin 199 -> 328 bytes mods/quartz/textures/quartz_ore.png | Bin 220 -> 362 bytes mods/sprint/init.lua | 2 +- mods/twilight/depends.txt | 2 +- mods/twilight/init.lua | 89 +- mods/vehicles_loz/api.lua | 455 +++++-- mods/vehicles_loz/init.lua | 109 +- mods/vehicles_loz/intllib.lua | 45 + mods/vehicles_loz/models/ship.b3d | Bin 0 -> 27219 bytes mods/vehicles_loz/models/vehicles_ship.png | Bin 0 -> 3404 bytes .../textures/vehicles_ship_inv.png | Bin 0 -> 287 bytes .../vehicles_loz/textures/vehicles_splash.png | Bin 0 -> 424 bytes mods/weather_pack/.gitignore | 4 - mods/weather_pack/README.md | 47 - mods/weather_pack/depends.txt | 1 - mods/weather_pack/description.txt | 1 - mods/weather_pack/dust.lua | 85 -- mods/weather_pack/init.lua | 14 - mods/weather_pack/mod.conf | 1 - mods/weather_pack/rain.lua | 186 --- mods/weather_pack/screenshot.png | Bin 30710 -> 0 bytes mods/weather_pack/skycolor.lua | 212 --- mods/weather_pack/snow.lua | 90 -- mods/weather_pack/sounds/weather_rain.ogg | Bin 202624 -> 0 bytes .../textures/weather_pack_rain_raindrop_1.png | Bin 195 -> 0 bytes .../textures/weather_pack_rain_raindrop_2.png | Bin 191 -> 0 bytes .../textures/weather_pack_rain_raindrop_3.png | Bin 192 -> 0 bytes .../textures/weather_pack_snow_snowflake1.png | Bin 118 -> 0 bytes .../textures/weather_pack_snow_snowflake2.png | Bin 117 -> 0 bytes mods/weather_pack/thunder.lua | 37 - mods/weather_pack/weather_core.lua | 175 --- mods/xdecor/crafts.lua | 2 +- mods/xdecor/nodes.lua | 2 +- 214 files changed, 2856 insertions(+), 2501 deletions(-) create mode 100644 mods/default/textures/default_iron_lump_old.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_boulder.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_chillshroom.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly1.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly2.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly3.png rename mods/hyrule_mapgen/textures/{hyrule_mapgen_dragonfly.png => hyrule_mapgen_dragonfly4.png} (100%) create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_moldorm_stone.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_octorock_stone.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_rock2.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_rushroom.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_sunshroom.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_wildberry.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_wildberry_bush.png create mode 100644 mods/hyrule_mapgen/textures/hyrule_mapgen_zapshroom.png rename mods/{noairblocks => hyrule_weather}/depends.txt (100%) create mode 100644 mods/hyrule_weather/init.lua create mode 100644 mods/hyrule_weather/textures/hyrule_weather_dust_1.png create mode 100644 mods/hyrule_weather/textures/hyrule_weather_ice.png rename mods/{weather_pack/textures/dust_dust1.png => hyrule_weather/textures/hyrule_weather_pollen_1.png} (100%) rename mods/{weather_pack/textures/dust_dust2.png => hyrule_weather/textures/hyrule_weather_pollen_2.png} (100%) create mode 100644 mods/hyrule_weather/textures/hyrule_weather_rain_1.png create mode 100644 mods/hyrule_weather/textures/hyrule_weather_rain_2.png create mode 100644 mods/hyrule_weather/textures/hyrule_weather_rain_3.png create mode 100644 mods/hyrule_weather/textures/hyrule_weather_snow_1.png create mode 100644 mods/hyrule_weather/textures/hyrule_weather_snow_2.png create mode 100644 mods/hyruletools/schematics/moldorms_lair.mts create mode 100644 mods/hyruletools/textures/hyruletools_beacon.png create mode 100644 mods/hyruletools/textures/hyruletools_beacon_box.png create mode 100644 mods/hyruletools/textures/hyruletools_beacon_boxb.png create mode 100644 mods/hyruletools/textures/hyruletools_beacon_center.png create mode 100644 mods/hyruletools/textures/hyruletools_beacon_centerb.png create mode 100644 mods/hyruletools/textures/hyruletools_beaconb.png create mode 100644 mods/hyruletools/textures/hyruletools_climbing_gloves.png create mode 100644 mods/hyruletools/textures/hyruletools_crest.png create mode 100644 mods/hyruletools/textures/hyruletools_crest_block.png create mode 100644 mods/hyruletools/textures/hyruletools_crest_block2.png create mode 100644 mods/hyruletools/textures/hyruletools_dungeon_spawner.png create mode 100644 mods/hyruletools/textures/hyruletools_dungeon_spawner2.png create mode 100644 mods/hyruletools/textures/hyruletools_goddess_longsword.png create mode 100644 mods/hyruletools/textures/hyruletools_goddess_sword.png create mode 100644 mods/hyruletools/textures/hyruletools_goddess_white_sword.png create mode 100644 mods/hyruletools/textures/hyruletools_mastersword_incomplete.png create mode 100644 mods/hyruletools/textures/hyruletools_obsidian_sword.png create mode 100644 mods/mobs_animal/textures/mobs_cucco_chick.png create mode 100644 mods/mobs_loz/models/zora_female.b3d rename mods/mobs_loz/models/{zora.b3d => zora_male.b3d} (100%) create mode 100644 mods/mobs_loz/textures/mobs_biri2.png create mode 100644 mods/mobs_loz/textures/mobs_dekubaba2.png create mode 100644 mods/mobs_loz/textures/mobs_great_moldorm.png create mode 100644 mods/mobs_loz/textures/mobs_zora_female.png rename mods/mobs_loz/textures/{mobs_zora.png => mobs_zora_male.png} (100%) create mode 100644 mods/mobs_redo/locale/tr.txt delete mode 100644 mods/noairblocks/init.lua delete mode 100644 mods/noairblocks/readme.txt create mode 100644 mods/vehicles_loz/intllib.lua create mode 100644 mods/vehicles_loz/models/ship.b3d create mode 100644 mods/vehicles_loz/models/vehicles_ship.png create mode 100644 mods/vehicles_loz/textures/vehicles_ship_inv.png create mode 100644 mods/vehicles_loz/textures/vehicles_splash.png delete mode 100644 mods/weather_pack/.gitignore delete mode 100644 mods/weather_pack/README.md delete mode 100644 mods/weather_pack/depends.txt delete mode 100644 mods/weather_pack/description.txt delete mode 100644 mods/weather_pack/dust.lua delete mode 100644 mods/weather_pack/init.lua delete mode 100644 mods/weather_pack/mod.conf delete mode 100644 mods/weather_pack/rain.lua delete mode 100644 mods/weather_pack/screenshot.png delete mode 100644 mods/weather_pack/skycolor.lua delete mode 100644 mods/weather_pack/snow.lua delete mode 100644 mods/weather_pack/sounds/weather_rain.ogg delete mode 100644 mods/weather_pack/textures/weather_pack_rain_raindrop_1.png delete mode 100644 mods/weather_pack/textures/weather_pack_rain_raindrop_2.png delete mode 100644 mods/weather_pack/textures/weather_pack_rain_raindrop_3.png delete mode 100644 mods/weather_pack/textures/weather_pack_snow_snowflake1.png delete mode 100644 mods/weather_pack/textures/weather_pack_snow_snowflake2.png delete mode 100644 mods/weather_pack/thunder.lua delete mode 100644 mods/weather_pack/weather_core.lua diff --git a/minetest.conf b/minetest.conf index 7781b94..bae03f3 100644 --- a/minetest.conf +++ b/minetest.conf @@ -18,3 +18,4 @@ weather_allow_abm = true enable_moreplants = true twilight = false 3d_leaves = false +mob_show_health = false \ No newline at end of file diff --git a/mods/3d_armor/textures/3d_armor_boots_steel.png b/mods/3d_armor/textures/3d_armor_boots_steel.png index 01bec64f601c424868f90a50fd37fef2fd1b1f5c..e1f829f7e2a13aab9e866a8e56b98819186a85d7 100644 GIT binary patch delta 639 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 Z;}fvWnZ0lV{WSmp002ovPDHLkV1g6#lN0~| delta 874 zcmV-w1C{*Y0)PjQBYy)&Nklge9xu2wSuc9&^SOPVljob~`Q?Bh2!bF8f*=TjAP9mW2!Dbg2*UrJt=fk5Ks;sQ8qBS;B-ZMFP_<=i~;iwki zbje(d#j)9J=(;OD8H)liIyQmV>qS*nR8_(4c4Ju<&ySs}dIMDhGMP;r z4hLRU;q<9T*nivG2KDzt~JGzM$@Z<4#Xb#>BfXCxOR#X-iF5_{_1T>98p@7flt3ALl45;ifG&IO+ zB7td|gu~rzZhef)X$L@dNkk$iSzf+|EX#CscJkS$pMURvTk8-GKQv&y`*xJcm*)v} zwqdi`SX<99J@G7O&W!``UVNUp=v%ZNY{9ZDRuXAmn;qxuGZTFG{nb03VXqd@(;Z?q z8t20KNp5ar(RH1fsZr)*mpCyz$cf=W=3|$bnHojcb#88Cxp01x*=U@e?ojPd(A*TH zu#*96mw%}j&rqpUu&fGob#4Ly4S;;Hgk@EDYUFY3b~{+RD2hUJQ?T{`O$)G+%<#hG zMNHG&e{)%;p`igS;0Ivow*=!az5d^IEl~Rm^!0XIuTGC)7zVcs29=7919y3Gxg=)h z-T+```Z-FaGJpM@$8NXq)hQ^7!YgwzmVUivtA8nA;K6>&?RFFHY@@ILeo{Bmq*80- zayd4)vH&y%HT-@*?d`3!A8KQ1@fVg8X>?uZ>Q9R`{t2B<&OSZDj&2Z%97od{={eek zVU+k_;X?pMo_qpDaZz7i&ygcxoKA^I-cJjt%s3sP#UK(k>oZqQ9?;TbWx( zl4HcfCx-y&J=#IJT&B6D8He4@;r3P(my=@yy$JzoGm#&k~7x?{;+W?rRNx59c z@As2TCIMJm-y)aGAxRRlECX;)gOAjWjjA{BFHGDlTgFWMoB#j-07*qoM6N<$f@L$T A;s5{u diff --git a/mods/3d_armor/textures/3d_armor_chestplate_steel.png b/mods/3d_armor/textures/3d_armor_chestplate_steel.png index 717ae8471cc6b4cdd7c06b4b4c2b46e02993ec7b..138d5cfc26ace5e9689226502c86992e6fb8558b 100644 GIT binary patch literal 2822 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 literal 11507 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 sc1DDs49=}p1*k?qpc<@?Jifnn5v$ zL?iL~+ShNyb6pzs2mx5OgC)c;iGtP@L87bHZdK{>TDub^hm|Q(N;D;|;~Jh@m!P3u zg<;FfUDi!cy|pY$+MOOj5TK-F!-&mIckCyMLZ(KWT=a}*^O28z3bZ!u;QfHnRtwK_ z@q8cO^NFHb6;cL#_H$q0-BUyah%}$9=7ce1cAwA6q07WMo|Fc#Fp2&GIiNuyCpvUSTAZoTbxq9`N^LTaM`mi=B8Wk zAW2e6Z8l6fWE>4K^sB#o8Q=QOP3*n>PNFa%@I91LJmKdb%fhKezH`%UZ#!*0fGI~Z zacV8HzE52vsvLoN5=MAmUmGcL9DyzkPpwOBc3Kn;BZNXqTz4(@w+JJLet$p^1VoNx zFfiRNW;U*4_QX6}Cquq_+ucNA#AGwzRHtBSdJ5MyCz9_6WLZXQbaWV&wMLrs`-AGC z5e5BzA7NR9LBJW?wipsfYt~Iq87g^xo+M3?Qql|qgb+W~{Iyy{md4e|pbS|g6=+DZ zoR(L^wj2YXJ&$@6(di9{LLb|z@yX9z%S9LdJog?s#y$HFnGmotfa$48)=!Od&9z_V z{5?AX!D^>Ntx-cN!zQZo^!p4ttL+}PZ4m@MpohJ5@-(YtQC(AA>e!V<_f5T-4c!r#7qE2T0$|MGkh%d%KqT^)AWay<_vO?WgpIY|`N0JvxW!66|egkazP z149tFYv&G>QrvUkFt+1RDpO2ZZ#0;knlg)<)-4P18m? z-;c?%oblEugEXPv?PCjpZ5h%?W5^(lre3chgkWN9ggfrq$MWhb>n6t-BxyyqIkejy z@;qmJtVMIgNY!+^L~BUWoYmD1#e<+)c7FMJml@!JAn;A7k);{S%PYijAEiq?$04ZI z@V$VjR>OB)lDJQ~meO?W${(?+aru3#>U18gAmto7{vVw!D_znrEd_` z>TI6yx#f-nL{Z3C-Dh@HRv9y&>#zS3v$L}ZA^7)Cyzf6$Bg>-T*s){$!IgiBl#=VO z`;tkSRybo}X@xMVQLojIQgP?q`waNovX$$v{}Q!&eJF9WthETjV_{)|b?eqquh;2x zI&?Z6YV|tTU-u*peYaxxmrBMs0M-i7i?|HoK zZC9_s2`t+@vqx*epS}HceCA^xXSLHaNgV{eIAgifyWjgQWRc@IE}m;M)`;+3i$<+x zR7*-ytJUcD`{w#8oU`T**76B!(Sv0>H0lwf<6}JcS6{@9U;QdakIi%8)1Jb={maMb z4-&8(WOYAm%bcW+;~)!3KgsFFDY}GGYb@JBm*$Z(f$uWbh;VI&*Qa$kWCqK!iXA2?1k7bquZWqFk>muPL_`7TSH z)Tp13!;rHmGCa>g=Q(MXQ)(!bCNE4TR7=xB7NLl*YPK^(^!W)#b^#2=Yr zY4B+4ZiErYBkw3vw?Nflji6@I?GDC&DPB`eD9Xq*}MPro;l#0n18SzTy)|m zdiM)1|20SJ42|QR_SYZ9S2?lA(`~LU8kV{FH<#ak7qQGZze3Xly@z>W=X2w3!{*A8)mrc_Pw~SOHmYbx?PqQmnyn08#InK7Nn*fI2ul>w*9RlB@R0?5R zJn6|7apMhNCQVIC7sqjU(vvUZ_~CmA!jQ$qMe6k$6BA?HcE{a6aQ?M_ZQG_62B?bt z>vY1UCR#2Tw;3yEnuW77|rvXS6%T|-uU|eaoYF) Z{{zXRS)Ax&9_Ro7002ovPDHLkV1ga7eoO!W diff --git a/mods/3d_armor/textures/3d_armor_chestplate_steel_preview.png b/mods/3d_armor/textures/3d_armor_chestplate_steel_preview.png index 0f3139232299494004955e87c6817c0c14cd2281..5fba04cdacc149a1b09ae31b28c039d52da1bc4f 100644 GIT binary patch delta 1456 zcmV;h1yA~&62S|QBYyx1a7bBm000XU000XU0RWnu7ytkTb4f%&RA}Dqm)%d3R~*Mb zq3S#lZ7nwBc|ngSh}-SP<#Hi}(44#7 zZhAaHFvMA`+Ze(ZKT09kgso&Ns*WkVDUKc>WL;ZpZ$+S(5T(Bpx#=Z9!( zsRxucD2|o!AR=ew(D(QE)6~?YL_mcQV#(?^w!FdMm|qiNv)Sm_TTRE_YI;0DdOSg` zZ?oA*bImCNEiCn)>Z(noa<)yt5x(3d)c)8ZGUQOYm@A5+_(WiZEY=Q&kxbG zb^(Ci-rgmgiS>|aFc?ny{eJv@{}Mw!r8n_jtboEmLfdH{sjJdhFBwp2@-|r_wk|ZQaO6yz*fh@}e0s#QF8j3l0 z!9cUqL4SAW2>`rZXS9_k_5*LIievYHwTw2swk z*4h&jv&w$`E1WbT_uv67~J&JmgQ0bn#2 z@@}g+$uJeF5LLvnqq%f;McK672dql6ea1hTz;9w=VitpAgOUQHxll7m?60vrOF`4x z1%FCQOP7c-PMy+rN8hlQXvO|I04*JT!(O8K z4ghYBg*2z>d}OF)KPx_`g1IW4`*-N@rIz$!`CiIOi@HlHL&j`DImUSAVYh z%B-lUIH`UJg+f$SRS^z{357zKOeUOCHv4ujQfyjJJPwU7mGR1s*Qu?($Kq5mWwrv! zYz5RbFK~aKBVJuFA$ndR#@oP2PzkA>+FbJLULT3%3c6Pe=sPj+%ERzWnLO-|)L-h1awOi~$R;~Ov* z?PTD}2!{DJ$hY$t8iBFEBPvTJ#wTZ~DKBPmG0xeKw{X#OpJ+UrSS-f9n}2^}h)fam z-XSZ$NI8nt+*(XI{PFA009Z^pSSq*i@2M{+w_0#yUt{p1axXZF3V8HT`RyC_F3GX2 zAWw^erE(i^8Qmw}yeDK-jB;s_B*7gsNYbPO~ z9mPTjj_*(|+mB9plIE3IEh#*)zpVc;(xF3#4jnpl=+L1<2mb-*yN@Gz3{TAf0000< KMNUMnLSTYIZ@BIN delta 2323 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 LmQsy^`KSK@gZPsv diff --git a/mods/3d_armor/textures/3d_armor_helmet_steel_preview.png b/mods/3d_armor/textures/3d_armor_helmet_steel_preview.png index a88ee19c55badc65d10890aa71307e0c9eaab16a..3c0c43966659e18b467de3bc54cfe9d596a80da7 100644 GIT binary patch delta 358 zcmV-s0h#`)27m*QBYyx1a7bBm000XU000XU0RWnu7ytkPGD$>1RA}Dq)3Iv8Kmf+^ ze?mcU2nn>QqJ%CTOZyx?frGPS-=SOgF2%WnPtfO36kMDnVvIw=4X){QK_N6qq)_;N zQ^@7+`!2~j)EJM)g}v@{Isha|f^l1f-5%*~i^((kUi)m^ntx0t&Ts4A)D_rlHULCX zR2dH7`2lgB0ZCcH&a2~c0UQ4G`~pDO?UiGm9}t`4+3v4aAc`W4+bYBN>7g8}DiNDw z`NrzheggmD5pxoB8eYZo0|4SY!}V{Q7qGj$5AV+I*&_Bou%Bh09!PiFvPk0sCeJW= z#(Gt~QyadR&tJ;tFHu{d@3kwB(qK3$JU<}p_E^kkOg}%I-;VHAPQj_~>6ZhrUM(xb z|HSLtdodV}iY9BgO(w5bOGHFOL_|bHL_|bHL`43*A0rrX4`|MGP5=M^07*qoM6N<$ Eg0CB;L;wH) delta 788 zcmV+v1MB>N1F8m)BYy(%NklX29oNu)TnQlv;o6$Pma zSb$VM1S~+JY!TwSutZ`{q$0rrLE8mHtf*8VMJ2Qqj-B}5Ozb#gkDZ&DxpywBMu-JY zadzBi{m#*=GiOFH!LPsEH&-efc%Fw+2G?~MjY96-`-T@6SAXdbLTa@?+1%V@y?lj& zSKz4ML!L;IB;lQRKM?;mKR2ns!a|9hlfxK6E(gXy;QNIAkSr6(Q%N)$5=8?FUIC>Q z!{LyeJ8|^+3e3)4Mz}7JVT^+@n#02m-L6j<4T+POR;x|9T&C4-qP0S4g;ts@%O)0Z zCIyl>LF<$>O@A?3Gmb`#q5++t%Xl>AsCR^vl0kS(!SjgY7!0_si!o;U4Ls}VI1c^e z9#5a{lB6kN7?RKDQA%+#mPDh7{YIUFH$%ZIkR&lmsf#I~(*&Jq8V7Yw#u57mdxYVD z!)^~D1WKg@hXM2R3oI`!lWE22X-u&=H+_N6KL3<{w||e6lHqVjoTMnFNRkwc!3aY> zmnUd;Ir95Bu0yd{WTsGHak+Fc8>rXoe0%3d!E<=y_3P&C@>|m%q3Z~uXw36Ulazcu zH~j{lJgHG$U+4YzDn@IKl#+J4LuL#Q9y}5NH*Q=rju5P^t>L;Zjw3L}@c40U`T{p^ zzKQF)Tz|c~$dFeWT8*8Dy8_^~SFf2$ zr9u$+NGZVp7+KkfX7XDrLIEX%Si%d#xXvMkH8EX(?T`U~e(eU+b~ SJq<_z0000?W3WchleJvVZgEy-C>b_xF3h_uBzM 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 diff --git a/mods/3d_armor/textures/3d_armor_leggings_steel_preview.png b/mods/3d_armor/textures/3d_armor_leggings_steel_preview.png index 0fc41009d9ce66698d7d51a16dc38be369f90842..73649e13a3cc419687ca13bb3cc3014fe7f62707 100644 GIT binary patch delta 852 zcmV-a1FQU{3hM@tB!3BTNLh0L01FcU01FcV0GgZ_0009WNklOt`>m_((VzIAFw^7ybi1=)w3Wc+i7KPKJ}W9+W`vVq$G#;nFBd z0--vvW!p_nR&78Ng9n^(`=M>!CSK;b?99F&^UO2ve1L|AhJS{JhK7cQhK7cQhK9y} zM#sMd&E3DS4-iWnBN&~e^l^dQ#x65=-?g0Ya3hD2i)Z&`I~3@`am&OK$9V8?57+~e z09?Nc*GBr4uj7^hc=h%}hc5yH@g6RZxLE53TSb>k=X(i82f1^5fz(1s`Na|rr-MfU z=sg)=tLRDs{(lt6ZtjrX1Xu$gU;51GM~B?TE|ETgT#DSrF8R`)ifP*t^bcP_2mz-? znH~;dSr*T;5Q#*{&OfI2WB_X&wu&x}yTd@d2gfZl5bq&h`s|-TarG7P;0bzW#SUKzR7?A})2-U>js0f=^^W9vBpTU$6YwUkC%O01YULCcCcCcEz4Mt-ZqiQ`9O2=RZeyQX1fWrYVHdh|D~X@1S% z#_O+)bD3pskTEO@-u>V>hY$ag7$5>l3*I|o6rO$NN$$VxhPbwVku*&agm*qUC7lH9 z+O@+>w_f0!r6NYi+dBw_pFB1vALl)^Qxdjw8? z@fAg$kR_HZInTv^z08|$y*EpsaPG$o#1KJ18^xDje^1?1h$zac?k?cZ4?Mu`tFGqn z|9F7_JoL!J+S;n+1dHkv8 zfB56xef)6xTc(pK0C|yf3L@>Z%Bmtw?AG)F0Pp=~tdvqX=MV+jn9chxfSH{mGoP&zptT~kc2j^-3ek}2 zr0s$z)a)KWYAsr;trL(NLs>NdRAoukG#CYQMJsADnc@PQB0#{e~3)R zBaAh;y2d*PVnHn4Ib2<1tYI=90deNDMG-Js6Kh8?7~-7AH4R2A)A6V+QXgRAzBdKR;Fk{X@#Aoz#2tV!jYrLx(hh4e;+=E%>ujS zwnG4nHh$#%+0y_lF70MG|KFygf0V+GJxg)niaA6;5GK=-i=zp~PgE9J2`(%*kf8Dp?!nXO% zw+x|8#ie@q*+NPoB7_i$G5*ZAlYpja(8e-LH%dv{f(2aTagCo1BL=0~D1`vpw4def zjYwLPJkMGO5wr*)1hm#@t=nS})GSSxY%lqCssRx}l%lFCwASQ#P6z?#9F1#dzAQ;F z#-NmohLS78eN^xQB0?ya7Z$-kkg>Co{m`=vjb&Ye5K4rx^B?Mkfa%zO}eKbieWq&wF_&-w5qtUF=04JnO1H#6-QRS{hqp> o;u?qdfh4gE2E+d6_y3=t0OxM#yg=(@*Z=?k07*qoM6N<$f;QN1-T(jq diff --git a/mods/bows/arrow.lua b/mods/bows/arrow.lua index 31a3b13..b6686bc 100644 --- a/mods/bows/arrow.lua +++ b/mods/bows/arrow.lua @@ -102,12 +102,31 @@ minetest.register_entity("bows:arrow",{ bows.arrow_remove(self) end local pos = self.object:getpos() - local objs = minetest.get_objects_inside_radius(pos, 1.3) + local objs = minetest.get_objects_inside_radius(pos, 2) + for _, obj in ipairs(objs) do + if obj:is_player() then + local pos2 = self.object:getpos() + local pos1 = obj:getpos() + if pos1 ~= nil and pos2 ~= nil then + --pos1.y = pos1.y+1 + local vec = {x=pos1.x-pos2.x, y=pos1.y-pos2.y, z=pos1.z-pos2.z} + vec.x = vec.x/0.15 + vec.y = vec.y/0.15 + vec.z = vec.z/0.15 + self.object:setvelocity(vec) + end + end + end + local objs = minetest.get_objects_inside_radius(pos, 0.3) for _, obj in ipairs(objs) do if obj:is_player() then local pname = obj:get_player_name() local inv = minetest.get_inventory({type="player", name=pname}); + if math.random(1,7) == 1 then local remov = inv:add_item("main", self.name) + else + local remov = inv:add_item("main", "default:stick") + end bows.arrow_remove(self) minetest.sound_play("item_drop_pickup", {pos = pos, gain = 0.3, max_hear_distance = 16}) end diff --git a/mods/default/textures/default_acacia_wood.png b/mods/default/textures/default_acacia_wood.png index 93a0538c37352ab39d572c5cfe4d70cef3878cda..d1edeb611e08abbf594266e826636ba1b170e148 100644 GIT binary patch delta 28 hcmdnOc#?5~iV$akM`SSr1Gg{;GcwGYBQa5NG5}+)2BQD~ delta 9 QcmX@fxP@_o%0$Zv01_z!jsO4v diff --git a/mods/default/textures/default_apple.png b/mods/default/textures/default_apple.png index b2fea419ce44dc6c8221031c2c94a90463384c7b..f93c01c64dd05e5f47f66a6bc3a6d6040927f752 100644 GIT binary patch delta 414 zcmV;P0b%~o1I+`FIe&jiL_t(I%bk-wPgFq^hM$?abGaCe8@>$2ShU35JFr zK(S~r{1rN5VrgM#VrgO2hSth0gcvtlC@dEUgZsweM@}4*Ez?6E> zS&^o`ZfdT)eBAx#-1w_w5hGb?V*vQ<*k1qJLl~FXX1m*~<*w(;;8( z71H*B{!zv=H&l%tY+EbyTs`jlGx}x4&;7{XL7+Y7*tS+C0zMlfYcj*_6j)0C&pm#1 zhgK%Mp7-qJg-lcsNoX`}A6QG8hu?p*(V4?Me}P$DghEgDplcKh{+zpJ7K27(=(HT> z+aair@U8Lw5b`S9iC}4AC)fxUqBd!*To6OZu%KDum=KvHb7$^JvD+-0oj}0TUCy~5|M|}k zm(<z_>3?N26AHHDM6a2cok-{% zpYrKWqHSN&{~PhBI5o8%be+?AhM)WXAN?%n`=H|YK}ow=&~;9y0zQi9y3TMTl-vsA za}QrE(ukDJdCzv7=u`z20gI*WOV)$s-q&3=I!)y96XfXvBzC$7Ju%$$C)}1<1dB!J zGz#R)A29FWbALveD~Hxz3|KaX%vzR5q5_uVOt?;keSbj6mGscDgTELsP-u+Sh(?ft zn4=6#Rt?{hfaYU>v9o*-(WRMohc<#M<>6{j3c)6{jyc$}h|7)ECUm}m4v{#Ip00000 LNkvXXu0mjf#>3FG diff --git a/mods/default/textures/default_book.png b/mods/default/textures/default_book.png index 893bf5568a8ebf6ed4a27ba10b87f052c9a9d3d1..1225ea266fc6569185337e409ac053bd58c2ac3d 100644 GIT binary patch delta 212 zcmX@W_?U5mc)b7z8v_G_{OA9PK#H@#BeIx*fm;}a85w5HkpK!#^>lFzu{fQaut2~- zsn|*P>ObMtg<>w2skG=2iqPnz2KzF%hYgk5c+%*8YkipZ{&t;uc GLK6U-dQOi3 delta 177 zcmV;i08ano0l)!}7k?251^@s6)UPbW0001oNkl&1FxU#{vTi~{~yHwQoy&*4^a3l=n4v&^08{1 zP&W~)I1{CTh~a{t-(OH>!1VT&BpE=l7e)=BW;%dn7P1U@|0?+xgHO0EPDRr4LWHw3 fatv4TXn*uBn=*J zI(jZ@+QSPMk4u&1FxU#{x2V(^dH3lQoy&*4^a3l=nA%`WnjfaVAOw5yJ&PzrUc&fS|=|NiqP#3tMA_u+l^u;Jx@A!$#IvAq<*m17L<=qiGTg z18)EedS)TZfM4%_Fif7$d@iXK)FINon3c7jXPLPU%2qUa-Ij}*4f^IU>EG(_~8L?s%#*zPfMx_;R^ zkE!qee>=v1xl5j2zF;hW?sc6CPcGy0zz6C5t{&VwGPzIfsF*J%YrK$G&{1;w9sm9D z-Wu?i{s3zwH_y2HmjSq$NNC$MNdsv&d(a>PHbCY|Ni7#kqsWa zYx)d3?lkULDWcnco{>lEvBM|5%!G~X&gW}pxXfT`+n4v~_(_`v-3Kx`w~k2tFs^3i Wk7!lDydfGC01Te4elF{r5}E)7d1uN1 literal 1151 zcmV-_1c3XAP) z&5smS6vcn{z3Qs2s_uaqXqY&fNCd=05OAVV6Agj}#29c~ioq4pf5^lYF>wh&M`j_8 zB;tZV8wsq0Ac#yD=$`N~U0>bx-gD8z5DYVd=!VSMRZ_Rkx#!&XZov|ku!JWKV{1m5 zV{1m55Bt9NUy)jChX?9`-m`OkLx~Vi=xa%8rVd@28eObb9*@)v*J59P_}=pkWl|m1 z>QtnMAI99AxkcCc=G*Tto;!H%(w4^-FlXy9KrQz5-kob3Vp6R{7-|gB%{m-B{QLYT z5A54WktE#7wK;V3eCyhc&eXA1d-RbaxJw#GT9561p%H}@4Im=KQ3Z(mU5LUDW1Mq{ zz^7wt0YxcQssZ}lx7G}gAG^@l;a2|oL%Y3YQ3w7`8U|W-vkpUzA+**2IBWUht1~2N zk2tFE*(aOHI=At|8d+g6#*!C?qmvg%vmQZ3v0+`EpH8->#;;y~`hgB?U$LTDi~W&3 zyVf@vLsebo9R>#jzWn;!9MPYAzJDvu+P(;9iK7Y!_PxYxry!jzu&L(gFvwp@#@q>#)|LL>3khhaT^5e+sP>-yQo6r8GOYJ;#BM zHz6j$t46f1&)^(59Wimd->L5jTQ?071`6w-bdFlp!}A2^9L745+>jI{)-B?IR>G>~ z0a2)lUSCC$mP|~ZM-aBXx{7MyGx6gTY1X3}dh_;L2UZ+Gph@zQD9~iRl1OcqOr^;s%qYTtwEX@#*bgc_dQSHUeM5h&)pfShxc@+MM)TVq(wR3 zaTMtJfy)a+mK*cSnVYS=Fw+YPP(a`*@}4E~H6s1zUe{uAbczxq4iJ__-aJ7R^e4R* zcv#n;_V%p;L8vG(Kc8;5vfNC4bLINzq7hgJd1)D_Rd6`0g|ur(y9Pn1haO>7Gnn-v^$GF_HdecZ-68k@CfF%rA-9c9 zE;e?NU_cVRBGp=Gmdholty9kY|F`qc!oRM!n-lk!W-V`!Jb$0M*>K9)UiDWC-oTshE_WB=01JR(x|zf= z&03kQ{VGI{xna=UBZf%;(S#-gzt!Qn;duSi&qZW)1ZyoKLYM?}qY3F~VG?+A`Zux> z3V>5eVT}1U|3K3)W6WF&Kp{;N5jPj64cW>CWI=hR|5aaFZj+5Dbq!ho0000uJaPN>xDfyAn|+ljUb7!TYs-KVbOG`^AbT41Arum zWlpvo4|QImcRUR+4gx_Eqpw;GVr}*(>4qFd)1j|gC2&KoTog@*F&EgaSNN)04Z;Ax zk5WnWaS*T_PfY}%z~dnBc|NG;+^!d8&C$lgjOx3f1w}@ z`uY!|T?7&cLal2Pgam!jN(jUXp@m54xGAYc8$pP1${gq1JNKS*&v{$uOq3wxBKpC* ze4dy01OBUsNc^`C(zAWvFPT1xchxRLF2O=0uTDIFI*2yRdxt+{AT2Ob$R4 z1c5s}@rc!pEq?~8HNJFmv~|>?kTXMvX?)$JZ5;sRj}o05Y^B7fZF(cnxP2*jIJ<;S zQwC#&09onTHjdOfGV9Q}L2FGK4{tf_`y>TvhJh#k1X*hmp=bG!8!Fa(t zN111&s>{ObcYXLbK~M5zZW(2ADk{W@;Jx30v%T;hK|4?K?9~c&<%p1d;eB)V&I_4Z s{3Pd}&&%MINjcDKpSn4HaQL6)C!yKt7gD5%>Hq)$07*qoM6N<$g65>zp8x;= diff --git a/mods/default/textures/default_diamond_block.png b/mods/default/textures/default_diamond_block.png index d6030f7a68d50bcfbafd8b445506dee8160fb200..9b991139980876803a74cadaba7f5e3bb95bf1b2 100644 GIT binary patch delta 711 zcmV;&0yzDl1l|RZBYyx1a7bBm000XU000XU0RWnu7ytkQkV!;AR5;6JliO|^WfVr& z*wfVY*-EMH0qR7G1PZN6FA(Alco`m!3!q#?Kt&RzpvZ1xwHURTIET7E#nYLzGxN{C zHy3G|rhJ#5wARhHxASZ^(M**aOG{*`SRhj&wwAdu7!j27M1N@lfB=cL1ew9zee!~P zcUF1)a!jXDWiVS{R0y+-R4?I+bQ)FunVwRs7U}N!xTy+%bO(I@?Hzh2WAZt;U8^Da zJVr0^D2aJKf6c$M1>Vg%8wZD^V#z5`XxI69XODZ{E%G=FPeUZjI7<_vBz_MkVrebc z_|+dW8cs-6$$yE0RrqrKHV=o#eC;)Ha}I}#ki6pnT!A0>L(Z(lsIoAIoDro}FEN-d z@aknA4v)FtZgS0W7zYviAHmI9iQsrn$!n0QkaL<90%Le1mi}~3vsU7#ojvY*EtZ@d z7NuM+yob9_d;nG(Rn%H?6O%&TW#50r%ozHUIh`*&et+EVvEIB%qja4=Pe$CTUcvw+ z*Tsert`R{1qr&)biurVzYLajeg*@kQ-3K^Zr1_DpT9mAERN^w&jUL33jNW9wY4@o{*d5kN*sku2SdtUoy|x64GoC^k;}(X t5o{cz7o7;2q^JlYf=N?Egzvst=RbBOsy>6|PyPS^002ovPDHLkV1l+2Pm%xt delta 521 zcmV+k0`~ph1)&6xBYy$tNkl$&)BhPbnsQE_H74psP;GsO(&^eN6zD?jH#DyB3< z+>HR3In|7zR$j%(D#jDo+!<9Fv?A`LtV&-CAG$RdXbdC|#DDNm$1pIda#<$Mr-9c^ zA{sE8u_=Wn2HFrvA@Vl0#1Ky4p;j*P$k$=d&9X3=60196PBCRu3T=#Z5A_)T5kAi& zUxqz95waOS=9yU3*sG9L8C2Mm!YW3(*l^aigumckgzCph>)>dm?v9C&iW}xnr!vVxpC>lkEq8~3YKAm{)!7-% zdVL}RNZYy4#)b%}Dt(@~xW1-89H_P4ch!LJdb)QHl7FN1#>E_Wr@jQ==S7!=dDo+* z;75t01J#V%m*D3lIfE)LLQ+$1=Y`8(|AC*8G+l?>?n(VL@~iLJk0aIWX-G#R2fXT^ zpG+AyLx+L%z27m5U~Qsl(|wC7QVOmQkSaP(xGJhjo-(G&N`&7vs>Gs`zH%b~0000< LMNUMnLIPldQ|$ct diff --git a/mods/default/textures/default_gold_lump.png b/mods/default/textures/default_gold_lump.png index d5a1be79b13a19f418a6d4cfb83e86d8f990db4a..4089537579527d10d372ab39e60bd2c538aba3f6 100644 GIT binary patch delta 330 zcmV-Q0k!_60oekO7=H)`0000V^Z#K0000SaNLh0L01FcU01FcV0GgZ_0003CNklCD>V{NGH?!B3GmkVM`HTAa9`cZJWXeG3_K^5xX=YttkXk zB(N68oV)i&5Co^WnPq<8{N@<=@5s6y!$LycaHZL=0AV44vwz2`cz*z3K34$bw%vc! zi;l$8Sq{McO&)%95L>sY(^<~=`lE(?9v67;vrY#lvaf}SSL*`+Wm$$6z&RJ1mSf@5 z-H=JK<7EGgs_2)14~quw|(AeIj%R`QL^43E?!=TT%0bGhDxxk za}nuYK~)ivWJ7`p&M(JxZmV_yGF8Pn$7VZ91U6Ab@ZO{PeVxf2h*WoAQ%ul|UO*Gn cC;HR)0>mtj806{+6aWAK07*qoM6N<$f)K=w!~g&Q delta 149 zcmcb~w3KmzL_G^L0|Ud`yN`l^lyrbkh%1n8$zphRnBmZ3hJQbo{r}!r5zDY;3d60P z42;M3dIO~yOM?7@862M7NCR>#JY5_^IIbrv2pULBJ4?7JzG6#g6bn~(Hc&p|dXnc% zKxvQ=i=o8SDOVJE91Rb$Y*^>w==kRuGeeml>w1?pe7#SAhA?=#`njxgN@xNA_$)H5 diff --git a/mods/default/textures/default_gravel.png b/mods/default/textures/default_gravel.png index 4bfe715da7ff43744ca58db1a94f97f8a054b184..e2e23ff0a031baa5fd920904fcf4acf99abac51f 100644 GIT binary patch delta 604 zcmV-i0;B!?1BnHYIDY~=Nklhgdt!`)5a|1!yeJAp1ZyoZMnr@VLONY3 z#csF5dyjLDwry#ehN39`2G0Xls}+6UV~oKVgNP7g#2CZJ#|P{6n#18h*L9rF=d@q} zV2r_gkJg$PBYyxQf-#1#s@ZP7P(=<`n zHFaGRLZB>579j-kJjXeg8jr^#udlC&NFpO5D5cUOtu-M8@~W!R1%2NmBJ6fM&gU~T zVgPF`0M0o=2xzVUOl;eh=jZ1XAgwiB*QM|{=MoLAHGjq!nx>&`TgGu@p_Jlsx!{~b zDMbhYYb{OFkYyPF!!Ypk^OGdCZOhZs(;tO#9MM|y@bHij#uzyskBRkuzh|@AFpeX) z+YM_i&N-%O`pW^3a_^jD97mSRB_hJ(<0DbeGCv)SOBLqy1DcjqM5b0iudZns+izP`Sa*)K0IrhJZ q{{GH-y-w(6NwdruAHepgn3`I{f^-L>b60jzoX+xGQX#a2jpg*>_ zqyFoV-hVr#6t-;xVBdFCmDA~j zyJKd!JCA0DnX#@b@gCnHjM3+uS#x&)7I&w$mcp1KMi-I)_OkCg*XuPKE&!@ZSc#ie zm0BwRwN^?g)LK#1v}0yG-V4Lq>+5S?T1vs)8Drq?^xkvY)*4I17b(nlA=9~$KneqJmOz)jB2A9hvo47mQ-`~l{V?=g59ubkm_IA5rW&jCKYb|M=b28`r zTOyF$2bFWqv^D2sjKSB}SMDWjE~=WD2Wb)EzVC_lwn%OC-T^oq4%y)06vzJ^<9u{o#YDwHc`#j3eQsiIDrR3{Ut+RRGxsejY9}6r6NQ=54^Svn zPBc>qP1CXy2lpV5vhD!@d7f)e zAf?o4ES#H6Pd0Gd4Pa*f21Mi)FTtY-9l_R2m>F$1pscY9FNM>CQG{r_!4}WqQG_6( zWdSpTh%k!KLOy0B*_Vaqg6R_i09r~3rIhUp5jkt6l&ST9A`xj*I0fdhDwvDbpg)Zl Xx@x9;4u-FF00000NkvXXu0mjf8H0pa delta 144 zcmcb@w19DfL_G^L0|Ud`yN`l^lu&?Ah%1n8byQm!WH8lJ`*@0Ny`9RDbjB8-C}T;G zUoeBivm0qZj*X{_V+hCfWCcM3X=!H(H$OkN1V&|1QC9puV rr!uo1>~dvgbv?-A7U=lr88d@!2TRd(oB9TzIh+ihu6{1-oD!MEr~7PYr_epPcQS`2YKy{l_09tvIsb`5)W1H>~QCon{Z79Xator;3wjzn*Tw zjpBcDF*0`r)RIhgOK2T@>U8$XzsIHtSxrCx+dhB4Fk@Y0)wD(+cz9szcOJf|CXKcQ z7VK&d7pR^%aNq#Lck4~hn6KY6HUNS(cBS2dtGOqLKD_kj!CCb?aSq`q~5` zIvC>lXnzxjyr1~NoMV{`X9OgqZyMyx`nZfarFlc9j2i>Pj>LS`V^KE#KwmI;y85}S Ib4q9e0Bjs<-~a#s literal 0 HcmV?d00001 diff --git a/mods/default/textures/default_lava_flowing_animated.png b/mods/default/textures/default_lava_flowing_animated.png index 9d86ba6ab911fafeea0f2e7a33a056553042480f..46cdc58ab0996aa565688476539724fb775ab1dc 100644 GIT binary patch delta 485 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 Rs{a50002ovPDHLkV1lP6TJ-<` delta 946 zcmV;j15NzZ5zYsY7YaZK1^@s66MgrVks%j<1As|HK~z}7-IqUzQ%e-ae}*)fbwNgr z=?30H2p4WAM2L_!)nfHZyA-}6g5_H7YNv(8HuhFlHr_Vi!luwBuq+EtxW#)!WiJmN z$$|=FF@G}mZnB#{XyJt=WM=Q2bH4MPFW+3zJ*hd#nDk+I2F(somjFy&W(>~&Ag+La z=t|uGimrr44aODpA!yw(fA0IZV%K_7>&|qoxK|pUnbWCD*p3kGAli0hqSPgE#b(%( zKC8*gj4R^`+8rX=Fi6a1SjxGy-yHdp3Db6I6;r)vzf4^s$cXzkVxxxWLhJyv8385> zroaM}Y19B1CK=6>%-1H`(8L}Zbcw`&ls8CB$z^v^Tp{1O#NzTW1EyJuwmCHJn_wl5 zM{r_Z3ITMe^VVeGB2t%dr-tZC1__i0FS037+5rw6nfh(|AqF&RV9PDJ)M5HE*Mb(- zC88^7c1%W-K5#tpLCc~mY1$MWhz^Tphv|U;N#=PmNDQga`;n(>vG3!``M&3WsJtI( ziZgIX{-tmZbWdu%ANe)iL3=9aCazI~?ptK z`ECcs>wzUxI2VJ&@T%NUQk+OXb!5!Ocz2#-F4IErlRmLl3q#0L3s#SM&#e{{dhApYIR0 z&2Z)XK}!+$(*^y3-S_^WrC@6Vv7=V?2Ps^SJR=wL2f@gn*MmSTJl_usdSJ;kOAov% zH_3dP9O7{wM191!f6IJ${n_IZ_n96(QxA648vbC%pv>R-xu2&KWzjY%d3GJ-QJ$w0 z&7L{1#Qg~I*RAFCplbbp!Ph@;t$ttFQ<_--<-XfrArI=F@&U({0K|pv3y&52u>tQ- zne2a>qX&EHVm&DA=l#K56G1#y#81*WdXVPyfbf?#jNm{GU92ZsK&12cg&^`=Jy`0# zP}Bo2dq4HQu#`WTr3Xv-gI{`I*i&oV7aWa0j(w{Q26mJ$^#|`AQusJFpMgL40h~3; UoL0IV!vFvP07*qoM6N<$f{Crxu>b%7 diff --git a/mods/default/textures/default_mese_crystal.png b/mods/default/textures/default_mese_crystal.png index ceb25436e7c4d5a4454f9086bd33d89f8ade8676..5fffb1b446b6036b15a683aaec0980c6a496a937 100644 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkQ1F_k zi(`nz>Ewh3rWOD1{j_(TwSRBqZ~6I(Jx6ZoXzUPQ9VJ$ym+*h~(G7X-ym8@1fv@t_ zl0@e2Kh$%%KU m6JrAdgPeN>trHU~m>AY>O>upE)8sSIhYX&selF{r5}E)R9e39N literal 637 zcmV-@0)qXCP)c0?yaCX4!+~ym)*xGvdH%r zeVs@d0-`v$1;E+a1)g`q_O>Jby8?RT${r(x2^gH77E{8^5B?(fr4RhXaZIEfA|*7N z_&YoKR5gl4{uFo!m`HgQnrSxkDPiP`{0s01=l~CZ?*NR))xsoqHfaUN5|llyf)*?e??a=~W1Po)+5)4MXL#-9DyX zx4FDLR{gJ^Ekf6wQzN=tR7LWfn}Fx_@qIU<#>CgxXGg62#)k4jDHxA?2q9CIiAzHk z;8+DL3jtkRx2yFA8B1akv1uyT!B0+-dq8XoR#rX=oq+51GDTCXDyFub9Q0V|EeUy>3l|A>3Xmj(M zfM~ld3!eK{d~_6jwXUrx*$0E{vX{D+-zAaux}7@#fWyNniKV6D;Dx`8bg9dL-y6VR XSnukfePdDY00000NkvXXu0mjf>=P|A diff --git a/mods/default/textures/default_mineral_coal.png b/mods/default/textures/default_mineral_coal.png index 6d1386b90c80c1140ce9f14f9367a4f857864284..dfd184683ec82f45773a680e17c21059d1f9b28f 100644 GIT binary patch delta 231 zcmV-VhEK-Sq$O_#7$sU7V;>u83aq6KyA@F}#&%pmxN~tn) zo$X)xaLyT}lxc7Su&}D`v)~tC+qQa!qlg?cVF0+;frxGZAYdYQyJP0+gQ~iFcmo&} z5nV$FSyf{X|5{#_P4-FVGO}$>`d_^ddtYa5GjnxYiU1xBz&DsM4{*U|s?|4~L2GJk hk2dgTychP9dIDFhm>fU(EQ0_5002ovPDHLkV1fceUVZ=o delta 123 zcmeyt*vmLUvV@s|fk8u;KNv`H2Ka=y0%;W$6+Jz@hrR_aKn`O`kY6x^!?PP{K#q~8 zi(^OyWAXtm3CT`@)Rd%zgr+XTq|1%>bKE!*n3!e=bo7R+yC^E}(m25}r^;h8BZHzB VgS|!H6eFN+22WQ%mvv4FO#pVaA#VTx diff --git a/mods/default/textures/default_mineral_copper.png b/mods/default/textures/default_mineral_copper.png index c4c518ebb7b6b1e59beb0b61b5cd45d8497c660b..b1c05276b427da9f78873fde4406ba95d8cc235d 100644 GIT binary patch delta 318 zcmV-E0m1%;0oekOB!3BTNLh0L01FcU01FcV0GgZ_0003CNkl7MToCzx&*^&%n-(@PFfcGM9Ju%%t2#z}E(okF1WcM^8e#gTTz^O^xhXInC7GRzBu7@!PIQ?|9>u~N(_5W-(zqwRbo(2 zSPr*IN=mAbfq{YH*|TT;c%2$*qlPu0h>8W6^Uwnd7LcJfYX1qwx0IArp_G)ABeIyA zvGV^=8@2z);^1_lNLnEzoe!WSzHQ?t!6Vgo&_kX^-uuE51qiDA>iCai%6 z3#+5|z7#!s_BU)lh8Luyq#Ui4c=o~g*qkUOCFKayj59FN1CC?>OFYB?036tfd2UUC Q(EtDd07*qoM6N<$f^y`I*#H0l delta 105 zcmV-v0G9vR0)_#QBw|fTL_t(|0b`&#*xDZSe|DkM|A96Xp>b)Y8(ib|u5ge+V2sNa zsyd&Z0gRBuhC$(gjB$7s5l|?K>FPH)#wJgRp&0(By*Gf|A!G>vC46-Ryw+UB00000 LNkvXXu0mjf%Lgrq diff --git a/mods/default/textures/default_mineral_diamond.png b/mods/default/textures/default_mineral_diamond.png index 39c0f83b674a29d7882753aa37b5f544f54c972f..f76b571d279b432ee3850aba441783d82856b6ce 100644 GIT binary patch delta 368 zcmV-$0gwKM0)PXM8Gi-<001BJ|6u?C010qNS#tmY3ljhU3ljkVnw%H_00A;dL_t(I z%e7NIYJ@-({xoHZO+XW3v51A0SmXwYjdj2~1Um!UrLeFQVrQubSRx`8X*_`lK_tZn zL@aECy?}+OMl`P3z_QcLeDC{tk9okk&+~iOpF~c+zj{@-7Jo(PQ=RF*Kus25I|16d z#8L{HxE*q|odCQd9Zygt1vFWl2&H~Bq+r(q+Pa*yN9t$*XzLQT6F`&2MW-zGC_>a^ z5mi!5XTU2GY$rhKM^JUE&ti`{HkUyli#@7J3T%w08DX360063P^{F2Xb79xQG{J}a zN^SGqtY3nSlWA5-F}z)j3mHZ-c|}6E@36Y%&CAs_u7n#fjARngZr@D=XML)=)f1OI zbYB4A?p}QZ0Cp`*$Ok`C9=eZ&+%$~?;B$=qYX>-vd-!!XIF2*UvaLT^5tKIjr-EAm O0000-S8Gi!+001a04^sdD0ANr|R7C&)0EPemZ2$jK@#^#c|KtDv$p8Oy z|Nm3}|6Tw7TmJS?=;KM()Ybq0v;Y6F|Nnsh|9$`eK>z=<`};lp^7zf-bmrwYTVmm)6$joh?W2V00DGTPE!Ct=5E+#0000~NklCV v4x&-55@wc^l983hrH6?Vhm07P5EfAYE6f5(Ru$Pq00000NkvXXu0mjfHJW|I diff --git a/mods/default/textures/default_mineral_gold.png b/mods/default/textures/default_mineral_gold.png index 2220addd6e354c0c2e07c0532036c2600cb7c28c..e06abd98064573aa2a1005ff2dfc42dedb2b3e0b 100644 GIT binary patch delta 272 zcmV+r0q_2PtOAfEe+h6%S#tmY3ljhU3ljkVnw%H_007=eL_t(I%gvIn5`sVw#&?i< zCeyZk1$YAJJ_Lyh4_80a?;SYt@8}vVoLoQA= zV2LO}#8{wS6Yx^8DG@CLS( WWfW)ZV_g6M3IG5}MNUMnLSTYb@NoqI delta 96 zcmZ3(R5w8-%GJ}wF{FYqd4ZM1riuUUIrz6M1p=5S+8Y?(zT?DOIMFYWoi=Tv=a89uV?_;6e{bmBM{MAdm?Nj2m?ZyO0GD z3n362pNimS(`3b2NJj3m)!s2XGrI%)yV}eqyqQh7E52twJb%aLD9tdq^U;;0SN~Y7 z_jr4GM3iRm9Glx*HWDO7ITn(|dSAWG+QlJ9X@u@>7*X>an*-lHi?wlBlxo0{khG;yrC>%U zBt#S^MfqT+(^ceD)sF)J^VL?FmL&~IK@tFfJ^&ne_c>l|AF!Y504+mQ%FRwZToh?TwTBS_q;l@?MHzC0000Tpmyxic>5G96d z(|~e}B|(0{3=Yq3qyafjo-U3d9M_W_n3_1$7Bfr^9mF(^sSToPqG2{Y$n({avXd=|mO z;QF<%4D)W3G4Ki$;nm11P{gqM#S83#7%CybFz-eggL%jkCqhw*0i>j)9Q)SE{g;xG zD#WH)N=nL6N=mBm@iDXixKbrifhHv-RY+3c(i{K)*GyU$s)M8T00000NkvXXu0mjf D=ACU| delta 500 zcmV>%4?~Y$Hi;!%qV;6SHGU;+xPc;`}ETh5z;AEy@;{5 zl%f?oe=E!{7$mn-_OzTU7up%~UFbeEMwg0MtG3_RjB%cm>%2aQR~<%Iu3tYqox?H- z8)$@_*9Y+l=u!LO5C$w3NQ*(-pB?9fPHtpoV*{@MMiMp%hcGZXjkVbs__cj~Ccsx2 zP*#R6;F&Sy0{I2tlOni|l=WM$Qr~u&m{X0Af2GIi&3){BcOSUE!gf-GRHa6UM&NO~ zU^iP(zO|0A3IIA4<8KsxE9NgjDl$n1TH%VF6>LG{LB>!RQZA_z}%B!P@(x;QRS9D6~RQgagb8@-Y q2k~DR!=Db68ITnK0000?NMQuIvwZWSQC3lqBnz7#J92GeaUu oobz*YQ}arITm}Z`qSVBa)D(sC%#sWRcTeAd6ungTjb@Te0JRz!xc~qF diff --git a/mods/default/textures/default_tool_bronzeshovel.png b/mods/default/textures/default_tool_bronzeshovel.png index 53f79e66f8be2c41219f8d939f1b184af8e3d679..7cb7e3f6ac18fed5f526815ea59375ea63fca367 100644 GIT binary patch delta 335 zcmV-V0kHnX0_g&fBYyx1a7bBm000XU000XU0RWnu7ytkP8%ab#R5;6((=kiKKp4jH z|CuK5BYy!5NklRv$kLPR^OYQomoW#O-FrGu(k5!?8uy-9BwSoc-UFntR#~oBIR#u3zu)O3R=fgp?|^RnDo3=KW6{{002ovPDHLkV1i#&jWqxO diff --git a/mods/default/textures/default_tool_diamondshovel.png b/mods/default/textures/default_tool_diamondshovel.png index 71a3722723aabeed615284c50ef0135848d341bb..c84adf3ee7d94750bc78302342e7b424057cee5b 100644 GIT binary patch delta 343 zcmV-d0jU1P0`UTnBYyx1a7bBm000XU000XU0RWnu7ytkPBS}O-R5;6(lQBrcKomgV zRdJDsLkE|-DY%qESJBD24&5Zsty7#_g)V~NrjuL2x)mWymQEF+g9Jlc3A94d;387R zlKC9;LZIn2ecK(p|Ns5}PmqFqy(yFKyOpvKY2@0$9sp0{AAbNIKEK(`u4B6%%W32@ z_ZfgS!@%0!#2E!RlL=p)HW{5bq)tU!0Z6sN?F*hmng?c)q_&8fHMlByKvwW z4(C*$F#8QuC2@ImYX^WOoqTa}C^xbOE1eeZ>-aCgzZ?#Ig6pfuK5BYy!5NklC%KSJ8 zm8t{#zQ5t=#RAWDNknMXfuFPn;Go^cb6wK;oD}#H!D$LlSAXX$c?8%UAPzz$BBk)U z99s)<5UL-ox8OW`WdML^)+bq2@*f7+v%&W_r{?7?!+RJp`QGR6Gb`?XKi-*MUhN)Z z4nM!9T;GiqK&Ka(*5OeBTQlFDpO}lY$uxy>vkP-sh2 z&Os6qZ7=C>Io=nZ_xl7TYK@=MI2b{Pz3KUVpId20_p*hNqLZR;sF% zs_NlzJ7>3=jOvpyOD!^ ze@@?vivs}kI`!PJ5_nIp1F&X-Z!Zq?)~3tzlf&niLRcb&`(DiD^?3Oj6Zn0gxPN>V z0IjB@v#>Gq!&A+%K0Vt1cR;PClkZ}5jz{#z9US(m~MvX=% s+SFr_tRU#7zim}Gok12fu4jRM08wM4h;`U&eEc83BYy!3Nkl8Q#x|NkCY4e1WvsLJvX4Br$!tB zQAeUo!3j8mX;4H8L<-Qlq6m>p5Lp{4ur`%VB0C%Vl_P!gcIM3rT4)jnwy7Q|BSafG z48x6D@s}dKK1uSzUK@D%l>pG|1xT+?o*Te0ofgQhuvxwW@PG7N0Bmm%DI>Jjjqtjp zYlKJ{k$%`3T)G499RSS63Wzy66g3#YbHR7lC-!~u!^6E#_M4LB|7m_MENAE6+hZ)@ zw|U0Z?V|t~4SlW;RxIfhpng)+ce$ v`0SkxTr=*H)FN6}zpX1=?O+{r#?zn`c2b%Is18SJ00000NkvXXu0mjfB~XMu diff --git a/mods/default/textures/default_tool_steelshovel.png b/mods/default/textures/default_tool_steelshovel.png index a34b9fa2300efc9d28f82d3a663b80ff36b2110d..bf65c55994926785c1f36344f4f924771fefdb19 100644 GIT binary patch delta 305 zcmV-10nYxg0?Y!CB!3BTNLh0L01FcU01FcV0GgZ_0002~NklD)zJj~>1OdDF5Q0;MJb}2~H@K6FP^^pHy4>Ot&T8R~jZ;g&H1>X50${>ueDZci(Hl^0K+f&rS18^3TpB`@9)#U|WpYO;ID5VzJ zT1#Em>tmedkM5i2*Ea=FRh9GQXyup3J9mG3{pSHyRpp{h3{{Sy0NS>7P1A5Z>^Vhd zmgl!_j0wh$vMSr{Tf1_9+=UkYI8)KAO0vAOwigjIw z)*2DvdX@m<$7!080W7$qW;@PDDQR13x!<-I?Gqx)hC?VIxZkPIfw5df(4@ zEZ88ewO_h7#)!);a9NfBjN=HvFbrf_2H?dOxM>;y(ln(giht?cbsZuG=Xp-w_lvM| z4(A;Iu3(H2fKQTS28R+`JP0QVy94aj3LN%FthF;(N(sP441RjJ@z+-=?rY%v^Jgj` zrNlW$+qOci!EYbmJil52pp^0<9PRw_c<1kL^I3qDQa)|ILK>tvA&sdL?P{~$dTZa8;;#=TfjBPVUm-rfzl-KZDrm+-`CxuDZ2?NV!o@MNkpi4z`qngK+i> z#HmN%V($8E3HsQ1_Z-R)#xId1#y!#YM!{OVAi>p8Y+-gzj*jl-DR#V4E z<-`MWt3_pPqD85)Ednrn>Zse+In#WBc`!3Pd+UCqV%)YhFV{_FJ7ZdMVbG3$+q^jL efex+LW5^$;o09)IiYu1@0000%Q6BYy!6NklVA&MGgewdJZ{^!&Pej3t({ z1$U1x0$|YZnDEH2u(k8U^_jW7I^B9egMMeDCR{q(A^=7=7e*;buN%<>1NbG5lT-}B y{P~B@n6kU=j3xWxDJ84l))ZHFunw)`smVXZaGJ0`@8zce0000jHXxxXlqVgeLMiwGzh3lhzjK2q*pJ`O91(GMdL5xu^>Z*!OPshT4qN|DXl za~4<$&_-UYjdbtkWuC4A`eEE2ykV_jv|Ah5c5O{RjKsLWa(|$7F#cw_LEDUT@&BpO=L)*^(756oeWq^F;kH{`f#H*21M}uw`NnV}6SkE}17NJXtE@LKGqe zrWOn2+vRhz;D3RRk|yFyIg&uq#3B#mVzl3*Q5b1nT8EHk(J22o?~k3oRb~Bt4AJmNr$3^ZXF?3m>8+zPt}n Y-=RE`x(`O23IG5A07*qoM6N<$g8W=AB>(^b delta 1095 zcmV-N1i1UF1@H)vIDZ5pNkl@S0V*UY^d2GgU-2`M zkPvs3KoyNzl@b~gCrzL4-5z&$KjZCRFA08upaIp0pN}XtuA(;+&(LX4;?@_+u~)e9Wf3C=mR*;<_n@V-pz#8|;OA;v(As}o4OPp8{sckgq6RbFBs z%!YMhL7Lrt_75I08Xhy5OzQLFCqiDf+ao!RgYR3o-=2aE-+ zN@QFMt#`80Sc}i4+=y%TYROO?D+$RG{5v!(-pfsuuYcvYI4SDbSK^>nX0y0Qn4i|A ztP;BvopVx!(AoKt*=$M-3(B)YH2V5@XJ9PS=vHAFi)-CaTIlZ`V4Xw8!NMkScLoS zu|xYBE{JNRxPl32q&z#spIb&p&n{(xg!zc^;D22<6J$N^941J!=n{g@W`aC=@)Ur# zZ(b%Y%!kjfWC9v-?R|`Ow7Wgz)o(v-h(==|b?7Bbz*xd`fU$;2d4fzwM;GGSh6x)y z$YFvQW9zc!F+nh{?(IA#NJU}IW`e}U7}b!?1Zm&@mf#oJOpwL+xGGa76J+^Ml*

;MgXH~lm>_<7oXVEN1Q936`{yu09)A6O z^8PtYkfRsBChwoa1X=g~IZTix9Is=-b$@pU@v~vtvB-GsW97KgeZ4fA8Sp{9xOe;w_jT{0p@aJiFjsDL()J N002ovPDHLkV1fuB7d`+0 diff --git a/mods/experience/init.lua b/mods/experience/init.lua index d973eb2..203a5f9 100644 --- a/mods/experience/init.lua +++ b/mods/experience/init.lua @@ -8,7 +8,7 @@ level1 = 50 level1_drop = "bucket:bucket_empty 1" level2 = 100 -level2_drop = "default:steelblock 5" +level2_drop = "default:steel_sword 1" level3 = 150 level3_drop = "default:goldblock 1" @@ -32,7 +32,19 @@ level9 = 450 level9_drop = "default:mese 1" level10 = 500 -level10_drop = "default:sword_mese 1" +level10_drop = "hyruletools:dungeon_spawner 1" + +level11 = 650 +level11_drop = "default:sword_mese 1" + +level11 = 80 +level11_drop = "hyruletools:dungeon_spawner2 1" + +level12 = 900 +level12_drop = "default:sword_mese 1" + +level13 = 1000 +level13_drop = "hyruletools:crest 1" diff --git a/mods/farming/textures/farming_baked_potato.png b/mods/farming/textures/farming_baked_potato.png index 425c4ae333ad4629fac7095108ebc6fc043656af..3e5ef16e4739d3f3601906f4761323da8b47637d 100644 GIT binary patch delta 286 zcmV+(0pb3^0=NQ@BYyx1a7bBm000XU000XU0RWnu7ytkO>PbXFR5;6HU>Nd%5uaph zna6)*{?Y3%7`AP`fTD*5pJsVkQ8-^tS{TYQ_>XJ|Ru?Rp9Qz-p;nCB#C~^-UzeaHh z3pShOq=gwIWqqL{o3R=M15DVQ{pjgihUbqrGdzF18E(+S$A7Qk;egcum}X?BA3kvd zZiu|BD8s|YuNka0B^dAqBFw1|AHQahmlb6=eBuU!Es_h+0W*xjA;i!(+mr+qt{P8 kc=;Njq(E#M2Nw?j0KCn3mRonZ+W-In07*qoM6N<$f)F}+O#lD@ delta 295 zcmV+?0oeYy0>J{1BYy!1Nklo#s5c-QvbhvnFBV6pi5vjf;1dI?giEi!nbb4{=axJyX_lmAqIeKgBeug!SH`d0>l3UJvcPN07wBSWE*@K z{&$5j{BH?h_+RhM@PB41#MT8l4EUpNQys(qZA}oxi}M-&PfLQ(AcJZ>8HkH_kOq*G tK~9~X48bHP*&yz4hX482WN0K8002p!>n2j4d~g5&002ovPDHLkV1g?Vg>e7? diff --git a/mods/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png index bd00e3e139782539349ad21ace6796e9d323ec79..657dd141bb474fb7a1d64977520f89657fef3594 100644 GIT binary patch delta 292 zcmZ3%a+zs@MLi>{r;B5V#p&dP1p)>_K?bI0|Je7;wSBFk?8zqcuK%b0s>GuQfFR(u z38UV=Uq5u+n!w`qFMs8>J%3+kbf@N5ucH2$p2SP5f+gAv9&WyAX)y2Mv&;EBuP((D zoCOjZS&;=dYZz8B-b^da)MN8hENh$Xzdw zY*^7IdiZm>y`+SM!~@1oUIW3&w-RRM+x=~ORNus=aJ$FXIF5P3-ezy(Fy;xSLYI0b nPRIf26p|G_T%YrDo*DxK)BC#lGgTPgFaUw4tDnm{r-UW|bM$=| delta 506 zcmVGt(wBnKsnMT1r8S#XIOy@dCU8*9Dh?d&Qk=7aFKH z;MNN$D7vwT6qo)~l$wc6P4hRMWagaDq-G((oeS}K`2PuiaDVS=MVsk>iBic20p~P( z_^K!~L-&a;UU;d+aRJsULbV!m@V!Ons30BY3^U6xFK9K|%o(U$gv&8RU>Nf`)6+Oc zh!#nXyBKSU0;OyrcF+Rm1!#hI1=PT1!Wn<}!F3_+=yS)$KGy3HSHaCGQ3eu$6tJEG zL-5uC0f~VHl;mb0H@%vSR5#LC@RW?iZXF)2VqQ@@$B}7syhXRPTs>} wSke$QqOSvP?lgp1Z=YQA_*;AREuVkkCqr+-oX4|f#Q*>R07*qoM6N<$g75U}4gdfE diff --git a/mods/farming/textures/farming_carrot.png b/mods/farming/textures/farming_carrot.png index bb4cd7b530897e5fce544150882ace185a3f2312..93b47bbef8f46d400e85d26e9e3338495486f301 100644 GIT binary patch delta 308 zcmX@la*k<&ayWjOC%0 zT20)C)2q@gY!(WfyI=BEe@^X-7s+qf6mFj@C{b$@e>SiBU7kr?)$dr9H@%f$GXQ~z<;Dgwu2*?3b1-kvaQS%XSj5Z!b&+3LOdtDno^%uX z|J=pXI7fHa52nK>S$I9nCjEH7{H)I;w;lt9V>?Y48BQ&(JL+na5XArlp00i_>zopr E0IjlvfB*mh delta 567 zcmV-70?7T&0?!1HBYy%GNklYum6ot<_?}QNs!iP=MNeT$HsBIeBn060p zG;u?WR-66-H|k)3Z&h2zUmvmO!SRLZe19+<%vhGoq%QFlJ{1tG zzRC9Xy1+4TroruWC~rZ}4nKALEyhFm<%uK{padGx2qhwLhQUTAkY8OevOz!NZ)zra zQgTpL4Mx|fqu2GSxL>~q0CW_5cQLg6cx8BFDG>@x#jg<|?8h{1<6}ufqhW)K^E~Hr z*X3sa1vAPZ7JsHmVKTydC$AEgQuvHI<^nPv2r|Nk4qLGtcj#bbh0R+R^Xtp}tPq`H z2mq&BhB@fKG;BmXaH(b~>VCf}l`F_G+4D<}WAwUJ7Ej%dnI-+JEv8b&1+dm8x$Jxk8~N<$hht zp7usk2zq!9C&X;k(C>DjoDAJ!n`$r1-lK*>i*G+j5C5#p0>GVgHpGFImZ zQdfd}V!H=js_YzG*nReHkQ;aI?+Kh}fYCUs_k~EZ0a0@8rpl_X54pnAz47o*1JgpS z(n3m73@~3uWAvR0_jz38vCov93vB^NxEH}`k<|HCnlE((2elF{r5}E+mdNC#d delta 130 zcmV-|0Db?V0iOYoBztB_L_t(I%VS^|1*2dT&>qNW%Pf~vms*Zb4HJeY9hqh*y@A)5 z--}y|$4gR8Y6G$yGGIaGNNdY1=Thgjm--_e`2Qb+JTo^7_n+T?85sWmcb3wSzQU!> kDc&}{figLZR+W91};x$8|loh znDy{fo3q5LnFW#zmvxer4jwpgpdr+l83-8Cr>NVk=l7L=2egpE)78&qol`;+0C+F&(}ZlKc0RUVi9H)`T6(<(=n%W9~l1sWnf@rX5!{l m;8Ona@Y}yXUw+FY>j3~Iz%u_!V&PE$0000c&}{figLZR+W91};x$8|loh znDy{fo3q5LnFW#zmvxer4jwpgpdr*ajyb{1-tu$P!wXUuk6Y~JW~k88zgBP{?k&)6 N22WQ%mvv4FO#qOfL4p7P delta 217 zcmV;~04D#v0rdfpB!9d~L_t(I%VS^|1*2g20~u|Z<&x@B%kimU!lJ2}fq{WRMn`4? zuOYt|w0A+x4&Cn7LV> zu}O09e!Khi$g`VILt%PYkPZ0r<@fI&Prkk4;%8PC`t*Z~>r%mIMuxwC8NPG>=a7Axhc|UD zmt2=)(XwzJ=X6Gcvqow{JU|d(`q-2q?ek<~eF;8U-P)eZyDfMfwtYM~Q+$au!)G?T f=f(yG1`G^FcP+D&uP6lrox|Yi>gTe~DWM4f@0A+x4&Cn7LV> zu}O09e!Khi$g`VILt%PYkPZ0r<@c{2Prkk47GPEu`t*Z~>wMv7#{Yl+GW_8A$Mso~ zP3qILA9w$J`TYy03t%A9O6XFk${%edWicj(zdso6Km71-%|rI9OAox&Ls!d;F5svk zxFSyVo2i`|1G}6QKcg7e9|lpD&kS7Oe{sF}%cp<;&5t$6>H&E7QSdSsU2FgV002ov JPDHLkV1ndUig^G4 diff --git a/mods/farming/textures/farming_carrot_5.png b/mods/farming/textures/farming_carrot_5.png index 95c84f445b210dd07e839c66312b5561c6e3252e..d593cc2e8e79a6d0f6594e8f6b11a3cded6a6a04 100644 GIT binary patch delta 212 zcmbQw^nr1LNi^>}?sWIQQC|{nXaEF{jF#lqfBf(4E^lmO`MF6^>;9C)n@2A5 zgqz763OL_#nqfwoq%bEN5UiQ?QHo*n&yzF7dD{Eze2=}1ox`SZ`^S?r+?RM8Dw*eh z=9HRH`B|g+=i=y!0A+x4&Cn7LV> zu}O09e!Khi$g`VILt%PYkPZ0r<@c{2Prkk47GPEu`t*Z~>wMv7#{Yl+GW_8A$Mso~ zP3qILA9w$J`TYy03t%A9O6XFk${%edWicj(zdso6Km71-%|rI9OAox&Ls!d;F5svk zxFSyVo2i`|1G}6QKcg7e9|lpD&kS7Oe{sF}%cp<;&5t$6>H&E7QSdSsU2FgV002ov JPDHLkV1fk2ikSca diff --git a/mods/farming/textures/farming_carrot_6.png b/mods/farming/textures/farming_carrot_6.png index 6579cede828d2cd26b1b7fc1d961b85b6e9f140d..6dd5aa80a6ccbbe8285dc3574d50e60b00091cf1 100644 GIT binary patch delta 232 zcmX@a)XX$Nxt@Wuz$3Dlfq`2Xgc%uT&5>YWVA$&E;uvCaIypgtbqliaPc^g|G7O09jDAwBg{UU z9G=SCZg9o;p%KHf$YU-|jg5_rtJC(d9muIGdd7Nq;o`*p!Yc9Qj3>T22BYy!2NklZm7GwkdeEI$B$CGcbxCNM%g+Be@;(vPhneqSMzYITk{&9Vl zWRv>z?8n_dUw;3>=>iytv=X`$s`5u$Nm-1E;qMQI`wu_-Tl0|p>e2&m_0ZKaqYF4` z2&_v|`)XpR#=s^k#m^|l^@l-%^)my{&!0T6{_vXIfAeD{vU(OQ4v-V(_{YJ;&cMjR u%)r3#pMims{UJZ25c@w41_lN>bj1MNeO9Kw0v9a+0000YWU^w9E;uvCaIypgt)uPd_;ck7(K6mdM z^^ep07STcp5UN8BR<9f&;50*E1T-o z=PzKKY2I%%!+uw*`LT!s&zzpA|K2axKlotz`2#@kq5j=Y@rc-i9sZw}bqnmz-}P&H rBM>moR;<|jU^#!MlYMU5oGbT22BYy!2NklZm7GwkdeEI$B$CGcbxCNM%g+Be@;(vPhneqSMzYITk{&9Vl zWRv>z?8n_dUw;3>=>iytv=X`$s`5u$Nm-1E;qMQI`wu_-Tl0|p>e2&m_0ZKaqYF4` z2&_v|`)XpR#=s^k#m^|l^@l-%^)my{&!0T6{_vXIfAeD{vU(OQ4v-V(_{YJ;&cMjR u%)r3#pMims{UJZ25c@w41_lN>bj1MNeO9Kw0v9a+0000LqYC&2DM zGT);m>_5qdz%-Gp8K$9afAN2qOFUY_{-e8!fq{X65tkut`-}e{I{KL5$(a`nQTe6} z%O;*?xU%68hI%Gk2Ea7Sm`E@%Ffd@%jMo5|%}>s}U^sO2F>p@r;xqu+#wTZ9kZu6X z8~B`0(16UFM;Xi?-NGAVEVv{##!CP9)0bfI(`R5{U|{$^_uLDtu3*HcdDBIR-#1T22BYy!2NklZm7GwkdeEI$B$CGcbxCNM%g+Be@;(vPhneqSMzYITk{&9Vl zWRv>z?8n_dUw;3>=>iytv=X`$s`5u$Nm-1E;qMQI`wu_-Tl0|p>e2&m_0ZKaqYF4` z2&_v|`)XpR#=s^k#m^|l^@l-%^)my{&!0T6{_vXIfAeD{vU(OQ4v-V(_{YJ;&cMjR u%)r3#pMims{UJZ25c@w41_lN>bj1MNeO9Kw0v9a+0000-jOFP$k_#hkrtqk>Q1-fI^i3_*ZkcV?aOQ45un=K`T4LN(7Z+WW0U|-&7J| zOfE*Hm?S!{#wK4mi7=Dbde$cLe~;)H@Xz!O9}jb3q)=0d00000NkvXXu0mjfz`2Ch delta 507 zcmV zv?zM;q{aSaUOlKFBKUz73S#I{q!5V}B%8F!y2&O@x}SMp4?!i=R6%ggGs6teJn)ZD z{)S}En^JTo<#kIjbJJ3UU7}`0tx{98KZ&R3OnKn!LE=aw0`SiaX2 z&!0I-BGD6joJ_cM3;1S1IuybZ#@!TABrq$@+ xG$gOz3aSGl4}7MJ7Y<8R1tH-5nyv7^@EtIF-LaL(Z=V1F002ovPDHLkV1g72?1=yX diff --git a/mods/farming/textures/farming_cookie.png b/mods/farming/textures/farming_cookie.png index e80be35827d53a6307d8ded63261673ff1688f51..e82f4d0f04211cac8054d68785e5d11c7ba26590 100644 GIT binary patch literal 357 zcmV-r0h<1aP)34Bgfz$ai>w$=L{h(zyACgnaQrj1gP@b|> zLU6MOF;*%$9`W5(mf1>|mkX4-6UoaYLd!^9ribGXL{hU>n;d7P00000NkvXXu0mjf DWDAuZ literal 566 zcmV-60?GY}P)pwF8eK4VnkVej4iHHIL|Z{@0du{7%sg@=)F1|2u;yki%fWHt zfSZ)#AZ*{LgV+NMJMkx2kCZSdl?6nyM(3RHfD8~YU9-C{p(YLhHQE?~hz$nF-e3nH zkB4oXW1dKHge0oep@A|{XUGBonUfml9FmwF?Y0280KhEAEffi+N9&xdRfoG1%f5<~ ziSBjeP*%GP{ntgzU3FwQ#NkH$rs{;6}Zn*(S7C2{?1z5*?m2&qR z4($ShzF1}V4hj94C|N^J50 zJ(#g4&Z6QkZThiqoV^yHs hf+Y?)QtbQ;4DV%1=VdRlb_9BY!PC{xWt~$(696ecW1j#3 delta 224 zcmV<603ZK`0{j7xB!9z6L_t(|+GAiCIpF(Y!~ah<$o&V=Bx!uNOXEKX!!(1~L>mIr z4ATTM1cvb%0<#fB-&!W}|LQ`1F#TYS)PH0-yqaM)!uTKqj!ah2Nl7k_|^7lZ+@$1uHN}k_~4dq#iT3s2Rfr2&M{0NLFGHU9kyr!V$=3 zRkQA|8baG;%l4Ou$2aeL3;?=1qe1s@xrZRm86G&Rt1}AXoPW98!=QU~bw*7Q(b@oJ z2ri?B?QjgbM$rw8V2 zH*mR!QiU|0uW^`%0KjF`%NFJ(nm^5L7(=%HQNg$0OUxf<9Ebtah%= zXg&EpoqV5mvRFMZ{Ph3)`bL!yR0%=&?^Qy48``fD*IcQ>X(ulC9;Yx*`)lH>X}$n9 WLdNdz%}UGw00003Xm delta 224 zcmV<603ZK|1MvZn8Gi!+001a04^sdD076hqR7C&)0IZlZ%ezyupEughb-u4+#A9#=)AJlgYYkwJR%S00001 zbW%=J06^y0W&i*HT}ebiR2b8x&N&W%FbqV|j2$~0kOjE^Raub;B1(yv?n%EG^J$FP zAmzzcF}X%4@$j0R+L8EnI?J&aNFi)eh+Gd?Wm&em7HXDo7w*`_M}BBh775-1?=K*k aU%LPeSOO}d?l4#Y0000 -3 or maxp.y < -500 then + return + end + local stone = minetest.find_nodes_in_area(minp, maxp, + {"default:ice"}) + for n = 1, #stone do + if math.random(1, 50) == 1 then + local pos = {x = stone[n].x, y = stone[n].y, z = stone[n].z } + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then + minetest.add_node({x=pos.x, y=pos.y-1, z=pos.z}, {name = "hyrule_mapgen:chillshroom_2"}) + end + end + end +end) + minetest.register_on_generated(function(minp, maxp) if maxp.y < -150 or maxp.y > 20 then return @@ -1715,6 +1777,7 @@ minetest.register_on_generated(function(minp, maxp) local pos = {x = grass[n].x, y = grass[n].y, z = grass[n].z } if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/witch_hut.mts", 0, {}, true) + minetest.after(0.1, function() local obj = minetest.env:add_entity({x=pos.x+7, y=pos.y+7, z=pos.z+4}, "mobs_npc:npc_custom") local npc = obj:get_luaentity() npc.text = "I'll give you something nice if you find me a 'big mushroom'" @@ -1724,6 +1787,7 @@ minetest.register_on_generated(function(minp, maxp) npc.xdir = -1 npc.skin = "mobs_witch.png" npc.object:set_properties({textures = {"mobs_witch.png"}}) + end) end end end @@ -1740,6 +1804,7 @@ minetest.register_on_generated(function(minp, maxp) local pos = {x = grass[n].x, y = grass[n].y, z = grass[n].z } if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/pine_village.mts", 0, {}, true) + minetest.after(0.1, function() local obj = minetest.env:add_entity({x=pos.x+4, y=pos.y+7, z=pos.z+5}, "mobs_npc:shopkeeper") local obj = minetest.env:add_entity({x=pos.x+6, y=pos.y+3, z=pos.z+18}, "mobs_npc:npc_custom") local npc = obj:get_luaentity() @@ -1757,6 +1822,7 @@ minetest.register_on_generated(function(minp, maxp) npc2.reward_item = "witchcraft:potion_herbal" npc2.skin = "mobs_witch.png" npc2.zdir = -1 + end) end end end @@ -1773,6 +1839,7 @@ minetest.register_on_generated(function(minp, maxp) local pos = {x = grass[n].x, y = grass[n].y, z = grass[n].z } if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/savanna_village.mts", 0, {}, true) + minetest.after(0.1, function() local shopkeeper = minetest.env:add_entity({x=pos.x+6, y=pos.y+6, z=pos.z+2}, "mobs_npc:shopkeeper") local windmill = minetest.env:add_entity({x=pos.x+23, y=pos.y+13, z=pos.z+29}, "hyrule_mapgen:windmill") local obj = minetest.env:add_entity({x=pos.x+9, y=pos.y+9, z=pos.z+33}, "mobs_npc:npc_custom") @@ -1783,6 +1850,7 @@ minetest.register_on_generated(function(minp, maxp) npc.reward_item = "hyruletools:green_rupee" npc.item_count = 500 npc.zdir = -1 + end) end end end @@ -1797,6 +1865,7 @@ minetest.register_on_generated(function(minp, maxp) if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/world"..num..".mts", 0, {}, true) if num == 1 then + minetest.after(0.1, function() local obj = minetest.env:add_entity({x=pos.x+5, y=pos.y+3, z=pos.z+4}, "mobs_npc:npc_custom") local npc = obj:get_luaentity() npc.text = "Deku Scrubs have been scaring my animals..." @@ -1806,15 +1875,18 @@ minetest.register_on_generated(function(minp, maxp) npc.skin = "mobs_farmer.png" npc.item_count = 10 npc.zdir = -1 + end) end if num == 5 then + minetest.after(0.1, function() local obj = minetest.env:add_entity({x=pos.x+3, y=pos.y+3, z=pos.z+3}, "mobs_npc:npc_custom") local npc = obj:get_luaentity() npc.skin = "mobs_npc_old.png" npc.text = "It's dangerous to travel in darkness" npc.item = "hyruletools:lantern" npc.xdir = 1 + end) end end end @@ -1858,7 +1930,7 @@ minetest.register_on_generated(function(minp, maxp) else local number = math.random(1,5) if math.random(1,5) == 1 then - minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/dungeon"..number..".mts", 0, {{["hyrule_mapgen:chest"] = "hyrule_mapgen:chest_key",}}, true) + minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/dungeon"..number..".mts", 0, {["hyrule_mapgen:chest"] = "hyrule_mapgen:chest_key",}, true) minetest.add_node({x=pos.x+math.random(1,12), y=pos.y+1, z=pos.z+math.random(1,12)}, {name = "mobs_loz:mimic_chest"}) else minetest.place_schematic(pos, minetest.get_modpath("hyrule_mapgen").."/schematics/dungeon"..number..".mts", 0, {}, true) diff --git a/mods/hyrule_mapgen/textures/default_stone.png b/mods/hyrule_mapgen/textures/default_stone.png index 439be68a424e5be666829d167d3637cb9997b903..2a44e390d1bf79a36cf45fe2613085976f99dd32 100644 GIT binary patch delta 725 zcmV;`0xJET1?>fpB!3BTNLh0L01FcU01FcV0GgZ_0007?Nklp;(zY;27u$yQxrKe7*LfJ zclY;<(-G(XM4p#?`}&o#D(SpO4*UIu)o8w#7p$%3>gtLJ@F9?D1HI4Ncu} zdvnX(-Tg&cntx)Q!-qi68ErK-Hu!Kt8-r-08DEdF#!%M{`}cRAUKRj6JbWhG?g$|; zolXcopwxh_>qv%|q2l70^?FSbCupNlL}(Fw2rOQg9NQKd49M0Q;dH_!?sDi|jvEdU zfXU>BzCQsl91R(WqOKc;NrH&*ym)0k{{TQ;H@v*AaDUd&91cj+wrH)1tzo+@fCKaS zjC{8w-{puFv7y$H&iXvn`)K%`Y3|MM1=w-~-wkin8K*GNJ2^e4Ndw>xRyE z7YB%_itqG&&vLa!v_t=|wu#KX@& zQIr*VS$`2iAW0mG2x|;y1KVu-|9|wH5fNTjE3^p0xo5rl2OV1`*JC>GF@E1s~^gx~?PJZ1Gh^b2#AQ7)~Do1FZpw$Ok)^BJLtTjkc zmb~u|9FHy5IoxmvK)&1k2$m&|W3&i2(WFU8GbZ8()Nlj2>E@cM*00IF?L_t(I%T<%z za@sHug}=tXA{lI)(CJ0Sgo{r5dY#Vnb<=nVKY~P?w3Em zf1QO8e|&7W*b@r@z^B%vX+l-)X_^xNX__FVa=E?`0CcBr%xQT?h4q%FbdhM-vJ21fLI9PDC}Zk0Dw}OQI_#KpLasX8h<){;&nc!F(-m3 za@N{jtviZX2uy7-wV`QFgi%O)KI0d~41lI>e`$JK4Df?6K=jaTVzsNNb`|*~N2(IwiqC$(BT0rRRdx_Rwp%>UclNE)V!7h8FKWMG z&t>zrCWs<@fKiq?_5aldy|bd2@i4x3@uHY9h$GDLh_AIq^u()b?=C(+|8*BU&qwvG ze*on9Bb&E1`6TZgXsxd-N>wt-GWPo&x3_m!?o4gitlw$cmZF$(X&jhNpPa>}Il0zs zOZF&Ll7D+-v0UMs+K}guNL3(`5Rl4UcrDT|1BA?{l;;52R zO3d--)a+&oAt3<$+f1BS200000 LNkvXXu0mjffRng*p5UDqKZ7-O*3ayT3q z#}TCz-g}f%D5c1ZF|=*Va`yW@B0^PFhzNO}(=-h+M#gbWmn=WcLI_kuyw@9%F`s}(;#KdiOZoX=;p)(LSrA0Hot5D<~H-ZV{VPHWAoD2jgor_+fT zBb&{Jwrvp+zP`RN#&CCc$9})(_4Sq8+gtAM?+GCQaP{)?GFxlu`<|}r@ZPhCt*VNm zC@{t(vT2&|-X~XCQ4|1ape#!kv2|S|B1zaV476>F)|x!e2_cY)2z}q9wMJ`A*LB1g zvDR`t9sw}MFbo4RMnr@V0?s)^gzS7iGtV<21Y(SoWr;C{zV8$M;c&oOo8-nADT;!o zX~^bzW}2pyg7-cVEM>{_9OqoJzfdcsSRaqagcf5Y#>j5B!#PJ?*Er{hF(&KF+_Flx zJLqQycx(FGAXbH4S2XW9r0xsfULI`!x7zxKUKOi>dz7B^M&gO-ecX{6T zd7t-vVzylnp4Y>5yBLN}vw6qWRXxVEuq;zlejzTZh~Fnc+JAOIOvB2Wmg2M6#&3>@ z&nEyl+bshHQK_6p7~-m`;15Q~xRjZ5gb$5x(^dw0?0$}YVpwT$}Cy1%3yng~k)<9$pF8Ai~{dM^d zwrz`~AECPz!ZtC=MKVqx&&{Ob`GfYoz62rQYV;&r_={O8^a^Sl^W9 z>RhT2-FJw)pUfQIqMqP1x1_L50FvGpNk1Zf4V5%oe`c&6r@1AKauI;I{QEK#{s^`H>A8kl&(m*qHN(a|? no}2oi)YNLrvRYk~X?uU!9FN9f{`m_40000`^R@7f>6t0n37Zl2kBc1rt#f!@L$}j}Op6Dz%N+vo|GJQA0Z_odAOJ)-tki{(0V-aDqYIDmy$>8_UotV7mkMtF`K??lUW0pv4#4;4i-ZPa zoIZI)CYO@x3xC$ax)l8;0DjHEzrLn0K=RQ0e8&zOz^{oPdU>mVFAEl=E vkS$sx(E&q&WfY@3tSuo*P?>pD53~{pblE0;75qYL2a&6ZyU@zUAWIV_dSQJP0mcn z!2ck43-EF-Pxn=>&TljlMk^Ha@@0A%z1t=VLjXojx2fzM{(lpQOixCE!ZZ=4$>r24 zlQR?YKWwFm!jP2XBDyRLZxG#b5(T35Io)z-JztD1#smUDm}XKQhE6s(8=j*)UXlu~ zzrV&@8*@9mh2Cv*KRQpLn3rk=XMJCaE(?I@(Mzeq*n6}^tR825UmD&Z0Cm3x zz;CTe%5ll=EPs${fPLG?QnwrhwXXI3a7FMIG~wvek3kI)fapv&+h~LY_<6dHiGFKU z`VZFda&FUEYisA{@eU(9K;5sYko^a1WUMrmy+choM_(Tp*@0La_U?)Tfp{DC(x%jm v4z#v*?A;Z-oSXQe)Rf0dvQW&+q`N=(SB_ggMCk_r015yANkvXXu0mjf@@cyh diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_butterfly3.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_butterfly3.png index 2d0db1850df9ba54eedcd535fafd4a35cf49c196..faf0aebec094b0492741afcfd4f0b2f48ce9d0f7 100644 GIT binary patch delta 500 zcmVB6){6a5K4xQX3&aaL;{wkXNWnPle-*VFF%LS zgOYsf`@ApT_wq^ETweS&cQH+aL^4HfyULHsrbM5S)U+n%W`B1WJQ~1qI?OG`7#>k6 ztrvR?vZ4&I@>augIvhD9<2VjR^EcUCUi82bCCbgqUs!r`nrK8O8a>A9p8}7*o$WD5 z0BTwjFXkIun~$+(UH8R`tMmNCroWQBFWg_&SX(lf2`u>VV&*G_&%;bkO$$HydK1Y_Jvz9+a3oI8I(xUNgJ`jZvo67hfnfv)!b-xj86bPr68WyI|(pRjG4 zjo>}v0fo9}Quj;%BJyGUHbzHNG+Q37>r!!bfNnBS+ih#`bfioond-u=R*Qw#$GLO$ z7k7u=QTI$LuI_^oB}!?%D9Hfjj~i0EZ8Me(5ekLa?O0eHn+F3Qe6XhlHLZ!4PliNh qd_t&cP4xSZ12Z`_E!4Eu7y1wMrN27U0zu3G0000DUz&T%}|+J zkpJM6l_m%~IEfr-Vd5HjY~6|#h{5M<-D2>(df`O`0>Bi>xIAo4Ub1*LMtOQxD!AGG zh`9D<`);1BKEm?T6eZV_YJ~&4D$~LQpdAJTVTadlO9^*#H6ryK*j4Eoc>vzKJ^=OK z22LW!O5u=14}Uz(Z%A9W6g0Tj_4hNr-|EBdFo-}s5kN`|_uJ@&1i1Nmi-_vK4K~MX zIE7;0c}O#O_<3c*80Ed|tB{-HHBwfZljD6&Ie&&F4y14cp$?2GpON9G^wb3)O>M2u#4Q%Sg(ZcrDB zfh>ev@b1AGhUE`%%d-&D?C2uGz`(%3aPb)Z^O>xWD{52|CiV1V|aM=6T`ulM8>$~YyUsI`U%5}SW}{X&HVrGuDymh j_u6X)!%$_oLFj4$-==)t{)9Di4EYzsd3aA>)BEd>_E z23cNeL1wc!jTu(!3O@G$Ko$?&9vs_3zsoU>g1QM{6r?dj=cqux%dsdn^1#6DVJha* z@3tpbR7^%HreY4Cd(u0$rKnJFSzhA#r2qgaonrD?Ug{Ny;qPVSO{rE7vF#WA%na)Kf(*hw&T)_4q%47{_u@~>C?BLBxz<~U|?`GlxJXI zU|{(6^EU$%K0o4f0RsaAgCH*l!~mEph%w~evkwgN;{0$uOikDn;M0sX9T=%e{AXZb zVBq6oC&~*j+t1y4ff|i430#ID%VSN6FqaSl=We}V#G4mz8HB8nY5)LHTuW@}7(9aj O0000}{7tj2C|I>f` zcx&HmAg_G*lk#&(iJz(pYTY60{+&N`^xTKPXWiLquOH?K%IcTc_y6a)51;Snx5-)^ zm$+Fp{r~^}?=+e3SnXT$^Z!~VJ%bL7yU7Va5V2^Jq~7tk@(=cRQk)plj4mE9-~G&9 zcw?7qs)%Gq*q>h~YafZ$SN?CSING&q*%9r!y7z1!7f!5uBK~n<;k&o?Yz);!A*=dj SUIqjG&*16m=d#Wzp$Py!vW%Ai literal 0 HcmV?d00001 diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly2.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly2.png new file mode 100644 index 0000000000000000000000000000000000000000..f067b9d4b37e3cdd8dbf6c45181e8136c1c56fbf GIT binary patch literal 328 zcmV-O0k{5%P)#af-ad2wvvI5>&^)U0jcZtnx@8K28%|6xYg aZAIVqo>&}6P71^T0000luif-5f^U9!c;6QcQ`z6rmI-)z z9%z7sk=7YI=`=$G;PL1{$6<>zZ;IocUGn1v`OUk2Q4c+AR&*+tCzzaIZ*7U_tId1( zq~k#!_1z(v7^Zf0i0!1Y=4y3$ySqgxMKgLO>?)$q2JO}}gI*suTN2wzwEcpBYhgw&SEzsTU00000NkvXXu0mjf3Z9MK literal 0 HcmV?d00001 diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly4.png similarity index 100% rename from mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly.png rename to mods/hyrule_mapgen/textures/hyrule_mapgen_dragonfly4.png diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_moldorm_stone.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_moldorm_stone.png new file mode 100644 index 0000000000000000000000000000000000000000..041a2174dcf4ff1c4021784e55066be295541b70 GIT binary patch literal 354 zcmV-o0iFJdP)lP`0^KoG@$+>jWiQ-jLHR2>MwwJH)-+v%67>F4N2 zh$kizhohLrGf^=a215iD%%*!c7ev==visiKcmGCTA5T|+bQN>lU!3fR?n{h?{4k4| z&u*mb<<%iJZ3)o#QzbYS^6BSK^~9#H`B^&wFk(mB(xlM83{6)tMwBG`;OXN!SeK#Z zxWDuuAV~H_q~^@R5;6}lfg>EKomvKgd~uqI|~u1v|vFO+Ex1#`G$O1zM+0W z-I!GrqR>rAA!Jd^!hIr)3wd#pPITej3^Q-;<-Rv}R5=fH(X?Fo9suWPj;L-0kb2Ry z457A{t~SZ)=9V$&w^x9kuqx+)7V;3kIg!;FBM;jFdSrp~mu=I5DI%hdSp@L%8aH`3 zX(LQFT;%U34qVf|m)A^Z3jhxL8l9ztfLgAM^A8@c&zRib!Sl9vX@YnTMX8K`m|Xxl{_%=cgW zE>F!Tj>OXzQ}cW*&W;SwEZRszvN(2Z_H3jvhpw40fVJ-e`um-so3`yUb-$5+;0tm0 V!brIM^{M~>002ovPDHLkV1ktfp)mje literal 0 HcmV?d00001 diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_rock2.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_rock2.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc51fd45d721e12b6bdb681d3fcdd46c8830c37 GIT binary patch literal 374 zcmV-+0g3*JP)ijDFgGUb%707*qoM6N<$f>QaM4gdfE literal 0 HcmV?d00001 diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_rushroom.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_rushroom.png new file mode 100644 index 0000000000000000000000000000000000000000..2863dc171b0a233cdd35d768a073cc3474074739 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wk0|O(U zr;B5V#p&b(309Zpy7is^H+C8eF0QP-)b?Mk%q@a9QSsU}^X>PHCOl;lwpL~nG)-jt zYf;O_%2~-1F7UJ!Boz}=GV$TT?skbb10mrGE}>66N?C_^^7HnlR(yD*==^Y7joTW% z7vE?7_+M~5QAAxV?{vD&zklXoXC>HvO#f-PXXn>xiM5y5M4YF5X_aJp&T5db#>#lK1xmDG`+?4=;9IW#x~vNwFw?A;Y|UrkCyTUfuT*eRy)|MeeU2{kv( rkUQKQK3!r?jI88_%(R4r1O^6Wi>j=$&+S`)!NuU|>gTe~DWM4fiIaF4y14cp$J}2`2N9Oa+|BRxCi5Sh?alvr0Q+^^S z2C@)x!S%Q73=I8S7#JAXvC6X$(kzpe#lXP8!0_hWGKL=~K47R}LU!)wMBe|%PBh!} zhVjX?X>i3b!!Qi^oXGnhmp{!myPhsT!~1Z4FXF14xr7m(Fs`0)4=gI?7g#z%{T{(pFU3B!w6Q{tsImH$6Z qd|=?P5McOm;sb+3s2$uObhQB30eRJVSc-E10000Y(T>$x1^WXgHAW-p7f3y>W{R${I6t zhqxYug+5QUIBE;2Tu~T~)q*80OjNDw0^8jP0MKWEeJ+^=Kz~g<7Ef%(ra2K=Vj=v) z$1*oPMs<<6Z!9q*1|HAy|0YKrT?cQ6sgTN z;kE?7t=~Tu-bH*7PQN9=naa_eMjCe49;7=kGcgxsdoZLuz1w%@z8FIfh(Y);{~t`U eL<~|{`cQvbR&sGKZ>L!R0000{O-~b16o#L3?o3Nd+gP+BhM2SgMCwLexpj#w z{iDVpKf#5Gt|Y`JmINY%NlVj@(CN(F>tZ_7X*{c&d+&Mke#wWU9T&xxqunN_wIS^b zp}X7UYA|Cs4QW(;I#28TxtlNxV=fOJ`#r<{c7yZ3Bb35)`+q(ck3)6r3>L(R&3AHu?DFNH%;)NWyYZaZI_6Q5?Q`7~PW%>?k^w0I#MW^$dLXurII-;a z4Bx901laHm0{m)6v@e8;@A2YE4Nr9i;Hj|lsDh`0XOwoU#@p#8*IhwGKp+ejDN}2? z8qA2TU6D6yP1?&z;qr{_LTEZ z#L0APMN3jI`iG9=aTA2pL|IC3E;YwGhc2~8g{)boaDUJgBYyx1a7bBm000XU000XU0RWnu7ytkPnMp)JR5;6}lg*CPKoEq# znjdG)j-^N_hn%?bbR2mKZoDA3J*+^{+KH2RJk4PoXITLfqAnwMkGp%Ss`YUv186%K z`+7b-1HgXwYi#>)zjs3b`26VuWfD$CF@YHXUSI`^TVkrGbAM30`118zEs)v*NPH!{vu z#u)K(h(eeAokXj(*Un+n{Lx5ebpq4kgSLazRc(Kqu15fM9{?8(79nmiNg&5<0mInC zaGCH~q!bXwaGZfcN(~4K#xT@MscSG9$4iw_|GUmV0q;`M7b6)^3IG5A07*qoM6N<$ Ef&sG3LjV8( delta 491 zcmV1&Z5QM+s@p$@+0>nUyG;%t1Dgqct>zDES zxk?_xPaqiSWJ`f1old$RZi+ieR$vFnG{i2+-QjRncehiUFE%`_mfTFQnLqww%>aPe zWxMAWyQxqXqm*8i*pW{@vce)TXWS&E@xhx=SU0@ao!Qp*+645N8?hFQ1*^u>Li71Rjj$TN4DXO=> zF{C7NNXBU7nN6UBh|v*oG>C0pv(0Owx_IAyvA>yK^Yi}sJkH(t{vE#_ h#DCshCd002ovPDHLkV1leL>f-Aj)J&YHvoAZXah5vwa~c6R={ zJxL(G!6T8h6}Jx`F6dF7lX%g`Z_UHQExw-(`wG}Vz%ZQ~M74!i`y0&p{cqaBghS>$ z;R#<4Rf_Ka|9s#6RFHO%F&5wd>fUipIw!_+$#}IyVHIN}^BK_-Yl@uD~=X6vdu7Q*jbS zf~i0u5QK!QY7jWYi93m+;$&?JHRzLbYMafLp99Nt^LBUMdov6F2Vouyz-&Geo8S29 z;oI;^svr?xdtH;YlnkmMk-LMVPt|)4!aNpVdjRMx5`gpJlE<6Fu0DQBrRT(uM!{UR z8=JE*kHy65+16PkWs!=@0T|wmrCcXX-Ey(#alZpi-Le=@mChpB+8^L+kLQz#`gVX- zkcc}h*OiS;yLh9;|)+)WM=bt2*quf@#y!|muCB4FY=+obKE*btow?UrqM)UV; z5|viPj11dny6c zw4>aci6QRSlAe;B$qGDL$`991l9|psDOA1h^nwk|hrQ>Q2= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=208, g=223, b=238}, "plain", nil, true) + end + for i=1,8 do + local water = minetest.find_node_near({x=pos.x+math.random(-7,7), y=pos.y+math.random(-4,4), z=pos.z+math.random(-7,7)}, 10, {"default:water_source", "default:river_water_source"}, true) + water.y = water.y+1 + if minetest.get_node(water).name == "air" then + minetest.set_node(water, {name="hyrule_weather:ice"}) + end + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10), y=pos.y+math.random(12,17), z=pos.z+math.random(-10,10)}, + velocity = {x=math.random(-5,5)/10, y=math.random(-4,-6), z=math.random(-5,5)/10}, + acceleration = {x=math.random(-1,1)/10, y=math.random(-5,-10)/10, z=math.random(-1,1)/10}, + expirationtime = 3, + size = math.random(3,5), + collisiondetection = true, + collision_removal = true, + vertical = false, + texture = "hyrule_weather_snow_"..math.random(1,2)..".png", + glow = 0 + }) + end + elseif weather_type == "rain" then + if minetest.get_timeofday()*24000 >= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=177, g=177, b=177}, "plain", nil, true) + end + for i=1,12 do + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10), y=pos.y+math.random(12,17), z=pos.z+math.random(-10,10)}, + velocity = {x=0, y=math.random(-15,-20), z=0}, + acceleration = {x=0, y=-1, z=0}, + expirationtime = 2, + size = math.random(3,5), + collisiondetection = true, + collision_removal = true, + vertical = true, + texture = "hyrule_weather_rain_"..math.random(1,2)..".png", + glow = 0 + }) + end + elseif weather_type == "storm" then + if minetest.get_timeofday()*24000 >= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=101, g=101, b=101}, "plain", nil, true) + end + for i=1,25 do + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10), y=pos.y+math.random(12,17), z=pos.z+math.random(-10,10)}, + velocity = {x=0, y=math.random(-25,-30), z=0}, + acceleration = {x=0, y=-1, z=0}, + expirationtime = 2, + size = math.random(3,5), + collisiondetection = true, + collision_removal = true, + vertical = true, + texture = "hyrule_weather_rain_3.png", + glow = 0 + }) + if math.random(1,2000) == 1 then + lightning.strike() + end + end + elseif weather_type == "pollen" then + if minetest.get_timeofday()*24000 >= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=158, g=220, b=119}, "plain", nil, true) + end + for i=1,12 do + minetest.add_particle({ + pos = {x=pos.x+math.random(-5,5), y=pos.y+math.random(0,5), z=pos.z+math.random(-5,5)}, + velocity = {x = math.random(-2,2)/10, y = math.random(2,3)/10, z = math.random(-2,2)/10}, + acceleration = {x = math.random(-2,2)/10, y=0.2, z = math.random(-2,2)/10}, + expirationtime = 0.6, + size = math.random(12,15)/10, + collisiondetection = true, + collision_removal = true, + vertical = false, + texture = "hyrule_weather_pollen_"..math.random(1,2)..".png", + glow = 5 + }) + end + elseif weather_type == "dust" then + if minetest.get_timeofday()*24000 >= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=215, g=156, b=91}, "plain", nil, true) + end + for i=1,12 do + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10), y=pos.y+math.random(1,3)/10, z=pos.z+math.random(-10,10)}, + velocity = {x=1, y=math.random(1,2), z=1}, + acceleration = {x=4, y=math.random(2,3)/10, z=4}, + expirationtime = 0.5, + size = math.random(3,5), + collisiondetection = true, + collision_removal = true, + vertical = false, + texture = "hyrule_weather_dust_1.png", + glow = 0 + }) + end + elseif weather_type == "insects" then + player:set_sky(nil, "regular", nil, true) + elseif weather_type == "none" then + player:set_sky(nil, "regular", nil, true) + return + end +end + +minetest.register_on_joinplayer(function() + if math.random(1,500) == 1 then + for _, row in ipairs(weathers) do + local num = math.random(1,7) + hyrule_weather.current = num + hyrule_weather.weather = row[num] + end + end +end) + +minetest.register_globalstep(function(dtime) + if math.random(1,4) ~= 4 or hyrule_weather.weather == "twilight" then return end + --select random weather (serverwide) + if math.random(1,5000) == 1 then + for _, row in ipairs(weathers) do + local num = math.random(1,7) + hyrule_weather.current = num + hyrule_weather.weather = row[num] + end + end + if minetest.get_day_count() <= 2 then + hyrule_weather.current = 3 + hyrule_weather.weather = "storm" + end + --player specific + for _, player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + --check if weather should occur at current location + local display_weather = false + for _, row in ipairs(nodes) do + if row[hyrule_weather.current] ~= nil and minetest.find_node_near(pos, 5, row[hyrule_weather.current]) then + display_weather = true + elseif row[hyrule_weather.current] == nil then + display_weather = true + else + display_weather = false + end + end + --apply weather effect + if display_weather then + apply_weather(player, pos, hyrule_weather.weather) + else + apply_weather(player, pos, "none") + end + end +end) + + +minetest.register_privilege("weather", { + description = "Allows control of weather", + give_to_singleplayer = false +}) + +minetest.register_chatcommand("change_weather", { + params = "", + description = "Sets weather to the given type", + privs = {weather = true}, + func = function(name, param) + hyrule_weather.weather = param + for _, row in ipairs(weathers) do + for i=1,7 do + if row[i] == param then + hyrule_weather.current = i + end + end + end + end, +}) +end \ No newline at end of file diff --git a/mods/hyrule_weather/textures/hyrule_weather_dust_1.png b/mods/hyrule_weather/textures/hyrule_weather_dust_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c954312d1993d4a3d80f267cc7d7cc9b647c9883 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^EFjFm1|(O0oL2{=I14-?iy0WWg+Z8+Vb&Z8prE0r zi(?4K_2dK~*kP!C>*29E8SHF8a7?;*k?alDRN18<9(jqxex;YMR(>fe)hZRcvvPv5s2YYV1(`k~$J z^+}T$@1ft%@ZK|&M7;UC-4=kKzx%@m0)bMjZ7i51i5R;wLTl%xon37hr4*g+1?Qb} z#;=Z&rXOR&X@bOY%<#w%yF15LDHv3a=Dm3{$a11E;Gf@*?egZbN#cm{@iFQeM1;y! zl%+!gEyPhwQIzcN9NEz*L@UMm=Asc%^!fu@zrD1xtG7(IH=s8d(CZBlC5R}bsvKom z0-%&)`-gqo$xAX<^VywGO`rv>HAhbl?ehI4lOz$&)c`nGBSD~XuBNVQvOK4%YmT2C zSuG0ZJqzo%OsCVu)isAZ2lnRboC%|lAPCS}kh~~}(q{f0cjMn z{;+ABD+#n_@26e6vbk)+KqDfEbB>}YQNsV;-Yc{S_SuQmN|9>K-7lM_svL0?^J4qC z9i5vt0Mhtk-jtOiiDSmDjNrXTYfWA{lql@u0~?4Y)tdE<1yd9S0B`nMcE&V}o}78u zoLgHky|Yd`iW2hD5yv5y0-+8#d3DylHhp!f_MV$_6I17J`)v`$hu81h5=SBV$y;kS zmQ0@KC;&V~Q6Ngtfx-j3JC|c&WvyYn_a7fzT=Y46ch3H=2ez>~XD(HeI6{lyDo>~b zv{vjrePxHkfJh5>Hg20J43Uj3V_aS1f!5QOoi(#2i9)o1_ns`zDasP(JW9cfKVMso zA`)Ti!J?5~>G=Hqq5;p?Xv*31Q~SyCjLFLy?*Sl96M{gal#t~mkGBtP&MuMJ3p_V*G8{X}X8rh3eG^a< NgQu&X%Q~loCII3tAHo0t literal 0 HcmV?d00001 diff --git a/mods/hyrule_weather/textures/hyrule_weather_rain_2.png b/mods/hyrule_weather/textures/hyrule_weather_rain_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a316117c343d29cbc541c57adfd2a48c159bc408 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*B;^ z#W6(Ua&m$LlQjRI^9c^jK0GW8yO=b)d;^x;VDX*g%fRq`5wrIf%K|^3at2RVKbLh* G2~7a61R2!; literal 0 HcmV?d00001 diff --git a/mods/hyrule_weather/textures/hyrule_weather_rain_3.png b/mods/hyrule_weather/textures/hyrule_weather_rain_3.png new file mode 100644 index 0000000000000000000000000000000000000000..91a8526c37ffe16c4f289ea2bc0567e8d3afd820 GIT binary patch literal 112 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP*BO! z#W6(Ua&m$Lb9mnUQx4CJ4Fwo(hrYUzY)h7Xuua4{TP8IU98vk_z`gQu&X%Q~loCIB{z BH%= 41000 then return end + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="hyruletools:beacon_lightb"}) + end + end, + on_destruct = function(pos, oldnode) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "hyruletools:beacon_lightb" then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_abm({ + nodenames = {"hyruletools:beaconb"}, + interval = 5, + chance = 1, + action = function(pos, node) + minetest.add_particle({ + pos = {x=pos.x, y=pos.y+0.1, z=pos.z}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 5, + size = 30, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_beacon_centerb.png", + animation = {type = "vertical_frames", aspect_w = 64, aspect_h = 64, length = 0.30}, + glow = 9 + }) + end +}) + +minetest.register_node("hyruletools:beacon", { + description = "Beacon (blue)", + drawtype = "glasslike", + tiles = {"hyruletools_beacon_box.png"}, + use_texture_alpha = true, + paramtype = "light", + light_source = 5, + groups = {cracky=1, oddly_breakable_by_hand=1}, + on_construct = function(pos, node, clicker, itemstack) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="hyruletools:beacon_light"}) + end + end, + on_destruct = function(pos, oldnode) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "hyruletools:beacon_light" then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyruletools:beacon_light", { + description = "Beacon Light", + tiles = {"hyruletools_beacon.png"}, + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + pointable = false, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.3125, 0.3125, 0.5, 0.3125}, -- NodeBox1 + } + }, + light_source = 12, + groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + walkable = false, + drop = "", + on_construct = function(pos, node) + if pos.y >= 41000 then return end + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "air" then + minetest.set_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="hyruletools:beacon_light"}) + end + end, + on_destruct = function(pos, oldnode) + if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name == "hyruletools:beacon_light" then + minetest.remove_node({x=pos.x, y=pos.y+1, z=pos.z}) + end + end, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_abm({ + nodenames = {"hyruletools:beacon"}, + interval = 5, + chance = 1, + action = function(pos, node) + minetest.add_particle({ + pos = {x=pos.x, y=pos.y+0.1, z=pos.z}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 5, + size = 30, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_beacon_center.png", + animation = {type = "vertical_frames", aspect_w = 64, aspect_h = 64, length = 0.30}, + glow = 9 + }) + end +}) + +minetest.register_craft({ + output = 'hyruletools:beacon', + recipe = { + {'default:glass'}, + {'mobs_loz:soul'}, + {'hyruletools:blue_ore'}, + } +}) + +minetest.register_craft({ + output = 'hyruletools:beaconb', + recipe = { + {'default:glass'}, + {'mobs_loz:soul'}, + {'hyruletools:red_ore'}, + } +}) + minetest.register_tool("hyruletools:shield_classic", { description = "Classic Shield", inventory_image = "shields_inv_shield_classic.png", @@ -924,7 +1162,8 @@ minetest.register_craftitem("hyruletools:ocarina2", { local dir = placer:get_look_dir(); local player = placer:get_player_name() if minetest.setting_getbool("enable_weather") then - weather.state = "thunder" + hyrule_weather.weather = "storm" + hyrule_weather.current = 3 else minetest.chat_send_player(player, "weather not enabled!") end @@ -1075,7 +1314,81 @@ minetest.register_tool("hyruletools:lantern", { end }) +minetest.register_node("hyruletools:climbable", { + drawtype = "airlike", + groups = {not_in_creative_inventory=1}, + walkable = false, + climbable = true, + pointable = false, +}) +minetest.register_node("hyruletools:light", { + drawtype = "airlike", + groups = {not_in_creative_inventory=1}, + walkable = false, + pointable = false, + light_source = 10, +}) + +minetest.register_abm({ + nodenames = {"hyruletools:climbable", "hyruletools:light"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.remove_node(pos) + end, +}) + +minetest.register_tool("hyruletools:climbing_gloves", { + description = "Climbing Gloves", + inventory_image = "hyruletools_climbing_gloves.png" +}) + +--[[minetest.register_node("hyruletools:climbable2", { + drawtype = "airlike", + groups = {not_in_creative_inventory=1}, + walkable = true, + pointable = false, +}) + +minetest.register_abm({ + nodenames = {"hyruletools:climbable2"}, + interval = 1, + chance = 1, + action = function(pos, node) + local objs = minetest.get_objects_inside_radius(pos, 1) + local destroy = true + for _,obj in ipairs(objs) do + if obj:is_player() then + destroy = false + return destroy + end + end + if destroy then + minetest.remove_node(pos) + end + end, +}) + +minetest.register_tool("hyruletools:climbing_gloves2", { + description = "Climbing Gloves 2", + inventory_image = "hyruletools_climbing_gloves.png", + range = 3, + on_use = function(itemstack, clicker, pointed_thing) + if not pointed_thing then return end + local pos = pointed_thing.above + local pos2 = clicker:getpos() + pos2.y = pos2.y-1 + if minetest.get_node(pos2).name == "hyruletools:climbable2" then + minetest.remove_node(pos2) + end + clicker:setpos(pos) + pos.y = pos.y-1 + minetest.set_node(pos, {name="hyruletools:climbable2"}) + itemstack:add_wear(1000) + return itemstack + end, +})]] minetest.register_tool("hyruletools:mirror", { description = "Magic Mirror (use at your own risk!)", @@ -1170,26 +1483,26 @@ minetest.register_tool("hyruletools:medallion", { if mana.subtract(player, 100) then local playerpos = placer:getpos(); --particles - minetest.add_particlespawner( - 12, --amount - 1.5, --time - {x=playerpos.x-0.2, y=playerpos.y+1, z=playerpos.z-0.2}, - {x=playerpos.x+0.2, y=playerpos.y+1, z=playerpos.z+0.2}, - {x=0, y=4, z=0}, --minvel - {x=0, y=4, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 0.1, --minexptime - 0.2, --maxexptime - 30, --minsize - 30, --maxsize - false, --collisiondetection - "hyruletools_lightning.png" --texture - ) + for i=1,5 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=playerpos.x, y=playerpos.y+1, z=playerpos.z}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 0.5, + size = 30, + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_lightning.png", + glow = 9 + }) + end) + end --objects minetest.after(1, function() - minetest.sound_play("thunder", {pos = playerpos, gain = 0.5, max_hear_distance = 2*64}) + minetest.sound_play("thunder", {pos = playerpos, gain = 0.4, max_hear_distance = 2*64}) local obj = minetest.env:add_entity({x=playerpos.x+1,y=playerpos.y+1,z=playerpos.z+1}, "hyruletools:spark") local vec = {x=6,y=0,z=6} obj:setvelocity(vec) @@ -1221,6 +1534,11 @@ minetest.register_tool("hyruletools:medallion", { local obj = minetest.env:add_entity({x=playerpos.x+1,y=playerpos.y+1,z=playerpos.z}, "hyruletools:spark") local vec = {x=6,y=0,z=0} obj:setvelocity(vec) + minetest.after(0.5, function() + for i=1,5 do + lightning.strike({x=playerpos.x+math.random(-6,6), y=playerpos.y, z=playerpos.z+math.random(-6,6)}) + end + end) end) end return itemstack @@ -1239,12 +1557,16 @@ minetest.register_craft({ minetest.register_entity("hyruletools:stone", { visual = "cube", - textures = {"default_stone.png", "default_stone.png", "default_stone.png", "default_stone.png", "default_stone.png", "default_stone.png"}, + textures = {"default_stone.png", "default_stone.png^[colorize:black:50", "default_stone.png^[colorize:black:10", "default_stone.png^[colorize:black:10", "default_stone.png^[colorize:black:20", "default_stone.png^[colorize:black:20"}, velocity = 15, collision_box = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - physical = false, + physical = true, on_activate = function(self) minetest.after(5, function() + local pos = self.object:getpos() + if pos ~= nil and minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name="default:stone"}) + end self.object:remove() end) end, @@ -1256,7 +1578,7 @@ minetest.register_entity("hyruletools:stone", { if obj:get_luaentity().name ~= "hyruletools:stone" and obj:get_luaentity().name ~= "__builtin:item" then obj:punch(self.object, 1.0, { full_punch_interval=1.0, - damage_groups={fleshy=9}, + damage_groups={fleshy=12}, }, nil) self.object:remove() end @@ -1275,100 +1597,38 @@ minetest.register_tool("hyruletools:medallion2", { local playerpos = placer:getpos(); minetest.sound_play("earthquake", {pos = playerpos, gain = 0.5, max_hear_distance = 32}) --particles - minetest.add_particlespawner( - 24, --amount - 3, --time - {x=playerpos.x-4, y=playerpos.y+0.8, z=playerpos.z-4}, - {x=playerpos.x+4, y=playerpos.y+1, z=playerpos.z+4}, - {x=-1, y=1, z=-1}, --minvel - {x=1, y=4, z=1}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 0.1, --minexptime - 0.2, --maxexptime - 10, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_lightning2.png" --texture - ) + for i=1,24 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=playerpos.x+math.random(-4,4), y=playerpos.y+math.random(8,10)/10, z=playerpos.z+math.random(-4,4)}, + velocity = {x=math.random(-1,1), y=math.random(1,4), z=math.random(-1,1)}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 0.5, + size = 10, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_lightning2.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 0.20}, + glow = 9 + }) + end) + end - minetest.after(1.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+3,y=playerpos.y+5,z=playerpos.z+4}, "hyruletools:stone") + for i=1,20 do + minetest.after(i*0.5, function() + local obj = minetest.env:add_entity({x=playerpos.x+math.random(-5,5),y=playerpos.y+5,z=playerpos.z+math.random(-5,5)}, "hyruletools:stone") local vec = {x=0,y=-13,z=0} obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-3,y=playerpos.y+6,z=playerpos.z+0}, "hyruletools:stone") + local obj = minetest.env:add_entity({x=playerpos.x+math.random(-5,5),y=playerpos.y+6,z=playerpos.z+math.random(-5,5)}, "hyruletools:stone") local vec = {x=0,y=-13,z=0} obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+3,y=playerpos.y+7,z=playerpos.z+3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+0,y=playerpos.y+5,z=playerpos.z-4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+4,y=playerpos.y+6,z=playerpos.z+4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+4,y=playerpos.y+7,z=playerpos.z+0}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+3,y=playerpos.y+5,z=playerpos.z+0}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+0,y=playerpos.y+6,z=playerpos.z+3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-3,y=playerpos.y+7,z=playerpos.z+0}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+0,y=playerpos.y+5,z=playerpos.z+3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+4,y=playerpos.y+6,z=playerpos.z-3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+4,y=playerpos.y+7,z=playerpos.z+0}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+0,y=playerpos.y+5,z=playerpos.z+4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-4,y=playerpos.y+6,z=playerpos.z-4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-3,y=playerpos.y+7,z=playerpos.z+0}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+2,y=playerpos.y+5,z=playerpos.z+4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x+4,y=playerpos.y+6,z=playerpos.z}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-3,y=playerpos.y+7,z=playerpos.z+3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - minetest.after(0.5, function() - local obj = minetest.env:add_entity({x=playerpos.x+3,y=playerpos.y+5,z=playerpos.z-4}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x,y=playerpos.y+6,z=playerpos.z+3}, "hyruletools:stone") - local vec = {x=0,y=-13,z=0} - obj:setvelocity(vec) - local obj = minetest.env:add_entity({x=playerpos.x-4,y=playerpos.y+7,z=playerpos.z+4}, "hyruletools:stone") + local obj = minetest.env:add_entity({x=playerpos.x+math.random(-5,5),y=playerpos.y+7,z=playerpos.z+math.random(-5,5)}, "hyruletools:stone") local vec = {x=0,y=-13,z=0} obj:setvelocity(vec) end) - end) - end) - end) - end) - end) - end) + end + end return itemstack end, @@ -1393,91 +1653,83 @@ minetest.register_tool("hyruletools:medallion3", { minetest.sound_play("flamearrow", {pos=playerpos, gain=0.7, max_hear_distance=15}) --particles - minetest.add_particlespawner( - 12, --amount - 1, --time - {x=playerpos.x, y=playerpos.y+1, z=playerpos.z-3}, - {x=playerpos.x, y=playerpos.y+1, z=playerpos.z-3}, - {x=0, y=4, z=0}, --minvel - {x=0, y=4, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 1, --minexptime - 1, --maxexptime - 10, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_firestack.png" --texture - ) - minetest.add_particlespawner( - 12, --amount - 1, --time - {x=playerpos.x, y=playerpos.y+1, z=playerpos.z+3}, - {x=playerpos.x, y=playerpos.y+1, z=playerpos.z+3}, - {x=0, y=4, z=0}, --minvel - {x=0, y=4, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 1, --minexptime - 1, --maxexptime - 10, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_firestack.png" --texture - ) - - minetest.add_particlespawner( - 12, --amount - 1, --time - {x=playerpos.x-3, y=playerpos.y+1, z=playerpos.z}, - {x=playerpos.x-3, y=playerpos.y+1, z=playerpos.z}, - {x=0, y=4, z=0}, --minvel - {x=0, y=4, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 1, --minexptime - 1, --maxexptime - 10, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_firestack.png" --texture - ) - - minetest.add_particlespawner( - 12, --amount - 1, --time - {x=playerpos.x+3, y=playerpos.y+1, z=playerpos.z}, - {x=playerpos.x+3, y=playerpos.y+1, z=playerpos.z}, - {x=0, y=4, z=0}, --minvel - {x=0, y=4, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 1, --minexptime - 1, --maxexptime - 10, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_firestack.png" --texture - ) + for i=1,12 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=playerpos.x, y=playerpos.y+1, z=playerpos.z-3}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 1, + size = 10, + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_firestack.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, + glow = 9 + }) + minetest.add_particle({ + pos = {x=playerpos.x, y=playerpos.y+1, z=playerpos.z+3}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 1, + size = 10, + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_firestack.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, + glow = 9 + }) + minetest.add_particle({ + pos = {x=playerpos.x-3, y=playerpos.y+1, z=playerpos.z}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 1, + size = 10, + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_firestack.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, + glow = 9 + }) + minetest.add_particle({ + pos = {x=playerpos.x+3, y=playerpos.y+1, z=playerpos.z}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=1, z=0}, + expirationtime = 1, + size = 10, + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_firestack.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, + glow = 9 + }) + end) + end minetest.after(1, function() - minetest.add_particlespawner( - 64, --amount - 3, --time - {x=playerpos.x-4, y=playerpos.y+1, z=playerpos.z-4}, - {x=playerpos.x+4, y=playerpos.y+1.5, z=playerpos.z+4}, - {x=0, y=4, z=0}, --minvel - {x=0, y=8, z=0}, --maxvel - {x=0,y=1,z=0}, --minacc - {x=0,y=1,z=0}, --maxacc - 0.1, --minexptime - 0.2, --maxexptime - 5, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_bombeffect.png" --texture - ) + + for i=1,30 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=playerpos.x+math.random(-4,4), y=playerpos.y+1, z=playerpos.z+math.random(-4,4)}, + velocity = {x=0, y=4, z=0}, + acceleration = {x=0, y=math.random(1,8), z=0}, + expirationtime = 0.3, + size = math.random(5,9), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "hyruletools_bombeffect.png", + animation = {type = "vertical_frames", aspect_w = 20, aspect_h = 20, length = 0.50}, + glow = 9 + }) + end) + end tnt.boom({x=playerpos.x, y=playerpos.y+1, z=playerpos.z+4}, {damage_radius=3,radius=1,ignore_protection=false, disable_playerdamage=true}) minetest.after(0.2, function() @@ -1511,22 +1763,22 @@ minetest.register_tool("hyruletools:pendant1", { on_use = function(itemstack, placer, pointed_thing) local dir = placer:get_look_dir(); local playerpos = placer:getpos(); - minetest.add_particlespawner( - 5, --amount - 0.1, --time - {x=playerpos.x-1, y=playerpos.y, z=playerpos.z-1}, --minpos - {x=playerpos.x+1, y=playerpos.y, z=playerpos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=4,z=-0.5}, --minacc - {x=0.5,y=4,z=0.5}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 8, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_powder2.png" --texture - ) + for i=1,5 do + minetest.after(i*0.02, function() + minetest.add_particle({ + pos = {x=playerpos.x+math.random(-1,1), y=playerpos.y, z=playerpos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=4, z=math.random(-5,5)/10}, + expirationtime = math.random(5,10)/10, + size = math.random(8,10), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_powder2.png", + glow = 9 + }) + end) + end end, light_source = 12, }) @@ -1537,22 +1789,22 @@ minetest.register_tool("hyruletools:pendant2", { on_use = function(itemstack, placer, pointed_thing) local dir = placer:get_look_dir(); local playerpos = placer:getpos(); - minetest.add_particlespawner( - 5, --amount - 0.1, --time - {x=playerpos.x-1, y=playerpos.y, z=playerpos.z-1}, --minpos - {x=playerpos.x+1, y=playerpos.y, z=playerpos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=4,z=-0.5}, --minacc - {x=0.5,y=4,z=0.5}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 8, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_powder3.png" --texture - ) + for i=1,5 do + minetest.after(i*0.02, function() + minetest.add_particle({ + pos = {x=playerpos.x+math.random(-1,1), y=playerpos.y, z=playerpos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=4, z=math.random(-5,5)/10}, + expirationtime = math.random(5,10)/10, + size = math.random(8,10), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_powder3.png", + glow = 9 + }) + end) + end end, light_source = 12, }) @@ -1563,22 +1815,22 @@ minetest.register_tool("hyruletools:pendant3", { on_use = function(itemstack, placer, pointed_thing) local dir = placer:get_look_dir(); local playerpos = placer:getpos(); - minetest.add_particlespawner( - 5, --amount - 0.1, --time - {x=playerpos.x-1, y=playerpos.y, z=playerpos.z-1}, --minpos - {x=playerpos.x+1, y=playerpos.y, z=playerpos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=4,z=-0.5}, --minacc - {x=0.5,y=4,z=0.5}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 8, --minsize - 10, --maxsize - false, --collisiondetection - "hyruletools_powder4.png" --texture - ) + for i=1,5 do + minetest.after(i*0.02, function() + minetest.add_particle({ + pos = {x=playerpos.x+math.random(-1,1), y=playerpos.y, z=playerpos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=4, z=math.random(-5,5)/10}, + expirationtime = math.random(5,10)/10, + size = math.random(8,10), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_powder4.png", + glow = 9 + }) + end) + end end, light_source = 12, }) @@ -1586,7 +1838,7 @@ minetest.register_tool("hyruletools:pendant3", { --mobs redo arrow code, see mobs license minetest.register_entity("hyruletools:swdspark", { - textures = {"hyruletools_swdbeam.png"}, + textures = {"hyrule_mapgen_trans.png"}, velocity = 15, damage = 2, collisionbox = {0, 0, 0, 0, 0, 0}, @@ -1609,29 +1861,25 @@ minetest.register_entity("hyruletools:swdspark", { end local apos = self.object:getpos() local velo = self.object:getvelocity() - local part = minetest.add_particlespawner( - 1, --amount - 0.3, --time - {x=apos.x-0, y=apos.y-0, z=apos.z-0}, --minpos - {x=apos.x+0, y=apos.y+0, z=apos.z+0}, --maxpos - {x=-velo.x/2, y=-velo.y/2, z=-velo.z/2}, --minvel - {x=-velo.x/2, y=-velo.y/2, z=-velo.z/2}, --maxvel - {x=0,y=-0,z=0}, --minacc - {x=0,y=0,z=0}, --maxacc - 0.1, --minexptime - 0.2, --maxexptime - 8, --minsize - 8, --maxsize - false, --collisiondetection - "hyruletools_swdbeam.png" --texture - ) + minetest.add_particle({ + pos = {x=apos.x, y=apos.y, z=apos.z}, + velocity = {x=-velo.x/2, y=-velo.y/2, z=-velo.z/2}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 0.1, + size = 8, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_swdbeam_trail.png", + glow = 9 + }) end, }) --master sword, an edit of Mese sword(see liscence for default) minetest.register_tool("hyruletools:sword", { description = "Master Sword", - inventory_image = "mastersword_sword.png", + inventory_image = "hyruletools_mastersword_incomplete.png", wield_scale = {x = 1.5, y = 1.5, z = 1}, tool_capabilities = { full_punch_interval = 0.7, @@ -1644,8 +1892,8 @@ minetest.register_tool("hyruletools:sword", { on_use = function(itemstack, placer, pointed_thing) local name = placer:get_player_name() if mana.subtract(name, 5) then - local dir = placer:get_look_dir(); - local playerpos = placer:getpos(); + local dir = placer:get_look_dir() + local playerpos = placer:getpos() local obj = minetest.env:add_entity({x=playerpos.x+dir.x,y=playerpos.y+1.5+dir.y,z=playerpos.z+0+dir.z}, "hyruletools:swdspark") local vec = {x=dir.x*6,y=dir.y*6,z=dir.z*6} obj:setvelocity(vec) @@ -1654,6 +1902,27 @@ minetest.register_tool("hyruletools:sword", { end, }) +minetest.register_craftitem("hyruletools:crest", { + description = "Hylian Crest", + inventory_image = "hyruletools_crest.png", + wield_scale = {x = 1.5, y = 1.5, z = 1}, +}) + +minetest.register_tool("hyruletools:sword_complete", { + description = "True Master Sword", + inventory_image = "mastersword_sword.png", + wield_scale = {x = 1.5, y = 1.5, z = 1}, + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + range = 5, +}) + --mobs redo arrow code, see mobs license minetest.register_entity("hyruletools:swdspark_light", { @@ -1679,22 +1948,23 @@ minetest.register_entity("hyruletools:swdspark_light", { end end local apos = self.object:getpos() - local part = minetest.add_particlespawner( - 1, --amount - 0.3, --time - {x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos - {x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=0,y=-0.5,z=0}, --minacc - {x=0.5,y=0.5,z=0.5}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 1, --minsize - 2, --maxsize - false, --collisiondetection - "hyruletools_swdbeam_trail_light.png" --texture - ) + local velo = self.object:getvelocity() + for i=1,5 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=apos.x, y=apos.y, z=apos.z}, + velocity = {x=-velo.x/2, y=-velo.y/2, z=-velo.z/2}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 0.1, + size = 8, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_swdbeam_light.png", + glow = 9 + }) + end) + end end, }) @@ -1793,6 +2063,14 @@ minetest.register_craft({ } }) +minetest.register_craft({ + output = 'hyruletools:sword_complete', + recipe = { + {'hyruletools:crest'}, + {'hyruletools:sword'}, + } +}) + minetest.register_craftitem("hyruletools:seed_satchel", { description = "Seed Bag(empty)", inventory_image = "hyruletools_seedbag.png" @@ -1984,7 +2262,8 @@ minetest.register_craftitem("hyruletools:seed_gale", { on_use = function(item, user, pointed_thing) local player = user:get_player_name() if minetest.setting_getbool("enable_weather") then - weather.state = "dust" + hyrule_weather.weather = "pollen" + hyrule_weather.current = 4 else minetest.chat_send_player(player, "weather not enabled!") end @@ -2175,22 +2454,22 @@ minetest.register_entity("hyruletools:sboomer", { end end local apos = self.object:getpos() - local part = minetest.add_particlespawner( - 1, --amount - 0.3, --time - {x=apos.x-0.3, y=apos.y-0.3, z=apos.z-0.3}, --minpos - {x=apos.x+0.3, y=apos.y+0.3, z=apos.z+0.3}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=0,y=-0.5,z=0}, --minacc - {x=0.5,y=0.5,z=0.5}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 0.5, --minsize - 1, --maxsize - false, --collisiondetection - "hyruletools_star.png" --texture - ) + for i=1,3 do + minetest.after(i*0.1, function() + minetest.add_particle({ + pos = {x=apos.x, y=apos.y, z=apos.z}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=math.random(-5,5)/10, z=0}, + expirationtime = math.random(5,10)/10, + size = math.random(5,10)/10, + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_star.png", + glow = 9 + }) + end) + end end, }) @@ -3539,6 +3818,29 @@ minetest.register_craft({ } }) +minetest.register_tool("hyruletools:obsidian_sword", { + description = "Dark Sword", + inventory_image = "hyruletools_obsidian_sword.png", + wield_scale = {x = 1.5, y = 1.5, z = 1}, + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=20, maxlevel=4}, + }, + damage_groups = {fleshy=5}, + } +}) + +minetest.register_craft({ + output = 'hyruletools:obsidian_sword', + recipe = { + {'default:obsidian_shard'}, + {'default:obsidian_shard'}, + {'default:stick'}, + } +}) + --letters from default books Originally by celeron55, Perttu Ahola (LGPL 2.1) --Various Minetest developers and contributors (LGPL 2.1) diff --git a/mods/hyruletools/schematics/moldorms_lair.mts b/mods/hyruletools/schematics/moldorms_lair.mts new file mode 100644 index 0000000000000000000000000000000000000000..ffd2ea357b68076ba22805d11971fee9e2c45c76 GIT binary patch literal 1795 zcmZ`%X;c$e6dr4<99F3aK_Gx0mLjbZN2sBqf{K6 z2`mIG4$m&Y0x)F@@dy-wxb*N)ghypY@In!c2QhFC97X}=(>XX`G&hBXVi?Znpa`HP zz%Z05L{JnH00wij7zmw<5x`u;2|mU{0McCYGZbci8Bo*A z#ZV@ObD`O?IbO3kI07vGg7Rm!Up}gSfC*8iC8)Qga}maL$$w!m)OpN~#k48YqoFp0 zFfLRXib9mA3j^tK2QFDG+ETwsAm++1mnU=|G>?D|>3BY;+&$9sz0w=jsMavu;!q6D zTW~#OPyD<$3yd|)e=nUdS`P4|`DgE#aw@|knQ9naD!P}?h8XB~F(qOZ=#D4MeUB!VmU3J!Ri-7f!b0D^oLpB^FCC;eg3wSG z43lWPhwcs^$qUE^A?KAHpS;dhS-kIkQDs!+cpK*lZ}dddMs9ABR900x_4;VjvVW}$ z*NZHp;0{m8kHKtmG}up0*{bYJRb;IQ0W;FUk>J?2g3usOw5@Z4GpoT(SF)xe%->zE zeJfxAt#QAp#BVsYWZ^4`V>-)wr?lrrnqBJ(s_uh}ip~_+$12dKZFKAvs43HI%y4ov z7h7vfg*_edS!?^wmwdb|H;wE*aS!Z`?ubF#1u2xXWtx+TMWgJNHv`FA#ng7G=!w@- z*{ZeFf@n}qYa8v(yasBGyr-2rx%e-M*H0@GktE||OUsYR+1vHge%Q6kQZhn;t-6nQ z8tpZr^VV-}agTx;+}X_r;F!QkX09t=J~W;%wK3XR5mPVp?UNp~^4oYA5*V)W>Zy1{ zToJ|W(TBeYgFS3-^fee;5lrV44`oj3XhN&Kfh7NQwR>UNBa=95f03tnSMb%q+zWk6 zVj{Dlx~*-TD$Wqml3T&uOP2jneX<2z*8xshEDy}Oq?ins`@%}?Sikk=vf|o45;(OC z99W(AxT)25Xh*mtRn*^HG-|Wc73|#?r2q>$YB+VZ(u~cTGD7e%F;m#pRz(-cf7`wB zOm_m!Ca3keD?eqL6@Z;)ZgS@7+$IG$9?CJc(~6zi{mHjNYp;S zFS_Pf7jVAP7*vGlysnMCI*C$$&e(9Y4RR$y&RLmN?+N)flUNlNmA@h8ZI^yt#-QS^ z&CSM5q*w0ei<2y+rJ6dmzCow_aw;95^6|Gp?xi;;u+@9-?|c;DE5;B7(@V;#Re2ZGZeO_QJ6fCHu8b Ui>>2o3yWgMth1)>-%ir{3wLNWsQ>@~ literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_beacon.png b/mods/hyruletools/textures/hyruletools_beacon.png new file mode 100644 index 0000000000000000000000000000000000000000..12857594da734e4898c824b669bc95ef81d1c37a GIT binary patch literal 526 zcmV+p0`dKcP)pGz)3_wR5;6hlG}h3uvn^}}S2!ia5H(vN2;v@PTK7#i? z!6JfSc40G{%+9H&%8Nuvgh|~L-NpY={r@c-)!pay*Soudj~{a0y>h(26{ZOHkMR9| z;^%K=_w4!hC4Bm;amRp*s(|3>2XFyIzziHlB1X51Y`1nSA)Fk_gqv$e7Jvz&!gCAj z8g?&62vDt<2UIJ^I0;>6^aFGqI0tC}7ld6WJU-|N;N%I9Ps;ETv1kmvp%eH3c@C?U zBhQ7VVII&nO1(8UwUMR5GKVriQ3`o3gdqH1Cx9TzI2uU?S-Ll|jnI!^X5_h0UAi*> zlw~PYONaNubhwYbF%ICIaC;;3fFwXjg*2Cc!y1WqbkH`j3(>`qi%)7 z?~_o4=0(xT&u`#Rx@}~N#v&2Q6p{q0g>YF3N#XhN%jN-!BY30m#-zp&!E^WvnIkJ5 zaXMpS+Y3HR@IhE)`wbo%s2d}WhW5(aH)mq>-lGTWCp83E=3oj>PZLd}Y_~dZ;?-+m zSwfl#J`*BPx3FuCt}~iCvR=zPAV#Gf_Kqh4%DyiPVRhlSx(+nGP#_g2y8o`~hd@0cADC>yCvr+$ELPs9!^^Fo a;?3wGs~{_6dVn8jDTAl0pUXO@geCyi`Zu`% literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_beacon_center.png b/mods/hyruletools/textures/hyruletools_beacon_center.png new file mode 100644 index 0000000000000000000000000000000000000000..fc12618b8a06a24fe691ceb9acf8a0b497099943 GIT binary patch literal 20996 zcmXtg2Rzm9`@Yk`A>|N4=!k5Y+2hFGBxTQxWbc*ZSdkUkku4)DviBa@yJXAG-VXkc z&-eF#y-qne@8`LndtCQ*-S2mOP*;_^d;7s{EG(?M3i8q#;Hv}{76c0q7rcYYI^2B0 zcaYa{#=;_Oz4-$nV^&0CVbNkKNI%o`_&qi={n1W$hzia4# zcE07b>8^88{;R5X6)Nz;i`M{~X$h@=-*t z@f!yO4^+G_H(WQBf0g}UIi}>>GY$Drvml-58dHVgx7w>i!!H7i!%TgbfoHoKW-$!K-HBi|e7=XPm)H#$XUJ$lz1=VLI8^UG_E#v@qTZ}@dq@LFlLs#}fD@eBVYo9zwS zZ2xTk`DR!Yx}DIpyQJUsmV_!78#T3s!W6~B7d`)@<*8QUw84eWoy<#lQ;4Y~9AbsF0< zQfXedzxh87^6`_I>~JWa$}sIJi}W{;_T83CeMc(#9EKUtQpPr0njD;65{9WdD0OJ* zQTd9_bId+H>9-H9t8aeNhSMHy%vVZJMq}OW7c`H*9 zYQwX)nz*5F^K<%pj!*+~8>3R0;aL;4TCVp@R`sj@-YYq57TM)jzwRLK=qK4On%p}v z>KcSCE*LL(v}-YV4W=t5usv(h!h7jp+n5~uAbcyl-Oo(2*03ASv~d*fbCldSIP?0f zFSo~CfQw~>s`9Qw^n5Mtg;QC=DYIO&z3;EbwH12;1O}w~e195=R>FNxzXnYj#W-9> zl{V2WcL;~?365&LCNgn|ET;JWpwVBTWwTZ`QIE<9tsfy1#ef@M9`RR1@00LKM#A5u zTy62A`X^~#hM#JV2C&x5J2`komDf10+b<9}JJ#6Juq+rS-g}SW7g70(B_;SJjfz#i z^1hcti+^(hm;A&n`F)JFSbd&*5uX!LhGq?h3P@?6+}&h&5lY#Su4 -4Lx$NA_A$ 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 literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_beacon_centerb.png b/mods/hyruletools/textures/hyruletools_beacon_centerb.png new file mode 100644 index 0000000000000000000000000000000000000000..823953a57f096b0b86de96ea3308d64451451cec GIT binary patch literal 21135 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®E&JXl1o>orCkESkhNgY`=|P&) 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 E0iXWhr2qf` literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_beaconb.png b/mods/hyruletools/textures/hyruletools_beaconb.png new file mode 100644 index 0000000000000000000000000000000000000000..e82d610529147c536e24157b754a13b8c2778c5b GIT binary patch literal 527 zcmV+q0`UEbP)pG!AV3xR5;6h)5~ttP!NFOf6m1h?8ZSN&>}ACraJ`B!2`440ob!+ zg#@SqMJbINJ9g~jGb{p9f|Sf|7V~K?8sQ+8*Ka=L*EeKu-(g-qMQ&a}4Dj_Q)8{Y5 zAGg@%9{1_v`+qg&5XdhoECzNx7!M+#iW*RF2z`TY>cbM;Vd7nZd3FV90!$Dh)D0}} z&}IY9K{Y=Om}-uU0qy&J7yTBDfh0jpf;260_3H>Y8X>M$gkg*7hz>i56Ic&fj+xDn zEQfY;2IyL}UZd+ZlBQ6VP$WoRB3XgBg#Y6haDt8jeDZe>0^0$0J5&|PGEDX4JRoI( zsb+}vFh&40>|pE>W01?M(*WKhE<=)hpId=Eg>fLRe-nou6*+wcVnoA$jEXiLvfhAq z`%A<~Y`54roEgC=p?^T95h*fwlz~r>YKF`oV||W(`+gcQQBdd5+@sS3!w62m2qwuf zX@LpTX+XLjZ&SoNq{yMnVfld84H^bw?BK=A(}1;h|2(koz{noa$aH^4Y#ZXaUy#KD z$_pe(5u3qog1SYU2JJgSTO-TcGfNB;vFjl!c!3CbgOnv^R^b+x$m01C@CO&~##qm@ ROGW?y002ovPDHLkV1l4F-~j*t literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_bombeffect.png b/mods/hyruletools/textures/hyruletools_bombeffect.png index e2cfe3d9c6ffc95723d4fcb7aa5948286231aff7..41ad48ed5f8e9c70b80eb490a6665dd61e4375d0 100644 GIT binary patch delta 439 zcmV;o0Z9Jy0oMbN7Ya}a1^@s689-Hcks%j<0f|XOK~z}7?U=!FgfI+6C5Cg#pn|l( zjiM-un_HlQl(7vchk!>cmMzIx*Jj;(q{= zMEj!H5Y7*$Q4~e9*dAXaz;YfwYQ*qkjP2+Vs3dw2qZNoAfetUG+HP%V1>zIeiPO)2 zdS!{Obshd;!P2CtmtJkzTwmBK(M&<3#~gC2qq%+k!$52PTnLCllkg$L32I=V}jn``%=-P?G{ zr(%i-s+%cqf`Wb6{I~r89*++I_-V@*inBWe*HsI)6pKsmS*(qHF)?rNUSqH|y*mn4 z=B_CM(t?{Md50`=*?s4=IZ)Taj?zqF2Okrpa)x0()oUE+Aj&pS`~y2Wlh;@xYNiY! hQZ9!AGgDs9lW!`ug;)+&%d7wZ002ovPDHLkV1gXF%HIG0 delta 209 zcmV;?051R61M>lp7YY;z1^@s6jfou%ks%j<0HsMpK~y-))s(vxfFKM-UpUl`;U;tp z%1JW@UK&gT} zEoaOzLSgTzUbXgN&fvANYi^@DdR^v_za~5#hrZYsg6xax2CJ?WZ`x8U(wJLo00000 LNkvXXu0mjfe#%&@ diff --git a/mods/hyruletools/textures/hyruletools_climbing_gloves.png b/mods/hyruletools/textures/hyruletools_climbing_gloves.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ecf6add1a072093b141c1fe7ade54e01f471f8 GIT binary patch literal 347 zcmV-h0i^zkP)r((_!$m3*XN<=lkUX@0JjPqHp$!iD4L& z*7M5)nNp&lZD}N{N7DfypJq@f6yf?IY)d2857F<|z_~$=<0wyWFfn`N z`XO|c!SzE7zS@|se$lBOW3wzR9l#BqEw|8BhVSt_wtp_kfJ%*_t}+~`jP>q>PW6}w zCmIMLNLLx^%@#gCE~v15DjZuuUb^0F;r#!D^WpCyeAmFXG}`P5oO7&qr>DtMiiBnI tY`H}c1jzbfZbOUdh_cpBm2C1>T>-s5a(Ddt`oaJJ002ovPDHLkV1jw4n>hdg literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_crest.png b/mods/hyruletools/textures/hyruletools_crest.png new file mode 100644 index 0000000000000000000000000000000000000000..ffc8aae778098a303706065fa2ec0809519a192d GIT binary patch literal 626 zcmV-&0*(ENP)aONE1?r ze89mqCR}l~+khGuQsKs>Dm8&X^Z_BAi%sEs^6YA7tvF6d;Q?ba+Sz$K^X6#{9PAre zR4>K`0D8afqpwcR+;LqNjpO)a1OWJXdhuz1UY=$K0A8OTz}(U8<(UD1^!&(LoTPW) zVgRVi0)t7_8QgN3m|lMf0N~-O?AltB<*PLaItYg5g3ejd|6m( zDS6}VwM(4kG%-nf*OGHNS*}iysDnwRsxsp&#ngm_3=c71PLMp5^h+>VzG`x`ro$x> zHzYVti*NMkmur1ha`ObIgC&)yDd&`Aw|(x~6h%wKI!_Ck?b8l>c$-`if=sdN(RpadaK**esr zjzX3YkkWQ)p>%N(9DRchZf|JVHjwwck;eS)kW!MG*>xHpej=sZL9#D45t^pS%&v2w z<`ZnI6?=&gVk^hdwyhRwKJlrYpBw^EE2jZybdm@mP)fz-udf#XINlO~?#%-!09O@} zQZk%o7+kDki`pZi^YAf9252RzZ=aqaj*rOZTioAWqvn(765DFgeSZmnZM8Ui+Y1U8 zjQb_B`O~0gu}v+c*B%ujB;xoL0BSx7koo^YS^&dohLm9#xM~f#R$guK$8%#l=c;0a zTx;ngn%Q--`BT0-?{K^&t}6b~Hx==NS~<=0+86HcuBkR}eMD+L!RfgSrx}Fsp|?i` zfDN(N-;GWNR|zWKCAD%It$%T#wZ`$545t|Y2A_{`yk&I3W`x>|`z4f845t|!Z;4?T z>-K|U+%I7T$U@yVMfLqvfS${^U*W~s6|OSZ8kwevlyYY*1{bTyoIa)G&X@=x{8@Wy z`!#V%w;ryTHC;FRQGMh<*Gy#wRW|l&ym)J@Gdui3?8aILnMMdQA z2>_v>YF5OR(?!zr46Z#`0)xV-hb?1};c9A$e*gmre6@8jlh03#|9S57%(&kZXZ=_FQ>Mzt33eq$NV zildsjSx4s=!vLH;nPm4vwJiF7$FkEw(`$A>;H<1ezkdrg5Vm&TpIIZCR`_uw%!aU0 zTeg6+vJT&HfWQ2!WHKfK$s-juY(*9Le*F`_VJEyA;ns-3&5;$fQ!i%t)E8ws5W`}% zqsmpBmCy6xmv;fEDz^i0dpyML@epTE)??jS#I%2&X#p0ilpw7i!mMuAxN*UajD}7%las#o&)IjZlJ|Oe!d+{QCS>gbVg+@vWieu z&YgZ5{_CmjAtf1MqqXNc&pu&C|7DCfU#Ld0xvL3<6Z||L5{zgaNm$LT)dCApr#=B`FTsPwix2SVYi>q`WeH|RW8%=wnX7;_V>r%j^K z2&$!kGe-;fyz^zI1B-k;5GE1U>1}BsVFb}ceqIvBEbqRu7infeniz8vT)LK_qtSue z+d%7u0osmxF%~BI=$%K28?zLa)F1>1p`zs`USfCG5H|u`y`uq=<<&H8Z&YykdI;no z?Z>@*a#hDwyn{?C%6pBqL>8tfDc=u(BJ=EsEKX6l+k;eG;XyN?4$(iRV zXPJcFfiw{SCjS z#MdeM5e*0D?#+2F+g2^9#ItRg8PDe_wqDtF8 oA1HNuE7t#iclaBLl%K2&is@Me6PBIc1`I6*Pgg&ebxsLQ0JnaRQvd(} literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_dungeon_spawner2.png b/mods/hyruletools/textures/hyruletools_dungeon_spawner2.png new file mode 100644 index 0000000000000000000000000000000000000000..92e1f5cf4a72ac6ceb59650334c29d94e63529c5 GIT binary patch literal 447 zcmV;w0YLtVP)s8lQ*ktr#NdV(n@SD(;35318N1K5wu;*xNJp>13O!JY zRg^1VNJpb!1p%X)?q6JW>p&@1kr`QsX@G+-U`F{vM)qVJ?)W|YoDD#svx&`y$)_AW zmS#v2`G&C_b1>yg)2yu@=Q|FVj2r+oWXIwKJT3OZYMw+`7iymagO=M~jo&i7r pkjedE@l>8M2B#?@U;MFO_y*N!i88uBjdlP4002ovPDHLkV1hqOwjlrj literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_firestack.png b/mods/hyruletools/textures/hyruletools_firestack.png index eb36fce49661ea6d36cacde6dd251c2f40a79b71..793e402e7f3719821203b284d5ef89f38d8e7a92 100644 GIT binary patch delta 1038 zcmV+p1o8Xd0;&j*7YaZK1^@s66MgrVks%j<1KdeOK~z}7g;cSQ+eQ$5E6~+p=xf~C z<@qZFl7MjS!F?`Pe}&s5jT$Gd3-tu_0fH(6f?(=!wLjog`j9R~3=swbTrnwjc6YeD zqzMQVmiyk$ytnfV-`4m@xV6#-l`9e0KTO}yaE@FDFMHK zS}KMXcni=QOLT_C^bbHmbGtAK{-*`@^8ebt9LBeBZoqCo&BMkl(KUd*ZKv#DW*SJp zgbf}9MRpDJe^{^+*^G+!YB@YLBPh**!l`{;3KZvqTF32is1$(|J$A z;(QA(H!unK;wO2qf$5JxLACTe2L6%BgF28T{Zp-M%n`XfINDZb8c4r?MtSf zTQGkGbFY3|dH=TzYhUfU!=*0#l~I2z58f#oy?uvi8~bi3ECyS|REHUzZ}x~%F(Y(wlDru1s9fyRi9 zVI)We8lWp_%tWULNFu-Fzbc`&vUcIOp}vqEbugnM5c~Z9HttJuD+zfyl)fqw-?q`Z z0`6zb!G+?$Nd;>WGLOIc{)J+to{7{cvj)p&vJQeH=nJXl-Tu;9Gc#iT04C|6wz)lw QSO5S307*qoM6N<$f?P+G2mk;8 diff --git a/mods/hyruletools/textures/hyruletools_goddess_longsword.png b/mods/hyruletools/textures/hyruletools_goddess_longsword.png new file mode 100644 index 0000000000000000000000000000000000000000..86cefb64d4912a35ba604792dfb7a6ae13df9d26 GIT binary patch literal 751 zcmVYaei&* z{O`^S@A>_o_x(T5IT9+%y$}@3pCz^7y`E7b@;u>?Oku%ccBl;p2!~_>{vd!l2HXol z@hR#8z&qnjzyY*s!Xxs0V*O_21&o>5lB5=V&g~%_lF?{2Tt0dVV`jFbXb3k0SIofj zz)g*=^GdC-t=cuU?lNzwv zTf{~iT@!BnvpxW>+-TSqe9a74?Jc6Zwgx}|e7OBUT3vlyv(s}a!IQS3)!rhkw$sc; zf=s<1CPSaa!=e#>xqbuCv#%9fO;zmZQ-H5K2Q2MPBCnzpIVjT_=){rNM}2{goVVpf z8@f{lZy3VQ_Z~}={li3;mKYq1O*s4gaR$faw81wu2mE7G0F=BcqeKFSYzAB?Zotys zBnqofvOg;uM~9C+$4o4R!XW=i>*qV^6+}EfqKos4{-5*SFB4=KbR4L(P;~vAQ1k@M zZH*$o(#+WNSj&BV)GYxVX*@3uR+kf%Bg*|qn%f#hYo9|DH`lLOrRiF&IMaDYUn22p>mQNqQ@Nk%>-7Kt002ovPDHLkV1lMRUTFXT literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_goddess_sword.png b/mods/hyruletools/textures/hyruletools_goddess_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..206e17711710749147ff18c47f0aad17596c774e GIT binary patch literal 778 zcmV+l1NHogP)YV>vp7(#>@BHT+_#dl#ZCZ4%O$z{RpuwYG=V)>`(Wit1AO!;4=pGP#bK``s=y1)? zBSi&sC%Qlihy#u80pWPt&E(`1{ean$#K9wa?{Tf#@ETj4&sg8;7&b$>*LjVadDqzL zuy;AJcR2w#5EY94-{Aq;Px&jnW-6G5t~=K-Abbr++({x@O=xYlH0^$^MrTb zBSK0H@e97M2&&{Z(ed1l%PliLJm_6$_L}+crS%uS)cqNkTgIp}z**B@!M7EVR8b;4 z+r9UyrOj|pc|@2ln*FwY*9ej-N`yK6JPWH!%=8YS4L-!vND(z{6+KbmtHo8|(B8F9UG*!3aIW z%ZkDG)P&zgW@wJRN?uDc@e({KY+%8EpUHHl+EdK|U&yo|fdhIG0 zZ3JsyWPYrF=i}rU0P=@VXmvq^SrUl6a!IJ_fT^@loVJ)4X=w*w)b>gOh%U?$$F1ko z{fae}7K$4$?u(e>>@8;*k)J8fskS?Ya6_l2Sh+jakkJK z!!TPdIBM$y3J1`{=2`)G-~R5O{HSW?`bRNaEiAd_13r6zpK=08;*>+IQ2+n{07*qo IM6N<$f=DZKUjP6A literal 0 HcmV?d00001 diff --git a/mods/hyruletools/textures/hyruletools_goddess_white_sword.png b/mods/hyruletools/textures/hyruletools_goddess_white_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..aeadbdde18f9062135608d6be45950baf75681b8 GIT binary patch literal 737 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 bCfec~S>l$~$?F#800000NkvXXu0mjfxMGxk delta 224 zcmV<603ZMO0+0fbIDY`bNkl*V+S|LF|Ol-8OeLaZrcOb@OWiE*&`1S+LaRn=SH zdq29rorBXfMUo^~9K~5sM93y1n~WktXTe3eeGN{Xzs|r}Fj+qUdzAsZylXy6+?xx^ zD{wqb&ut{)>n=uc5FOzaW?PVL5ig>(rZJ`m!VrUC)MozVU?>t^Ujz?DZs!&7Uw&ik a>OKKuPN0d$mtVdB0000^4FH*eOUTvY;gNGgkOQCoWq&-!NVyzTgoIyfJ zgNRrW5w#&oNM}O2B+K%qm){F-$Jy*|i&FX^xW0M6KkxT`-|z4Do}$G_BJBX{f$hM5 z5TJp(zznb`fAuwOghznGUZ6fJZ&v%4AEANGzy_cuN(vS9B$3{kMEYzdBZ>5MW{o7$ zyOK!vx-G2t03%+Y4g#ccb`iLg##uwY%>c7N!)+0Q5>OH0KY^>jWpUX78YTv<6x4w^ z054D*(l~Qu&+`&Y{Ls;ewx%H;YQXJ(G|qmI=^k0D{m{`y7{ImmZ7Zk)kAd639{J=H zx#}j7E(5)ytdT^zX58##xWE7~3{+*0_vGI}V4JMdt(3aJCNEImnu#>dP6G?TMlVqB z$@Hvjt5Csg8fOQ9tw7Za)X|)>TfhXcXa~<$@K9Xt1vaH|HUad>++F#ewDLfIS*PGg z0`-`H%5g3gS#DBLkjnOvKHs4_StMSStgY2srt&J_8W4UMkpI(>0M>E#=V&@I5dIJQW2qB2*H0Ym$MD zrc_QMy$#qTr18)XouzJoWjvTMIbOif|M#J~Su6-Nw5NeuH-u6aJZu$zG}eGA)uFJ# z%P6qR3)CJ-zA?8$;St~iFHnaqjC={qxosRMOMkQ?EO@yJTn8SwZ35N@1eWl5;2dz% zV8ZQy#@@Cpp95|H3kDNT8|yo~K)ox|Ka1rB8&FP%)-OtdozJ7uX<@wrylGj#CVfM_ z2#xtNOrQk;{|H0opsYAnacATFrI5LzLxVYv~D~o0sV5`M=gH* zRfO-@99X2l1=f3kI+e!RDPgB+n?P4>Fp@}@q(iF;!k(Izrj^_Oh7X?U6WlHd$n*&V zQY#*;>C*a3z^E6f3(JrA3z&7f^uXLD@B;NQFw(ICtBb#v#@PjbnXYu}L0yjd&NEnO z)1?^qO=n*!!a}Pq#iqA@L#%l$qjTUq%i!J2m z?PkN3N;4|LKLKZCK@kFVzS(erK`&7IWWg0+%3Lbj*O2xE;hk-~jNd7pNm?oP8>S zXMsN?Xd3`eNuwV1aiC^|1yCB8_5yW6 z<^aZkWvl3}@WGT9sNV$(v%q%};ah2(Es8fMmLC`Mfw_DSTeNjkl4YaJ9WqK}OHF*B z^2cb-+)CH#YJ8x&$@~B2JwnMdko!XU;JLBPcEx=9*`cN8YZ^`^fTcni-)Cu4Vp|c}p!imRZ?U~gc8Loa>Tvh7XSbN07*qoM6N<$g8kg+ivR!s delta 317 zcmV-D0mA;04Bi5e7YYyv1^@s6AM^iVks%j<0T4+zPpWqQcb7Gl)0 zplf7cU|?{FQf4@?>@HE3F(PYrh*D-?U|?W4u@s#Amh8F+;Mg(N&frcQe P00000NkvXXu0mjf9leYJ diff --git a/mods/hyruletools/textures/hyruletools_mastersword_incomplete.png b/mods/hyruletools/textures/hyruletools_mastersword_incomplete.png new file mode 100644 index 0000000000000000000000000000000000000000..2ddacc6694c8a188cf9b8be168f9bdeeefe18134 GIT binary patch literal 650 zcmV;50(Jd~P)JvgUvVJupqCgrq>3i8iy5q5^``1OTVv1RE9+0F<}CV82vAtOABbRChf9z<#L!>t&7sKq78< zYq7ZDdz&la>4z?$n=T#Je}>o1(GOjq8~D%!rj|Za(B%N&JG=P4^n%6G1HHhx3$((| zDJs?;-t5R=JmIyE@5AfSJNiH2+ywfCa}m%@m-aSSdWxN!fNr`}dOP3O$%ATJ#nUro z>Lzj?@W=$7JoBh(H}GLuj{LFo>>~Nj?q8qv3y(~oYBx~XsdW6(fnCIbT^tx5DNxy| z!1GOXI{o<@ce(A3HuI#CCsEJ<0I9JQE?hi|g*lNudaBT;U-!fN1nCk0MDF*21k~|$ zYED2DG>l|_;Ar&Dfi%&10QJtZ%Qw6oSWb>)tgi%!%9*IQBo`mX$+#!hq+SsFz-` zK%{CnxF!%OAjugzGkO(URu0V*5sc|j1td8`lA6U~tq7;Q!3x`xtQ8#eMK^1^Cjm*$ z(B;X;a0;t%${Vb?AA;%dd=sLeg*#$U2^O5_H+_YqX4~Mg)bvc5l1iQ=IYWrK63ye5 kVAtb+QwP)X z-YLek9LEuW*tp=1<4~zo#sgnlTa%fY8Tk(fP@@K~udhp^(Ewm~cNgFHJD4MF!b~P3 zuInNqTwGjq!2$FrBX?bw?d@$$)1+FhM&2_<3D4*AEH5u}eSOXG@o{9i)v!|zkWQ!B z+uOr5O=f3j$>nlAIck{jbUF>tf>*26$hr?*Kr`h)N6r5RA4(6j!<#j))oPraocvR8 zkz=T}7Ol111zso=`U)UYWjr2lnMV)=s@F^AI1T{5@8fwMtE;OV92~H}zpn-optY8z zr6rDzj=Dr_Zf=Tg+Y|}~N~ID2p66kjCge*C zViAD(`FZN~dMk3z^X}Z#J)JO-NJPHjzVElrve|6kk>A>cN-56H&brRq;hyIK3jYy+s#)h2%QA%N17UgmofMhZWK&@8mx*X-0eGAyyaOIhu;N9okpZ6q{ zN-;4p!PL|gmSs_?R3aU-ZzI~;aOLIWBs=+1mq4vG<#HLN6sM=BEzkJf9|Nwf4OezP ztjPP7r_%2WIS~BY$2XDiQ7)ymmgg@rU{rbaQ1R(|QE{&dZf0E;78dURcd6Ogzea8> a0)7JJb~mI!XZvyh0000vBJ3q=7!1} zc^%jUuGyVf(71xuvKGK^;15RHFvpv~pdkI`*~Rmil6NFbUKgYX8@wfOLg0vmNov7c zCuR45enEPYFv);zU|>~rqSEJ<`Me`v-#-#e^l@jI0bSiW%moxsb`li`>*Uf1Dl4o9#p_zUIDY`d5uJj|_0kuNk`~1pQc^pmx&!KJnbCv^|(q$|Ank&Qr0000< KMNUMnLSTY-4t~x6 diff --git a/mods/hyruletools/textures/hyruletools_swdbeam_trail.png b/mods/hyruletools/textures/hyruletools_swdbeam_trail.png index 0d2641f3c28a29820a0f384f6ce4b63e3b82692a..2541f558fee2459dfb9654df2ca7042a0a5326d7 100644 GIT binary patch delta 518 zcmV+h0{Q*;1fK+uBYyx1a7bBm000XU000XU0RWnu7ytkP(Md!>R5;6xld*5pP!Ps{ zueF`JP^C>NgeNaXC=4DLDl#FJkp&4Rqz>%-4VnE%Fd(+Vh{VE%p{)=|kq}ZCB1D$R z1PT$tfJvPCF>pq&Q3g)>WZ%=>clX|Rrx4SLQJl1SzcN$(q<`0xQC6Z_fJMnC;8?-S z7M84YGe=MY$G{9I9SL>-&w?vNEJ!YZiD2qTa1B@mPRZ97QoDmvs^-8C;3raj1vm|? z16xtSn>gTQx6OW3@B#>ZGZU~(rx8*wPqJ|@HFa>@A-+^!4HjnNcLVwTYqSA?J%8RZ6^*G?!-T-z( zxUT{)pNbN{1v!vA;vCC_<-+V) zBW2c9FjsVG>jGynhq07*qo IM6N<$f*9ZJ7ytkO delta 608 zcmV-m0-yb#1o#AyBYy%vNkl>lqQj(-Rm_!DrOoV)2mx=zmZPNbX6G=J+f4z+BH>ZTF=2W%ei zAI8vrxCU2sgDn`MZrD3T20IO#Z)tp^~)66%-6}en^jDo zuV(Xq)+t^tLR@$eZ$MS8ix^kQ`HolEmt26~KnZQ$bsy4opSqiMikGW6>*wBwAR>xU z)j|;G1taTp7=Nd_FREK$7n)d$G50=Pc<%y&VpK5!VliFzvAgQSalOgM zB`^z3>F7kdD3ZL04}V;SMJ!egN)(+xIbj`q0fj_OZL_yt@#PVwPWO*$p{=-P-wkxS_mB4v uqx==+4tNJ#0JG*1Ig9iGcmL5GO7Q}4&%LbZR9ZO2R#x|7VKgBzYx2o+-yNH1wR`A} zO-~b8h3VJivZ7O2(W#+1bTS42hUR$lvw--Mco>>PZy&EPDLg^u&UMEo_BU%dyIf%x zr)GWVt7_68b${}7)X7tqiDrH1W5)GEGhk>AZMAzS7BaqS49%e*Ul(}q8~^~8S8uR1 ze?0X~(AvoEg2s8CT0H^)AQ=nQlUE^D9k9O-1IMuekR&N^9LsgwXf&v0S-zMkiZBdA zh=qZ4Iz1IrRh7?+$hCgIA0L2nxhxPuJf9GPYPBkGV@klb!#_&qSdxmO$P7Lb23U?^ zf@g9j0E5B6OU}{*p#em(|No;0QmGVw2Dmk$TRoR1jLLoh_@cj26Sh^A00000NkvXX Hu0mjfYogKK delta 806 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 N002ovPDHLkV1g(o(gXki diff --git a/mods/hyruletools/textures/mastersword_sword.png b/mods/hyruletools/textures/mastersword_sword.png index 1456b1285848058259a33116fdea459f908a729f..b9a383b12b5d5f7113493997e48eb89e85534259 100644 GIT binary patch delta 600 zcmV-e0;m1D28IQYIe$1wL_t(o!{wJhh|^FU$G@+14GwaPg(5+7P-%ts9Lym{9E2P< z6>bPFBHVR3$8JIixH;-_T{}b&ox}r&{z>BC zZ+juh=ktE~yR{)6X%=&Ae$!GaU24GcDoJRwvnoU<9|3b91Z~hwr!))XfOcC zqz#`8mNwip&0zM43vkY9G#UltaOx8mm$-4VcV&2_z-ecI{`nDR z&0dz}*m}p5d7)G%QBVN@m2w`}*Ds)Yu*Qr>SIHVE!F{=0?pMu3^!Jqnb~a54XFwEG z+_=N>;ms{vy7nx9uL|~KYDZKl=YfujN;w~Vj{Xbat$$I&z5PSnRcp{5eo5{(KDi7F zr8@0wnp7y&N!N9Xo5yB}JU=;vD5ybEih_#!S`pQQwb(N7$33BOyocSb8v5r)`26WH z^F_M7ajY4L6p)GvUA!#8INn2eMfl4!Q30u_kR)&8yJN#Xv)HS5x7j4vuZwxw_Cf+u zQK6gFeNou&U&B7LShyZ4<$O>NqM!ynVpR#|&*%qzgd}fI!IO>*0PJqnkYyXG!vP=@ mUT#^ok^V{5FQ|WYQvM0sP%&Y)+s?%R0000Tr_PAjlRk_u*ZQ(lOMNU*|c zAPEIR7821#j7ku@D5UZxyi|$kLINR@3>U<13d7<0@n<>HQWwkGmQ2l`(%R`l{LtFg zbU(d!=lwW5&w0<^cO+sQbq$STWqU&`;Z?>OajNVXT1^Ux34aMpcqfUACH(xE3IIG4 zUdCN+(zTk{2viws#LcT$02m%|Fz#~8-{PYU*Bi=Z_~g{IoX^;{1%tjslA;Z7x!VLl zzkLYLgcqe!fzRi|pf8aCr2h$zntq>T!E;)h?jwa3Pu z+#E^{7RY(aGxM6^0R?>G2P%~!Xvbcg9mhxK(oy@Wn;vV|x)yZ63XF_R`JH!bk4
Ij}FkTI|RyV0LC2&zC+-&FOd@ zk7=9IHZ1k+ib`f=f zefiZQGpm@i)I`ir@1fS_vbgY#=}AXKukU~Y^K%}4{#syQ@G}4tZX0TCE?YAS`L*y} z_{2|ySVRaPqr;CPy9@U2zbtgS3bFUK0WjEiSAPP?+Fc>GZ7)WbeT3v>4QZ)~xIFU! zV!aZQKX~z>QcUglWbn$^nRP-ekNnRFrxG&!R)bY!=T(YWKiSC6s}#oC=P`#%7cM;) zdAl|A^?$|u)PLEd8S$UKO!1<#gB_U#F^2=hjlJ(=e$FGW_*lnp9Hwz)#U$$+00000 MNe4wvM6N<$g8J8f6aWAK diff --git a/mods/hyruletools/textures/mastersword_sword_light.png b/mods/hyruletools/textures/mastersword_sword_light.png index 7062d3b14c59e95de6d2e148b5b838c26273bbe8..3746c84f945087c18ac5df4203b410cfa01cf09c 100644 GIT binary patch delta 838 zcmV-M1G)U;2J!}wIe#QcL_t(o!{wJ>NK;W9$G_+PnO8-62uTvm)Gbu}lk=f0@Xv!V z9Y~^5`VxT-#H=WZo+9ue`yWrqkhfVk#K zFyVIleQLAKg5wzQJO_ipj>^hM8<;^8n4Nt{ZMHeEECZfrq1R8KtgP9C7Zib!ktV9w zPps{ng~jp}^?&s*ys`o=U^L#K27?_e%YtDDY_@Nxt$n^FC!hl3C%qt2SmVZzD2vbK0pw7h@u3w`Y__-FZi^! z-vUcZPib%OCxnIlfhQ;LM`GedpV#%P6|bzc)0P%31b>0U%8C=k#hJT;d+mf*&yG=F zGF=p((biTiA|qvxq*auZD1D0gjv;vUV20|9^SIWWCPb+K0LrX5WE|Rq(zPzSv`NAZ8!(@)`ruLp%hOS#iLS3d*cFcQ`UK z6nNdC!ReYdRH-y5IB5>vXMA%RrldDe^)W3?Nq=vkBCVo<=8^40UJkTv2uVVe3TIBG zp|mbKU?;HUFIh)_HOg}}uq<@L@bM;biRg^;0X+e)0*bVJx;I{dj{a(_uLxI}230_j zmQNKqMfh$t!8F`QI^PtK&0tqv_|mp_C7?*lr$*4mlhEnDynxk?hdlR9y-6uWrh}0UDuOcd@rx QumAu607*qoM6N<$f(8bSQvd(} delta 823 zcmV-71IYaH2IB^hIe!&NL_t(o!^M`(Z`%YIhaZ2Wwp+(pOR_FmwxvazHd-Me&?F=z zrV3S@Ccz|5+)@7u#J|90hjHV^#AT;3O&y0xy8x567F8`3t)OWWk9;+8>?HQP!?Xxc zl6GyHzDHl4$M46_Rv2+fJ1^~yho%{*iiS2ycw_%}(eyn+aerxdJT%oo9~Hb-eI|yr zM?{rIGa!l_#`G5IsNl9;M<`LQ*6@N5U9-?t>*NJWFP@5R*FmWfw0u-Gh8de8Zki*8&|0F={!$IN%ST;-(T&Y2QInR0a>RW-1!vnZ0r zu;%{5R8A8MIhFr`dYJj$6iWX(a4vOg)Q}c=x~&_Z-3dSHG6S!aLCp zs~hWVZ0(_ICUGl;F6l$T2kyW@51kGKC@D*IIcEF%H(7D?yr zBf|&gK!1I|!{yu}fB^jR{3`?@rjHZ1QYbCq+|(@Q#O$%sR2g&yx$F&^UX4QOH-5ZZ z!K*#z>h~a^?Y8TltCILYr&Xm7&28{22ZF4E>= 6000 and minetest.get_timeofday()*24000 <= 19000 then + player:set_sky({r=111, g=111, b=111}, "plain", nil, true) + else + player:set_sky(nil, "regular", nil, true) + end + end + end) end end - + -- trigger revert of skybox - ttl = 5 + --ttl = 5 -- set the air node above it on fire pos2.y = pos2.y + 1/2 diff --git a/mods/mana/init.lua b/mods/mana/init.lua index 7c7694a..8687600 100644 --- a/mods/mana/init.lua +++ b/mods/mana/init.lua @@ -22,7 +22,7 @@ mana.playerlist = {} mana.settings = {} mana.settings.default_max = 200 mana.settings.default_regen = 1 -mana.settings.regen_timer = 0.4 +mana.settings.regen_timer = 1 do local default_max = tonumber(minetest.setting_get("mana_default_max")) @@ -230,8 +230,8 @@ minetest.register_on_joinplayer(function(player) mana.setmax(playername, 200) player:hud_add({ hud_elem_type = "statbar", - position = {x=0.842,y=0.02}, - size = {x=248, y=34}, + position = {x=0.992,y=0.02}, + size = {x=247, y=34}, text = "hud_mana_bg.png", number = 2.1, alignment = {x=0,y=1}, @@ -240,7 +240,7 @@ minetest.register_on_joinplayer(function(player) ) mana_hud = player:hud_add({ hud_elem_type = "statbar", - position = {x=0.847,y=0.02}, + position = {x=0.994,y=0.02}, size = {x=24, y=34}, text = "hud_mana.png", number = mana.get(playername)/10, diff --git a/mods/mobs_animal/textures/mobs_cucco_chick.png b/mods/mobs_animal/textures/mobs_cucco_chick.png new file mode 100644 index 0000000000000000000000000000000000000000..1950655455a1c0344cd8b58e8d16f9f39a17e6b0 GIT binary patch literal 4319 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 N002ovPDHLkV1l=oRz&~+ literal 0 HcmV?d00001 diff --git a/mods/mobs_fairy/init.lua b/mods/mobs_fairy/init.lua index c23dcdb..7100f22 100644 --- a/mods/mobs_fairy/init.lua +++ b/mods/mobs_fairy/init.lua @@ -28,22 +28,18 @@ if mobs.mod and mobs.mod == "redo" then stepheight = 10, do_custom = function(self, pos) local pos = self.object:getpos() - minetest.add_particlespawner( - 1, --amount - 1, --time - {x=pos.x-0.1, y=pos.y, z=pos.z-0.1}, --minpos - {x=pos.x+0.1, y=pos.y, z=pos.z+0.1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.2,y=-0.2,z=-0.2}, --minacc - {x=0.2,y=-0.5,z=0.2}, --maxacc - 0.5, --minexptime - 1, --maxexptime - 1, --minsize - 2, --maxsize - false, --collisiondetection - "mobs_fairy_spark.png" --texture - ) + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1)/10, y=pos.y, z=pos.z+math.random(-1,1)/10}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-2,2)/10, y=math.random(-2,-5)/10, z=math.random(-2,2)/10}, + expirationtime = math.random(5,10)/10, + size = math.random(1,2), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "mobs_fairy_spark.png", + glow = 9 + }) local objs = minetest.env:get_objects_inside_radius(pos, 1.5) for _, obj in pairs(objs) do diff --git a/mods/mobs_loz/armos.lua b/mods/mobs_loz/armos.lua index c14f27e..e943c1d 100644 --- a/mods/mobs_loz/armos.lua +++ b/mods/mobs_loz/armos.lua @@ -7,7 +7,7 @@ mobs:register_mob("mobs_loz:armos", { damage = 3, hp_min = 10, hp_max = 27, - armor = 90, + armor = 100, collisionbox = {-0.5, 0, -0.5, 0.5, 1.5, 0.5}, visual = "mesh", mesh = "armos.b3d", diff --git a/mods/mobs_loz/biri.lua b/mods/mobs_loz/biri.lua index fa671a2..99627ed 100644 --- a/mods/mobs_loz/biri.lua +++ b/mods/mobs_loz/biri.lua @@ -6,12 +6,13 @@ mobs:register_mob("mobs_loz:biri", { attack_type = "dogfight", hp_min = 10, hp_max = 25, - armor = 90, + armor = 130, collisionbox = {-0.4, 0, -0.4, 0.4, 1, 0.4}, visual = "mesh", mesh = "biri.b3d", textures = { {"mobs_biri.png"}, + {"mobs_biri2.png"}, }, makes_footstep_sound = false, view_range = 5, diff --git a/mods/mobs_loz/bongobongo.lua b/mods/mobs_loz/bongobongo.lua index f7255ac..e524b76 100644 --- a/mods/mobs_loz/bongobongo.lua +++ b/mods/mobs_loz/bongobongo.lua @@ -93,22 +93,22 @@ mobs:register_mob("mobs_loz:bongobongo", { shoot_end = 25, }, on_die = function(self, pos) - minetest.add_particlespawner( - 10, --amount - 1, --time - {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos - {x=pos.x+1, y=pos.y-1, z=pos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=1,z=-0.5}, --minacc - {x=0.5,y=1,z=0.5}, --maxacc - 1, --minexptime - 1.5, --maxexptime - 20, --minsize - 25, --maxsize - false, --collisiondetection - "mobs_loz_light.png" --texture - ) + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png", + glow = 9 + }) + end) + end minetest.set_node(pos, {name = "default:water_source"}) end, on_rightclick = function(self, clicker) diff --git a/mods/mobs_loz/business_scrub.lua b/mods/mobs_loz/business_scrub.lua index 6d97d2b..ea658da 100644 --- a/mods/mobs_loz/business_scrub.lua +++ b/mods/mobs_loz/business_scrub.lua @@ -7,7 +7,7 @@ mobs:register_mob("mobs_loz:business_scrub", { shoot_offset = 1.5, hp_min = 10, hp_max = 25, - armor = 90, + armor = 150, collisionbox = {-0.4, -0.1, -0.2, 0.2, 0.4, 0.2}, visual = "mesh", mesh = "business_scrub.b3d", diff --git a/mods/mobs_loz/chuchu.lua b/mods/mobs_loz/chuchu.lua index 950f18f..2345342 100644 --- a/mods/mobs_loz/chuchu.lua +++ b/mods/mobs_loz/chuchu.lua @@ -9,7 +9,7 @@ mobs:register_mob("mobs_loz:chuchu", { damage = 2, hp_min = 3, hp_max = 27, - armor = 100, + armor = 150, collisionbox = {-0.2, -0, -0.2, 0.2, 0.7, 0.2}, visual_size = {x=1.5, y=1.5}, visual = "mesh", diff --git a/mods/mobs_loz/darknut.lua b/mods/mobs_loz/darknut.lua index aef992b..992e2bf 100644 --- a/mods/mobs_loz/darknut.lua +++ b/mods/mobs_loz/darknut.lua @@ -9,7 +9,7 @@ mobs:register_mob("mobs_loz:darknut", { damage = 4, hp_min = 30, hp_max = 47, - armor = 80, + armor = 100, collisionbox = {-0.7, -0, -0.7, 0.7, 2, 0.7}, visual_size = {x=1.3, y=1.3}, visual = "mesh", diff --git a/mods/mobs_loz/deku_baba.lua b/mods/mobs_loz/deku_baba.lua index 979feaf..5f307e5 100644 --- a/mods/mobs_loz/deku_baba.lua +++ b/mods/mobs_loz/deku_baba.lua @@ -5,16 +5,17 @@ mobs:register_mob("mobs_loz:deku_baba", { type = "monster", passive = false, attack_type = "dogfight", - reach = 2, + reach = 3.5, damage = 2, hp_min = 10, hp_max = 27, - armor = 95, + armor = 130, collisionbox = {-0.3, 0, -0.2, 0.2, 1.2, 0.2}, visual = "mesh", mesh = "dekubaba.b3d", textures = { {"mobs_dekubaba.png"}, + {"mobs_dekubaba2.png"}, }, blood_texture = "default_dry_grass.png", makes_footstep_sound = false, @@ -26,7 +27,7 @@ mobs:register_mob("mobs_loz:deku_baba", { run_velocity = 0.05, jump = false, drops = { - {name = "mobs_loz:deku_nut", + {name = "mobs_loz:nut", chance = 1, min = 1, max = 3}, }, on_die = function(self) @@ -42,7 +43,7 @@ mobs:register_mob("mobs_loz:deku_baba", { fear_height = 3, animation = { speed_normal = 12, - speed_run = 15, + speed_run = 30, stand_start = 1, stand_end = 19, walk_start = 1, diff --git a/mods/mobs_loz/deku_scrub.lua b/mods/mobs_loz/deku_scrub.lua index 21ffd5b..e398aa2 100644 --- a/mods/mobs_loz/deku_scrub.lua +++ b/mods/mobs_loz/deku_scrub.lua @@ -8,7 +8,7 @@ mobs:register_mob("mobs_loz:deku_scrub", { shoot_offset = 2, hp_min = 10, hp_max = 25, - armor = 90, + armor = 120, collisionbox = {-0.4, 0, -0.2, 0.2, 1, 0.2}, visual = "mesh", mesh = "deku_scrub.b3d", diff --git a/mods/mobs_loz/dodongo.lua b/mods/mobs_loz/dodongo.lua index 26aba47..1b68bc4 100644 --- a/mods/mobs_loz/dodongo.lua +++ b/mods/mobs_loz/dodongo.lua @@ -10,7 +10,7 @@ mobs:register_mob("mobs_loz:bdodongo", { damage = 1, hp_min = 12, hp_max = 25, - armor = 80, + armor = 160, collisionbox = {-0.2, 0, -0.2, 0.2, 0.4, 0.4}, visual = "mesh", mesh = "bdodongo.b3d", @@ -169,7 +169,7 @@ mobs:register_mob("mobs_loz:dodongo_boss", { damage = 3, hp_min = 82, hp_max = 125, - armor = 60, + armor = 80, collisionbox = {-2, 0, -2, 1.5, 4.5, 2}, visual = "mesh", mesh = "dodongo.b3d", @@ -198,6 +198,22 @@ mobs:register_mob("mobs_loz:dodongo_boss", { minetest.env:add_entity(pos, "experience:orb") minetest.env:add_entity(pos, "experience:orb") minetest.env:add_entity(pos, "experience:orb") + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png", + glow = 9 + }) + end) + end end, water_damage = 5, lava_damage = 0, @@ -216,25 +232,6 @@ mobs:register_mob("mobs_loz:dodongo_boss", { shoot_start = 45, shoot_end = 65, }, - on_die = function(self, pos) - minetest.set_node(pos, {name = "fire:basic_flame"}) - minetest.add_particlespawner( - 10, --amount - 1, --time - {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos - {x=pos.x+1, y=pos.y-1, z=pos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=1,z=-0.5}, --minacc - {x=0.5,y=1,z=0.5}, --maxacc - 1, --minexptime - 1.5, --maxexptime - 20, --minsize - 25, --maxsize - false, --collisiondetection - "mobs_loz_light.png" --texture - ) - end, }) --mobs:register_spawn("mobs_loz:dodongo_boss", {"hyrule_mapgen:dodongo_spawn"}, 20, 0, 7000, 1, 31000) diff --git a/mods/mobs_loz/ganon.lua b/mods/mobs_loz/ganon.lua index 41ae69d..d498f88 100644 --- a/mods/mobs_loz/ganon.lua +++ b/mods/mobs_loz/ganon.lua @@ -91,44 +91,44 @@ mobs:register_mob("mobs_loz:ganon", { shoot_end = 36, }, on_die = function(self, pos) - minetest.add_particlespawner( - 10, --amount - 1, --time - {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos - {x=pos.x+1, y=pos.y-1, z=pos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=1,z=-0.5}, --minacc - {x=0.5,y=1,z=0.5}, --maxacc - 1, --minexptime - 1.5, --maxexptime - 20, --minsize - 25, --maxsize - false, --collisiondetection - "mobs_loz_light.png" --texture - ) + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png", + glow = 9 + }) + end) + end end, do_custom = function(self) local pos = self.object:getpos() if minetest.find_node_near(pos, 10, {"hyrule_mapgen:ganon_sphere"}) then if self.health <= 100 then self.health = 200 - minetest.add_particlespawner( - 10, --amount - 1, --time - {x=pos.x-1, y=pos.y-1, z=pos.z-1}, --minpos - {x=pos.x+1, y=pos.y-1, z=pos.z+1}, --maxpos - {x=-0, y=-0, z=-0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0.5,y=1,z=-0.5}, --minacc - {x=0.5,y=1,z=0.5}, --maxacc - 1, --minexptime - 1.5, --maxexptime - 20, --minsize - 25, --maxsize - false, --collisiondetection - "mobs_loz_light.png^[colorize:red:100" --texture - ) + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png^[colorize:red:100", + glow = 9 + }) + end) + end self.object:set_animation({x=85, y=105}, 12, 0) end end diff --git a/mods/mobs_loz/goron.lua b/mods/mobs_loz/goron.lua index cbe2490..85272f3 100644 --- a/mods/mobs_loz/goron.lua +++ b/mods/mobs_loz/goron.lua @@ -10,7 +10,7 @@ mobs:register_mob("mobs_loz:goron", { attack_type = "dogfight", hp_min = 10, hp_max = 25, - armor = 80, + armor = 100, collisionbox = {-0.4, 0, -0.4, 0.4, 1.5, 0.4}, visual = "mesh", mesh = "goron.b3d", diff --git a/mods/mobs_loz/hiploop.lua b/mods/mobs_loz/hiploop.lua index 134c043..5e93fed 100644 --- a/mods/mobs_loz/hiploop.lua +++ b/mods/mobs_loz/hiploop.lua @@ -6,7 +6,7 @@ mobs:register_mob("mobs_loz:hiploop", { damage = 5, hp_min = 10, hp_max = 20, - armor = 100, + armor = 140, collisionbox = {-0.3, 0, -0.3, 0.3, 0.5, 0.3}, visual = "mesh", mesh = "hiploop.b3d", diff --git a/mods/mobs_loz/keese.lua b/mods/mobs_loz/keese.lua index 62b2020..9b56da7 100644 --- a/mods/mobs_loz/keese.lua +++ b/mods/mobs_loz/keese.lua @@ -6,7 +6,7 @@ mobs:register_mob("mobs_loz:keese", { attack_type = "dogfight", hp_min = 5, hp_max = 10, - armor = 100, + armor = 170, collisionbox = {-0.2, 0, -0.2, 0.2, 0.5, 0.2}, visual = "mesh", mesh = "keese.b3d", diff --git a/mods/mobs_loz/leever.lua b/mods/mobs_loz/leever.lua index bf62e1d..7fe94b0 100644 --- a/mods/mobs_loz/leever.lua +++ b/mods/mobs_loz/leever.lua @@ -7,7 +7,7 @@ mobs:register_mob("mobs_loz:leever", { damage = 1, hp_min = 5, hp_max = 10, - armor = 100, + armor = 130, collisionbox = {-0.3, -0, -0.3, 0.3, 0.4, 0.3}, visual_size = {x=1, y=1}, visual = "mesh", diff --git a/mods/mobs_loz/madscrub.lua b/mods/mobs_loz/madscrub.lua index 575974d..582a7d1 100644 --- a/mods/mobs_loz/madscrub.lua +++ b/mods/mobs_loz/madscrub.lua @@ -12,7 +12,7 @@ mobs:register_mob("mobs_loz:mad_scrub", { shoot_offset = 1.5, hp_min = 30, hp_max = 35, - armor = 80, + armor = 130, collisionbox = {-0.4, 0, -0.4, 0.4, 0.5, 0.4}, visual = "mesh", mesh = "mad_scrub.b3d", diff --git a/mods/mobs_loz/midna.lua b/mods/mobs_loz/midna.lua index bc72749..4efef80 100644 --- a/mods/mobs_loz/midna.lua +++ b/mods/mobs_loz/midna.lua @@ -9,7 +9,6 @@ mobs:register_mob("mobs_loz:midna", { hp_min = 50, hp_max = 85, armor = 80, - owner = "", order = "follow", collisionbox = {-0.3, 0, -0.3, 0.3, 1.5, 0.3}, visual = "mesh", @@ -42,33 +41,20 @@ mobs:register_mob("mobs_loz:midna", { punch_end = 50, }, do_custom = function(self, dtime) + if math.random(1,4) ~= 1 then return end local pos = self.object:getpos() - minetest.add_particlespawner( - 1, --amount - 2, --time - {x=pos.x-0.3, y=pos.y-0.3, z=pos.z-0.3}, --minpos - {x=pos.x+1, y=pos.y+1, z=pos.z+1}, --maxpos - {x=0, y=0, z=0}, --minvel - {x=0, y=0, z=0}, --maxvel - {x=-0,y=0,z=-0}, --minacc - {x=0,y=1,z=0}, --maxacc - 1, --minexptime - 2, --maxexptime - 0.5, --minsize - 1, --maxsize - false, --collisiondetection - "mobs_particle.png" --texture - ) - end, - on_rightclick = function(self, clicker) - local player = clicker:get_player_name() - if self.order == "follow" then - self.order = "stand" - minetest.chat_send_player(player, "Midna is following") - else - self.order = "follow" - minetest.chat_send_player(player, "Midna is wandering") - end + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10)/10, y=pos.y+math.random(0,10)/10, z=pos.z+math.random(-10,10)/10}, + velocity = {x = math.random(-1,1)/10, y = 0.4, z = math.random(-1,1)/10}, + acceleration = {x = math.random(-1,1)/10, y=0.5, z = math.random(-1,1)/10}, + expirationtime = 0.8, + size = math.random(5, 20)/10, + collisiondetection = true, + collisionremoval = true, + vertical = true, + texture = "twilight_twilight"..math.random(1,2)..".png", + glow = 5 + }) end, }) diff --git a/mods/mobs_loz/mimic.lua b/mods/mobs_loz/mimic.lua index ffe3010..6e66e46 100644 --- a/mods/mobs_loz/mimic.lua +++ b/mods/mobs_loz/mimic.lua @@ -55,7 +55,7 @@ mobs:register_mob("mobs_loz:mimic", { damage = 3, hp_min = 10, hp_max = 27, - armor = 90, + armor = 130, collisionbox = {-0.5, 0, -0.5, 0.5, 1, 0.5}, visual = "mesh", mesh = "mimic.b3d", @@ -121,7 +121,7 @@ mobs:register_mob("mobs_loz:mimic2", { damage = 3, hp_min = 10, hp_max = 27, - armor = 90, + armor = 130, collisionbox = {-0.5, 0, -0.5, 0.5, 1, 0.5}, visual = "mesh", mesh = "mimic.b3d", diff --git a/mods/mobs_loz/models/zora_female.b3d b/mods/mobs_loz/models/zora_female.b3d new file mode 100644 index 0000000000000000000000000000000000000000..3d75d08d9c4b0b9ef92b525da4fe2a1d80d8a6b4 GIT binary patch literal 83328 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 literal 0 HcmV?d00001 diff --git a/mods/mobs_loz/models/zora.b3d b/mods/mobs_loz/models/zora_male.b3d similarity index 100% rename from mods/mobs_loz/models/zora.b3d rename to mods/mobs_loz/models/zora_male.b3d diff --git a/mods/mobs_loz/moldorm.lua b/mods/mobs_loz/moldorm.lua index 4a1b223..689efe8 100644 --- a/mods/mobs_loz/moldorm.lua +++ b/mods/mobs_loz/moldorm.lua @@ -7,7 +7,7 @@ mobs:register_mob("mobs_loz:moldorm", { damage = 1, hp_min = 10, hp_max = 15, - armor = 100, + armor = 150, collisionbox = {-0.5, -0, -0.5, 0.5, 1, 0.5}, visual = "mesh", mesh = "moldorm.b3d", @@ -50,4 +50,73 @@ mobs:register_mob("mobs_loz:moldorm", { }, }) -mobs:register_egg("mobs_loz:moldorm", "Moldorm", "mobs_zol.png", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:moldorm", "Moldorm", "mobs_zol.png", 1) + +mobs:register_mob("mobs_loz:great_moldorm", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 1, + damage = 1, + hp_min = 50, + hp_max = 60, + armor = 100, + collisionbox = {-0.9, -0, -0.9, 0.9, 1.5, 0.9}, + visual = "mesh", + mesh = "moldorm.b3d", + textures = { + {"mobs_great_moldorm.png"}, + }, + visual_size = {x=5.5, y=4.5}, + blood_texture = "mobs_slime.png", + makes_footstep_sound = true, + view_range = 5, + walk_velocity = 0.8, + run_velocity = 1.9, + jumpheight = 5, + drops = { + {name = "hyruletools:red_rupee", + chance = 4, min = 1, max = 1}, + }, + on_die = function(self) + local pos = self.object:getpos() + minetest.env:add_item(pos, "default:sword_bronze") + minetest.env:add_entity(pos, "experience:orb") + minetest.env:add_entity(pos, "experience:orb") + minetest.env:add_entity(pos, "experience:orb") + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png", + glow = 9 + }) + end) + end + end, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 5, + animation = { + speed_normal = 12, + speed_run = 15, + stand_start = 15, + stand_end = 28, + walk_start = 15, + walk_end = 28, + run_start = 1, + run_end = 14, + punch_start = 1, + punch_end = 14, + }, +}) + +mobs:register_egg("mobs_loz:great_moldorm", "Great Moldorm", "mobs_zol.png^[colorize:yellow:20", 1) \ No newline at end of file diff --git a/mods/mobs_loz/octorock.lua b/mods/mobs_loz/octorock.lua index 413064a..828351c 100644 --- a/mods/mobs_loz/octorock.lua +++ b/mods/mobs_loz/octorock.lua @@ -8,7 +8,7 @@ mobs:register_mob("mobs_loz:octorock", { shoot_offset = 1.2, hp_min = 20, hp_max = 35, - armor = 100, + armor = 150, collisionbox = {-0.5, 0, -0.5, 0.5, 0.8, 0.5}, visual_size = {x=1.5, y=1.5}, visual = "mesh", @@ -66,7 +66,7 @@ mobs:register_arrow("mobs_loz:octorock_rock", { if item ~= "shields:shield_steel" and item ~= "shields:shield_admin" and item ~= "shields:shield_bronze" and item ~= "shields:shield_wood" and item ~= "shields:shield_cactus" and item ~= "shields:shield_wood_enhanced" and item ~= "shields:shield_cactus_enhanced" then player:punch(self.object, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 1}, + damage_groups = {fleshy = 2}, }, nil) end end, @@ -74,7 +74,7 @@ mobs:register_arrow("mobs_loz:octorock_rock", { hit_mob = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 1}, + damage_groups = {fleshy = 2}, }, nil) end, @@ -112,8 +112,8 @@ mobs:register_mob("mobs_loz:octorock_boss", { fall_speed = -6, stepheight = 3, drops = { - {name = "hyruletools:blue_rupee", - chance = 5, min = 5, max = 5}, + {name = "hyruletools:magglv_n", + chance = 1, min = 1, max = 1}, }, on_die = function(self) local pos = self.object:getpos() @@ -121,6 +121,22 @@ mobs:register_mob("mobs_loz:octorock_boss", { minetest.env:add_entity(pos, "hyruletools:heart_entity") end minetest.env:add_entity(pos, "experience:orb") + for i=1,10 do + minetest.after((i/10)+math.random(-9,9)/20, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-1,1), y=pos.y, z=pos.z+math.random(-1,1)}, + velocity = {x=0, y=0, z=0}, + acceleration = {x=math.random(-5,5)/10, y=1, z=math.random(-5,5)/10}, + expirationtime = math.random(10,15)/10, + size = math.random(20,25), + collisiondetection = false, + collisionremoval = false, + vertical = true, + texture = "mobs_loz_light.png", + glow = 9 + }) + end) + end end, water_damage = 1, lava_damage = 1, diff --git a/mods/mobs_loz/peahat.lua b/mods/mobs_loz/peahat.lua index 79ced15..5e4bc10 100644 --- a/mods/mobs_loz/peahat.lua +++ b/mods/mobs_loz/peahat.lua @@ -8,7 +8,7 @@ mobs:register_mob("mobs_loz:peahat", { attack_type = "dogfight", hp_min = 7, hp_max = 12, - armor = 130, + armor = 100, collisionbox = {-0.4, 0, -0.4, 0.4, 1.2, 0.4}, visual = "mesh", mesh = "peahat.b3d", @@ -23,7 +23,7 @@ mobs:register_mob("mobs_loz:peahat", { water_damage = 1, lava_damage = 2, light_damage = 0, - view_range = 10, + view_range = 25, drops = { {name = "hyruletools:blue_rupee", chance = 5, min = 1, max = 3}, diff --git a/mods/mobs_loz/redead.lua b/mods/mobs_loz/redead.lua index 272bb16..27a2c33 100644 --- a/mods/mobs_loz/redead.lua +++ b/mods/mobs_loz/redead.lua @@ -22,7 +22,7 @@ mobs:register_mob("mobs_loz:redead", { attack_type = "dogfight", hp_min = 20, hp_max = 30, - armor = 100, + armor = 150, collisionbox = {-0.4, -1, -0.4, 0.4, 0.7, 0.4}, visual = "mesh", mesh = "character.b3d", diff --git a/mods/mobs_loz/scrub.lua b/mods/mobs_loz/scrub.lua index aef2137..9f1d1b2 100644 --- a/mods/mobs_loz/scrub.lua +++ b/mods/mobs_loz/scrub.lua @@ -13,7 +13,7 @@ mobs:register_mob("mobs_loz:deku_scrub", { shoot_offset = 1.5, hp_min = 10, hp_max = 25, - armor = 80, + armor = 150, collisionbox = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}, visual = "mesh", mesh = "scrub2.b3d", diff --git a/mods/mobs_loz/skulltula.lua b/mods/mobs_loz/skulltula.lua index 2feb620..50a6bc8 100644 --- a/mods/mobs_loz/skulltula.lua +++ b/mods/mobs_loz/skulltula.lua @@ -6,7 +6,7 @@ mobs:register_mob("mobs_loz:skulltula", { damage = 3, hp_min = 28, hp_max = 37, - armor = 90, + armor = 150, collisionbox = {-0.3, 0, -0.3, 0.3, 1, 0.3}, visual_size = {x=1.5, y=1.5}, visual = "mesh", diff --git a/mods/mobs_loz/stalchid.lua b/mods/mobs_loz/stalchid.lua index 4fee732..9581c92 100644 --- a/mods/mobs_loz/stalchid.lua +++ b/mods/mobs_loz/stalchid.lua @@ -9,7 +9,7 @@ mobs:register_mob("mobs_loz:stalchild", { damage = 2, hp_min = 12, hp_max = 27, - armor = 100, + armor = 130, collisionbox = {-0.3, 0, -0.3, 0.3, 1.2, 0.3}, visual = "mesh", mesh = "stalchild.b3d", diff --git a/mods/mobs_loz/subrosian.lua b/mods/mobs_loz/subrosian.lua index a0ff06b..5229f9d 100644 --- a/mods/mobs_loz/subrosian.lua +++ b/mods/mobs_loz/subrosian.lua @@ -6,7 +6,7 @@ mobs:register_mob("mobs_loz:subrosian", { attack_type = "dogfight", hp_min = 10, hp_max = 25, - armor = 80, + armor = 120, collisionbox = {-0.4, 0, -0.4, 0.4, 1, 0.4}, visual = "mesh", mesh = "subrosian.b3d", diff --git a/mods/mobs_loz/tektite.lua b/mods/mobs_loz/tektite.lua index 8442f37..6b0b5b6 100644 --- a/mods/mobs_loz/tektite.lua +++ b/mods/mobs_loz/tektite.lua @@ -6,7 +6,7 @@ mobs:register_mob("mobs_loz:tektite", { damage = 2, hp_min = 28, hp_max = 37, - armor = 90, + armor = 150, collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.7, 0.2}, --visual_size = {x=1.5, y=1.5}, visual = "mesh", @@ -58,7 +58,7 @@ mobs:register_mob("mobs_loz:tektite2", { damage = 3, hp_min = 28, hp_max = 37, - armor = 90, + armor = 150, collisionbox = {-0.2, -0.01, -0.2, 0.2, 0.7, 0.2}, --visual_size = {x=1.5, y=1.5}, visual = "mesh", diff --git a/mods/mobs_loz/textures/mobs_biri2.png b/mods/mobs_loz/textures/mobs_biri2.png new file mode 100644 index 0000000000000000000000000000000000000000..8eca696d798525b6b2237eb3fa459e347ef3cd0d GIT binary patch literal 1396 zcmV-)1&jKLP)zoboLQ;AgD2cb$K=|icMLZA3i>NO?ibz_k6eA)=NUe>bAuUNDN}vI2Y!WlguA6K#Kl?L#&+*~z z+}+vTnNE@_Y3hOHyWhFz+@14t@14;QBhRgQ95r|Et*;~f#L$}>HYp#zyuxwwW8=fI z{@-Rd_TM_Tq4f2e=<7El=clqp2ph+beFCPg`=LZcC8O_fWz&Ig>jbn)MytT5vc{H^ zU_1_iPhI!X*KdY&eTOSeN!d{e2)01n84y&z9(P0nf@-&F|Hg`Mc?;~iIT?BFSQLFD z8SlLiIhVRP6zN!g?G9V!Z>Z#)IwxCvW~>&llOr`g zGmr)VObnNm?&+Rmi1UA=>yldk`O|X#&SY(VaQ1aA(Jj#Sg{#I#4*H1$toMtP;c3Rq zn2(t;Ujnq3K1OGGW7lA3dvr_f z{>Xl4a2@+alP*0}XleVvicfBCq11Am)ZfX(&l_AIASKD6&J=Ph0<_-*a}izbz{)a# z+D&kg@YE3<>&#$}z-0oF2`<-yJ=B?k%M2z1?ANN+(VBIfeg33bt$c7hm@Si`bCJO=BYoKe zm345DL1i7pfG8MXmryAiV4ENc28bA)9ci#D?b4S$u*-@Q1LW&Kfz*$D9Sq>WUU^=O zTLunv%Lg9l)l>_QTSlnT7hlqGp~uI_q8VBBfnH7d1^W7H^887y<*RdT3wQ*01Y(A; zB#{{+FF+)bT@mJWc6-}Wu-AOW z$t4gm_Ozwo%V|+FxN-;$j3gcYsSETULl{ zf-zcDT&xL&unGCQg&L3Z^9Vo{3k1h1)%Z3OUB6v|aAjp3t0XI2<)Yg1!WKx~D1seQ zyxylIf7>M> z^1b}ozZ?dDuA{PQnPvI1u=K-^E$#icU)8qqAjf`R=OlK2p4hKF(hi8541#YQ?`;bv9%k*)`8FBAVt9t!7%6>K1Jl4`WzM3yWOY7>_$hEW%t*!REHRpwRNZ;sJw_a#nQ&YcBmP(Oa z4?blx^BOYqn)E(><7;Ttpn+zh~g=`QsQLy&H>HuUL literal 0 HcmV?d00001 diff --git a/mods/mobs_loz/textures/mobs_dekubaba2.png b/mods/mobs_loz/textures/mobs_dekubaba2.png new file mode 100644 index 0000000000000000000000000000000000000000..10d569becfaef93080e7653858a8df07c13ef283 GIT binary patch literal 2203 zcmV;M2xRw(P))YT7got>ZM_F?wko!OlMcG*OI=#|i%nYqlK@0{=4`<)r!|KqbC!*BIbW($@4 z<2Rr0q@~yXaczmz+PS-@=E!#Um6!%g06%?gm^=9I8)1I^-pw%iEFwE{XOPNk3Wg?n z==A7<r64b!6wgaIYH0nmNK2LSK~Mfd_D!k?tkcDMnlgo0#T0RSX7WF+DW0zr`< zE6EOXXyncyojN%~tUxe;3_7&UYHjc>uNQD2BuEV5CE7ST_8gf zJ#;&&u{x+I18s*J0060kVmfCLH&Vzd1Fb&Cu4};RzN=M)*eD?NVYWI7G1?^K3a67X z1IAH$-s*F}A8gu|Lh@SidAlj%vQ_Bts*~H9L@`>|u09|DF#6l$)K~)maP7|zc2%hU zU=!w7BDVL3CVJ@IQ*&hatv)(ExC$( zzT9C+A$d(HqfkW~*~F_KltpC!=_?d20$2QF$lfk6d-bosGtFH~<+puyY2n&MzjPlE zzW!=)TTZRZd}4FIub8r5cJVn=e_S*@*p*#`obM{LOIM(0u0)94D#RRTAm(3OCM*k9 zKx#@MId}vvc@eU=%VZnJGgl&n9j!nxIxrx1&fh&XN5n<}#$p%t3gBNqZa_x*8~~u+ zg;iLkkKd!bOy)o!}CmREQN+-~R;DgY^s zJO^Syi`lUyVg=$$*ZZk6C}3c`vq+)G`}K6N)|>QAXuT^t@CXDe>IZO-P{@AWPv%MYvtf7#Q!QYFtD2xr5endR>JxD3~a;XE7&vLhwW$ z>&_eON=GSW?4rNteW1M6B9MHca=XIF8<)<97gkC4xr5X$6UJ4@)I^Alf=Ti5C`XF& z)k-Dazx_9gEg&Q3QSWiUX!n2Rdt|pDI8~mgwpn12XPMY@4FJHi7iS>5y5N!*bq5S~ zB@`MM@1)x~UrM8z6ftjVN?J;0@1+hb`-Zb-$z7YKzOd@JvWu4Xr#Whp0hhc8hu04P z@FEHnY*%*ie-FUSt#|0RFMq7>unh$6*fPX@2cWed2Mq%C;RG^m0gyN#u6%%w(|@2$ zb};dG{mc<0QmL|M2YkMYH^8d2P_D5Ipr<*{AiWd*7$<`9(PInO_H{l1j}e6x9@@RejT9$EpD^8Ua8oCP7s-Y#i0kH;(49 zZ$;pls1=2b5pQrhc`v=2?`UU!bcVk0-CyfsPCenkQy)2?s(K-*s)m*po$D+!Y;3k` zHKUM`K513m6@^Cb4ARv7Eb!QYOMkyeUK)9Y7MGbXyY$!K$AHFy9udM6S{uP;yM|Om z1whIuBsw*y>CmoU7K&M`%cNSVpWqkwAL$k%@Y2 z!(wYbbGor`-RStn?Iag@3<%Rpuid>s0Dye!XUDi;X)t^iN*lg$r8kPN-EUcZI_-Jk z8Wo$$K`7B>EL?iNqMh}nkyq%dcNzcr!7Y>O92oDU&YR6kA(0YS)$dEC0aHs4@BGBq?opX2+Jufs4m* z{x|1oO#xW-#LTYMm>pXpXTJ6mI{D@#NzP?zE2rQ6;XWu^fCw3=GuwwR)lNG5<3U{& d#ER?He*rnQRC>~X7=-`;002ovPDHLkV1l*<8cqNJ literal 0 HcmV?d00001 diff --git a/mods/mobs_loz/textures/mobs_great_moldorm.png b/mods/mobs_loz/textures/mobs_great_moldorm.png new file mode 100644 index 0000000000000000000000000000000000000000..acb141d8d4672094f39926031f135e9cb1c273f6 GIT binary patch literal 709 zcmV;$0y_PPP)5xK9B?`#UvNr7m}bN^F1SuwQ2C7j zUyjtz7VT9?KaOAD2-xJOptN2^ezpQWGufB|n+QOo0+K|b;qxD7eO(0_KD&T|)}?^) z9N?I2&s9JtZ9EA%;M`@P7n6ubtHMbr2X}dWx#*xSueY1c{_O%vf|9X$)0*0DK}tqm z$HD1wm;%6FZwvBjjz=r&`+;tf_``jo`n&AmK2haqoV>+A6>xn}A8;K90CvNyEY<-J z51QWKHWEUYlLKDWsA58&jUJ4fvc29`E*3;p`D;}`f`2OT-xT<;yMWtXf;$!P9aKMt ztAZD050vU`uGZ-~jL!)tfuxWnw0k00000NkvXXu0mjf%9A_# literal 0 HcmV?d00001 diff --git a/mods/mobs_loz/textures/mobs_octorock.png b/mods/mobs_loz/textures/mobs_octorock.png index dc21b85500d84bdd6fc65eccf8d6e7926fcfcc44..4800395f3f51f715c4047d29f294103e196e9c6c 100644 GIT binary patch delta 1763 zcmV<91|0e54TuhqIe)rIL_t(o!`+w5j~rJO#(($KUDe$)?(P}e!MqZqfE05 zA%TQ~qKHHh&y`uQMo9b%{0|6$Siu4Tf+b=Tq*!1UCXp2j+c*+&7(3(f%ydn6SJizS z7Ps9q6VFV>5i5>#Ri(a<`tEnm`Oay@DeTr~)?_eVqdfNk)PHbwe`0UW{N5d^%}rjN zv?QM>tw!rSozh}i6EQ|{>8+_cc<%1Eza+FC)$1X%8JDkJ%lkZN2hZJ@99pkW19mVP zXQ0-B58xJ0p#0d=tc=(3b)?_X6at-?MH=R)CjG~`+FT2bj^`x%gzJ|9$Jrb`$TH@=vvEZ zZL|urIcl_uY;NV--?)t$ok6BE!d&Qd6npaoT9K^6Ca49vjT}jfvJScn5}2WlLYy4S z?CHR^9@*T=jBZc%fuCE0eh;>H(N3WqSfiP@`GYYDU4Im&tB^*x{>gQbkT6C5YK-PMevnvImYOpI^aCzf{d0=a&X4)o-rh-`u{gSkC8>)P$PYrV?oL8E@HJpiH zMnz_AMWd`{YrAGLZMl4J%K3p~)#Tqd!#>-)O<+4kzIVM+$C0Mbu67tZ3r=H7hhFc2 zPk*@e3yiI1*mtZML*EN4zxV_0^It*!y-WG6A2IyxHTv_&c)ib{aEwgm8~_S%rfV5$b)tuLY_gQdJYZJ3gu4~Gboh-s;4~^Gq@x+V za*MA$_dLaSe!%GOZ_)kc_j&Q9ml?fsD}RF$LF$07-a%#o^T7eiYEsqYI5i4anq?9x zs}F&WbwH_;Q%IYhK@YpA(h{o%yWS&(xIBbG0ZP&Q=9k>Kd5h;?_y$Pg#g|^@AFsVm z{p+70^MH1X3blw$c~C<~qf3W`L~7HL>4$N95U43E2{{q0l>}+(!Dlf}cc-{f34bew zH20*rht&?VpZuGv|FjZK0=XQ?W&se?G(c>(gJdNHBiTjhxtlw^lbs$t(i0@53_h+65lZI(r zRGMixq={7>*sL0=CbD&Z_6SIToi^~GYT5CTi4Tuap)OyF~E--!Wj6tRg^fR2&qBU*H38<@-j#%N*_xjXUr zB4Knc5HSiV!j4bN{^2-NyDvN|>g*aco>#A2A=C+NG#?!n%S9J@7S+*6o7iX*s<6cE znyvjX<;!o}R{(ck_?)Ot0e`D~WP2BU;7_mra}f%Qo~TJ&dV8vPOw;PZd1N|+u0uJ6 zEi~ysvZ%tM`VQG?P#v8UC!~F8d-v@J0}5*>W;JEEi(VZ7aBf926vfyojM2Owv+~Xs zbR4p|mEGwDTj)cXEgICYi?lgzRgtR@2k`#&nV|r*H?HT_&}s0Ax_^m0-M0{hMrGIc z2k@6?Mgs7~H?~jBus!p;%SSH0_Sr%XF}pcK4ZD!oXIAfDYSirj(C->P^)CU0qA0mC zo-!`7Ufm51D+hG8IwILl1p8hKQq^V+btcP|EUHjxbBF(K^NFG;4|P+qYWLf|MMEti zBJYv?kM)O9`~sBI%UmHLEt`~s(sPsrpCxeFziO5ZwX!DvQ}|yotDMfj)Zt~iw1`iK z%I0>{A_;n?%awEU<=iw0J3b&Ofl=(m1g(cCU=;ti_Ft+5a5^huBj*4B002ovPDHLk FV1jT;Qw0D3 delta 1731 zcmV;!20ZzQ4(JV#Ie(f-L_t(o!`+w9j~qu8$3OLJx_fqZ*Zaf2uodALWPV&h2qC0M zNQOg@u*t7Im?%V92XL}$ugAOInc42??y7nm zs&{5qY}RYUiIPfP)BWc4x4!SaZ@pHWVeEV%m%;i5`Nhw`+JEZ&!MJ4l=mC@6$NX{P ziLKDL3Z>IyiJjRrVyxoMqo5Z3wzs}2G%fV|P?p@icMpKrf_CuIKm9R#eHO5TweM3%8EToxBnggc^UQTv?aWh?eZU%Jm`rKgiOIH$5fWs07 z{j`4JGK@>|Yk${S>1(n8+QL*pg;1Mhw$y{={8L`Fe*nIPrbW3qk=p&2U;$WPh0MW) zO?Wg+_uk)1_YO;ZnV6eYk>CZd6%wI}5T=623CvmtOZ_x^4s8|MC7>rUYtICJm zobDYY;D==j;Zh&=5717bEf}MznglFFAwywuh19~oK7U_`_=qmjYvr$Rfl@GyFtA+f zWr&VQ8xbA(`;DGFKiDI{l=I)cE^j~Hg2vBo$6Dwq@IX(eutpE2m)6n<6d-L(Knn{t zRbs3>%4x#LV^%EUBg&@Wi;rhagPudZa6N%rTZJ~|7`-lxYb&TOKMSi+223kR09Qt| zO<`3|qknpeSaqAT8rldx&No|mbYG*KMi%a$IcKZwZDc&01MZZ7aS7Hj{rCanY2>g; z1y-Qw3lti(Q&a*~m$S-hbYW3W&p~!+5z8>M0gx&ZM(vE*Go`^~_!wm%e-WtLRK1>B>R{@M-Zyd<71VFh3et+!3+8yUj+K67Z$2MU9aM8$SVK~2% z5k@s;C7bPRI1M~`I%U#C@_I~OHn7x3c0Po0a_VD4mBA&iSh9w5UNGx<3hzLpoME^> zWi)B{({9D3CC7?UD684+m{kD|>cF0geE*~42SGZO61)1sietl>6rR3ApYJ0+V$NS- z!+$E)mK>W}GiW3B_1~kvc@zF|fce2saliS9LFHNBSYnVnHdZq7>(@|yOPu~wJxr1JR5E`L&b%++O-GsIDyh%gFQq$-S4pL{QXj#H0% z7Fg3a=yMr5w(x@`ua<>-?+lB?`|V+{Tcu2ZLo?^dh~jMlnJ=BF|98yqoy^X^5ElqQwu3@bT#I5 zX01X9<0fgKOQ8v)8lBt3_|rO_*#iD2ce-{d(thhIOgs!MGHH)#rIal=jZ_}_J-g*c2G7=Jf}0J118Z3k-N(|Y33bwqW=6vs)sls_&-+G^tT z^gzdFE zYpmM9-neDI4UF3GAJ4@{_7BtZQ<-h5$U&jeWsA28r4*(IN`$HhMb8kM$ba^B#pU%L z(zhtz9g#}$GzPR$ghm(<(J>O*fD%b;1EbPoj3P9VopDQ>MT|~thakiV`#xga={c*~ zn_m_#Y(m{~_suu)Q$ZWWXIHbC(bd90u3;Maq!m=(5%wyEaqj$UTcrXR-Tab}<*+({ zy{FK4es}MKR6yN%+0??F$A3ZboI`WY7d( z%L58)C=M%%EJLjh(g(pnu@+&&JiF>YH4S()Ox@G&5N#Eq6>L6tCY4XYT+dS9*)gk} zW>Fa5xt@AY|Nh?)qtdzWBTXH+Q5Xn9-4)uv!e6c%0r<*ReP-m={eSlD6OHeGF_Ss7 z79N!eFfwP>%r$c@OPVyu3@>gkrO%-(s?p%&^IjG`G3YfJSVfy7;)Ty570A7 z2}CjL_L~!Q(MR$uJJwCbaeM64Iyz>h4bPdgrws8Co!b=BZi(c-r{%!DtkdAkcaU>G%Kb Z_&3lYT0RvZIh+6h002ovPDHLkV1feTWXu2n diff --git a/mods/mobs_loz/textures/mobs_octorock2.png b/mods/mobs_loz/textures/mobs_octorock2.png index 5a8025f0064e3a4739935cd64de7e60d367a639b..76d229b5701b53a9c080a964646c3fa4b4876725 100644 GIT binary patch delta 1685 zcmV;G25R|+4Z01GIe%dgAZi?lnFW+g>;$@%Xo!POqQUOQwv+Drs#{g3 z&VDQh``o&9Z{NO;;K&U{RqeCRKL7sLzy7_BaD?%(AH1w59)BM4zEPiHVHWeVl=%1E z3HLU}jNiVBieg*^NE@L5gfPKix%Hc8WO?0-m;b2&rLsaDmDjGmlJBw!iH5hI{o1a0 zcNDOr7O1ljRH>Yy4heuq&J00dT>{PxkWS~m`<*DkPxoKDu*_1zwHs8Mc6~1oa}=;= zTc7~5pj0L=e1E!h%u?d~slfuMB!f0{(!55SCO^dXaIU}a+GC#x5dsQnhe(O$y@3T7 z7M4PUQDs?gA^d1?FRfdJ74hbhh<%HX_z^hkY#MmAw)TCG=34c_;6djE15yOPx2R=z6;j~TD zLnjd+S+D^ZuaZ!bD2ar$nK_nbA*X2;+CK$25rQf=wgQnI*3=|~0yJV=0lGbBTP-RC zNTOK4CXn{_APJ*Fun`w65yiB8CiG}Ba0ur{9RkX*FodWCRh$T2YZzFYX@u+sDmllZ zXyuS(pnnA-Q3#SHBdttzDZfD?CJIIcMUT(yosBKJZpgV&hqZCoWnIp~jeA>!Fu{pp z=wZqVMG*v&W@&_ZTOLkAP#nZg>!;g@q8wuT4^t zJa=u4AUhV*7CN;{NQ45Ly|Wc% zT8do;>eRqK2ghDl!kdJ)W<0f?N*xwUAmK?=QTXW}-r<)ozRqVq)Z?)qzrmk=`+qxL zy*cGO&)q;2B9TfB!73IZpaiS*)zZYoJVug0u~cB&5?E}s_2LJE1-!&XS`0!%#A4_q z%gkmes8PQ6{LRdWfyaJyo#+%Bga+N?m6|so%9xO!(ipVW@q@-;*Ikr|-A<3nBK=+> z-bR#&qFCLwlvbZk^KYl93WyL{Q4Q|%R9|o6 zryB=@O?a4$siVo&kpvZks*q+imI@`YHNQjGoWabMpt4ANm~0}(pqdEv7=IfLv6U4f zpi1M%h~$`h@(xKoh{a&q%q9GE1EYs%_7k7_JSR$vSLNy}FXL@Q5c(@0r05Q_BMi?X z5!8Yo-@&O+OCZhG5x@d({rqVGc>E`?Yw3iZGmM)=K>7RCKLTLM*5zkw-1^ls!ZC+C zQ#r;y(RBhzFj$h^5xP~uMSo#dBsyN&%HOfJy`xtcq^M|svVzj*p1^fZp+(HSYJHFQ zGGx0~oyElUYu8971MQuB|03uhW*536pZ(S7EVk2I7`|^N_>KRdK+*=Y=MCV^%NLH! zu>1YDAK5qf8|81ZSpRz+JAYy3H9W7GB_;2 zOT@T@)ofQPxe<0)!angyl(MXLbyNAsHA_u&w#dV*>{wtE35VU))_Igb#4VjR57KW4 z+2a2z87#tS>mO*5sLZlcEQw|SA00000NkvXXu0mjf`87WL delta 1632 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 XkI`%kK6xgC00000NkvXXu0mjf&w=k& diff --git a/mods/mobs_loz/textures/mobs_poe3.png b/mods/mobs_loz/textures/mobs_poe3.png index 63a87d6bd1d1759388e334367835849426c7ba16..650ddd3c27a399534a0bc842b0bba0305d17e153 100644 GIT binary patch delta 1547 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 delta 579 zcmV-J0=)f*0^01w2|MwzNO8Zx6k&7Z13sEUZ3=0qw zmAEtx8jTLRiY5+Bx)3j`!9h)o3xf$Jni!*lQ3r9*#E6EJ8j-ZMV7Ro z3&lmh?fuSq-;?+I-UI(wVs&H8t{dv-l_h{4>(vJ#!-O}jFMs0J-FN#FXOI3>U{p&g zO><@)V87#x+}qqum**fahM(XIy=6WT;c?_z4yPa+{2_Z?y|T-FfV$G1#J@$U*6KOc zeU7TKnl%;*^7(RU6;#>W_(%O9Bp*MF@i`b~DV?U2NCl37UfC= zGBaqIvt}mLV%qKV&-%7Md^zYc8O?l}@YCVx=6mWZMS9UFfG1{I%$r1j<7IvRJ2QQa z`y8jGld?%Eq!Q61uJrN}&*Qf;oMA^IHwHtFFF9*HS$ZXujSoA|hqLi3M?~Z(bVN6& zecI2ANIa|{X3su1VVYZsy!OTsQ`)1OWZoYZ(4>;Df5drV2w+6}v4Q_pzW{Yrx|UQc R43Gc-002ovPDHLkV1hec5{v)< diff --git a/mods/mobs_loz/textures/mobs_zora_female.png b/mods/mobs_loz/textures/mobs_zora_female.png new file mode 100644 index 0000000000000000000000000000000000000000..14ac5504d8a76bab520ca0c02cf1375a7bf7ee16 GIT binary patch literal 4229 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 buhxG8IaYr7C>W -30913 and (pos.x + radius) < 30928 @@ -507,15 +463,13 @@ end -- is mob facing a cliff -local function is_at_cliff(self) +local is_at_cliff = function(self) if self.fear_height == 0 then -- 0 for no falling protection! return false end local yaw = self.object:getyaw() --- local dir_x = -sin(self.yaw) * (self.collisionbox[4] + 0.5) --- local dir_z = cos(self.yaw) * (self.collisionbox[4] + 0.5) local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) local pos = self.object:getpos() @@ -534,7 +488,7 @@ end -- get node but use fallback for nil or unknown -local function node_ok(pos, fallback) +local node_ok = function(pos, fallback) fallback = fallback or "default:dirt" @@ -553,7 +507,7 @@ end -- environmental damage (water, lava, fire, light) -do_env_damage = function(self) +local do_env_damage = function(self) -- feed/tame text timer (so mob 'full' messages dont spam chat) if self.htimer > 0 then @@ -589,6 +543,8 @@ do_env_damage = function(self) self.health = self.health - self.light_damage effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "light") then return end end -- what is mob standing in? @@ -616,7 +572,8 @@ do_env_damage = function(self) self.health = self.health - self.water_damage effect(pos, 5, "bubble.png", nil, nil, 1, nil) --- end + + if check_for_death(self, "water") then return end -- lava or fire elseif self.lava_damage ~= 0 @@ -628,6 +585,8 @@ do_env_damage = function(self) effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + if check_for_death(self, "lava") then return end + -- damage_per_second node check elseif minetest.registered_nodes[self.standing_in].damage_per_second ~= 0 then @@ -639,16 +598,25 @@ do_env_damage = function(self) end end - check_for_death(self) + check_for_death(self, "") end -- jump if facing a solid node (not fences or gates) -do_jump = function(self) +local do_jump = function(self) - if self.fly + if not self.jump + or self.jump_height == 0 + or self.fly or self.child then - return + return false + end + + -- something stopping us while moving? + if self.state ~= "stand" + and get_velocity(self) > 0.5 + and self.object:getvelocity().y ~= 0 then + return false end local pos = self.object:getpos() @@ -662,12 +630,10 @@ do_jump = function(self) --print ("standing on:", nod.name, pos.y) if minetest.registered_nodes[nod.name].walkable == false then - return + return false end -- where is front --- local dir_x = -sin(self.yaw) * (self.collisionbox[4] + 0.5) --- local dir_z = cos(self.yaw) * (self.collisionbox[4] + 0.5) local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) @@ -680,7 +646,7 @@ do_jump = function(self) -- thin blocks that do not need to be jumped if nod.name == "default:snow" then - return + return false end --print ("in front:", nod.name, pos.y + 0.5) @@ -692,26 +658,23 @@ do_jump = function(self) local v = self.object:getvelocity() - v.y = self.jump_height + 1 + v.y = self.jump_height -- + 1 + + set_animation(self, "jump") -- only when defined self.object:setvelocity(v) mob_sound(self, self.sounds.jump) + + return true end -end - --- this is a faster way to calculate distance -local get_distance = function(a, b) - - local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z - - return square(x * x + y * y + z * z) + return false end -- blast damage to entities nearby (modified from TNT mod) -function entity_physics(pos, radius) +local entity_physics = function(pos, radius) radius = radius * 2 @@ -738,7 +701,7 @@ end -- should mob follow what I'm holding ? -function follow_holding(self, clicker) +local follow_holding = function(self, clicker) if mobs.invis[clicker:get_player_name()] then return false @@ -768,7 +731,7 @@ end -- find two animals of same type and breed if nearby and horny -local function breed(self) +local breed = function(self) -- child takes 240 seconds before growing into adult if self.child == true then @@ -903,37 +866,50 @@ end -- find and replace what mob is looking for (grass, wheat etc.) -function replace(self, pos) +local replace = function(self, pos) - if self.replace_rate - and self.child == false - and random(1, self.replace_rate) == 1 then + if not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:getvelocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end - local pos = self.object:getpos() + local what, with, y_offset - pos.y = pos.y + self.replace_offset + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then -- print ("replace node = ".. minetest.get_node(pos).name, pos.y) - if self.replace_what - and self.replace_with - and self.object:getvelocity().y == 0 - and #minetest.find_nodes_in_area(pos, pos, self.replace_what) > 0 then + minetest.set_node(pos, {name = with}) - minetest.set_node(pos, {name = self.replace_with}) - - -- when cow/sheep eats grass, replace wool and milk - if self.gotten == true then - self.gotten = false - self.object:set_properties(self) - end + -- when cow/sheep eats grass, replace wool and milk + if self.gotten == true then + self.gotten = false + self.object:set_properties(self) end end end -- check if daytime and also if mob is docile during daylight hours -function day_docile(self) +local day_docile = function(self) if self.docile_by_day == false then @@ -949,7 +925,7 @@ end -- path finding and smart mob routine by rnd -function smart_mobs(self, s, p, dist, dtime) +local smart_mobs = function(self, s, p, dist, dtime) local s1 = self.path.lastpos @@ -964,8 +940,7 @@ function smart_mobs(self, s, p, dist, dtime) -- im stuck, search for path if (self.path.stuck_timer > stuck_timeout and not self.path.following) - or (self.path.stuck_timer > stuck_path_timeout - and self.path.following) then + or (self.path.stuck_timer > stuck_path_timeout and self.path.following) then self.path.stuck_timer = 0 @@ -993,7 +968,7 @@ function smart_mobs(self, s, p, dist, dtime) p1.y = floor(p1.y + 0.5) p1.z = floor(p1.z + 0.5) - self.path.way = minetest.find_path(s, p1, 16, 2, 6, "Dijkstra") --"A*_noprefetch") + self.path.way = minetest.find_path(s, p1, 16, 2, 6, "Dijkstra") -- attempt to unstick mob that is "daydreaming" self.object:setpos({ @@ -1013,12 +988,18 @@ function smart_mobs(self, s, p, dist, dtime) -- lets make way by digging/building if not accessible if self.pathfinding == 2 then - -- add block and remove one block above so - -- there is room to jump if needed + -- is player higher than mob? if s.y < p1.y then + -- build upwards if not minetest.is_protected(s, "") then - minetest.set_node(s, {name = "default:dirt"}) + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = "default:dirt"}) + end end local sheight = math.ceil(self.collisionbox[5]) + 1 @@ -1026,14 +1007,21 @@ function smart_mobs(self, s, p, dist, dtime) -- assume mob is 2 blocks high so it digs above its head s.y = s.y + sheight + -- remove one block above to make room to jump if not minetest.is_protected(s, "") then - local node1 = minetest.get_node(s).name + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] if node1 ~= "air" - and node1 ~= "ignore" then + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + minetest.set_node(s, {name = "air"}) minetest.add_item(s, ItemStack(node1)) + end end @@ -1042,9 +1030,7 @@ function smart_mobs(self, s, p, dist, dtime) else -- dig 2 blocks to make door toward player direction --- local yaw1 = self.yaw + pi / 2 local yaw1 = self.object:getyaw() + pi / 2 - local p1 = { x = s.x + cos(yaw1), y = s.y, @@ -1053,19 +1039,29 @@ function smart_mobs(self, s, p, dist, dtime) if not minetest.is_protected(p1, "") then - local node1 = minetest.get_node(p1).name + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] if node1 ~= "air" - and node1 ~= "ignore" then + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + minetest.add_item(p1, ItemStack(node1)) minetest.set_node(p1, {name = "air"}) end p1.y = p1.y + 1 - node1 = minetest.get_node(p1).name + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] if node1 ~= "air" - and node1 ~= "ignore" then + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + minetest.add_item(p1, ItemStack(node1)) minetest.set_node(p1, {name = "air"}) end @@ -1170,7 +1166,6 @@ local monster_attack = function(self) -- field of view check goes here -- choose closest player to attack --- if line_of_sight_water(self, sp, p, 2) == true if line_of_sight(self, sp, p, 2) == true and dist < min_dist then min_dist = dist @@ -1207,7 +1202,7 @@ local npc_attack = function(self) if obj and obj.type == "monster" then - p = obj.object:getpos() + local p = obj.object:getpos() dist = get_distance(p, s) @@ -1298,27 +1293,16 @@ local follow_flop = function(self) z = p.z - s.z } --- local yaw = atan2(vec.z, vec.x) - pi / 2 local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if p.x > s.x then yaw = yaw + pi end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) -- anyone but standing npc's can move along if dist > self.reach and self.order ~= "stand" then - if (self.jump - and get_velocity(self) <= 0.5 - and self.object:getvelocity().y == 0) - or (self.object:getvelocity().y == 0 - and self.jump_chance > 0) then - - do_jump(self) - end - set_velocity(self, self.walk_velocity) if self.walk_chance ~= 0 then @@ -1363,7 +1347,10 @@ local dogswitch = function(self, dtime) self.dogshoot_count = self.dogshoot_count + dtime - if self.dogshoot_count > self.dogshoot_count_max then + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then self.dogshoot_count = 0 @@ -1381,7 +1368,7 @@ end -- execute current state (stand, walk, run, attacks) local do_states = function(self, dtime) - local yaw = 0 -- self.yaw + local yaw = 0 if self.state == "stand" then @@ -1407,17 +1394,14 @@ local do_states = function(self, dtime) z = lp.z - s.z } --- yaw = atan2(vec.z, vec.x) - pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if lp.x > s.x then yaw = yaw + pi end else --- yaw = random() * 2 * pi yaw = (random(0, 360) - 180) / 180 * pi end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) end set_velocity(self, 0) @@ -1434,6 +1418,15 @@ local do_states = function(self, dtime) set_velocity(self, self.walk_velocity) self.state = "walk" set_animation(self, "walk") + + -- fly up/down randombly for flying mobs + if self.fly and random(1, 100) <= self.walk_chance then + + local v = self.object:getvelocity() + local ud = random(-1, 2) / 9 + + self.object:setvelocity({x = v.x, y = ud, z = v.z}) + end end end @@ -1476,12 +1469,15 @@ local do_states = function(self, dtime) z = lp.z - s.z } --- yaw = atan2(vec.z, vec.x) + pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = set_yaw(self.object, yaw) + do_jump(self) + set_velocity(self, self.walk_velocity) else --- yaw = random() * 2 * pi yaw = (random(0, 360) - 180) / 180 * pi end @@ -1492,36 +1488,24 @@ local do_states = function(self, dtime) z = lp.z - s.z } --- yaw = atan2(vec.z, vec.x) + pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if lp.x > s.x then yaw = yaw + pi end end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) -- otherwise randomly turn elseif random(1, 100) <= 30 then yaw = random() * 2 * pi - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) end -- stand for great fall in front local temp_is_cliff = is_at_cliff(self) - -- jump when walking comes to a halt - if temp_is_cliff == false - and self.jump - and get_velocity(self) <= 0.5 - and self.object:getvelocity().y == 0 then - - do_jump(self) - end - if temp_is_cliff or random(1, 100) <= 30 then @@ -1558,14 +1542,6 @@ local do_states = function(self, dtime) set_animation(self, "walk") end - -- jump when walking comes to a halt - if self.jump - and get_velocity(self) <= 0.5 - and self.object:getvelocity().y == 0 then - - do_jump(self) - end - -- attack routines (explode, dogfight, shoot, dogshoot) elseif self.state == "attack" then @@ -1600,13 +1576,11 @@ local do_states = function(self, dtime) z = p.z - s.z } --- yaw = atan2(vec.z, vec.x) - pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if p.x > s.x then yaw = yaw + pi end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) if dist > self.reach then @@ -1620,12 +1594,6 @@ local do_states = function(self, dtime) self.timer = 0 self.blinktimer = 0 - if get_velocity(self) <= 0.5 - and self.object:getvelocity().y == 0 then - - do_jump(self) - end - set_velocity(self, self.run_velocity) end @@ -1655,9 +1623,6 @@ local do_states = function(self, dtime) local pos = self.object:getpos() local radius = self.explosion_radius or 1 - -- hurt player/mobs caught in blast area - entity_physics(pos, radius) - -- dont damage anything if area protected or next to water if minetest.find_node_near(pos, 1, {"group:water"}) or minetest.is_protected(pos, "") then @@ -1668,15 +1633,20 @@ local do_states = function(self, dtime) effect(pos, 15, "tnt_smoke.png") + -- hurt player/mobs caught in blast area + entity_physics(pos, radius) + return end pos.y = pos.y - 1 - mobs:explosion(pos, radius, 0, 1, self.sounds.explode) + mobs:explosion(pos, radius, 1, 1, self.sounds.explode) self.object:remove() + entity_physics(pos, radius) + return end end @@ -1688,14 +1658,12 @@ local do_states = function(self, dtime) if self.fly and dist > self.reach then - local nod = node_ok(s) local p1 = s local me_y = floor(p1.y) local p2 = p local p_y = floor(p2.y + 1) local v = self.object:getvelocity() --- if nod.name == self.fly_in then if flight_check(self, s) then if me_y < p_y then @@ -1768,13 +1736,11 @@ local do_states = function(self, dtime) z = p.z - s.z } --- yaw = atan2(vec.z, vec.x) - pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if p.x > s.x then yaw = yaw + pi end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) -- move towards enemy if beyond mob reach if dist > self.reach then @@ -1786,16 +1752,6 @@ local do_states = function(self, dtime) smart_mobs(self, s, p, dist, dtime) end - -- jump attack - if (self.jump - and get_velocity(self) <= 0.5 - and self.object:getvelocity().y == 0) - or (self.object:getvelocity().y == 0 - and self.jump_chance > 0) then - - do_jump(self) - end - if is_at_cliff(self) then set_velocity(self, 0) @@ -1835,10 +1791,9 @@ local do_states = function(self, dtime) local p2 = p local s2 = s - p2.y = p2.y + .5--1.5 - s2.y = s2.y + .5--1.5 + p2.y = p2.y + .5 + s2.y = s2.y + .5 --- if line_of_sight_water(self, p2, s2) == true then if line_of_sight(self, p2, s2) == true then -- play attack sound @@ -1880,13 +1835,11 @@ local do_states = function(self, dtime) z = p.z - s.z } --- yaw = atan2(vec.z, vec.x) - pi / 2 yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate if p.x > s.x then yaw = yaw + pi end - self.object:setyaw(yaw) --- set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) set_velocity(self, 0) @@ -1920,6 +1873,8 @@ local do_states = function(self, dtime) vec.z = vec.z * (v / amount) obj:setvelocity(vec) + else + obj:remove() -- arrow entity does not exist end end end @@ -1948,7 +1903,8 @@ local falling = function(self, pos) end -- in water then float up - if minetest.registered_nodes[node_ok(pos).name].groups.liquid then +-- if minetest.registered_nodes[node_ok(pos).name].groups.liquid then + if minetest.registered_nodes[node_ok(pos).name].groups.water then if self.floats == 1 then @@ -1970,7 +1926,7 @@ local falling = function(self, pos) if self.fall_damage == 1 and self.object:getvelocity().y == 0 then - local d = self.old_y - self.object:getpos().y + local d = (self.old_y or 0) - self.object:getpos().y if d > 5 then @@ -1978,7 +1934,7 @@ local falling = function(self, pos) effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) - if check_for_death(self) then + if check_for_death(self, "fall") then return end end @@ -1989,8 +1945,14 @@ local falling = function(self, pos) end +-- deal damage and effects when mob punched local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) + -- mob health check + if self.health <= 0 then + return + end + -- error checking when mod profiling is enabled if not tool_capabilities then print (S("[MOBS] mod profiling enabled, damage not enabled")) @@ -2096,9 +2058,15 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) -- do damage self.health = self.health - floor(damage) - -- exit here if dead - if check_for_death(self) then - return + -- exit here if dead, special item check + if weapon:get_name() == "mobs:pick_lava" then + if check_for_death(self, "lava") then + return + end + else + if check_for_death(self, "hit") then + return + end end --[[ add healthy afterglow when hit (can cause hit lag with larger textures) @@ -2112,7 +2080,7 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) -- knock back effect (only on full punch) if self.knock_back > 0 - and tflp > punch_interval then + and tflp >= punch_interval then local v = self.object:getvelocity() local r = 1.4 - min(punch_interval, 1.4) @@ -2156,18 +2124,20 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) yaw = yaw + pi end - set_yaw(self, yaw) + yaw = set_yaw(self.object, yaw) self.state = "runaway" self.runaway_timer = 0 self.following = nil end + local name = hitter:get_player_name() or "" + -- attack puncher and call other mobs for help if self.passive == false and self.state ~= "flop" and self.child == false and hitter:get_player_name() ~= self.owner - and not mobs.invis[ hitter:get_player_name() ] then + and not mobs.invis[ name ] then -- attack whoever punched mob self.state = "" @@ -2183,21 +2153,74 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) if obj then + -- only alert members of same mob if obj.group_attack == true - and obj.state ~= "attack" then + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then do_attack(obj, hitter) end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + do_attack(obj, self.object) + end end end end end -local mob_activate = function(self, staticdata, dtime_s, def) +-- get entity staticdata +local mob_staticdata = function(self) + + -- remove mob when out of range unless tamed + if remove_far + and self.remove_ok + and not self.tamed + and self.lifetimer < 20000 then + + --print ("REMOVED " .. self.name) + + self.object:remove() + + return ""-- nil + end + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +local mob_activate = function(self, staticdata, def) -- remove monsters in peaceful mode, or when no data - if (self.type == "monster" and peaceful_only) - or not staticdata then + if (self.type == "monster" and peaceful_only) then self.object:remove() @@ -2208,7 +2231,6 @@ local mob_activate = function(self, staticdata, dtime_s, def) local tmp = minetest.deserialize(staticdata) if tmp then - for _,stat in pairs(tmp) do self[_] = stat end @@ -2217,6 +2239,11 @@ local mob_activate = function(self, staticdata, dtime_s, def) -- select random texture, set model and size if not self.base_texture then + -- compatiblity with old simple mobs textures + if type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + self.base_texture = def.textures[random(1, #def.textures)] self.base_mesh = def.mesh self.base_size = self.visual_size @@ -2288,16 +2315,15 @@ local mob_activate = function(self, staticdata, dtime_s, def) -- set anything changed above self.object:set_properties(self) --- set_yaw(self, random() * 2 * pi) - self.object:setyaw((random(0, 360) - 180) / 180 * pi) + set_yaw(self.object, (random(0, 360) - 180) / 180 * pi) update_tag(self) end +-- main mob function local mob_step = function(self, dtime) local pos = self.object:getpos() --- local yaw = self.yaw local yaw = 0 -- when lifetimer expires remove mob (except npc and tamed) @@ -2404,6 +2430,8 @@ local mob_step = function(self, dtime) do_states(self, dtime) + do_jump(self) + end @@ -2423,17 +2451,14 @@ end mobs.spawning_mobs = {} --- register mob function +-- register mob entity function mobs:register_mob(name, def) mobs.spawning_mobs[name] = true minetest.register_entity(name, { ---automatic_face_movement_dir = def.rotate and math.rad(def.rotate) or false, ---automatic_face_movement_max_rotation_per_sec = -1, - - stepheight = def.stepheight or 0.6, + stepheight = def.stepheight or 1.1, -- was 0.6 name = name, type = def.type, attack_type = def.attack_type, @@ -2443,8 +2468,7 @@ minetest.register_entity(name, { order = def.order or "", on_die = def.on_die, do_custom = def.do_custom, - jump_height = def.jump_height or 6, - jump_chance = def.jump_chance or 0, + jump_height = def.jump_height or 4, -- was 6 drawtype = def.drawtype, -- DEPRECATED, use rotate instead rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 lifetimer = def.lifetimer or 180, -- 3 minutes @@ -2473,7 +2497,7 @@ minetest.register_entity(name, { sounds = def.sounds or {}, animation = def.animation, follow = def.follow, - jump = def.jump or true, + jump = def.jump ~= false, walk_chance = def.walk_chance or 50, attacks_monsters = def.attacks_monsters or false, group_attack = def.group_attack or false, @@ -2514,8 +2538,10 @@ minetest.register_entity(name, { dogshoot_switch = def.dogshoot_switch, dogshoot_count = 0, dogshoot_count_max = def.dogshoot_count_max or 5, + dogshoot_count2_max = def.dogshoot_count2_max or (def.dogshoot_count_max or 5), attack_animals = def.attack_animals or false, specific_attack = def.specific_attack, + owner_loyal = def.owner_loyal, on_blast = def.on_blast or do_tnt, @@ -2523,51 +2549,12 @@ minetest.register_entity(name, { on_punch = mob_punch, - on_activate = function(self, staticdata, dtime_s) - mob_activate(self, staticdata, dtime_s, def) + on_activate = function(self, staticdata) + return mob_activate(self, staticdata, def) end, get_staticdata = function(self) - - -- remove mob when out of range unless tamed - if remove_far - and self.remove_ok - and not self.tamed - and self.lifetimer < 20000 then - - --print ("REMOVED " .. self.name) - - self.object:remove() - - return nil - end - - self.remove_ok = true - self.attack = nil - self.following = nil - self.state = "stand" - - -- used to rotate older mobs - if self.drawtype - and self.drawtype == "side" then - self.rotate = math.rad(90) - end - - local tmp = {} - - for _,stat in pairs(self) do - - local t = type(stat) - - if t ~= 'function' - and t ~= 'nil' - and t ~= 'userdata' then - tmp[_] = self[_] - end - end - - -- print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') - return minetest.serialize(tmp) + return mob_staticdata(self) end, }) @@ -2578,7 +2565,8 @@ end -- END mobs:register_mob function -- count how many mobs of one type are inside an area local count_mobs = function(pos, type) - local num = 0 + local num_type = 0 + local num_total = 0 local objs = minetest.get_objects_inside_radius(pos, aoc_range) for n = 1, #objs do @@ -2587,14 +2575,21 @@ local count_mobs = function(pos, type) local obj = objs[n]:get_luaentity() - if obj and obj.name and obj.name == type then -- mob type count - --if obj and obj.name and obj.health ~= nil then -- all mob count - num = num + 1 + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 end end end - return num + return num_type, num_total end @@ -2639,9 +2634,9 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, end -- do not spawn if too many of same mob in area - if active_object_count_wider >= aoc - and count_mobs(pos, name) >= aoc then ---print ("--- too many entities", name, aoc) + if active_object_count_wider >= max_per_block + or count_mobs(pos, name) >= aoc then +--print ("--- too many entities", name, aoc, active_object_count_wider) return end @@ -2921,7 +2916,6 @@ function mobs:register_arrow(name, def) local node = node_ok(pos).name if minetest.registered_nodes[node].walkable then - --if node ~= "air" then self.hit_node(self, pos, node) @@ -2979,7 +2973,7 @@ function mobs:register_arrow(name, def) end --- Spawn Egg +-- register spawn eggs function mobs:register_egg(mob, desc, background, addegg, no_creative) local grp = {} @@ -2996,6 +2990,56 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative) "^[mask:mobs_chicken_egg_overlay.png)" end + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = desc .. " (Tamed)", + inventory_image = invimg, + groups = {not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + if not ent then + mob:remove() + return + end + + if ent.type ~= "monster" then + -- set owner and tame if not monster + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg minetest.register_craftitem(mob, { description = desc, @@ -3043,180 +3087,154 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative) end, }) - -- spawn egg containing mob information - minetest.register_craftitem(mob .. "_set", { - - description = desc .. " (set)", - inventory_image = invimg, - groups = {not_in_creative_inventory = 1}, - stack_max = 1, - - on_place = function(itemstack, placer, pointed_thing) - - local pos = pointed_thing.above - - -- am I clicking on something with existing on_rightclick function? - local under = minetest.get_node(pointed_thing.under) - local def = minetest.registered_nodes[under.name] - if def and def.on_rightclick then - return def.on_rightclick(pointed_thing.under, under, placer, itemstack) - end - - if pos - and within_limits(pos, 0) - and not minetest.is_protected(pos, placer:get_player_name()) then - - pos.y = pos.y + 1 - - local data = itemstack:get_metadata() - local mob = minetest.add_entity(pos, mob, data) - local ent = mob:get_luaentity() - - if not ent then - mob:remove() - return - end - - if ent.type ~= "monster" then - -- set owner and tame if not monster - ent.owner = placer:get_player_name() - ent.tamed = true - end - - -- if not in creative then take item - if not creative then - itemstack:take_item() - end - end - - return itemstack - end, - }) end -- capture critter (thanks to blert2112 for idea) function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith) - if not self.child - and clicker:is_player() - and clicker:get_inventory() then - - -- get name of clicked mob - local mobname = self.name - - -- if not nil change what will be added to inventory - if replacewith then - mobname = replacewith - end - - local name = clicker:get_player_name() - - -- is mob tamed? - if self.tamed == false - and force_take == false then - - minetest.chat_send_player(name, S("Not tamed!")) - - return - end - - -- cannot pick up if not owner - if self.owner ~= name - and force_take == false then - - minetest.chat_send_player(name, S("@1 is owner!", self.owner)) - - return - end - - if clicker:get_inventory():room_for_item("main", mobname) then - - -- was mob clicked with hand, net, or lasso? - local tool = clicker:get_wielded_item() - local chance = 0 - - if tool:is_empty() then - chance = chance_hand - - elseif tool:get_name() == "mobs:net" then - - chance = chance_net - - tool:add_wear(4000) -- 17 uses - - clicker:set_wielded_item(tool) - - elseif tool:get_name() == "mobs:magic_lasso" then - - chance = chance_lasso - - tool:add_wear(650) -- 100 uses - - clicker:set_wielded_item(tool) - end - - -- return if no chance - if chance == 0 then return end - - -- calculate chance.. add to inventory if successful? - if random(1, 100) <= chance then - --- add special mob egg containing all mob information -local new_stack = ItemStack(mobname .. "_set") -local tmp = {} -for _,stat in pairs(self) do - local t = type(stat) - if t ~= 'function' - and t ~= 'nil' - and t ~= 'userdata' then - tmp[_] = self[_] - end -end -local data_str = minetest.serialize(tmp) -local inv = clicker:get_inventory() -new_stack:set_metadata(data_str) -if inv:room_for_item("main", new_stack) then - inv:add_item("main", new_stack) -else - minetest.add_item(clicker:getpos(), new_stack) -end - --- clicker:get_inventory():add_item("main", mobname) - - self.object:remove() - else - minetest.chat_send_player(name, S("Missed!")) - end - end - end -end - - --- protect tamed mob with rune iten -function mobs:protect(self, clicker) - - local name = clicker:get_player_name() - - if self.tamed == false then - minetest.chat_send_player(name, S("Not tamed!")) + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then return false end - local tool = clicker:get_wielded_item() + -- get name of clicked mob + local mobname = self.name - if tool:get_name() == "mobs:protector" then - - tool:take_item() -- take 1 protection rune - clicker:set_wielded_item(tool) - - self.protected = true - minetest.chat_send_player(name, S("Protected!")) - - return true + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith end - return false + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:magic_lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return true -- false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return true -- false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + tool:add_wear(4000) -- 17 uses + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:magic_lasso" then + + chance = chance_lasso + + tool:add_wear(650) -- 100 uses + + clicker:set_wielded_item(tool) + + end + + -- calculate chance.. add to inventory if successful? + if chance > 0 and random(1, 100) <= chance then + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:getpos(), new_stack) + end + + self.object:remove() + + else + minetest.chat_send_player(name, S("Missed!")) + end + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + + self.protected = true + minetest.chat_send_player(name, S("Protected!")) + + return true end @@ -3348,6 +3366,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) return end + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + -- update nametag mob_obj[name].nametag = fields.name diff --git a/mods/mobs_redo/api.txt b/mods/mobs_redo/api.txt index 21a778e..dd56748 100644 --- a/mods/mobs_redo/api.txt +++ b/mods/mobs_redo/api.txt @@ -1,5 +1,5 @@ -MOB API (31st January 2017) +MOB API (12th May 2017) The mob api is a function that can be called on by other mods to add new animals or monsters into minetest. @@ -25,6 +25,7 @@ This functions registers a new mob as a Minetest entity. 'docile_by_day' when true, mob will not attack during daylight hours unless provoked 'attacks_monsters' usually for npc's to attack monsters in area 'group_attack' true to defend same kind of mobs from attack in area + 'owner_loyal' when true owned mobs will attack any monsters you punch 'attack_animals' true for monster to attack animals as well as player and npc's 'specific_attack' has a table of entity names that monsters can attack {"player", "mobs_animal:chicken"} 'hp_min' minimum health @@ -42,14 +43,13 @@ This functions registers a new mob as a Minetest entity. 'makes_footstep_sound' same is in minetest.register_entity() 'follow' item when held will cause mob to follow player, can be single string "default:apple" or table {"default:apple", "default:diamond"} 'view_range' the range in that the monster will see the playerand follow him - 'walk_chance' chance of mob walking around - 'jump_chance' chance of mob jumping around, set above to 0 for jumping mob only + 'walk_chance' chance of mob walking around, set above to 0 for jumping mob only 'walk_velocity' the velocity when the monster is walking around 'run_velocity' the velocity when the monster is attacking a player 'runaway' when true mob will turn and run away when punched 'stepheight' minimum node height mob can walk onto without jumping (default: 0.6) 'jump' can mob jump, true or false - 'jump_height' height mob can jump, default is 6 + 'jump_height' height mob can jump, default is 6 (0 to disable jump) 'fly' can mob fly, true or false (used for swimming mobs also) 'fly_in' node name that mob flys inside, e.g "air", "default:water_source" for fish 'damage' the damage per second @@ -83,7 +83,8 @@ This functions registers a new mob as a Minetest entity. 'explode' follows player in range and will flash and explode when in reach 'dogshoot' shoots arrows when in range and one on one attack when in reach 'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight) - 'dogshoot_count_max' number of seconds before switching above modes. + 'dogshoot_count_max' number of seconds before switching to dogfight mode. + 'dogshoot_count2_max' number of seconds before switching back to shoot mode. 'custom_attack' is a function that is called when mob is in range to attack player, parameters are (self, to_attack) 'double_melee_attack' if false then api will choose randomly between 'punch' and 'punch2' attack animations 'on_blast' is called when TNT explodes near mob, function uses (object, damage) and returns (do_damage, do_knockback, drops) @@ -102,35 +103,31 @@ This functions registers a new mob as a Minetest entity. 'jump' sound when jumping 'explode' sound when exploding 'distance' maximum distance sounds are heard from (default is 10) - 'animation' a table with the animation ranges and speed of the model - 'stand_start' start frame of stand animation - 'stand_end' end frame of stand animation - 'walk_start' start frame of walk animation - 'walk_end' end frame of walk animation - 'run_start' start frame of run animation - 'run_end' end frame of run animation - 'punch_start' start frame of punch animation - 'punch_end' end frame of punch animation - 'punch2_start' start frame of alt.punch animation - 'punch2_end' end frame of alt.punch animation - 'shoot_start' start frame of shoot animation - 'shoot_end' end frame of shoot animation - 'die_start' start frame of die animation - 'die_end' end frame of die animation - 'speed_normal' normal animation speed - 'fly_start' start frame of fly animation - 'fly_end' end frame of fly animation - 'speed_run' running animation speed - 'speed_punch' punching animation speed - 'speed_punch2' alternative punching animation speed - 'speed_shoot' shooting animation speed - 'speed_die' die animation speed - 'speed_fly' fly animation speed + +Mobs can look for specific nodes as they walk and replace them to mimic eating + 'replace_what' group if items to replace e.g. {"farming:wheat_8", "farming:carrot_8"} 'replace_with' replace with what e.g. "air" or in chickens case "mobs:egg" 'replace_rate' how random should the replace rate be (typically 10) 'replace_offset' +/- value to check specific node to replace +The 'replace_what' has been updated to use tables for what, with and y_offset e.g. + + replace_what = { {"group:grass", "air", 0}, {"default:dirt_with_grass", "default:dirt", -1} } + +Mob animation comes in three parts, start_frame, end_frame and frame_speed which +can be added to the mob definition under pre-defined mob animation names like: + + 'animation' a table with the animation ranges and speed of the model + 'stand_start', 'stand_end', 'stand_speed' when mob stands still + 'walk_start', 'walk_end', 'walk_speed' when mob walks + 'run_start', 'run_end', 'run_speed' when mob runs + 'fly_start', 'fly_end', 'fly_speed' when mob flies + 'punch_start', 'punch_end', 'punch_speed' when mob attacks + 'punch2_start', 'punch2_end', 'punch2_speed' when mob attacks (alternative) + 'die_start', 'die_end', 'die_speed' when mob dies +also 'speed_normal' for compatibility with older mobs for animation speed (deprecated) + The mob api also has some preset variables and functions that it will remember for each mob @@ -139,8 +136,9 @@ The mob api also has some preset variables and functions that it will remember f 'self.child' used for when breeding animals have child, will use child_texture and be half size 'self.owner' string used to set owner of npc mobs, typically used for dogs 'self.order' set to "follow" or "stand" so that npc will follow owner or stand it's ground + 'self.nametag' contains the name of the mob which it can show above 'on_die' a function that is called when mob is killed - 'do_custom' a custom function that is called while mob is active and which has access to all of the self.* variables e.g. (self.health for health or self.standing_in for node status), return with 'false' to skip remainder of mob API. + 'do_custom' a custom function that is called every tick while mob is active and which has access to all of the self.* variables e.g. (self.health for health or self.standing_in for node status), return with 'false' to skip remainder of mob API. mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle) @@ -157,7 +155,7 @@ These functions register a spawn algorithm for the mob. Without this function th 'interval' is same as in register_abm() (default is 30 for mobs:register_spawn) 'chance' is same as in register_abm() 'active_object_count' mob is only spawned if active_object_count_wider of ABM is <= this - 'min_height' is the maximum height the mob can spawn + 'min_height' is the minimum height the mob can spawn 'max_height' is the maximum height the mob can spawn 'day_toggle' true for day spawning, false for night or nil for anytime 'on_spawn' is a custom function which runs after mob has spawned and gives self and pos values. @@ -235,12 +233,12 @@ This function is generally called inside the on_rightclick section of the mob ap 'chance_net' chance of capturing mob using net (1 to 100) 0 to disable 'chance_lasso' chance of capturing mob using magic lasso (1 to 100) 0 to disable 'force_take' take mob by force, even if tamed (true or false) - 'replacewith' once captured replace mob with this item instead + 'replacewith' once captured replace mob with this item instead (overrides new mob eggs with saved information) mobs:feed_tame(self, clicker, feed_count, breed) -This function allows the mob to be fed the item inside self.follow be it apple, wheat or whatever a set number of times and be tamed or bred as a result. +This function allows the mob to be fed the item inside self.follow be it apple, wheat or whatever a set number of times and be tamed or bred as a result. Will return true when mob is fed with item it likes. 'self' mob information 'clicker' player information @@ -251,7 +249,7 @@ This function allows the mob to be fed the item inside self.follow be it apple, mobs:protect(self, clicker) -This function can be used to right-click any tamed mob with mobs:protector item, this will protect the mob from harm inside of a protected area from other players. +This function can be used to right-click any tamed mob with mobs:protector item, this will protect the mob from harm inside of a protected area from other players. Will return true when mob right-clicked with mobs:protector item. 'self' mob information 'clicker' player information @@ -298,6 +296,27 @@ This function allows an attached player to move the mob around and animate it at 'dtime' tick time used inside drive function +mobs:fly(self, dtime, speed, can_shoot, arrow_entity, move_animation, stand_animation) + +This function allows an attached player to fly the mob around using directional controls. + + 'self' mob information + 'dtime' tick time used inside fly function + 'speed' speed of flight + 'can_shoot' true if mob can fire arrow (sneak and left mouse button fires) + 'arrow_entity' name of arrow entity used for firing + 'move_animation' string containing movement animation e.g. "walk" + 'stand_animation' string containing movement animation e.g. "stand" + + +mobs:set_animation(self, name) + +This function sets the current animation for mob, defaulting to "stand" if not found. + + 'self' mob information + 'name' name of animation + + Certain variables need to be set before using the above functions: 'self.v2' toggle switch diff --git a/mods/mobs_redo/locale/tr.txt b/mods/mobs_redo/locale/tr.txt new file mode 100644 index 0000000..3f2833e --- /dev/null +++ b/mods/mobs_redo/locale/tr.txt @@ -0,0 +1,39 @@ +# Türkçe çeviri by Admicos +# Turkish translation by Admicos + +# Son düzenleme: 26 Nisan 2017 +# Last edit: 26 April 2017 + +#init.lua +[MOD] Mobs Redo loaded = [MOD] Mobs Red yüklendi + +#api.lua +[MOBS] mod profiling enabled, damage not enabled = [MOBS] profilleme açık, zarar kapalı +lifetimer expired, removed @1 = Can zamanlayıcısı bitti, @1 silindi +[Mobs Redo] @1 has spawning disabled = @1 yaratılması kapandı +[Mobs Redo] Chance setting for @1 is now @2 = [Mobs Redo] @1'in şans ayarı şimdi @2 +[mobs] @1 failed to spawn at @2 = @1, @2'de yaratılamadı +Not tamed! = Evcil değil! +@1 is owner! = Sahibi @1! +Missed! = Kaçırdın! +@1 at full health (@2) = @1 tam canında (@2) +@1 has been tamed! = @1 tamamen evcilleştirilmiştir! +Enter name: = İsim gir: +Rename = Yeniden adlandır + +#crafts.lua +Nametag = İsim etiketi +Leather = Deri +Raw Meat = Çiğ et +Meat = Et +Magic Lasso (right-click animal to put in inventory) = Sihirli kement (hayvana sağ tıklayarak envantere koy) +Net (right-click animal to put in inventory) = Ağ (hayvana sağ tıklayarak envantere koy) +Steel Shears (right-click to shear) = Çelik makas (sağ tıklayarak kes) + +#spawner.lua +Mob Spawner = Canavar Yaratıcı +Mob MinLight MaxLight Amount PlayerDist = Mob MinIşık MaxIşık Miktar OyuncuMesafesi +Spawner Not Active (enter settings) = Yaratıcı aktif değil (ayarlara gir) +Spawner Active (@1) = Yaratıcı aktif (@1) +Mob Spawner settings failed! = Yaratıcı ayarları uygulanamadı. +> name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] distance[1-20] y_offset[-10 to 10] = > isim min_isik[0-14] max_isik[0-14] alandaki_max_canavar_sayisi[kapatmak icin 0] mesafe[1-20] y_cikinti[-10 ve 10 arası] \ No newline at end of file diff --git a/mods/mobs_redo/mount.lua b/mods/mobs_redo/mount.lua index ca86b8e..b26f8ac 100644 --- a/mods/mobs_redo/mount.lua +++ b/mods/mobs_redo/mount.lua @@ -141,7 +141,8 @@ function mobs.attach(entity, player) default.player_set_animation(player, "sit" , 30) end) - player:set_look_yaw(entity.object:getyaw() - rot_view) + --player:set_look_yaw(entity.object:getyaw() - rot_view) + player:set_look_horizontal(entity.object:getyaw() - rot_view) end @@ -196,10 +197,8 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) entity.v = entity.v - entity.accel / 10 end - --entity.object:setyaw(entity.driver:get_look_yaw() - rot_steer) --- entity.object:setyaw(entity.driver:get_look_horizontal())-- - rot_steer) - -- fix mob rotation +-- entity.object:setyaw(entity.driver:get_look_yaw() - entity.rotate) entity.object:setyaw(entity.driver:get_look_horizontal() - entity.rotate) if can_fly then @@ -242,7 +241,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then if stand_anim then - set_animation(entity, stand_anim) + mobs:set_animation(entity, stand_anim) end return @@ -250,7 +249,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) -- set moving animation if moving_anim then - set_animation(entity, moving_anim) + mobs:set_animation(entity, moving_anim) end -- Stop! @@ -340,9 +339,6 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) else v = v * 0.25 end --- elseif ni == "walkable" then --- v = 0 --- new_acce.y = 1 end new_velo = get_velocity(v, entity.object:getyaw() - rot_view, velo.y) @@ -370,3 +366,72 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) entity.v2 = v end + + +-- directional flying routine by D00Med (edited by TenPlus1) + +function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) + + local ctrl = entity.driver:get_player_control() + local velo = entity.object:getvelocity() + local dir = entity.driver:get_look_dir() +-- local yaw = entity.driver:get_look_yaw() + local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands + local rot_steer, rot_view = math.pi / 2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi / 2 + end + + if ctrl.up then + entity.object:setvelocity({ + x = dir.x * speed, + y = dir.y * speed + 2, + z = dir.z * speed + }) + + elseif ctrl.down then + entity.object:setvelocity({ + x = -dir.x * speed, + y = dir.y * speed + 2, + z = -dir.z * speed + }) + + elseif not ctrl.down or ctrl.up or ctrl.jump then + entity.object:setvelocity({x = 0, y = -2, z = 0}) + end + + entity.object:setyaw(yaw + math.pi + math.pi / 2 - entity.rotate) + + -- firing arrows + if ctrl.LMB and ctrl.sneak and shoots then + + local pos = entity.object:getpos() + local obj = minetest.add_entity({ + x = pos.x + 0 + dir.x * 2.5, + y = pos.y + 1.5 + dir.y, + z = pos.z + 0 + dir.z * 2.5}, arrow) + + local ent = obj:get_luaentity() + if ent then + ent.switch = 1 -- for mob specific arrows + ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding + local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6} +-- local yaw = entity.driver:get_look_yaw() + local yaw = entity.driver:get_look_horizontal() + obj:setyaw(yaw + math.pi / 2) + obj:setvelocity(vec) + else + obj:remove() + end + end + + -- change animation if stopped + if velo.x == 0 and velo.y == 0 and velo.z == 0 then + + mobs:set_animation(entity, stand_anim) + else + -- moving animation + mobs:set_animation(entity, moving_anim) + end +end diff --git a/mods/mobs_redo/readme.MD b/mods/mobs_redo/readme.MD index 033bd53..20722c0 100644 --- a/mods/mobs_redo/readme.MD +++ b/mods/mobs_redo/readme.MD @@ -22,7 +22,9 @@ Lucky Blocks: 9 Changelog: - +- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked +- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack +- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) - 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 - 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs - 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. diff --git a/mods/mobs_redo/spawner.lua b/mods/mobs_redo/spawner.lua index 9be2bf8..11ddfee 100644 --- a/mods/mobs_redo/spawner.lua +++ b/mods/mobs_redo/spawner.lua @@ -71,6 +71,9 @@ minetest.register_node("mobs:spawner", { end, }) + +local max_per_block = tonumber(minetest.setting_get("max_objects_per_block") or 99) + -- spawner abm minetest.register_abm({ label = "Mob spawner node", @@ -81,6 +84,11 @@ minetest.register_abm({ action = function(pos, node, active_object_count, active_object_count_wider) + -- return if too many entities already + if active_object_count_wider >= max_per_block then + return + end + -- get meta and command local meta = minetest.get_meta(pos) local comm = meta:get_string("command"):split(" ") @@ -98,17 +106,23 @@ minetest.register_abm({ return end + -- are we spawning a registered mob? + if not mobs.spawning_mobs[mob] then + --print ("--- mob doesn't exist", mob) + return + end + -- check objects inside 9x9 area around spawner local objs = minetest.get_objects_inside_radius(pos, 9) local count = 0 local ent = nil -- count mob objects of same type in area - for k, obj in pairs(objs) do + for k, obj in ipairs(objs) do ent = obj:get_luaentity() - if ent and ent.name == mob then + if ent and ent.name and ent.name == mob then count = count + 1 end end diff --git a/mods/mobs_redo/textures/mobs_meat.png b/mods/mobs_redo/textures/mobs_meat.png index 2608ea76504ff0eb18f7ba2449e6c5b743b23c17..1d615d0492cc70af1bdae1b74b99e1bb9118f157 100644 GIT binary patch delta 331 zcmV-R0kr;@1LXpcBYyx1a7bBm000XU000XU0RWnu7ytkP7fD1xR5;7+kikje~Eb0ZeJ)VLwx^IxVEYEd^TTlJAZuMi2&C&Rs8JkXn|A8eAZL}fU;G=zq%%v-it35bXeWdV&$@Nwnxr8 z;xNDYGekfKq(tHu%;rm+e1Wo6A&?>1@V37Wy#zoK1fcc&3jHB<4f!p^xOR)V2$UuZ d5PAPY`T#4{ZvTV)ukQc=002ovPDHLkV1i&Yj|Bh# delta 382 zcmV-^0fGMI0+<7kBYy#3Nkl8X>C^&nJ+~O=nMaLSm%>?qc%23;M43tXiIQV9X!+F1yOJH!8;@x#k)K`UZchwUHrKObMH cr|)0JKXkmMnqI{rPyhe`07*qoM6N<$f?pA|0ssI2 diff --git a/mods/mobs_redo/textures/mobs_meat_raw.png b/mods/mobs_redo/textures/mobs_meat_raw.png index 74d16958b1de7bbf0e6ae37f48602281f5b1dbe4..e67cc1c7205311f0bf226d34942d352e359d1e09 100644 GIT binary patch delta 331 zcmV-R0kr;;1LXpcBYyx1a7bBm000XU000XU0RWnu7ytkP7fD1xR5;7+k+Dj{Kpe(@ zX9YK>f+(FN&?0EZ#**OB(oMn1Nt`nkx`{aEL3{xnq)W&m$kDo0NogT*X%N)Z2k6jq z(1f&2UO@b&yW{@9@4oNgUn0HfcCVF`9=3feEW=dsc@Rx;Mt?(*1z2AmK0j;o_3)_x z>ZM|G(K1Yx1zL+2QhGmb6BmF^LkB=FYYAvRE708CSGf^lr%pqsH}=uX8ojX(z|E7- z)oF|8{($zQD>4C=VXE}AWf)N}6_H^?g$)1>YE|qz2lw?wEJTRQl3|oPtX&?meR0C^ z&em!N0M2MAmP8>zG)-M_sAfwc=z>;qyE3&F}pM2zO0Oq|L5Gyk>lff3w6PIvF&EABl9#!`P5H`}|S z(=XG~h;ad!aVBtVkK*O|2xI*oZg=)XrywffHF>8Q8vvf7kbgm%(9OD3wsz$=`^&`BaPQl6p^-}M1aY9M34 z^1FrBEp+T*S#qD(tNQbW0L(9y)!9y2R<+R7Ltcg<0L5H^$EZ(VCoE3oXivKwTwVQe zBOg6o-w@l=%u&F|5HS`Vi4bFxNrqAe5sRbhwfZ;4)AdbJN@L4seCZ$ms9I6u_K)fV XHYTPgxiE`!00000NkvXXu0mjfrUtHD diff --git a/mods/moreplants/init.lua b/mods/moreplants/init.lua index bead456..0848a85 100644 --- a/mods/moreplants/init.lua +++ b/mods/moreplants/init.lua @@ -908,7 +908,7 @@ minetest.register_node("moreplants:palm", { minetest.register_node("moreplants:palmleaves2", { description = "Palm Leaves (2)", drawtype = "plantlike", - visual_scale = 2.5, + visual_scale = 5, tiles = {"moreplants_palmleaves2.png"}, inventory_image = "moreplants_palmleaves2.png", use_texture_alpha = true, @@ -927,7 +927,7 @@ minetest.register_node("moreplants:palmleaves2", { minetest.register_node("moreplants:palmleaves1", { description = "Palm Leaves (1)", drawtype = "signlike", - visual_scale = 4.0, + visual_scale = 5.0, tiles = {"moreplants_palmleaves.png"}, inventory_image = "moreplants_palmleaves.png", use_texture_alpha = true, diff --git a/mods/noairblocks/init.lua b/mods/noairblocks/init.lua deleted file mode 100644 index 8ff3b7b..0000000 --- a/mods/noairblocks/init.lua +++ /dev/null @@ -1,230 +0,0 @@ --- NODES - -minetest.register_node("noairblocks:water_flowingx", { - description = "Flowing Waterx", - inventory_image = minetest.inventorycube("default_water.png"), - drawtype = "flowingliquid", - tiles = {"default_water.png"}, - special_tiles = { - { - image="default_water_flowing_animated.png", - backface_culling=false, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.8} - }, - { - image="default_water_flowing_animated.png", - backface_culling=true, - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=0.8} - }, - }, - alpha = 0, - paramtype = "light", - paramtype2 = "flowingliquid", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "noairblocks:water_flowingx", - liquid_alternative_source = "noairblocks:water_sourcex", - liquid_viscosity = WATER_VISC, - freezemelt = "default:snow", - post_effect_color = {a = 103, r = 30, g = 60, b = 90}, - groups = {water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1}, -}) - -minetest.register_node("noairblocks:water_sourcex", { - description = "Water Sourcex", - inventory_image = minetest.inventorycube("default_water.png"), - drawtype = "liquid", - tiles = { - {name="default_water_source_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=2.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=2.0}, - backface_culling = false, - } - }, - alpha = 0, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - drop = "", - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "noairblocks:water_flowingx", - liquid_alternative_source = "noairblocks:water_sourcex", - liquid_viscosity = WATER_VISC, - freezemelt = "default:ice", - post_effect_color = {a = 103, r = 30, g = 60, b = 90}, - groups = {water=3, liquid=3, puts_out_fire=1, freezes=1, not_in_creative_inventory=1}, -}) - - --- ABM'S - - --- 6 x default to noairblocks - - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local xn = {x = pos.x - 1, y = pos.y, z = pos.z} - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - local xnyp= {x = pos.x - 1, y = pos.y + 1, z = pos.z} - if minetest.get_node(xn).name == "default:water_source" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(xnyp).name ~= "air" then - minetest.add_node(xn, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(xn).name == "default:water_flowing" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(xnyp).name ~= "air" then - minetest.add_node(xn, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local xp = {x = pos.x + 1, y = pos.y, z = pos.z} - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - local xpyp= {x = pos.x + 1, y = pos.y + 1, z = pos.z} - if minetest.get_node(xp).name == "default:water_source" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(xpyp).name ~= "air" then - minetest.add_node(xp, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(xp).name == "default:water_flowing" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(xpyp).name ~= "air" then - minetest.add_node(xp, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local zn = {x = pos.x, y = pos.y, z = pos.z - 1} - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - local znyp= {x = pos.x, y = pos.y + 1, z = pos.z - 1} - if minetest.get_node(zn).name == "default:water_source" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(znyp).name ~= "air" then - minetest.add_node(zn, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(zn).name == "default:water_flowing" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(znyp).name ~= "air" then - minetest.add_node(zn, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local zp = {x = pos.x, y = pos.y, z = pos.z + 1} - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - local zpyp= {x = pos.x, y = pos.y + 1, z = pos.z + 1} - if minetest.get_node(zp).name == "default:water_source" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(zpyp).name ~= "air" then - minetest.add_node(zp, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(zp).name == "default:water_flowing" and - minetest.get_node(yp).name ~= "air" and - minetest.get_node(zpyp).name ~= "air" then - minetest.add_node(zp, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - if minetest.get_node(yp).name == "default:water_source" then - minetest.add_node(yp, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(yp).name == "default:water_flowing" then - minetest.add_node(yp, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - -minetest.register_abm({ -nodenames = {"group:sea"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) - local yn = {x = pos.x, y = pos.y - 1, z = pos.z} - local yp= {x = pos.x, y = pos.y + 1, z = pos.z} - if minetest.get_node(yn).name == "default:water_source" and - minetest.get_node(yp).name ~= "air" then - minetest.add_node(yn, {name = "noairblocks:water_sourcex"}) else - if minetest.get_node(yn).name == "default:water_flowing" and - minetest.get_node(yp).name ~= "air" then - minetest.add_node(yn, {name = "noairblocks:water_flowingx"}) else - return - end - end -end, -}) - - --- Undoing x - - -minetest.register_abm({ -nodenames = {"noairblocks:water_sourcex"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) -local pos0 = {x=pos.x-1,y=pos.y-1,z=pos.z-1} -local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1} - if #minetest.find_nodes_in_area(pos0, pos1, "group:sea") < 1 then - minetest.add_node(pos, {name = "default:water_source"}) else - return - end -end, -}) - -minetest.register_abm({ -nodenames = {"noairblocks:water_flowingx"}, -interval = 1, -chance = 1, -action = function(pos, node, active_object_count, active_object_count_wider) -local pos0 = {x=pos.x-1,y=pos.y-1,z=pos.z-1} -local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1} - if #minetest.find_nodes_in_area(pos0, pos1, "group:sea") < 1 then - minetest.add_node(pos, {name = "default:water_flowing"}) else - return - end -end, -}) \ No newline at end of file diff --git a/mods/noairblocks/readme.txt b/mods/noairblocks/readme.txt deleted file mode 100644 index 9674ffa..0000000 --- a/mods/noairblocks/readme.txt +++ /dev/null @@ -1,12 +0,0 @@ -.png's: -default_water_source_animated.png -default_water_flowing_animated.png -RealBadAngel's animated water (WTFPL) - -Code: -minetest/games/minetest_game/mods/default/nodes.lua --> water - -Copyright (C) 2011-2012 celeron55, Perttu Ahola -GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. diff --git a/mods/quartz/textures/quartz.png b/mods/quartz/textures/quartz.png index 72012679c702d153c516ac8d12943bd95cf69880..dea13d679abdf5b3f8c55c37ceab5517e510d8c3 100644 GIT binary patch delta 280 zcmV+z0q6e50muT7Ie+>|L_t(I%gvIZ4#F@LMQ{5Nt6qX2o#O-W7#s$P!cNZYJEkUQ z=4NI$l35&0MH6%v2%k_?n{{I#2nluVd-vY+UJCsBoKGk7mH2VHnAL1j)JiOTKC>~wttTTfYv?gszk`6*`zp0 zi4}%Cf>gra!E(V-S0&o6L6K)BPEzt|FU}xNQX-YWX1kjRuHpg!DDup-UE}t`Sl|=v z4@Ytpm&v@gHYAlwxHk{8$TMRbwC=%JfZ-hg7z;c@I!=;GIK=(oNLK4LnG?VKNY-TB eI3DGH&J)h&k`Ygug!#n)0000=T6Ie&RcL_t(I%VS^|1+)kE?%)59Po9a8=6m-aFpy*bJ{z&gVHoi7 z(|L_t(I%gvIZ4#F@LMQ{5Nt6qX2o#O-W7#s$P!cNZYJEkUQ z=4NI$l35&0MH6%v2%k_?n{{I#2nluVd-vY+UJCsBoKGk7mH2VHnAL1j)JiOTKC>~wttTTfYv?gszk`6*`zp0 zi4}%Cf>gra!E(V-S0&o6L6K)BPEzt|FU}xNQX-YWX1kjRuHpg!DDup-UE}t`Sl|=v z4@Ytpm&v@gHYAlwxHk{8$TMRbwC=%JfZ-hg7z;c@I!=;GIK=(oNLK4LnG?VKNY-TB eI3DGH&J)h&k`Ygug!#n)0000=T6Ie&RcL_t(I%VS^|1+)kE?%)59Po9a8=6m-aFpy*bJ{z&gVHoi7 z(|8GhlIkN{_7iUE2v8WJ+w0zs=i_~V|E`boS>FZz{`}G+;j<+6 zy~_4)OP6`bvlL3Tm~&wpwJF6sOR-+DWe0U5;WBSPR8~djf`1SPO0|Rc%$*GYO0~$d z6fW~-m4Yy`4A5mB>P8MTSg#oJEJaxr5DC{o7+FiXbOb>dS#=}v`1E`OxXKFvKqOq3 zRng@_h%OZ924I5)rYz|m zmo^bg@fO8?{@*syBZ5WJ)t|i!x22t4)0BP!=4Dk77D+6Dj^iw|z!KCO06Euw1ejdr zw(SIf#-TUWGw8fG04T;-yb)!=xt0K27Uve5JgM{ktMnXhYbB0}C8%Lm9TEVg(BA3( aAMpk=^+G45uqFfm0000 0.5 then - texture_name = "twilight_twilight1.png" - else - texture_name = "twilight_twilight2.png" - end - return texture_name; -end - -minetest.register_globalstep(function(dtime) - if weather.state ~= "twilight" then - return false - end - - for _, player in ipairs(minetest.get_connected_players()) do - if (weather.is_underwater(player)) then - return false - end - twilight.add_rain_particles(player, dtime) - end -end) - --- register twilight weather -if weather.reg_weathers.twilight == nil then - weather.reg_weathers.twilight = { - chance = 10, - clear = function() end - } -end twilight_mode = false --[[ @@ -152,8 +90,9 @@ local glow = nil minetest.register_globalstep(function(dtime) if twilight_mode == true then - weather.state = "twilight" for _, player in ipairs(minetest.get_connected_players()) do + hyrule_weather.current = 8 + hyrule_weather.weather = "twilight" player:set_sky({}, "skybox", twilightsky) -- Sets skybox player:override_day_night_ratio(0.41) local pname = player:get_player_name(); @@ -162,6 +101,19 @@ if twilight_mode == true then local remov = inv:remove_item("main", "hyruletools:sword") local add = inv:add_item("main", "hyruletools:sword_light") end + local pos = player:getpos() + minetest.add_particle({ + pos = {x=pos.x+math.random(-10,10), y=pos.y+math.random(0,1), z=pos.z+math.random(-10,10)}, + velocity = {x = math.random(-1,1)/10, y = 0.4, z = math.random(-1,1)/10}, + acceleration = {x = math.random(-1,1)/10, y=0.5, z = math.random(-1,1)/10}, + expirationtime = 0.8, + size = math.random(5, 20)/10, + collisiondetection = true, + collisionremoval = true, + vertical = true, + texture = "twilight_twilight"..math.random(1,2)..".png", + glow = 5 + }) if hud_changed == false then glow = player:hud_add({ hud_elem_type = "image", @@ -171,7 +123,7 @@ if twilight_mode == true then y = -100 }, text = "twilight_hud.png" - }) + }) hud_changed = true --player:set_properties({mesh = "wolfplayer.b3d", textures = {"wolfplayer.png"}}) --player:set_eye_offset({x=0,y=0,z=0}, {x=0,y=3,z=-3}) @@ -189,10 +141,11 @@ if twilight_mode == true then end else for _, player in ipairs(minetest.get_connected_players()) do - if weather.state == "twilight" then + if hyrule_weather.weather == "twilight" then player:set_sky({}, "regular", {}) -- Sets skybox player:override_day_night_ratio(nil) - weather.state = "none" + hyrule_weather.weather = "none" + hyrule_weather.current = 7 end local pname = player:get_player_name(); local inv = minetest.get_inventory({type="player", name=pname}); @@ -229,12 +182,12 @@ minetest.register_craftitem("twilight:crystal", { twilight_mode = false elseif twilight_mode == false then twilight_mode = true - if not midna_spawned then + if not midna_spawned and placer:get_player_name() == "singleplayer" then local pos = placer:getpos() local obj = minetest.env:add_entity({x=pos.x, y=pos.y+2, z=pos.z}, "mobs_loz:midna") local midna = obj:get_luaentity() - midna.owner = placer midna.tamed = true + midna.owner = "singleplayer" midna_spawned = true end return itemstack diff --git a/mods/vehicles_loz/api.lua b/mods/vehicles_loz/api.lua index f3a3dd8..c6978cc 100644 --- a/mods/vehicles_loz/api.lua +++ b/mods/vehicles_loz/api.lua @@ -1,4 +1,4 @@ ---vehicles/mounts api by D00Med, based on lib_mount(see below) +--vehicles/mounts api by D00Med and zaoqi, based on lib_mount(see below) --License of lib_mount: -- Minetest mod: lib_mount @@ -26,6 +26,8 @@ --attach position seems broken, and eye offset will cause problems if the vehicle/mount/player is destroyed whilst driving/riding +vehicles = {} + local function force_detach(player) local attached_to = player:get_attach() if attached_to and attached_to:get_luaentity() then @@ -36,11 +38,11 @@ local function force_detach(player) player:set_detach() end default.player_attached[player:get_player_name()] = false - player:set_eye_offset({x=0, y=0, z=0}, {x=0, y=0, z=0}) + player:set_eye_offset({x=0, y=0, z=0}, {x=3,y=3,z=-1}) player:set_properties({visual_size = {x=1, y=1}}) end -function object_attach(entity, player, attach_at, visible, eye_offset) +function vehicles.object_attach(entity, player, attach_at, visible, eye_offset) force_detach(player) entity.driver = player entity.loaded = true @@ -60,7 +62,7 @@ function object_attach(entity, player, attach_at, visible, eye_offset) entity.object:setyaw(player:get_look_yaw() - math.pi / 2) end -function object_detach(entity, player, offset) +function vehicles.object_detach(entity, player, offset) entity.driver = nil entity.object:setvelocity({x=0, y=0, z=0}) player:set_detach() @@ -102,11 +104,11 @@ timer = 0 --New vehicle function, combines all of the others -function object_drive(entity, dtime, def) +function vehicles.object_drive(entity, dtime, def) --definition local speed = def.speed or 10 local fixed = def.fixed or false - local decell = def.decell or 0 + local decell = def.decell or 0.5 local shoots = def.shoots or false local arrow = def.arrow or nil local reload_time = def.reload_time or 1 @@ -126,7 +128,7 @@ function object_drive(entity, dtime, def) local boost = def.boost or false local boost_duration = def.boost_duration or 5 local boost_charge = def.boost_charge or 4 - local boost_effect = def.boost_effect + local boost_effect = def.boost_effect or nil local hover_speed = def.hover_speed or 1.5 local jump_speed = def.jump_speed or 5 local simple_vehicle = def.simple_vehicle or false @@ -135,12 +137,22 @@ function object_drive(entity, dtime, def) local driving_sound = def.driving_sound or nil local sound_duration = def.sound_duration or 5 local extra_yaw = def.extra_yaw or 0 + local death_node = def.death_node or nil + local destroy_node = def.destroy_node or nil + local place_node = def.place_node or nil + local place_chance = def.place_chance or 1 + local place_trigger = def.place_trigger or nil + local animation_speed = def.animation_speed or 20 + local uses_arrow_keys = def.uses_arrow_keys or false + local brakes = def.brakes or false + local handling = def.handling or {initial=1.1, braking=2.2} + local braking_effect = def.braking_effect or "vehicles_dust.png" - local moving_anim = def.moving_anim - local stand_anim = def.stand_anim - local jump_anim = def.jump_anim - local shoot_anim = def.shoot_anim - local shoot_anim2 = def.shoot_anim2 + local moving_anim = def.moving_anim or nil + local stand_anim = def.stand_anim or nil + local jump_anim = def.jump_anim or nil + local shoot_anim = def.shoot_anim or nil + local shoot_anim2 = def.shoot_anim2 or nil --variables local ctrl = entity.driver:get_player_control() @@ -151,12 +163,14 @@ function object_drive(entity, dtime, def) local yaw = entity.driver:get_look_yaw(); local pos = entity.object:getpos() local node = minetest.get_node(pos).name + local node_under = minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}) local accell = 1 --dummy variables local vec_rise = {} local vec_forward_simple = {} local inv = nil + local hovering = nil --definition dependant variables if fly then @@ -172,6 +186,8 @@ function object_drive(entity, dtime, def) --timer local absolute_speed = math.sqrt(math.pow(velo.x, 2)+math.pow(velo.z, 2)) + --decell = (absolute_speed/100)+((def.decell)-(speed/100)) + local anim_speed = (math.floor(absolute_speed*1.5)/1)+animation_speed if absolute_speed <= speed and ctrl.up then timer = timer + 1*dtime end @@ -179,17 +195,6 @@ function object_drive(entity, dtime, def) timer = 0 end - --timer dependant variables - local vec_forward_hover = {x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=hover_speed,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z} - local vec_forward_jump = {x=dir.x*speed/4*math.atan(0.5*timer-2)+8*dir.x,y=jump_speed,z=dir.z*speed/4*math.atan(0.5*timer-2)+8*dir.z} - local vec_forward = {x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=velo.y-0.5,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z} - local boat_forward = {x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=0,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z} - local vec_forward_fly = {x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=dir.y*(speed*0.2)*math.log(timer+0.5)+4*dir.y+1,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z} - local vec_boost = {x=dir.x*(speed*0.2)*math.log(timer+0.5)+8*dir.x,y=velo.y-0.5,z=dir.z*(speed*0.2)*math.log(timer+0.5)+8*dir.z} - local vec_backward = {x=-dir.x*(speed/4)*accell,y=velo.y-0.5,z=-dir.z*(speed/4)*accell} - local boat_backward = {x=-dir.x*(speed/4)*accell,y=0,z=-dir.z*(speed/4)*accell} - local vec_stop = {x=velo.x*decell,y=velo.y-gravity,z=velo.z*decell} - --boost reset if boost and not entity.boost then minetest.after(boost_charge, function() @@ -197,56 +202,213 @@ function object_drive(entity, dtime, def) end) end + --minetest.chat_send_all("decell:"..decell.." speed"..absolute_speed) + + --death_node + if death_node ~= nil and node == death_node then + if entity.driver then + vehicles.object_detach(entity, entity.driver, {x=1, y=0, z=1}) + end + vehicles.explodinate(entity, 5) + entity.object:remove() + return + end + + --place node + if place_node ~= nil and node == "air" or place_node ~= nil and node == "default:snow" or place_node ~= nil and minetest.get_item_group(node, "flora") ~= 0 then + if place_trigger == nil and math.random(1, place_chance) == 1 then + minetest.set_node(pos, {name=place_node}) + end + if place_trigger ~= nil and ctrl.sneak then + local facedir = minetest.dir_to_facedir(dir) + minetest.set_node(pos, {name=place_node, param2=facedir}) + end + end + + --destroy node + if destroy_node ~= nil and node == destroy_node then + minetest.dig_node(pos) + local item = minetest.get_node_drops(destroy_node) + if item[1] ~= nil then + minetest.add_item(pos, item[1]) + end + if item[2] ~= nil then + minetest.add_item(pos, item[1]) + end + end + + local turning_factor = 2 + + --brakes + local braking = 0 + local timer2 = 0 + if ctrl.jump and brakes then + braking = 1 + timer2 = timer2 + dtime*1 + local velo3 = nil + if velo3 == nil then + velo3 = velo + end + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} + minetest.add_particlespawner( + 4, --amount + 0.5, --time + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --maxpos + {x=0, y=0, z=0}, --minvel + {x=-velo3.x, y=0.4, z=-velo3.z}, --maxvel + {x=-0,y=-0,z=-0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 10, --minsize + 15, --maxsize + false, --collisiondetection + braking_effect --texture + ) + turning_factor = handling.initial + else + timer2 = 0 + turning_factor = handling.braking + end + + + --face the right way + local target_yaw = yaw+math.pi+math.pi/2+extra_yaw + local entity_yaw = entity.object:getyaw() + local change_yaw = (((target_yaw-entity_yaw+math.pi)%(math.pi*2))-math.pi)/(turning_factor*absolute_speed+1) + if entity_yaw ~= target_yaw and not uses_arrow_keys then + entity.object:setyaw(entity_yaw+change_yaw) + dir.x = -math.sin(entity_yaw) + dir.z = math.cos(entity_yaw) + else + --minetest.chat_send_all("yaw:"..entity_yaw) + --minetest.chat_send_all("dirx: "..dir.x.." dirz:"..dir.z) + if ctrl.left then + entity.object:setyaw(entity_yaw+(math.pi/360)*absolute_speed/2) + end + if ctrl.right then + entity.object:setyaw(entity_yaw-(math.pi/360)*absolute_speed/2) + end + dir.x = -math.sin(entity_yaw) + dir.z = math.cos(entity_yaw) + end + + --lava explode + if node == "default:lava_source" or node == "default:lava_flowing" then + if entity.driver then + vehicles.object_detach(entity, entity.driver, {x=1, y=0, z=1}) + end + vehicles.explodinate(entity, 5) + entity.object:remove() + return + end --respond to controls --check for water - if node == "default:river_water_source" or node == "default:water_source" or node == "default:river_water_flowing" or node == "default:water_flowing" then - entity.on_water = true - else - entity.on_water = false + local function is_water(node) + return node == "default:river_water_source" or node == "default:water_source" or node == "default:river_water_flowing" or node == "default:water_flowing" end - + entity.on_water = is_water(node) + entity.in_water = is_water(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name) or is_water(node_under.name) + --apply water effects - if is_watercraft and entity.on_water == false then - entity.object:setvelocity({x=0, y=0, z=0}) - elseif entity.on_water and not is_watercraft then + if is_watercraft and entity.in_water then + entity.object:setvelocity({x=velo.x*0.9, y=velo.y+1, z=velo.z*0.9}) + elseif is_watercraft and entity.on_water == false then + entity.object:setvelocity({x=velo.x*decell,y=velo.y-1,z=velo.z*decell}) + elseif (entity.on_water or entity.in_water) and not is_watercraft then entity.object:setvelocity({x=velo.x*0.9, y=-1, z=velo.z*0.9}) + + --brakes + elseif ctrl.jump and brakes and not ctrl.up then + local velo2 = nil + if velo2 == nil then + velo2 = velo + end + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} + entity.object:setvelocity({x=velo2.x*(0.95), y=velo.y, z=velo2.z*(0.95)}) + minetest.add_particlespawner( + 4, --amount + 0.5, --time + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --maxpos + {x=0, y=0.1, z=0}, --minvel + {x=-velo2.x, y=0.4, z=-velo2.z}, --maxvel + {x=-0,y=-0,z=-0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 10, --minsize + 15, --maxsize + false, --collisiondetection + braking_effect --texture + ) + if timer >= 0.5 then + timer = timer-timer/10 + end + --[[elseif ctrl.jump and ctrl.up and brakes then + local velo3 = nil + if velo3 == nil then + velo3 = velo + end + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} + entity.object:setvelocity({x=velo.x*(decell), y=velo.y, z=velo.z*(decell)}) + minetest.add_particlespawner( + 4, --amount + 0.5, --time + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --maxpos + {x=0, y=0, z=0}, --minvel + {x=-velo3.x, y=0.4, z=-velo3.z}, --maxvel + {x=-0,y=-0,z=-0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 10, --minsize + 15, --maxsize + false, --collisiondetection + "vehicles_dust.png" --texture + ) + if timer >= 0.5 then + timer = timer-timer/25 + end]] + --boost elseif ctrl.up and not shoots2 and ctrl.aux1 and entity.boost then - entity.object:setyaw(yaw+math.pi+math.pi/2+extra_yaw) - entity.object:setvelocity(vec_boost) + entity.object:setvelocity({x=dir.x*(speed*0.2)*math.log(timer+0.5)+8*dir.x,y=velo.y-gravity/2,z=dir.z*(speed*0.2)*math.log(timer+0.5)+8*dir.z}) if boost_effect ~= nil then + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} minetest.add_particlespawner( - 5, --amount - 1, --time - {x=pos.x-0.5, y=pos.y, z=pos.z-0.5}, --minpos - {x=pos.x+0.5, y=pos.y, z=pos.z+0.5}, --maxpos + 10, --amount + 0.25, --time + {x=effect_pos.x, y=effect_pos.y+0.2, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y+0.2, z=effect_pos.z}, --maxpos {x=-velo.x, y=-velo.y, z=-velo.z}, --minvel {x=-velo.x, y=-velo.y, z=-velo.z}, --maxvel {x=-0,y=-0,z=-0}, --minacc {x=0,y=1,z=0}, --maxacc - 0.1, --minexptime - 0.2, --maxexptime - 5, --minsize - 10, --maxsize + 0.02, --minexptime + 0.02, --maxexptime + 20, --minsize + 20, --maxsize false, --collisiondetection boost_effect --texture ) end minetest.after(boost_duration, function() - entity.nitro = false + entity.boost = false end) --animation if moving_anim ~= nil and not entity.moving and not hovering then - entity.object:set_animation(move_anim, 20, 0) + entity.object:set_animation(move_anim, anim_speed, 0) entity.moving = true end --rise elseif ctrl.jump and fly and fly_mode == "rise" then - entity.object:setyaw(yaw+math.pi+math.pi/2+extra_yaw) entity.object:setvelocity(vec_rise) --lib_mount animation if moving_anim ~= nil and not entity.moving then - entity.object:set_animation(moving_anim, 20, 0) + entity.object:set_animation(moving_anim, anim_speed, 0) entity.moving = true end --hover in place @@ -254,39 +416,92 @@ function object_drive(entity, dtime, def) entity.object:setvelocity({x=dir.x*speed, y=0, z=dir.z*speed}) --move forward elseif ctrl.up and not fixed then - entity.object:setyaw(yaw+math.pi+math.pi/2+extra_yaw) if not fly and not is_watercraft then - entity.object:setvelocity(vec_forward) + entity.object:setvelocity({x=(dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x)/(braking*(0.1)+1),y=velo.y-0.5,z=(dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z)/(braking*(0.1)+1)}) elseif not fly then - entity.object:setvelocity(boat_forward) + entity.object:setvelocity({x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=0,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z}) else - entity.object:setvelocity(vec_forward_fly) + entity.object:setvelocity({x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=dir.y*(speed*0.2)*math.log(timer+0.5)+4*dir.y+1,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z}) end --animation if moving_anim ~= nil and not entity.moving and not hovering then - entity.object:set_animation(moving_anim, 20, 0) + entity.object:set_animation(moving_anim, anim_speed, 0) entity.moving = true end --move backward - elseif ctrl.down and not fixed then - entity.object:setyaw(yaw+math.pi+math.pi/2+extra_yaw) + elseif ctrl.down and not fixed and not fly then if not is_watercraft then - entity.object:setvelocity(vec_backward) + if brakes and absolute_speed > 5 then + local velo2 = nil + if velo2 == nil then + velo2 = velo + end + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} + entity.object:setvelocity({x=velo2.x*(0.95), y=velo.y, z=velo2.z*(0.95)}) + minetest.add_particlespawner( + 4, --amount + 0.5, --time + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --maxpos + {x=0, y=0.1, z=0}, --minvel + {x=-velo2.x, y=0.4, z=-velo2.z}, --maxvel + {x=-0,y=-0,z=-0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 10, --minsize + 15, --maxsize + false, --collisiondetection + braking_effect --texture + ) + if timer >= 0.5 then + timer = timer-timer/10 + end + else + entity.object:setvelocity({x=-dir.x*(speed/4)*accell,y=velo.y-0.5,z=-dir.z*(speed/4)*accell}) + end else - entity.object:setvelocity(boat_backward) + if brakes and absolute_speed > 5 then + local velo2 = nil + if velo2 == nil then + velo2 = velo + end + local effect_pos = {x=pos.x-dir.x*2, y=pos.y, z=pos.z-dir.z*2} + entity.object:setvelocity({x=velo2.x*(0.95), y=velo.y, z=velo2.z*(0.95)}) + minetest.add_particlespawner( + 4, --amount + 0.5, --time + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --minpos + {x=effect_pos.x, y=effect_pos.y, z=effect_pos.z}, --maxpos + {x=0, y=0.1, z=0}, --minvel + {x=-velo2.x, y=0.4, z=-velo2.z}, --maxvel + {x=-0,y=-0,z=-0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 10, --minsize + 15, --maxsize + false, --collisiondetection + braking_effect --texture + ) + if timer >= 0.5 then + timer = timer-timer/10 + end + else + entity.object:setvelocity({x=-dir.x*(speed/4)*accell,y=0,z=-dir.z*(speed/4)*accell}) + end end --animation if moving_anim ~= nil and not entity.moving and not hovering then - entity.object:set_animation(moving_anim, 20, 0) + entity.object:set_animation(moving_anim, anim_speed, 0) entity.moving = true end --stop elseif not ctrl.down or ctrl.up then - entity.object:setyaw(yaw+math.pi+math.pi/2+extra_yaw) - entity.object:setvelocity(vec_stop) + entity.object:setvelocity({x=velo.x*decell,y=velo.y-gravity,z=velo.z*decell}) --animation if moving_anim ~= nil and entity.moving and not hovering then - entity.object:set_animation(stand_anim, 20, 0) + entity.object:set_animation(stand_anim, anim_speed, 0) entity.moving = false end end @@ -301,14 +516,15 @@ function object_drive(entity, dtime, def) obj:setvelocity(vec) local object = obj:get_luaentity() object.launcher = entity.driver + object.vehicle = entity.object --lib_mount animation if shoot_anim ~= nil and entity.object:get_animation().range ~= shoot_anim then - entity.object:set_animation(shoot_anim, 20, 0) + entity.object:set_animation(shoot_anim, anim_speed, 0) end minetest.after(reload_time, function() entity.loaded = true if stand_anim ~= nil and shoot_anim ~= nil then - entity.object:set_animation(stand_anim, 20, 0) + entity.object:set_animation(stand_anim, anim_speed, 0) end end) end @@ -319,19 +535,20 @@ function object_drive(entity, dtime, def) local remov = inv:remove_item("main", arrow2.."_item") entity.loaded2 = false local obj = minetest.env:add_entity({x=pos.x+0+dir.x*2,y=pos.y+shoot_y2+dir.y,z=pos.z+0+dir.z*2}, arrow2) - local vec = {x=dir.x*14,y=dir.y*14+shoot_angle,z=dir.z*14} + local vec = {x=dir.x*20,y=dir.y*20+shoot_angle,z=dir.z*20} obj:setyaw(yaw+math.pi/2+extra_yaw) obj:setvelocity(vec) local object = obj:get_luaentity() object.launcher = entity.driver + object.vehicle = entity.object --lib_mount animation if shoot_anim2 ~= nil and entity.object:get_animation().range ~= shoot_anim2 then - entity.object:set_animation(shoot_anim2, 20, 0) + entity.object:set_animation(shoot_anim2, anim_speed, 0) end minetest.after(reload_time2, function() entity.loaded2 = true if stand_anim ~= nil and shoot_anim2 ~= nil then - entity.object:set_animation(stand_anim, 20, 0) + entity.object:set_animation(stand_anim, anim_speed, 0) end end) end @@ -342,11 +559,11 @@ function object_drive(entity, dtime, def) local vec_hover = {x=velo.x+0,y=hover_speed,z=velo.z+0} entity.object:setvelocity(vec_hover) else - entity.object:setvelocity(vec_forward_hover) + entity.object:setvelocity({x=dir.x*(speed*0.2)*math.log(timer+0.5)+4*dir.x,y=hover_speed,z=dir.z*(speed*0.2)*math.log(timer+0.5)+4*dir.z}) end hovering = true if jump_anim ~= nil and entity.object:get_animation().range ~= jump_anim and hovering then - entity.object:set_animation(jump_anim, 20, 0) + entity.object:set_animation(jump_anim, anim_speed, 0) end minetest.after(5, function() entity.jumpcharge = true @@ -362,11 +579,11 @@ function object_drive(entity, dtime, def) local vec_jump = {x=velo.x+0,y=jump_speed,z=velo.z+0} entity.object:setvelocity(vec_jump) else - entity.object:setvelocity(vec_forward_hover) + entity.object:setvelocity({x=dir.x*speed/4*math.atan(0.5*timer-2)+8*dir.x,y=jump_speed,z=dir.z*speed/4*math.atan(0.5*timer-2)+8*dir.z}) end hovering = true if jump_anim ~= nil and entity.object:get_animation().range ~= jump_anim and hovering then - entity.object:set_animation(jump_anim, 20, 0) + entity.object:set_animation(jump_anim, anim_speed, 0) end minetest.after(0.5, function() entity.jumpcharge = true @@ -380,7 +597,7 @@ function object_drive(entity, dtime, def) --play sound if entity.sound_ready then minetest.sound_play(driving_sound, - {gain = 4, max_hear_distance = 3, loop = false}) + {to_player=entity.driver:get_player_name(), gain = 4, max_hear_distance = 3, loop = false}) entity.sound_ready = false minetest.after(sound_duration, function() entity.sound_ready = true @@ -391,7 +608,7 @@ end --simplified in an attempt to reduce lag -function object_drive_simple(entity, dtime, speed, decell) +function vehicles.object_drive_simple(entity, dtime, speed, decell) local ctrl = entity.driver:get_player_control() local velo = entity.object:getvelocity() local dir = entity.driver:get_look_dir(); @@ -409,7 +626,7 @@ function object_drive_simple(entity, dtime, speed, decell) end end -function object_glide(entity, dtime, speed, decell, gravity, moving_anim, stand_anim) +function vehicles.object_glide(entity, dtime, speed, decell, gravity, moving_anim, stand_anim) local ctrl = entity.driver:get_player_control() local dir = entity.driver:get_look_dir(); local velo = entity.object:getvelocity(); @@ -445,9 +662,7 @@ function object_glide(entity, dtime, speed, decell, gravity, moving_anim, stand_ end end ---spawner - -function register_vehicle_spawner(vehicle, desc, texture, is_boat) +function vehicles.register_spawner(vehicle, desc, texture, is_boat) minetest.register_craftitem(vehicle.."_spawner", { description = desc, inventory_image = texture, @@ -460,23 +675,25 @@ minetest.register_craftitem(vehicle.."_spawner", { local obj = minetest.env:add_entity(pointed_thing.above, vehicle) local object = obj:get_luaentity() object.owner = placer + if not minetest.setting_getbool("creative_mode") then item:take_item() return item + end elseif pointed_thing.type == "node" and minetest.get_item_group(pointed_thing.name, "water") then local obj = minetest.env:add_entity(pointed_thing.under, vehicle) obj:setvelocity({x=0, y=-1, z=0}) local object = obj:get_luaentity() object.owner = placer + if not minetest.setting_getbool("creative_mode") then item:take_item() return item end + end end, }) end ---explodinate - -function explode(ent, radius) +function vehicles.explodinate(ent, radius) local pos = ent.object:getpos() minetest.add_particlespawner({ amount = 90, @@ -512,4 +729,88 @@ function explode(ent, radius) texture = "vehicles_explosion.png" }) end) -end \ No newline at end of file +end + +function vehicles.on_punch(self, puncher) + local hp = self.object:get_hp() + if hp == 0 then + if self.driver then + vehicles.object_detach(self, self.driver, {x=1, y=0, z=1}) + end + vehicles.explodinate(self, 5) + end + if not self.driver then + return end + local creative_mode = creative and creative.is_enabled_for and creative.is_enabled_for(self.driver:get_player_name()) + if self.driver == puncher and (hp == self.hp_max-5 or hp == self.hp_max or creative_mode) then + local name = self.object:get_luaentity().name + local pos = self.object:getpos() + minetest.env:add_item(pos, name.."_spawner") + vehicles.object_detach(self, self.driver, {x=1, y=0, z=1}) + self.object:remove() + end +end + +function vehicles.object_no_drive(entity, dtime, def) + --definition + local decell = def.decell or 0 + local gravity = def.gravity or 1 + local is_watercraft = def.is_watercraft or false + local stand_anim = def.stand_anim + + --variables + local velo = entity.object:getvelocity() + local pos = entity.object:getpos() + local node = minetest.get_node(pos).name + + --timer dependant variables + local vec_stop = {x=velo.x*decell,y=velo.y-gravity,z=velo.z*decell} + + if node == "default:lava_source" or node == "default:lava_flowing" then + if entity.driver then + vehicles.object_detach(entity, entity.driver, {x=1, y=0, z=1}) + end + vehicles.explodinate(entity, 5) + entity.object:remove() + return + end + --respond to controls + --check for water + local function is_water(node) + return node == "default:river_water_source" or node == "default:water_source" or node == "default:river_water_flowing" or node == "default:water_flowing" + end + entity.on_water = is_water(node) or is_water({x=pos.x, y=pos.y-0.6, z=pos.z}) + entity.in_water = is_water(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name) or is_water(minetest.get_node({x=pos.x, y=pos.y+2, z=pos.z}).name) + + --apply water effects + if is_watercraft and entity.in_water then + entity.object:setvelocity({x=velo.x*0.9, y=velo.y+1, z=velo.z*0.9}) + elseif is_watercraft and entity.on_water == false then + entity.object:setvelocity({x=velo.x*decell,y=velo.y-1,z=velo.z*decell}) + elseif entity.on_water and not is_watercraft then + entity.object:setvelocity({x=velo.x*0.9, y=-1, z=velo.z*0.9}) + else + --stop + entity.object:setvelocity(vec_stop) + --animation + if moving_anim ~= nil and entity.moving and not hovering then + entity.object:set_animation(stand_anim, 20, 0) + entity.moving = false + end + end +end + +function vehicles.on_step(self, dtime, def, have, no) + if self.driver then + vehicles.object_drive(self, dtime, def) + if have ~= nil then + have() + end + else + vehicles.object_no_drive(self, dtime, def) + if no ~= nil then + no() + end + end + return false +end diff --git a/mods/vehicles_loz/init.lua b/mods/vehicles_loz/init.lua index 385b091..e82302f 100644 --- a/mods/vehicles_loz/init.lua +++ b/mods/vehicles_loz/init.lua @@ -1,3 +1,5 @@ +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") --load api dofile(minetest.get_modpath("vehicles").."/api.lua") @@ -16,44 +18,73 @@ minetest.register_entity("vehicles:horse", { collisionbox = {-0.5, 0, -0.5, 0.5, 1.3, 0.5}, on_rightclick = function(self, clicker) if self.driver and clicker == self.driver then - object_detach(self, clicker, {x=1, y=0, z=1}) + vehicles.object_detach(self, clicker, {x=1, y=0, z=1}) elseif not self.driver then - object_attach(self, clicker, {x=0, y=8, z=0}, true, {x=0, y=4, z=0}) - end - end, - on_punch = function(self, puncher) - --if not self.driver then - --local name = self.object:get_luaentity().name - --local pos = self.object:getpos() - --minetest.env:add_item(pos, name.."_spawner") - --self.object:remove() - --end - if self.object:get_hp() == 0 then - if self.driver then - object_detach(self, self.driver, {x=1, y=0, z=1}) - end - explode(self, 5) + vehicles.object_attach(self, clicker, {x=0, y=8, z=0}, true, {x=0, y=4, z=0}) end end, + on_punch = vehicles.on_punch, on_step = function(self, dtime) - if self.driver then - object_drive(self, dtime, { + return vehicles.on_step(self, dtime, { speed = 13, decell = 0.5, moving_anim = {x=75, y=100}, stand_anim = {x=25, y=25}, jump_type = "jump", jump_anim = {x=25, y=50}, - extra_yaw = 1.57 + extra_yaw = 1.57, + handling = {initial=2, braking=3} }) - return false - end - return true end, }) --register_vehicle_spawner("vehicles:horse", "Horse", "vehicles_horse_inv.png") +minetest.register_entity("vehicles:ship", { + visual = "mesh", + mesh = "ship.b3d", + textures = {"vehicles_ship.png"}, + velocity = 15, + acceleration = -5, + stepheight = 0, + hp_max = 200, + physical = true, + collisionbox = {-1, 0.4, -1, 1.3, 1, 1}, + on_rightclick = function(self, clicker) + if self.driver and clicker == self.driver then + vehicles.object_detach(self, clicker, {x=1, y=0, z=1}) + elseif not self.driver then + vehicles.object_attach(self, clicker, {x=0, y=20, z=4}, true, {x=0, y=5, z=4}) + end + end, + on_punch = vehicles.on_punch, + on_step = function(self, dtime) + return vehicles.on_step(self, dtime, { + speed = 12, + decell = 0.85, + is_watercraft = true, + gravity = 0, + boost = true, + boost_duration = 10, + boost_effect = "vehicles_splash.png", + brakes = true, + braking_effect = "vehicles_splash.png", + handling = {initial=1, braking=1.8} + }) + end, +}) + +vehicles.register_spawner("vehicles:ship", S("Sail Boat"), "vehicles_ship_inv.png", true) + +minetest.register_craft( { + output = "vehicles:ship_spawner 1", + recipe = { + { "wool:white", "wool:white", "" }, + { "default:acacia_wood", "hyrule_mapgen:crystal_1", "default:acacia_wood" }, + { "default:acacia_wood", "default:acacia_wood", "default:acacia_wood" } + } +}) + minetest.register_entity("vehicles:spinner", { visual = "mesh", mesh = "spinner.b3d", @@ -66,39 +97,25 @@ minetest.register_entity("vehicles:spinner", { collisionbox = {-0.4, -0.2, -0.4, 0.4, 0.3, 0.4}, on_rightclick = function(self, clicker) if self.driver and clicker == self.driver then - object_detach(self, clicker, {x=1, y=0, z=1}) + vehicles.object_detach(self, clicker, {x=1, y=0, z=1}) elseif not self.driver then - object_attach(self, clicker, {x=0, y=10, z=0}, true, {x=0, y=2, z=0}) - end - end, - on_punch = function(self, puncher) - if not self.driver then - local name = self.object:get_luaentity().name - local pos = self.object:getpos() - minetest.env:add_item(pos, name.."_spawner") - self.object:remove() - end - if self.object:get_hp() == 0 then - if self.driver then - object_detach(self, self.driver, {x=1, y=0, z=1}) - end - explode(self, 5) + vehicles.object_attach(self, clicker, {x=0, y=10, z=0}, true, {x=0, y=2, z=0}) end end, + on_punch = vehicles.on_punch, on_step = function(self, dtime) - if self.driver then - object_drive(self, dtime, { - speed = 12, + return vehicles.on_step(self, dtime, { + speed = 11, decell = 0.6, moving_anim = {x=3, y=18}, stand_anim = {x=1, y=1}, jump_type = "jump", - jump_anim = {x=3, y=18} + jump_anim = {x=3, y=18}, + brakes = false, + braking_effect = "hyrule_mapgen_trans.png", + handling = {initial=3, braking=3} }) - return false - end - return true end, }) -register_vehicle_spawner("vehicles:spinner", "Spinner", "vehicles_spinner_inv.png") \ No newline at end of file +vehicles.register_spawner("vehicles:spinner", "Spinner", "vehicles_spinner_inv.png") \ No newline at end of file diff --git a/mods/vehicles_loz/intllib.lua b/mods/vehicles_loz/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/mods/vehicles_loz/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods/vehicles_loz/models/ship.b3d b/mods/vehicles_loz/models/ship.b3d new file mode 100644 index 0000000000000000000000000000000000000000..259e12531ca7dc349152c837ca57d6aaa13192a3 GIT binary patch literal 27219 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 VG;#r@d-5IuCPo&96<4w0{|4t7QJw$* literal 0 HcmV?d00001 diff --git a/mods/vehicles_loz/textures/vehicles_ship_inv.png b/mods/vehicles_loz/textures/vehicles_ship_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..17cce370897be411989d4b57711097e15ed22d8b GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GG!XV7ZFl&wkQ1GIs zi(`nz>Er~7Ee}pCeEk1yP|1JcpyMsx#>~vjhi|vfe~`0?w;^*!*;lpZ4L0(Jx2`t# zEN9eg;GF*U#(|5KJ^wX}8cQ$LA6xuc;=gh`cO3IQyFV?DHYvCF{ontq*sgike$~Te zac%!CoaNcJ#6AuDv7S}(U-H!s?gi2fzQ)R%Uh)9J>)T=mAdr!{da*_eYfeHaQ}c`J z7CRBi!Jlxkh~7>DHoc)-?L}2{;lnF c{{ShKoB)s8HtXhaNz?WDufFkAQy1&bbEy;hwv5L z`2e{92cW>BvN(VX8t5WHN2(W%Cj+cQP!wgKgmz|kK5yPGi^X5U?r=R#Isc!SRh91+ zAI+Ps@IAGqz@g;b;d=VjM<@|6A*AL|!z2f`qRxS(d^steNk4Zg5klJIxos3UU2~xXH3Dx(IOd!1tG~BM1PG9pcq|>tPbW&wH zsj{?eJA7jVcuZdo_Gx{bIW*vSc|X&sxU@fkv}`-EuIbcMn@` requires `weather_manager` privilege. - -Dependencies ------------------------ -Thunder weather requres [lightning](https://github.com/minetest-mods/lightning) mod. - -Configuration properties ------------------------ -Weather mod for indoor check depends on sunlight propogation check. Some nodes (e.g. glass block) propogates sunlight and thus weather particles will go through it. To change that set `weather_allow_override_nodes=true` in `minetest.conf` file. Be aware that just few nodes will be override and these blocks needs to be re-builded to take effect. Maybe in future other 'cheap' way to check indoor will be available. - -Weather mod mostly relies on particles generation however for some small things ABM may be used. Users which do not want it can disable ABM with property `weather_allow_abm=false`. - -License of source code: ------------------------ -LGPL 2.1+ - -Authors of media files: ------------------------ - -TeddyDesTodes: -Snowflakes licensed under CC-BY-SA 3.0 by from weather branch at https://github.com/TeddyDesTodes/minetest/tree/weather - - * `weather_pack_snow_snowflake1.png` - CC-BY-SA 3.0 - * `weather_pack_snow_snowflake2.png` - CC-BY-SA 3.0 - -xeranas: - - * `weather_pack_rain_raindrop_1.png` - CC-0 - * `weather_pack_rain_raindrop_2.png` - CC-0 - * `weather_pack_rain_raindrop_3.png` - CC-0 - -inchadney (http://freesound.org/people/inchadney/): - - * `weather_rain.ogg` - CC-BY-SA 3.0 (cut from http://freesound.org/people/inchadney/sounds/58835/) - diff --git a/mods/weather_pack/depends.txt b/mods/weather_pack/depends.txt deleted file mode 100644 index b129625..0000000 --- a/mods/weather_pack/depends.txt +++ /dev/null @@ -1 +0,0 @@ -lightning? \ No newline at end of file diff --git a/mods/weather_pack/description.txt b/mods/weather_pack/description.txt deleted file mode 100644 index 6efa41e..0000000 --- a/mods/weather_pack/description.txt +++ /dev/null @@ -1 +0,0 @@ -Set of weathers for minetest. \ No newline at end of file diff --git a/mods/weather_pack/dust.lua b/mods/weather_pack/dust.lua deleted file mode 100644 index 21d1edb..0000000 --- a/mods/weather_pack/dust.lua +++ /dev/null @@ -1,85 +0,0 @@ -dust = {} - -dust.particles_count = 25 -dust.init_done = false - --- calculates coordinates and draw particles for dust weather -dust.add_rain_particles = function(player, dtime) - dust.last_rp_count = 0 - for i=dust.particles_count, 1,-1 do - local random_pos_x, random_pos_y, random_pos_z = weather.get_random_pos_by_player_look_dir(player) - random_pos_y = math.random() + math.random(player:getpos().y - 1, player:getpos().y + 7) - if minetest.get_node_light({x=random_pos_x, y=random_pos_y, z=random_pos_z}, 0.5) == nil then - return - end - if minetest.get_node_light({x=random_pos_x, y=random_pos_y, z=random_pos_z}, 0.5) >= 10 then - dust.last_rp_count = dust.last_rp_count + 1 - minetest.add_particle({ - pos = {x=random_pos_x, y=random_pos_y, z=random_pos_z}, - velocity = {x = math.random(-0.2,0.2), y = math.random(0.2,0.3), z = math.random(-0.2,0.2)}, - acceleration = {x = math.random(-0.2,0.2), y=0.2, z = math.random(-0.2,0.2)}, - expirationtime = 0.6, - size = math.random(0.5, 1), - collisiondetection = true, - vertical = true, - texture = dust.get_texture(), - playername = player:get_player_name() - }) - end - end -end - --- Simple random texture getter -dust.get_texture = function() - local texture_name - local random_number = math.random() - if random_number > 0.5 then - texture_name = "dust_dust1.png" - else - texture_name = "dust_dust2.png" - end - return texture_name; -end - -dust.set_sky_box = function() - skycolor.add_layer( - "weather-pack-dust-sky", - {{r=137, g=226, b=164}, - {r=137, g=226, b=164}, - {r=0, g=0, b=0}} - ) - skycolor.active = true -end - -dust.clear = function() - skycolor.remove_layer("weather-pack-dust-sky") - dust.init_done = false -end - -minetest.register_globalstep(function(dtime) - if weather.state ~= "dust" then - return false - end - - if dust.init_done == false then - dust.set_sky_box() - dust.init_done = true - end - - for _, player in ipairs(minetest.get_connected_players()) do - if (weather.is_underwater(player)) then - return false - end - dust.add_rain_particles(player, dtime) - end -end) - - - --- register dust weather -if weather.reg_weathers.dust == nil then - weather.reg_weathers.dust = { - chance = 10, - clear = dust.clear - } -end diff --git a/mods/weather_pack/init.lua b/mods/weather_pack/init.lua deleted file mode 100644 index 097773b..0000000 --- a/mods/weather_pack/init.lua +++ /dev/null @@ -1,14 +0,0 @@ -local modpath = minetest.get_modpath("weather_pack"); -dofile(modpath.."/weather_core.lua") -dofile(modpath.."/snow.lua") -dofile(modpath.."/rain.lua") -dofile(modpath.."/dust.lua") - -if minetest.get_modpath("lightning") ~= nil then - dofile(modpath.."/thunder.lua") -end - --- If not located then embeded skycolor mod version will be loaded. -if minetest.get_modpath("skycolor") == nil then - dofile(modpath.."/skycolor.lua") -end diff --git a/mods/weather_pack/mod.conf b/mods/weather_pack/mod.conf deleted file mode 100644 index 7baa047..0000000 --- a/mods/weather_pack/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = weather_pack diff --git a/mods/weather_pack/rain.lua b/mods/weather_pack/rain.lua deleted file mode 100644 index cd2bb78..0000000 --- a/mods/weather_pack/rain.lua +++ /dev/null @@ -1,186 +0,0 @@ -rain = { - -- max rain particles created at time - particles_count = 35, - - -- flag to turn on/off extinguish fire for rain - extinguish_fire = true, - - -- flag useful when mixing weathers - raining = false, - - -- keeping last timeofday value (rounded). - -- Defaulted to non-existing value for initial comparing. - sky_last_update = -1, - - init_done = false, -} - -rain.sound_handler = function(player) - return minetest.sound_play("weather_rain", { - object = player, - max_hear_distance = 2, - loop = true, - }) -end - --- set skybox based on time (uses skycolor api) -rain.set_sky_box = function() - skycolor.add_layer( - "weather-pack-rain-sky", - {{r=0, g=0, b=0}, - {r=85, g=86, b=98}, - {r=152, g=150, b=159}, - {r=85, g=86, b=98}, - {r=0, g=0, b=0}}) - skycolor.active = true -end - --- creating manually parctiles instead of particles spawner because of easier to control --- spawn position. -rain.add_rain_particles = function(player) - - rain.last_rp_count = 0 - for i=rain.particles_count, 1,-1 do - local random_pos_x, random_pos_y, random_pos_z = weather.get_random_pos_by_player_look_dir(player) - if minetest.get_node_light({x=random_pos_x, y=random_pos_y, z=random_pos_z}, 0.5) == 15 then - rain.last_rp_count = rain.last_rp_count + 1 - minetest.add_particle({ - pos = {x=random_pos_x, y=random_pos_y, z=random_pos_z}, - velocity = {x=0, y=-10, z=0}, - acceleration = {x=0, y=-30, z=0}, - expirationtime = 0.2, - size = math.random(0.5, 3), - collisiondetection = true, - collision_removal = true, - vertical = true, - texture = rain.get_texture(), - playername = player:get_player_name() - }) - end - end -end - --- Simple random texture getter -rain.get_texture = function() - local texture_name - local random_number = math.random() - if random_number > 0.33 then - texture_name = "weather_pack_rain_raindrop_1.png" - elseif random_number > 0.66 then - texture_name = "weather_pack_rain_raindrop_2.png" - else - texture_name = "weather_pack_rain_raindrop_3.png" - end - return texture_name; -end - --- register player for rain weather. --- basically needs for origin sky reference and rain sound controls. -rain.add_player = function(player) - if weather.players[player:get_player_name()] == nil then - local player_meta = {} - player_meta.origin_sky = {player:get_sky()} - weather.players[player:get_player_name()] = player_meta - end -end - --- remove player from player list effected by rain. --- be sure to remove sound before removing player otherwise soundhandler reference will be lost. -rain.remove_player = function(player) - local player_meta = weather.players[player:get_player_name()] - if player_meta ~= nil and player_meta.origin_sky ~= nil then - player:set_sky(player_meta.origin_sky[1], player_meta.origin_sky[2], player_meta.origin_sky[3]) - weather.players[player:get_player_name()] = nil - end -end - --- adds and removes rain sound depending how much rain particles around player currently exist. --- have few seconds delay before each check to avoid on/off sound too often --- when player stay on 'edge' where sound should play and stop depending from random raindrop appearance. -rain.update_sound = function(player) - local player_meta = weather.players[player:get_player_name()] - if player_meta ~= nil then - if player_meta.sound_updated ~= nil and player_meta.sound_updated + 5 > os.time() then - return false - end - - if player_meta.sound_handler ~= nil then - if rain.last_rp_count == 0 then - minetest.sound_stop(player_meta.sound_handler) - player_meta.sound_handler = nil - end - elseif rain.last_rp_count > 0 then - player_meta.sound_handler = rain.sound_handler(player) - end - - player_meta.sound_updated = os.time() - end -end - --- rain sound removed from player. -rain.remove_sound = function(player) - local player_meta = weather.players[player:get_player_name()] - if player_meta ~= nil and player_meta.sound_handler ~= nil then - minetest.sound_stop(player_meta.sound_handler) - player_meta.sound_handler = nil - end -end - --- callback function for removing rain -rain.clear = function() - rain.raining = false - rain.sky_last_update = -1 - rain.init_done = false - skycolor.remove_layer("weather-pack-rain-sky") - for _, player in ipairs(minetest.get_connected_players()) do - rain.remove_sound(player) - rain.remove_player(player) - end -end - -minetest.register_globalstep(function(dtime) - if weather.state ~= "rain" then - return false - end - - rain.make_weather() -end) - -rain.make_weather = function() - if rain.init_done == false then - rain.raining = true - rain.set_sky_box() - end - - for _, player in ipairs(minetest.get_connected_players()) do - if (weather.is_underwater(player)) then - return false - end - rain.add_player(player) - rain.add_rain_particles(player) - rain.update_sound(player) - end -end - -if weather.reg_weathers.rain == nil then - weather.reg_weathers.rain = { - chance = 15, - clear = rain.clear - } -end - --- ABM for extinguish fire -if weather.allow_abm then - minetest.register_abm({ - nodenames = {"fire:basic_flame"}, - interval = 4.0, - chance = 2, - action = function(pos, node, active_object_count, active_object_count_wider) - if rain.raining and rain.extinguish_fire then - if weather.is_outdoor(pos) then - minetest.remove_node(pos) - end - end - end - }) -end \ No newline at end of file diff --git a/mods/weather_pack/screenshot.png b/mods/weather_pack/screenshot.png deleted file mode 100644 index 1ee3ea0597008b48c09fb306a00cf0e7ecf2776e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30710 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

^ul$R>3DDykb8lXf}k-Si2T? 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 diff --git a/mods/weather_pack/skycolor.lua b/mods/weather_pack/skycolor.lua deleted file mode 100644 index b5005ba..0000000 --- a/mods/weather_pack/skycolor.lua +++ /dev/null @@ -1,212 +0,0 @@ -skycolor = { - -- Should be activated before do any effect. - active = false, - - -- To skip update interval - force_update = true, - - -- Update interval. - update_interval = 15, - - -- Main sky colors: starts from midnight to midnight. - -- Please do not set directly. Use add_layer instead. - colors = {}, - - -- min value which will be used in color gradient, usualy its first user given color in 'pure' color. - min_val = 0, - - -- number of colors while constructing gradient of user given colors - max_val = 1000, - - -- Enables smooth transition between existing sky color and target. - smooth_transitions = true, - - -- Transition between current sky color and new user given. - transition_in_progress = false, - - -- Transition colors are generated automaticly during initialization. - transition_colors = {}, - - -- Time where transition between current color and user given will be done - transition_time = 15, - - -- Tracks how much time passed during transition - transition_timer = 0, - - -- Table for tracking layer order - layer_names = {}, - - -- To layer to colors table - add_layer = function(layer_name, layer_color, instant_update) - skycolor.colors[layer_name] = layer_color - table.insert(skycolor.layer_names, layer_name) - if (instant_update ~= true) then - skycolor.init_transition() - end - skycolor.force_update = true - end, - - -- Retrieve layer from colors table - retrieve_layer = function() - local last_layer = skycolor.layer_names[#skycolor.layer_names] - return skycolor.colors[last_layer] - end, - - -- Remove layer from colors table - remove_layer = function(layer_name) - for k, name in ipairs(skycolor.layer_names) do - if name == layer_name then - table.remove(skycolor.layer_names, k) - skycolor.force_update = true - return - end - end - end, - - -- Update sky color. If players not specified update sky for all players. - update_sky_color = function(players) - local color = skycolor.current_sky_layer_color() - if (color == nil) then - skycolor.active = false - skycolor.set_default_sky() - return - end - - players = skycolor.utils.get_players(players) - for _, player in ipairs(players) do - player:set_sky(color, "plain", nil) - end - end, - - -- Returns current layer color in {r, g, b} format - current_sky_layer_color = function() - if #skycolor.layer_names == 0 then - return nil - end - - -- min timeofday value 0; max timeofday value 1. So sky color gradient range will be between 0 and 1 * skycolor.max_value. - local timeofday = minetest.get_timeofday() - local rounded_time = math.floor(timeofday * skycolor.max_val) - local color = skycolor.utils.convert_to_rgb(skycolor.min_val, skycolor.max_val, rounded_time, skycolor.retrieve_layer()) - return color - end, - - -- Initialy used only on - update_transition_sky_color = function() - if #skycolor.layer_names == 0 then - skycolor.active = false - skycolor.set_default_sky() - return - end - - local multiplier = 100 - local rounded_time = math.floor(skycolor.transition_timer * multiplier) - if rounded_time >= skycolor.transition_time * multiplier then - skycolor.stop_transition() - return - end - - local color = skycolor.utils.convert_to_rgb(0, skycolor.transition_time * multiplier, rounded_time, skycolor.transition_colors) - - local players = skycolor.utils.get_players(nil) - for _, player in ipairs(players) do - player:set_sky(color, "plain", nil) - end - end, - - -- Reset sky color to game default. If players not specified update sky for all players. - -- Could be sometimes useful but not recomended to use in general case as there may be other color layers - -- which needs to preserve. - set_default_sky = function(players) - local players = skycolor.utils.get_players(players) - for _, player in ipairs(players) do - player:set_sky(nil, "regular", nil) - end - end, - - init_transition = function() - -- sadly default sky returns unpredictible colors so transition mode becomes usable only for user defined color layers - -- Here '2' means that one color layer existed before new added and transition is posible. - if #skycolor.layer_names < 2 then - return - end - - local transition_start_color = skycolor.utils.get_current_bg_color() - if (transition_start_color == nil) then - return - end - local transition_end_color = skycolor.current_sky_layer_color() - skycolor.transition_colors = {transition_start_color, transition_end_color} - skycolor.transition_in_progress = true - end, - - stop_transition = function() - skycolor.transition_in_progress = false - skycolor.transition_colors = {} - skycolor.transition_timer = 0 - end, - - utils = { - convert_to_rgb = function(minval, maxval, current_val, colors) - local max_index = #colors - 1 - local val = (current_val-minval) / (maxval-minval) * max_index + 1.0 - local index1 = math.floor(val) - local index2 = math.min(math.floor(val)+1, max_index + 1) - local f = val - index1 - local c1 = colors[index1] - local c2 = colors[index2] - return {r=math.floor(c1.r + f*(c2.r - c1.r)), g=math.floor(c1.g + f*(c2.g-c1.g)), b=math.floor(c1.b + f*(c2.b - c1.b))} - end, - - -- Simply getter. Ether returns user given players list or get all connected players if none provided - get_players = function(players) - if players == nil or #players == 0 then - players = minetest.get_connected_players() - end - return players - end, - - -- Returns first player sky color. I assume that all players are in same color layout. - get_current_bg_color = function() - local players = skycolor.utils.get_players(nil) - for _, player in ipairs(players) do - return player:get_sky() - end - return nil - end - }, - -} - -local timer = 0 -minetest.register_globalstep(function(dtime) - if skycolor.active ~= true or #minetest.get_connected_players() == 0 then - return - end - - if skycolor.smooth_transitions and skycolor.transition_in_progress then - skycolor.transition_timer = skycolor.transition_timer + dtime - skycolor.update_transition_sky_color() - return - end - - if skycolor.force_update then - skycolor.update_sky_color() - skycolor.force_update = false - return - end - - -- regular updates based on iterval - timer = timer + dtime; - if timer >= skycolor.update_interval then - skycolor.update_sky_color() - timer = 0 - end - -end) - -minetest.register_on_joinplayer(function(player) - if (skycolor.active) then - skycolor.update_sky_color({player}) - end -end) \ No newline at end of file diff --git a/mods/weather_pack/snow.lua b/mods/weather_pack/snow.lua deleted file mode 100644 index 573047d..0000000 --- a/mods/weather_pack/snow.lua +++ /dev/null @@ -1,90 +0,0 @@ -snow = {} - -snow.particles_count = 25 -snow.init_done = false - --- calculates coordinates and draw particles for snow weather -snow.add_rain_particles = function(player) - rain.last_rp_count = 0 - for i=snow.particles_count, 1,-1 do - local random_pos_x, random_pos_y, random_pos_z = weather.get_random_pos_by_player_look_dir(player) - random_pos_y = math.random() + math.random(player:getpos().y - 1, player:getpos().y + 7) - if minetest.get_node_light({x=random_pos_x, y=random_pos_y, z=random_pos_z}, 0.5) == 15 and not minetest.find_node_near({x=random_pos_x, y=random_pos_y, z=random_pos_z}, 5, {"default:desert_sand", "default:sand"}) then - rain.last_rp_count = rain.last_rp_count + 1 - minetest.add_particle({ - pos = {x=random_pos_x, y=random_pos_y, z=random_pos_z}, - velocity = {x = math.random(-1,-0.5), y = math.random(-2,-1), z = math.random(-1,-0.5)}, - acceleration = {x = math.random(-1,-0.5), y=-0.5, z = math.random(-1,-0.5)}, - expirationtime = 2.0, - size = math.random(0.5, 2), - collisiondetection = true, - collision_removal = true, - vertical = true, - texture = snow.get_texture(), - playername = player:get_player_name() - }) - end - end -end - -snow.set_sky_box = function() - skycolor.add_layer( - "weather-pack-snow-sky", - {{r=200, g=200, b=255}, - {r=200, g=200, b=255}, - {r=0, g=0, b=0}} - ) - skycolor.active = true -end - -snow.clear = function() - skycolor.remove_layer("weather-pack-snow-sky") - snow.init_done = false -end - --- Simple random texture getter -snow.get_texture = function() - local texture_name - local random_number = math.random() - if random_number > 0.5 then - texture_name = "weather_pack_snow_snowflake1.png" - else - texture_name = "weather_pack_snow_snowflake2.png" - end - return texture_name; -end - -local timer = 0 -minetest.register_globalstep(function(dtime) - if weather.state ~= "snow" then - return false - end - - timer = timer + dtime; - if timer >= 0.5 then - timer = 0 - else - return - end - - if snow.init_done == false then - snow.set_sky_box() - snow.init_done = true - end - - for _, player in ipairs(minetest.get_connected_players()) do - if (weather.is_underwater(player)) then - return false - end - snow.add_rain_particles(player) - end -end) - --- register snow weather -if weather.reg_weathers.snow == nil then - weather.reg_weathers.snow = { - chance = 10, - clear = snow.clear - } -end - diff --git a/mods/weather_pack/sounds/weather_rain.ogg b/mods/weather_pack/sounds/weather_rain.ogg deleted file mode 100644 index ba2ea272122a149a4d0096e773d23fc771f8e808..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202624 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

5cb_;#(`j_0nwUqtVYNGjy0GUBjFDNH4< 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 diff --git a/mods/weather_pack/textures/weather_pack_rain_raindrop_1.png b/mods/weather_pack/textures/weather_pack_rain_raindrop_1.png deleted file mode 100644 index 8c3edf5986257c79fe2b0edf21fda329da9a524f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg>$j+1|*LJgN=TZhb=O_p177aXo-{O)VKys~bZ>%@O|{a&w< lGSr>6d)K`O9npGw7;V`_dLM1>(E?h|;OXk;vd$@?2>=&RL#+S+ diff --git a/mods/weather_pack/textures/weather_pack_rain_raindrop_3.png b/mods/weather_pack/textures/weather_pack_rain_raindrop_3.png deleted file mode 100644 index 0ca202c4bcc1d631df5289476193dbd18c930eed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg#u#w1V{lh@p89ZJ6T-G@yGywpzJwqD+ diff --git a/mods/weather_pack/textures/weather_pack_snow_snowflake1.png b/mods/weather_pack/textures/weather_pack_snow_snowflake1.png deleted file mode 100644 index b2efdd7414e967cd63f51839074ffc0442b8f040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=&H|6fVg?3oVGw3ym^DWND5&A- z;uyklJvjjge*FLc-zP=N`2mnNmJAFr00JYUWyztPS2-B$4yfPzxhNtPsE5JR)z4*} HQ$iB}7_uQI diff --git a/mods/weather_pack/textures/weather_pack_snow_snowflake2.png b/mods/weather_pack/textures/weather_pack_snow_snowflake2.png deleted file mode 100644 index 4ac46f1d475c273945ba9cd02d0130964b78a211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^tRT$61|)m))t&+=&H|6fVg?3oVGw3ym^DWND5&n~ z;uyklJvk*IA>qgW|Nqt4G!jx$zBF?yT<$rsDxraM9qY_vX=)7jq{LHfj=anSYGLqn L^>bP0l+XkK;6flq diff --git a/mods/weather_pack/thunder.lua b/mods/weather_pack/thunder.lua deleted file mode 100644 index 3ff6453..0000000 --- a/mods/weather_pack/thunder.lua +++ /dev/null @@ -1,37 +0,0 @@ --- turn off lightning mod 'auto mode' -lightning.auto = false - -thunder = { - next_strike = 0, - min_delay = 3, - max_delay = 12, -} - -minetest.register_globalstep(function(dtime) - if weather.state ~= "thunder" then - return false - end - - rain.make_weather() - - if (thunder.next_strike <= os.time()) then - lightning.strike() - local delay = math.random(thunder.min_delay, thunder.max_delay) - thunder.next_strike = os.time() + delay - end - -end) - -thunder.clear = function() - rain.clear() -end - --- register thunderstorm weather -if weather.reg_weathers.thunder == nil then - weather.reg_weathers.thunder = { - chance = 5, - clear = thunder.clear, - min_duration = 120, - max_duration = 600, - } -end \ No newline at end of file diff --git a/mods/weather_pack/weather_core.lua b/mods/weather_pack/weather_core.lua deleted file mode 100644 index 66466be..0000000 --- a/mods/weather_pack/weather_core.lua +++ /dev/null @@ -1,175 +0,0 @@ -weather = { - -- weather states, 'none' is default, other states depends from active mods - state = "none", - - -- player list for saving player meta info - players = {}, - - -- time when weather should be re-calculated - next_check = 0, - - -- default weather recalculation interval - check_interval = 300, - - -- weather min duration - min_duration = 240, - - -- weather max duration - max_duration = 3600, - - -- weather calculated end time - end_time = nil, - - -- registered weathers - reg_weathers = {}, - - -- automaticly calculates intervals and swap weathers - auto_mode = true, - - -- global flag to disable/enable ABM logic. - allow_abm = true, -} - -weather.get_rand_end_time = function(min_duration, max_duration) - if min_duration ~= nil and max_duration ~= nil then - return os.time() + math.random(min_duration, max_duration); - else - return os.time() + math.random(weather.min_duration, weather.max_duration); - end -end - -weather.is_outdoor = function(pos) - if minetest.get_node_light({x=pos.x, y=pos.y + 1, z=pos.z}, 0.5) == 15 then - return true - end - return false -end - --- checks if player is undewater. This is needed in order to --- turn off weather particles generation. -weather.is_underwater = function(player) - local ppos = player:getpos() - local offset = player:get_eye_offset() - local player_eye_pos = {x = ppos.x + offset.x, - y = ppos.y + offset.y + 1.5, - z = ppos.z + offset.z} - local node_level = minetest.get_node_level(player_eye_pos) - if node_level == 8 or node_level == 7 then - return true - end - return false -end - --- trying to locate position for particles by player look direction for performance reason. --- it is costly to generate many particles around player so goal is focus mainly on front view. -weather.get_random_pos_by_player_look_dir = function(player) - local look_dir = player:get_look_dir() - local player_pos = player:getpos() - - local random_pos_x = 0 - local random_pos_y = 0 - local random_pos_z = 0 - - if look_dir.x > 0 then - if look_dir.z > 0 then - random_pos_x = math.random() + math.random(player_pos.x - 2.5, player_pos.x + 5) - random_pos_z = math.random() + math.random(player_pos.z - 2.5, player_pos.z + 5) - else - random_pos_x = math.random() + math.random(player_pos.x - 2.5, player_pos.x + 5) - random_pos_z = math.random() + math.random(player_pos.z - 5, player_pos.z + 2.5) - end - else - if look_dir.z > 0 then - random_pos_x = math.random() + math.random(player_pos.x - 5, player_pos.x + 2.5) - random_pos_z = math.random() + math.random(player_pos.z - 2.5, player_pos.z + 5) - else - random_pos_x = math.random() + math.random(player_pos.x - 5, player_pos.x + 2.5) - random_pos_z = math.random() + math.random(player_pos.z - 5, player_pos.z + 2.5) - end - end - - random_pos_y = math.random() + math.random(player_pos.y + 1, player_pos.y + 3) - return random_pos_x, random_pos_y, random_pos_z -end - -minetest.register_globalstep(function(dtime) - if weather.auto_mode == false then - return 0 - end - - -- recalculate weather only when there aren't currently any - if (weather.state ~= "none") then - if (weather.end_time ~= nil and weather.end_time <= os.time()) then - weather.reg_weathers[weather.state].clear() - weather.state = "none" - end - elseif (weather.next_check <= os.time()) then - for weather_name, weather_meta in pairs(weather.reg_weathers) do - weather.set_random_weather(weather_name, weather_meta) - end - -- fallback next_check set, weather 'none' will be. - weather.next_check = os.time() + weather.check_interval - end -end) - --- sets random weather (which could be 'regular' (no weather)). -weather.set_random_weather = function(weather_name, weather_meta) - if weather.next_check > os.time() then return 0 end - - if (weather_meta ~= nil and weather_meta.chance ~= nil) then - local random_roll = math.random(0,100) - if (random_roll <= weather_meta.chance) then - weather.state = weather_name - weather.end_time = weather.get_rand_end_time(weather_meta.min_duration, weather_meta.max_duration) - weather.next_check = os.time() + weather.check_interval - end - end -end - -minetest.register_privilege("weather_manager", { - description = "Gives ability to control weather", - give_to_singleplayer = false -}) - --- Weather command definition. Set -minetest.register_chatcommand("set_weather", { - params = "", - description = "Changes weather by given param, parameter none will remove weather.", - privs = {weather_manager = true}, - func = function(name, param) - if (param == "none") then - if (weather.state ~= nil and weather.reg_weathers[weather.state] ~= nil) then - weather.reg_weathers[weather.state].clear() - weather.state = param - end - weather.state = "none" - end - - if (weather.reg_weathers ~= nil and weather.reg_weathers[param] ~= nil) then - if (weather.state ~= nil and weather.state ~= "none" and weather.reg_weathers[weather.state] ~= nil) then - weather.reg_weathers[weather.state].clear() - end - weather.state = param - end - end -}) - --- Configuration setting which allows user to disable ABM for weathers (if they use it). --- Weather mods expected to be use this flag before registering ABM. -local weather_allow_abm = minetest.setting_getbool("weather_allow_abm") -if weather_allow_abm ~= nil and weather_allow_abm == false then - weather.allow_abm = false -end - --- Overrides nodes 'sunlight_propagates' attribute for efficient indoor check (e.g. for glass roof). --- Controlled from minetest.conf setting and by default it is disabled. --- To enable set weather_allow_override_nodes to true. --- Only new nodes will be effected (glass roof needs to be rebuilded). -if minetest.setting_getbool("weather_allow_override_nodes") then - if minetest.registered_nodes["default:glass"] then - minetest.override_item("default:glass", {sunlight_propagates = false}) - end - if minetest.registered_nodes["default:meselamp"] then - minetest.override_item("default:meselamp", {sunlight_propagates = false}) - end -end \ No newline at end of file diff --git a/mods/xdecor/crafts.lua b/mods/xdecor/crafts.lua index 6755e01..7514f61 100644 --- a/mods/xdecor/crafts.lua +++ b/mods/xdecor/crafts.lua @@ -392,7 +392,7 @@ minetest.register_craft({ output = "xdecor:worktable", recipe = { {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "", ""}, + {"group:wood", "default:steel_ingot", "group:wood"}, } }) diff --git a/mods/xdecor/nodes.lua b/mods/xdecor/nodes.lua index 2b86c03..ba2ab9c 100644 --- a/mods/xdecor/nodes.lua +++ b/mods/xdecor/nodes.lua @@ -120,7 +120,7 @@ xdecor.register("cobweb", { liquid_range = 0, walkable = false, selection_box = {type = "regular"}, - groups = {dig_immediate=3, liquid=3, flammable=3}, + groups = {oddly_breakable_by_hand=1, liquid=3, flammable=3}, sounds = default.node_sound_leaves_defaults() })

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 t+xUz?}4x8zFd`i)3k&!5W{`uXmyNkZxHNq-~0 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