Compare commits

...

586 Commits

Author SHA1 Message Date
FaceDeer 9c1cc9e141 Merge pull request 'Merge master into my fork' (#2) from MineClone2/MineClone2:master into master
Reviewed-on: #2
2022-09-02 01:05:45 +00:00
cora b552548b4e Merge pull request 'Add setting for bookshelf inventories' (#2613) from bookshelf_inv_setting into master
Reviewed-on: MineClone2/MineClone2#2613
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
2022-09-01 21:00:32 +00:00
cora 1ddc1abb97 Add setting for bookshelf inventories 2022-09-01 12:10:12 +02:00
cora eed52b69a2 Merge pull request 'Fixed Bookshelf Close Gui Issue' (#2611) from fix_bookshelf_issue into master
Reviewed-on: MineClone2/MineClone2#2611
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-09-01 09:47:59 +00:00
PrairieWind 574267446e Merge branch 'master' into fix_bookshelf_issue 2022-08-31 22:37:46 +00:00
PrairieWind 3aae2b6d96 Fixed Bookshelf close gui issue 2022-08-31 13:51:38 -06:00
PrairieWind 2bfca18377 Merge pull request 'fix translation and update french translation -master' (#2588) from 3raven/MineClone2-french:master into master
Reviewed-on: MineClone2/MineClone2#2588
Reviewed-by: cora <cora@noreply.git.minetest.land>
Reviewed-by: AFCMS <afcm.contact@gmail.com>
2022-08-31 18:49:32 +00:00
3raven 5329e70df9 Merge branch 'master' into master 2022-08-31 17:04:43 +00:00
cora 7c686c8b79 Merge pull request 'Added Formspec to Bookshelf' (#2603) from bookshelf_inventory into master
Reviewed-on: MineClone2/MineClone2#2603
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-31 10:02:57 +00:00
PrairieWind 2eab947d84 Added container group to Bookshelf 2022-08-30 17:41:52 -06:00
PrairieWind 8bcf80422d Added Formspec to Bookshelf 2022-08-30 21:36:27 +00:00
cora 6b7b2c74ed Merge pull request 'Fix Chest on top floor of Pillager Outpost' (#2608) from fix_outpost_chest into master
Reviewed-on: MineClone2/MineClone2#2608
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-30 21:05:58 +00:00
PrairieWind 0c6cbc9e99 Chest on top floor of Pillager Outpost now works. 2022-08-30 23:04:43 +02:00
cora 9b2306151a Merge pull request 'Add golem summoning for villagers' (#2606) from villagers_spawn_golem into master
Reviewed-on: MineClone2/MineClone2#2606
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
2022-08-30 21:02:57 +00:00
cora 93cccaa264 Allow spawning on water 2022-08-30 22:58:55 +02:00
cora b067111e71 Add golem summoning for villagers 2022-08-30 22:01:18 +02:00
cora 34c7246e4a Merge pull request 'Mob group spawning fixes' (#2605) from spawning_fixes into master
Reviewed-on: MineClone2/MineClone2#2605
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
2022-08-30 19:58:47 +00:00
cora 77e11713d3 Remove superfluous bed check for villagers 2022-08-30 21:52:47 +02:00
cora 2f0ca063e9 Make monsters less likely to spawn in groups 2022-08-30 21:52:47 +02:00
cora 0aa4e0a395 Don't spawn creeper in groups 2022-08-30 21:52:47 +02:00
cora 3993cddfc6 Check for conditions on each group spawn 2022-08-30 21:52:47 +02:00
cora 961c9bd3c9 Merge pull request 'Make zombie babies have big heads' (#2596) from zombies into master
Reviewed-on: MineClone2/MineClone2#2596
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-30 19:22:19 +00:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 d7253e8b3b Remove saved visual_size 2022-08-30 07:47:29 -05:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 9d08f8662d Make zombie babies have big heads 2022-08-30 07:47:29 -05:00
FaceDeer be36022249 Merge pull request 'Update from master' (#1) from MineClone2/MineClone2:master into master
Reviewed-on: #1
2022-08-29 07:16:32 +00:00
FaceDeer e1bf4081dd since registered_generators was a table, not an array, table.sort was having no effect and so priority was being ignored. Generators were being run in an arbitrary order.
I discovered this when I attempted to register an lvm in a mod that was intended to run after "main", to modify clay that the main mapgen lvm adds to the world. It wasn't finding any clay because priority was being ignored and it was running before "main" was.
2022-08-28 22:11:02 -06:00
cora 1f2b70cb85 Merge pull request 'Fix crash when using flint and steel on creeper' (#2598) from fix_flint_and_creeper into master
Reviewed-on: MineClone2/MineClone2#2598
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-28 19:12:21 +00:00
cora 683ace0748 Fix crash when using flint and steel on creeper 2022-08-28 21:10:48 +02:00
cora 7ac2c30622 Merge pull request 'Fix crash with itementity and unloaded nodes' (#2600) from fix_item_crash into master
Reviewed-on: MineClone2/MineClone2#2600
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-28 19:10:08 +00:00
cora 2b2ba47aed Fix crash with itementity and unloaded nodes 2022-08-28 21:08:17 +02:00
cora 7a6a84b2a2 Merge pull request 'Fix a couple of warnings in grindstone' (#2601) from fix_grindstone_warnings into master
Reviewed-on: MineClone2/MineClone2#2601
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-28 19:07:17 +00:00
cora c158be848d Grindstone: Fix indentation 2022-08-28 15:06:06 +02:00
cora 5520f81404 Fix grindston warnings 2022-08-28 15:02:02 +02:00
cora d75fdec8f0 Merge pull request 'Fix ender particle spam with particlespammers' (#2593) from fix_enderparticles into master
Reviewed-on: MineClone2/MineClone2#2593
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-26 20:02:52 +00:00
cora 94f07c2b3d Fix ender particle spam with particlespammers 2022-08-26 21:53:27 +02:00
cora a93bf3bf53 Merge pull request 'Make items not drop into blocks on playerdeath' (#2592) from fix_death_drop into master
Reviewed-on: MineClone2/MineClone2#2592
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-26 19:31:13 +00:00
cora 0a45486304 Make items not drop into blocks on playerdeath 2022-08-26 02:32:16 +02:00
cora 0385dd7cab Merge pull request 'Fix enchanted tools not being properly upgraded' (#2586) from fix_netherite_upgrade into master
Reviewed-on: MineClone2/MineClone2#2586
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-25 09:51:06 +00:00
cora 05979ed690 Fix enchanted tools not being properly upgraded 2022-08-25 11:31:08 +02:00
cora 35f064511d Merge pull request 'Fix tropical fish crash (#2583)' (#2587) from fix_tropical_fish_textures into master
Reviewed-on: MineClone2/MineClone2#2587
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-24 09:01:04 +00:00
3raven 1a405b291a Mise à jour de 'mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr' 2022-08-24 05:39:45 +00:00
3raven 0d23a89713 Mise à jour de 'mods/MAPGEN/mcl_villages/locale/template.txt' 2022-08-24 05:39:11 +00:00
3raven 561396f4e6 Mise à jour de 'mods/MAPGEN/mcl_villages/init.lua' 2022-08-24 05:38:30 +00:00
3raven 5621250c07 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.fr.tr' 2022-08-24 05:28:22 +00:00
3raven d93a4cc457 Mise à jour de 'mods/ITEMS/mcl_crimson/init.lua' 2022-08-24 05:26:09 +00:00
3raven ef02c82767 Mise à jour de 'mods/ITEMS/mcl_blackstone/init.lua' 2022-08-24 05:19:54 +00:00
3raven b02daff1c9 Mise à jour de 'mods/ITEMS/mcl_mangrove/init.lua' 2022-08-24 05:02:18 +00:00
3raven bb5aea08ef Mise à jour de 'mods/MAPGEN/mcl_villages/locale/mcl_villages.ru.tr' 2022-08-24 04:57:18 +00:00
3raven d6d70757a3 Mise à jour de 'mods/MAPGEN/mcl_villages/locale/mcl_villages.fr.tr' 2022-08-24 04:56:58 +00:00
3raven ec91be347a Mise à jour de 'mods/MAPGEN/mcl_villages/locale/template.txt' 2022-08-24 04:56:32 +00:00
3raven 2d377dc539 Mise à jour de 'mods/MAPGEN/mcl_villages/init.lua' 2022-08-24 04:55:04 +00:00
3raven 17a5526bd2 Mise à jour de 'mods/MAPGEN/mcl_villages/init.lua' 2022-08-24 04:54:04 +00:00
3raven eb37b49604 Transférer les fichiers vers 'mods/MAPGEN/mcl_villages/locale' 2022-08-24 04:50:59 +00:00
3raven 0556a3c9bf Ajouter 'mods/MAPGEN/mcl_villages/locale/template.txt' 2022-08-24 04:49:08 +00:00
3raven 2ebc43ab77 Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-24 04:46:42 +00:00
3raven ed30ea5a3d Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.fr.tr' 2022-08-24 04:46:23 +00:00
3raven 07fa161ffd Mise à jour de 'mods/ITEMS/mcl_blackstone/init.lua' 2022-08-24 04:43:59 +00:00
3raven 2993d180fb Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-24 04:42:35 +00:00
3raven cd2f103215 Mise à jour de 'mods/ITEMS/mcl_blackstone/init.lua' 2022-08-24 04:38:50 +00:00
3raven 7a67555889 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-24 04:09:11 +00:00
3raven e442d225e5 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-24 04:05:11 +00:00
3raven 3dcd301ed5 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-24 04:02:57 +00:00
3raven 32c834c1d6 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-24 04:02:26 +00:00
3raven 071ae27fcc Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-24 03:59:20 +00:00
3raven 1a86c3d3b0 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-24 03:54:58 +00:00
3raven 49ac1bc260 Mise à jour de 'mods/ITEMS/mcl_raw_ores/init.lua' 2022-08-24 03:44:05 +00:00
3raven 207c6bf639 Mise à jour de 'mods/ITEMS/mcl_grindstone/locale/mcl_grindstone.fr.tr' 2022-08-24 03:40:26 +00:00
3raven b48f1c07f7 Mise à jour de 'mods/ITEMS/mcl_grindstone/locale/template.txt' 2022-08-24 03:39:49 +00:00
3raven 8a6c2f2850 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-24 03:24:24 +00:00
3raven b53b363a9a Mise à jour de 'mods/ITEMS/mcl_mangrove/init.lua' 2022-08-24 03:12:09 +00:00
3raven 64fc1d0c14 Mise à jour de 'mods/ITEMS/mcl_mangrove/init.lua' 2022-08-24 03:07:35 +00:00
3raven 0207b9c6fd Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.fr.tr' 2022-08-24 02:57:52 +00:00
3raven 89f29da54c Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-24 02:55:47 +00:00
3raven d2720253ff Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.de.tr' 2022-08-24 02:53:09 +00:00
3raven a8c273f801 Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.fr.tr' 2022-08-24 02:52:18 +00:00
3raven 27c8adb40a Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-24 02:51:08 +00:00
3raven 7c63b77ee5 Mise à jour de 'mods/ITEMS/mcl_stairs/locale/mcl_stairs.fr.tr' 2022-08-24 02:31:53 +00:00
3raven 99b304b2f3 Mise à jour de 'mods/ITEMS/mcl_stairs/locale/template.txt' 2022-08-24 02:30:17 +00:00
3raven cfb2ad01c6 Vérifiez la prochaine fois 2022-08-24 02:25:15 +00:00
3raven bb47b5068e Mise à jour de 'mods/ITEMS/mcl_core/locale/mcl_core.fr.tr' 2022-08-24 02:21:04 +00:00
3raven 6884d93e17 Mise à jour de 'mods/ITEMS/mcl_core/locale/template.txt' 2022-08-24 02:16:51 +00:00
3raven 7545c3aaf3 Mise à jour de 'mods/ITEMS/mcl_core/locale/template.txt' 2022-08-24 02:13:14 +00:00
3raven 0d011b34ce Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.de.tr' 2022-08-24 02:05:49 +00:00
3raven af482de67e Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.es.tr' 2022-08-24 02:05:31 +00:00
3raven c3b35c3436 Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.fr.tr' 2022-08-24 02:05:13 +00:00
3raven 838ad5b031 Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.pl.tr' 2022-08-24 02:04:55 +00:00
3raven 967889e657 Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.ru.tr' 2022-08-24 02:04:36 +00:00
3raven 9e2cbbf44e Mise à jour de 'mods/ITEMS/REDSTONE/mesecons_walllever/locale/template.txt' 2022-08-24 02:04:13 +00:00
3raven 187dcfb9e7 Transférer les fichiers vers 'mods/ITEMS/mcl_raw_ores/locale' 2022-08-24 02:02:24 +00:00
3raven b8594a6f5d Ajouter 'mods/ITEMS/mcl_raw_ores/locale/template.txt' 2022-08-24 02:02:02 +00:00
3raven d9f15b461c Mise à jour de 'mods/ENTITIES/mobs_mc/locale/template.txt' 2022-08-24 01:57:26 +00:00
3raven 052b44fe8d Mise à jour de 'mods/ENTITIES/mobs_mc/locale/mobs_mc.fr.tr' 2022-08-24 01:57:08 +00:00
3raven 9a9c950917 Mise à jour de 'mods/ITEMS/mcl_crimson/locale/mcl_crimson.fr.tr' 2022-08-24 01:36:44 +00:00
3raven d1331ec544 Mise à jour de 'mods/ITEMS/mcl_crimson/locale/template.txt' 2022-08-24 01:26:48 +00:00
3raven 5f7e056411 Mise à jour de 'mods/ITEMS/mcl_crimson/locale/mcl_crimson.fr.tr' 2022-08-24 01:26:09 +00:00
3raven 037aa6de5f Mise à jour de 'mods/ITEMS/mcl_crimson/locale/template.txt' 2022-08-24 01:18:19 +00:00
3raven f2da4c5d36 Transférer les fichiers vers 'mods/ITEMS/mcl_nether/locale' 2022-08-24 01:04:50 +00:00
cora ccfbc7da14 Make sure math.random gets a >0 argument 2022-08-24 03:01:32 +02:00
3raven d88277e6b4 Mise à jour de 'mods/ITEMS/mcl_bows/locale/mcl_bows.fr.tr' 2022-08-24 00:56:11 +00:00
cora 6d336ee879 Fix tropical fish empty texture array 2022-08-24 02:55:15 +02:00
3raven caf8790a57 Mise à jour de 'mods/ITEMS/mcl_bows/locale/template.txt' 2022-08-24 00:54:29 +00:00
3raven 959fcffff1 Mise à jour de 'mods/ITEMS/mcl_bows/crossbow.lua' 2022-08-24 00:51:15 +00:00
3raven 215cb26425 Mise à jour de 'mods/ITEMS/mcl_bows/crossbow.lua' 2022-08-24 00:49:17 +00:00
3raven 994774489e Transférer les fichiers vers 'mods/ITEMS/mcl_tools/locale' 2022-08-24 00:40:09 +00:00
3raven d2821cf571 Transférer les fichiers vers 'mods/ITEMS/mcl_tools/locale' 2022-08-24 00:39:29 +00:00
3raven b081a4144e Mise à jour de 'mods/ITEMS/mcl_campfires/locale/mcl_campfires.fr.tr' 2022-08-24 00:24:40 +00:00
3raven 6433a25ca7 Transférer les fichiers vers 'mods/ITEMS/mcl_campfires/locale' 2022-08-24 00:24:01 +00:00
3raven 54d3ceea3c Mise à jour de 'mods/ITEMS/mcl_campfires/locale/template.txt' 2022-08-24 00:23:10 +00:00
3raven dfe1a9292e Ajouter 'mods/ITEMS/mcl_campfires/locale/template.txt' 2022-08-24 00:22:17 +00:00
3raven 245b6a9b5e Supprimer 'mods/ITEMS/mcl_campfires/local/template.txt' 2022-08-24 00:21:38 +00:00
3raven d0454c150d Supprimer 'mods/ITEMS/mcl_campfires/local/mcl_campfire.fr.tr' 2022-08-24 00:21:28 +00:00
3raven d6eb1e5249 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.de.tr' 2022-08-24 00:20:04 +00:00
3raven 7d9d300ad2 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.es.tr' 2022-08-24 00:19:46 +00:00
3raven a50539b3d7 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.pl.tr' 2022-08-24 00:19:29 +00:00
3raven 7711a5aac6 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.zh_TW.tr' 2022-08-24 00:19:09 +00:00
3raven 14bab9263a Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.ru.tr' 2022-08-24 00:18:47 +00:00
3raven 4c17481c64 Mise à jour de 'mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.fr.tr' 2022-08-24 00:18:29 +00:00
3raven b99fca17b1 pay attention moron 2022-08-24 00:18:07 +00:00
3raven 9167804230 Mise à jour de 'mods/ITEMS/mcl_dye/locale/mcl_dye.fr.tr' 2022-08-24 00:16:40 +00:00
3raven 3a214bb354 Mise à jour de 'mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr' 2022-08-24 00:09:50 +00:00
3raven 9acdc37692 Mise à jour de 'mods/ITEMS/mcl_compass/locale/template.txt' 2022-08-24 00:09:26 +00:00
3raven 2faf27ac4e Mise à jour de 'mods/ITEMS/mcl_stonecutter/locale/mcl_stonecutter.fr.tr' 2022-08-24 00:07:16 +00:00
3raven aa7a88a0ec Mise à jour de 'mods/ITEMS/mcl_stonecutter/locale/template.txt' 2022-08-24 00:06:42 +00:00
3raven 2ee8d31ede Ajouter 'mods/ITEMS/mcl_smithing_table/locale/mcl_smithing_table.fr.tr' 2022-08-24 00:05:14 +00:00
3raven 26ea38e922 Mise à jour de 'mods/ITEMS/mcl_smithing_table/locale/template.txt' 2022-08-24 00:03:12 +00:00
3raven 05902f7933 Mise à jour de 'mods/ITEMS/mcl_smithing_table/locale/template.txt' 2022-08-24 00:02:01 +00:00
3raven 2ea56cda72 Supprimer 'mods/ITEMS/mcl_smithing_table/locale/mcl_anvils.ru.tr' 2022-08-24 00:01:32 +00:00
3raven d5f90fb716 Supprimer 'mods/ITEMS/mcl_smithing_table/locale/mcl_anvils.fr.tr' 2022-08-24 00:01:23 +00:00
3raven 59bee3c391 seriously 2022-08-24 00:01:10 +00:00
3raven d1376c89f3 dont do this 2022-08-24 00:00:53 +00:00
3raven 8eacc9ef94 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-23 23:55:56 +00:00
3raven 07f5cde5d7 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-23 23:55:32 +00:00
3raven 13750fe332 Mise à jour de 'mods/ITEMS/mcl_mud/locale/template.txt' 2022-08-23 23:55:04 +00:00
3raven 8aacb265a6 Mise à jour de 'mods/ITEMS/mcl_mud/locale/mcl_mud.fr.tr' 2022-08-23 23:54:46 +00:00
3raven 5391020925 Mise à jour de 'mods/ITEMS/mcl_enchanting/locale/template.txt' 2022-08-23 23:51:28 +00:00
3raven 2b077a2cbc Mise à jour de 'mods/ITEMS/mcl_armor/locale/template.txt' 2022-08-23 23:44:36 +00:00
3raven 2082205286 Mise à jour de 'mods/ITEMS/mcl_armor/locale/mcl_armor.fr.tr' 2022-08-23 23:43:34 +00:00
3raven 8d1c889d8d Mise à jour de 'mods/ITEMS/mcl_armor/locale/template.txt' 2022-08-23 23:40:29 +00:00
3raven 0da484e58e Mise à jour de 'mods/ITEMS/mcl_bells/locale/template.txt' 2022-08-23 23:26:26 +00:00
3raven 0933f08316 Mise à jour de 'mods/ITEMS/mcl_bells/locale/mcl_bells.fr.tr' 2022-08-23 23:26:06 +00:00
3raven a66e1992f3 Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.fr.tr' 2022-08-23 23:11:46 +00:00
3raven 376c9912be Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-23 23:11:08 +00:00
3raven b7c6e7801f Mise à jour de 'mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr' 2022-08-23 23:09:37 +00:00
3raven 157c29effa Mise à jour de 'mods/ENTITIES/mcl_boats/locale/template.txt' 2022-08-23 23:09:06 +00:00
3raven df3db39ca7 Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.de.tr' 2022-08-23 23:00:26 +00:00
3raven 70317ecc72 Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/template.txt' 2022-08-23 23:00:00 +00:00
3raven 9c4654f8ef Mise à jour de 'mods/ITEMS/mcl_blackstone/locale/mcl_blackstone.fr.tr' 2022-08-23 22:59:44 +00:00
3raven 38318180b8 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-23 21:39:16 +00:00
3raven 6da876b573 Mise à jour de 'mods/HUD/mcl_death_messages/locale/mcl_death_messages.fr.tr' 2022-08-23 21:34:57 +00:00
3raven ea412309f5 correction 2022-08-23 21:33:18 +00:00
3raven 9f2651d56e Mise à jour de 'mods/ITEMS/mcl_walls/locale/mcl_walls.fr.tr' 2022-08-23 21:24:47 +00:00
3raven 296ba5ccc6 Mise à jour de 'mods/ITEMS/mcl_walls/locale/template.txt' 2022-08-23 21:24:14 +00:00
3raven 6102bf7813 Mise à jour de 'mods/ITEMS/mcl_walls/locale/mcl_walls.fr.tr' 2022-08-23 21:23:01 +00:00
3raven 8dbe41bd4f Mise à jour de 'mods/ITEMS/mcl_mud/locale/mcl_mud.fr.tr' 2022-08-23 21:21:09 +00:00
3raven 80488f65ad Ajouter 'mods/ITEMS/mcl_mud/locale/mcl_mud.fr.tr' 2022-08-23 21:16:28 +00:00
3raven 846f1ace23 Ajouter 'mods/ITEMS/mcl_mud/locale/template.txt' 2022-08-23 21:15:36 +00:00
3raven 556fe6c7e2 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-23 21:10:55 +00:00
3raven f1a1b4d59c Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-23 21:07:25 +00:00
3raven 478c99ec26 Ajouter 'mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr' 2022-08-23 20:57:53 +00:00
3raven fb7207b926 Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-23 20:57:00 +00:00
3raven 60c220c33e Mise à jour de 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-23 20:47:30 +00:00
3raven 27a172ab00 Ajouter 'mods/ITEMS/mcl_mangrove/locale/template.txt' 2022-08-23 20:47:03 +00:00
3raven 9b471f6e5c Supprimer 'mods/ITEMS/mcl_mangrove/template.txt' 2022-08-23 20:46:40 +00:00
3raven 0957c1b3c4 Mise à jour de 'mods/ITEMS/mcl_mangrove/template.txt' 2022-08-23 20:45:40 +00:00
3raven 7c771ad702 Mise à jour de 'mods/ITEMS/mcl_mangrove/init.lua' 2022-08-23 20:45:02 +00:00
3raven 0e69ef9156 Ajouter 'mods/ITEMS/mcl_mangrove/template.txt' 2022-08-23 20:42:56 +00:00
3raven 24d2d3abaf Ajouter 'mods/ITEMS/mcl_fletching_table/locale/mcl_fletching_table.fr.tr' 2022-08-23 20:27:25 +00:00
3raven f1900c251f Ajouter 'mods/ITEMS/mcl_fletching_table/locale/template.txt' 2022-08-23 20:26:42 +00:00
3raven acb4bbc3c9 Ajouter 'mods/ITEMS/mcl_cartography_table/locale/mcl_cartography_table.fr.tr' 2022-08-23 20:24:31 +00:00
3raven c9e9395c65 Ajouter 'mods/ITEMS/mcl_cartography_table/locale/template.txt' 2022-08-23 20:23:49 +00:00
3raven d4afc7a5e9 Mise à jour de 'mods/ITEMS/mcl_campfires/local/mcl_campfire.fr.tr' 2022-08-23 20:21:36 +00:00
3raven cba4e5a79d Ajouter 'mods/ITEMS/mcl_campfires/local/mcl_campfire.fr.tr' 2022-08-23 20:19:05 +00:00
3raven 1ed33ad5c7 Ajouter 'mods/ITEMS/mcl_smoker/locale/mcl_smoker.fr.tr' 2022-08-23 20:14:24 +00:00
3raven abc71a8217 Ajouter 'mods/ITEMS/mcl_smoker/locale/template.txt' 2022-08-23 20:13:39 +00:00
3raven 17b8f98279 Ajouter 'mods/ITEMS/mcl_blast_furnace/locale/mcl_blast_furnace.fr.tr' 2022-08-23 20:11:11 +00:00
3raven 64dbc4b128 Ajouter 'mods/ITEMS/mcl_blast_furnace/locale/template.txt' 2022-08-23 20:10:28 +00:00
3raven 20c92b274a Supprimer 'mods/ITEMS/mcl_blast_furnace/locale/template.text' 2022-08-23 20:09:47 +00:00
3raven 541cb4dccc Ajouter 'mods/ITEMS/mcl_blast_furnace/locale/template.text' 2022-08-23 20:09:22 +00:00
cora 26a4b3d895 Merge pull request 'Remove image stack wieldview' (#2333) from MrRar/MineClone2:wieldview into master
Reviewed-on: MineClone2/MineClone2#2333
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-23 20:06:38 +00:00
3raven 703abde07f Correction, remove google trad style 2022-08-23 20:05:38 +00:00
3raven abea853243 Ajouter 'mods/ITEMS/mcl_loom/locale/mcl_loom.fr.tr' 2022-08-23 20:00:59 +00:00
3raven 960a090b44 from mcl5 2022-08-23 20:00:16 +00:00
3raven 957d7ea877 Ajouter 'mods/ITEMS/mcl_loom/locale/template.txt' 2022-08-23 19:59:19 +00:00
3raven ae5f263a54 Mise à jour de 'README_locale/README.fr.md' 2022-08-23 19:55:35 +00:00
3raven ceb57f526d Mise à jour de 'README_locale/README.fr.md' 2022-08-23 19:55:16 +00:00
3raven 8b857a5a52 Mise à jour de 'README_locale/README.fr.md' 2022-08-23 19:42:17 +00:00
3raven b3afaefe36 Mise à jour de 'README_locale/README.fr.md' 2022-08-23 19:25:13 +00:00
3raven e114c40491 Mise à jour de 'README_locale/README.fr.md' 2022-08-23 18:38:59 +00:00
3raven 7fc5c4fd71 Mise à jour de 'README_locale/README.fr.md' 2022-08-23 18:14:38 +00:00
3raven 31c2607c3e Mise à jour de 'README_locale/README.fr.md' 2022-08-23 17:29:30 +00:00
3raven 85118346aa Ajouter 'README_locale/README.fr.md' 2022-08-23 17:00:49 +00:00
3raven 3d580a3976 Mise à jour de 'mods/ITEMS/mcl_enchanting/locale/mcl_enchanting.fr.tr' 2022-08-23 16:34:03 +00:00
3raven 576dbcd804 Mise à jour de 'mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr' 2022-08-23 16:26:16 +00:00
3raven ab3e56d2f7 Match template 2022-08-23 16:20:44 +00:00
3raven 5dfb64dcc9 Remove doublon 2022-08-23 16:10:26 +00:00
3raven 9648edb173 Doublon 2022-08-23 16:04:55 +00:00
3raven adcb2b8c19 Complete & correct translation 2022-08-23 15:38:09 +00:00
3raven 0f06868c5f Add translation 2022-08-23 15:24:56 +00:00
3raven 10e09baeaa Match template 2022-08-23 15:20:32 +00:00
3raven 1d64a7bdad Mise à jour de 'mods/ENVIRONMENT/lightning/locale/lightning.fr.tr' 2022-08-23 15:15:41 +00:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 71cfa67c7d Fix wieldview in MT 5.6 2022-08-23 10:11:21 -05:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 60f3d4b74c set_attach: remove default parameters 2022-08-23 10:08:22 -05:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 ba55e4286f Remove image stack wieldview: code review improvment 2022-08-23 10:08:22 -05:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 587f9be4d7 Remove image stack wieldview 2022-08-23 10:08:22 -05:00
3raven 1e8ddf3ab8 Add translations 2022-08-23 03:41:51 +00:00
3raven 541501fd70 Complete translation 2022-08-23 03:22:51 +00:00
3raven f1bb05d353 Complete translation 2022-08-23 03:16:23 +00:00
3raven 6013dec4bb Complete translation 2022-08-23 03:14:30 +00:00
3raven 57d0b29bf5 Add translation 2022-08-23 03:13:32 +00:00
3raven bfbfff189c Add translation 2022-08-23 03:11:27 +00:00
3raven 1116b53ba8 Add translations 2022-08-23 02:58:53 +00:00
3raven 24a73fb66c Add translations 2022-08-23 02:56:31 +00:00
3raven 02622fc04b Add translation 2022-08-23 02:54:10 +00:00
3raven 593c34e183 Add translation 2022-08-23 02:39:57 +00:00
3raven bedd6cd333 Add translations 2022-08-23 02:33:27 +00:00
3raven b939f14a6e Add translations 2022-08-23 02:30:10 +00:00
3raven 8014e84ac0 Add translations 2022-08-23 02:21:36 +00:00
3raven 3aa7ea993d Add translations 2022-08-23 02:18:02 +00:00
3raven 54201da15f Add translation 2022-08-23 02:05:57 +00:00
3raven 118ceb9bf3 Add an reorder translations 2022-08-23 01:52:15 +00:00
3raven 79d19d8a47 Add translations 2022-08-23 00:36:08 +00:00
3raven d3a94e8089 Add missing translations + changes for cohesion 2022-08-23 00:21:38 +00:00
3raven b15575469a Add translation 2022-08-22 22:15:37 +00:00
3raven cd9dde40d9 Add translation 2022-08-22 22:06:56 +00:00
3raven 09e6eabdca create the file 2022-08-22 22:02:18 +00:00
3raven 71424aa5fb update+corrections 2022-08-22 21:54:28 +00:00
3raven 632001af3e update 2022-08-22 21:41:55 +00:00
cora 5d33dc94db Merge pull request 'Fix regression of item movement in water transport streams.' (#2579) from fix_itemflow_regression into master
Reviewed-on: MineClone2/MineClone2#2579
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-19 21:48:27 +00:00
MysticTempest 6cbedd408e Fix regression of item movement in water transport streams. 2022-08-19 06:53:26 -05:00
cora 4032cbe943 Merge pull request 'Parrot mobimitate: Use proper keyset for randomisation' (#2574) from fix_parrot_crash into master
Reviewed-on: MineClone2/MineClone2#2574
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-18 21:53:34 +00:00
cora 544c6cbdb3 Use proper keyset for randomisation 2022-08-18 23:49:27 +02:00
PrairieWind 0cd2c3993f Merge pull request 'Added Grindstone Translation Template' (#2577) from grindstone_tr_template into master
Reviewed-on: MineClone2/MineClone2#2577
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-18 21:10:16 +00:00
PrairieWind 2e5503c12f Added Grindstone Translation Template 2022-08-18 15:03:59 -06:00
cora b0999d89b1 Merge pull request 'Adds grindstone functionality' (#2576) from ChrisPHP/MineClone2:grindstone_gui into master
Reviewed-on: MineClone2/MineClone2#2576
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-18 20:45:25 +00:00
Chris Page 652632a83d Updated mod.conf description 2022-08-18 20:37:22 +01:00
Chris Page af0f16f4ac Transfers custom name for books now 2022-08-18 20:25:43 +01:00
Chris Page 183830e0a6 Merge branch 'master' into grindstone_gui 2022-08-18 19:59:30 +01:00
Chris Page 9580fdb81b Added enchanted book to disenchant and drop items when destroyed 2022-08-18 19:45:30 +01:00
Chris Page 58d36d4596 Added xp earnt from disenchanting, code comments and updated item description 2022-08-17 21:47:00 +01:00
Chris Page 91a318ac4e Added name and curse transfer 2022-08-16 22:06:49 +01:00
cora 36c933dd5c Merge pull request 'Pillagers' (#2545) from pillagers into master
Reviewed-on: MineClone2/MineClone2#2545
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-15 23:58:17 +00:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 181eb96c6d Fix up pillagers 2022-08-16 01:53:42 +02:00
PrairieWind 092b746b0b Add Pillager and Evoker Spawning to Pillager Outpost 2022-08-16 01:53:42 +02:00
PrairieAstronomer 24939326c4 Fixed the pillager so he shoots, along with the animation 2022-08-16 01:53:42 +02:00
PrairieAstronomer a48664b8b3 Changed mobs to mcl_mobs in some spots 2022-08-16 01:53:42 +02:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 d7e950ab7b Pillagers: spawn with loaded crossbow 2022-08-16 01:53:42 +02:00
𝕵𝖔𝖍𝖆𝖓𝖓𝖊𝖘 𝕱𝖗𝖎𝖙𝖟 dd96dd097c Basic Pillagers 2022-08-16 01:53:42 +02:00
chmodsayshello 4b2e084c81 Merge pull request 'Update ingame credits' (#2571) from credit_update into master
Reviewed-on: MineClone2/MineClone2#2571
Reviewed-by: Nicu <kneekoo@noreply.git.minetest.land>
Reviewed-by: PrairieWind <prairie.astronomer1@gmail.com>
2022-08-15 18:17:04 +00:00
chmodsayshello 7ee38fef83 update credits (again) 2022-08-15 14:08:59 +00:00
cora 281e7273ef Merge pull request 'Fix 'spawn_in_group_min' warning' (#2567) from spawn_in_group_warning into master
Reviewed-on: MineClone2/MineClone2#2567
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-15 10:01:38 +00:00
cora f27b2d9714 Fix 'spawn_in_group_min' warning 2022-08-15 11:58:39 +02:00
cora 8666677ef2 Merge pull request 'Log player position on death' (#2568) from log_player_deathpos into master
Reviewed-on: MineClone2/MineClone2#2568
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-15 09:57:58 +00:00
cora ba35f19f71 Log player position on death
So people can find their items easier
2022-08-15 11:57:11 +02:00
cora c0edc00789 Merge pull request 'make endermen TP out of sunlight' (#2563) from endermen_suntp into master
Reviewed-on: MineClone2/MineClone2#2563
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-14 20:18:30 +00:00
cora fba63c4721 Merge branch 'master' into endermen_suntp 2022-08-14 20:15:38 +00:00
Chris Page d6a30cacc6 Added grindstone functionality support 2022-08-14 16:49:35 +01:00
cora cb83c34b52 Merge pull request 'registration of mapgen node functions was overwriting previously registered mapgen functions' (#2565) from FaceDeer/MineClone2:master into master
Reviewed-on: MineClone2/MineClone2#2565
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-14 09:38:17 +00:00
FaceDeer 1a09b5c132 fixing registration of node functions
"#registered_generators" was attempting to count a non-array table and was always returning 0. So every node function registered was named "mod_1" and overwrote each other in that index.

also, "nodes" wasn't counting node_functions, it was counting lvm_functions.
2022-08-14 01:11:30 -06:00
cora ecd1d13b43 Endermen TP out of sunlight
If not attacking a player endermen randomly tp around until they
find a spot that is not in direct sunlight
2022-08-13 23:23:01 +02:00
Chris Page a356be5f76 Merge pull request 'Merge with master.' (#1) from MineClone2/MineClone2:master into master
Reviewed-on: ChrisPHP/MineClone2#1
2022-08-13 10:14:27 +00:00
cora 77cb2277cd Merge pull request 'variable in mcl_beacons gets reinitalized for no reason' (#2562) from minor_beacon_codestyle_fix into master
Reviewed-on: MineClone2/MineClone2#2562
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-13 09:56:53 +00:00
chmodsayshello 21324aa0a5 variable in mcl_beacons gets reinitalized for no reason 2022-08-13 11:54:34 +02:00
cora b07652d6ca Merge pull request 'elytra physics overhaul' (#2511) from SumianVoice/MineClone2_c:elytra-overhaul into master
Reviewed-on: MineClone2/MineClone2#2511
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-13 09:52:21 +00:00
cora f48f158f50 Merge pull request 'Set version to 0.79 indev' (#2560) from release_0.78 into master
Reviewed-on: MineClone2/MineClone2#2560
2022-08-13 09:10:15 +00:00
cora 3cfa8a848b Set version to 0.79 indev 2022-08-13 03:14:29 +00:00
cora 9231ce0754 Merge pull request 'Release 0.78' (#2559) from release_0.78 into master
Reviewed-on: MineClone2/MineClone2#2559
2022-08-13 02:58:57 +00:00
cora 2290968ce9 Set version to 0.78 2022-08-13 04:55:20 +02:00
cora e8f39deede Update credits 2022-08-13 04:55:10 +02:00
cora f7ffa6f700 Merge pull request 'Fix villagers positional sounds' (#2556) from villager_sounds into master
Reviewed-on: MineClone2/MineClone2#2556
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-12 22:53:21 +00:00
cora 3620db7c14 Add objectref to villager sound_play for pos sound 2022-08-13 00:47:46 +02:00
cora 68d5a81b1c Villager sounds -> mono 2022-08-13 00:47:46 +02:00
cora 2d35292bc3 Merge pull request 'Enable shadows and waving liquids when supported (5.6)' (#2555) from shadows_waving into master
Reviewed-on: MineClone2/MineClone2#2555
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-12 22:07:55 +00:00
cora 7be8ab2c1c Send shadows to client if server supports it 2022-08-13 00:04:44 +02:00
cora 442fefebf2 Waving water 2022-08-13 00:04:44 +02:00
cora 0debaf12c0 Merge pull request '[heads] heads may now be placed on ceilings, upside down' (#2558) from heads_ceiling into master
Reviewed-on: MineClone2/MineClone2#2558
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-12 21:39:14 +00:00
iliekprogrammar 7482f84929
[heads] heads may now be placed on ceilings, upside down 2022-08-13 02:44:47 +08:00
cora 1bc082ee4f Merge pull request 'Fix items floating into the air under rare circumstances' (#2553) from fix_item_floating into master
Reviewed-on: MineClone2/MineClone2#2553
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-12 13:18:10 +00:00
Sumyjkl 16c9a83a96 fix items floating into the air under rare circumstances 2022-08-12 21:46:17 +10:00
Sumyjkl 307140b9a4 still over it 2022-08-12 13:03:11 +10:00
Sumyjkl 6cab000b2a fix merge conflict 2022-08-12 12:57:21 +10:00
Sumyjkl c36fd90965 Merge remote-tracking branch 'refs/remotes/mclmaster/master'
Conflicts:
	mods/PLAYER/mcl_playerplus/init.lua
2022-08-12 12:55:50 +10:00
Sumyjkl 97472becfc I'm over it. 2022-08-12 02:26:22 +10:00
cora c001d307f2 Merge pull request 'Swimming collides with ice properly (clean version of #2536)' (#2551) from ice_coll_fix_clean into master
Reviewed-on: MineClone2/MineClone2#2551
2022-08-11 13:39:38 +00:00
opfromthestart f0837bdee6 Swimming collides with ice properly 2022-08-11 15:35:40 +02:00
cora 435df92cf9 Merge pull request 'Parrot fixes' (#2549) from parrot_fixes into master
Reviewed-on: MineClone2/MineClone2#2549
2022-08-11 12:39:16 +00:00
cora 374e30b4a5 stay on players shoulder in when flying in creative 2022-08-11 14:32:58 +02:00
cora 6101de8d68 Fix parrot punch spam 2022-08-11 14:32:58 +02:00
cora 0bd0abc327 Merge pull request 'Some structures fixes' (#2541) from structure_fixes into master
Reviewed-on: MineClone2/MineClone2#2541
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-11 12:31:55 +00:00
cora 79ce9f89d3 More adaptive foundation height 2022-08-11 14:26:34 +02:00
cora 0bcbea4ce3 Add lots of water lakes to mangrove swamps 2022-08-11 14:26:34 +02:00
cora b7f26e2ddc Add setting to selectively disable strucutres 2022-08-11 14:26:34 +02:00
cora 4f96b38fa3 Make foundations less cubic 2022-08-11 14:26:34 +02:00
cora f1c70fe19d grass border for water lake 2022-08-11 14:26:34 +02:00
cora cef559c573 Fix ruined portals y offset 2022-08-11 14:26:34 +02:00
cora f86898b2f4 make ruined portals rarer 2022-08-11 14:26:34 +02:00
cora db2f2cfc69 Merge pull request '[heads] refactor, delete unnecessary textures and implement 16 direction head nodes' (#2550) from heads_16_direction into master
Reviewed-on: MineClone2/MineClone2#2550
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-11 12:25:34 +00:00
iliekprogrammar efd1a023f0
Merge remote-tracking branch 'origin/master' into heads_16_direction 2022-08-11 18:12:19 +08:00
iliekprogrammar de07209654
[heads] optimize textures
`optipng -strip all -o7 -zm9`
2022-08-11 17:34:20 +08:00
iliekprogrammar 29d221eed5
[heads] remove unnecessarily duplicative textures
these textures are unnecessary to texture the head nodes. we can reuse
the available armor texture for both the headgear/helmet and the nodes.
2022-08-11 17:28:37 +08:00
iliekprogrammar 44d234dd2c
[heads] implement 16 directional head node 2022-08-11 17:21:23 +08:00
iliekprogrammar 3ff9ed4419
[heads] refactor and trivial renames 2022-08-11 16:45:51 +08:00
cora 8ff938c3d0 Merge pull request 'Fix dispenser and dropper crash (in 5.4)' (#2544) from fix_dropper_dispenser_crash into master
Reviewed-on: MineClone2/MineClone2#2544
2022-08-10 15:10:40 +00:00
cora 34ecb782a8 Fix dispenser and dropper crashing in 5.4 2022-08-10 16:58:00 +02:00
cora 70656b42dc Merge pull request 'boats are removed upon being set on fire (#2529)' (#2540) from opfromthestart/MineClone2:boat-fire-fix into master
Reviewed-on: MineClone2/MineClone2#2540
2022-08-10 13:54:03 +00:00
cora 953fe4df39 Merge pull request 'Fix some warnings' (#2539) from fix_some_warnings into master
Reviewed-on: MineClone2/MineClone2#2539
2022-08-10 12:17:14 +00:00
cora e8baa1ae00 Fix undeclared var warning in mcl_weather 2022-08-10 14:14:00 +02:00
cora 701aee3238 Add modname to beacons mod.conf 2022-08-10 14:14:00 +02:00
cora 9603ee606c fix at mod loadtime warning in mcl_info 2022-08-10 14:14:00 +02:00
cora 2436a6d616 Merge pull request 'Fixed remaining get_sky calls (#2538)' (#2542) from opfromthestart/MineClone2:new_sky into master
Reviewed-on: MineClone2/MineClone2#2542
2022-08-10 11:41:19 +00:00
Sumyjkl 25491b3882 prevent player from gaining too much speed by pitching down and spamming jump 2022-08-10 13:24:08 +10:00
SumianVoice 22d296e898 Merge branch 'master' into elytra-overhaul 2022-08-10 00:02:47 +00:00
cora 9083552939 Merge pull request 'Pillager Outpost' (#2535) from pillager_outpost into master
Reviewed-on: MineClone2/MineClone2#2535
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-09 20:59:38 +00:00
PrairieWind 70277276b0 Adjusted spawn chance and fixed the walls on generation, thanks cora. 2022-08-09 10:30:48 -06:00
PrairieWind 84691c393d Pillager Outpost, Schematics by RandomLegoBrick 2022-08-09 10:30:48 -06:00
opfromthestart 5da6f6812f faster boat death 2022-08-09 12:23:44 -04:00
opfromthestart b8af222538 Fixed remaining get_sky calls 2022-08-08 20:26:31 -04:00
opfromthestart 8b06e5de87 Merge branch 'master' into boat-fire-fix 2022-08-09 00:16:14 +00:00
opfromthestart 76839961c6 Adds fire and lava collision to boats 2022-08-08 20:12:44 -04:00
cora 8d6a0bb564 Merge pull request 'fix deprecated player:get_sky (#2528)' (#2534) from opfromthestart/MineClone2:new_sky into master
Reviewed-on: MineClone2/MineClone2#2534
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-08 23:16:18 +00:00
opfromthestart e9954d1785 Merge branch 'master' into new_sky 2022-08-08 18:00:03 +00:00
Sumyjkl dd9c8b3f48 more accurate physics again, prevent slow servers having slower flight 2022-08-08 11:50:23 +10:00
Sumyjkl 45c93e0340 accurater physics, can't spam jump to gain speed on flat ground (needs work to allow mc like boosting) 2022-08-08 10:50:06 +10:00
SumianVoice eeca224f7b Merge branch 'master' into elytra-overhaul 2022-08-08 00:19:26 +00:00
opfromthestart 866711a4aa Changed to new get_sky method 2022-08-07 18:19:12 -04:00
cora 96ceb2fabb Merge pull request 'Light Level and Texture Clip Warning Fixes' (#2527) from fix_campfire_errors into master
Reviewed-on: MineClone2/MineClone2#2527
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-07 21:40:21 +00:00
PrairieAstronomer a34c9172c4 Fixed light levelwarnings and texture alpha warnings in stonecutter, campfires, and beacon 2022-08-07 21:38:40 +00:00
cora 2c814db0d7 Merge pull request 'Snow layers and blocks drop nothing by hand' (#2532) from SumianVoice/MineClone2_c:snow_drop_fix into master
Reviewed-on: MineClone2/MineClone2#2532
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-07 21:36:22 +00:00
cora 7b92bb89ce Merge pull request '[5.6] safely handle entities involving set_hp' (#2526) from iliekprogrammar/MineClone2:safe_entity_handling into master
Reviewed-on: MineClone2/MineClone2#2526
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-07 21:05:11 +00:00
Sumyjkl 99eca2ceb9 player will not be upside down when flying or swimming 2022-08-08 02:05:03 +10:00
Sumyjkl 9fdcfcd898 significanltly more accurate values, much slower, more reliable physics, more comments 2022-08-08 00:05:00 +10:00
Sumyjkl 5a8216ba43 moved functions and constants out of global step (oops) 2022-08-07 23:12:57 +10:00
SumianVoice 49089ed8c4 Merge branch 'master' into elytra-overhaul 2022-08-07 10:18:14 +00:00
Sumyjkl f6148068c5 snow layers and blocks drop nothing by hand 2022-08-07 19:55:01 +10:00
iliekprogrammar 0e999d8bb9
[5.6] remove incorrect marks.
wrong, bad. these are fine.
2022-08-07 13:00:43 +08:00
iliekprogrammar 156aff21a1
[5.6][bows] fix unsafe entity handling for arrows 2022-08-07 12:48:09 +08:00
iliekprogrammar 4f2789c498
[5.6][armor] fix unsafe entity handling (unsure)
i'm not sure about this one, can't fnd a suitable test for it.
2022-08-07 12:43:24 +08:00
iliekprogrammar bf80074d98
[5.6][mobs] fix unsafe entity handling (unsure)
i'm not sure about this one, can't find a suitable test for it.
2022-08-07 12:38:26 +08:00
iliekprogrammar 4b31692319
[5.6][boats] fix unsafe entity handling
this probably does not affect normal gameplay, unless you can set boats on fire somehow
2022-08-07 12:09:12 +08:00
iliekprogrammar bce4d29737
[5.6][lightning] fix unsafe entitiy handling
this does not excuse all on_strike callbacks to allow oversights.
it must also track entity removal.
2022-08-07 10:44:13 +08:00
iliekprogrammar 221ee0fcf1
[5.6] mark places with unsafe set_hp entity handling
There might be other places i might be missing, but these are the obvious ones.

leftover entity handling i did not mark:
* everything that involves a apply()-like algorithm (e.g. callbacks) over the
  same list of objects.
* in mcl_damage, it's not known whether mcl_damage.from_mt() would involve
  entity handling or just player handling.
2022-08-07 00:13:03 +08:00
Sumyjkl 02c92dc6f8 fix getting wrong node 2022-08-07 01:05:39 +10:00
Sumyjkl 509fadfebb fix is_pressing_jump being global 2022-08-07 00:38:20 +10:00
Sumyjkl 1263c43b5d elytra and other non-combat armour don't take durability damage when the player is attacked 2022-08-06 14:38:42 +10:00
Sumyjkl cd6da88b37 tweaks again 2022-08-05 14:43:48 +10:00
cora 3922c5bdca Merge pull request 'Nerf shipwreck loot' (#2519) from fix_shipwreck_loot into master
Reviewed-on: MineClone2/MineClone2#2519
Reviewed-by: chmodsayshello <chmodsayshello@hotmail.com>
2022-08-04 22:58:27 +00:00
cora 27304d5d96 Nerf shipwreck loot 2022-08-04 04:21:59 +02:00
cora c8012ccffd Merge pull request 'add dependency for mcl_weather to mcl_burning to hopefully avoid crashes' (#2516) from SumianVoice/MineClone2_c:mcl_burning_depend into master
Reviewed-on: MineClone2/MineClone2#2516
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-04 01:49:13 +00:00
SumianVoice 3f73dc1794 Merge branch 'master' into mcl_burning_depend 2022-08-03 12:55:07 +00:00
Sumyjkl eb89466436 add dependency for mcl_weather to mcl_burning to hopefully avoid crashes 2022-08-03 22:45:15 +10:00
cora d1d2b03635 Merge pull request 'Add mangrove swamps' (#2503) from mangrove_swamps into master
Reviewed-on: MineClone2/MineClone2#2503
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-03 10:39:20 +00:00
cora e901003e22 Fix mangrove (trap)door, stair and slab recipes 2022-08-03 11:57:17 +02:00
Sumyjkl 3c0992e58d tweaks 2022-08-03 18:41:51 +10:00
cora c36b359c70 Fix mangrove roots and water logged roots(somewhat) 2022-08-03 00:00:44 +02:00
cora 191e117e05 Axe can strip mangrove wood 2022-08-02 23:51:48 +02:00
Sumyjkl 4df51bac72 code quality, minor tweaks 2022-08-03 01:03:28 +10:00
Sumyjkl b7a5a74ccf less pitch up slowdown 2022-08-03 00:14:31 +10:00
Sumyjkl ece79cad8a prevent player from getting hyperspeed while flying from ground 2022-08-03 00:08:30 +10:00
Sumyjkl 845e43c143 tweaked several things 2022-08-02 23:51:21 +10:00
Sumyjkl aa93ce4b3a tweaked slowdown on pitch up 2022-08-02 23:45:20 +10:00
Sumyjkl 12af0e7de8 semi-working on 0.3 server step 2022-08-02 23:42:04 +10:00
Sumyjkl 32a57133ac use dtime 2022-08-02 22:47:51 +10:00
Sumyjkl 5c085bd28f prevent player gaining infinite momentum by spamming jump while running, added dtime dependent velocity 2022-08-02 22:06:19 +10:00
Sumyjkl c80012a14f fix gravity not being reset when died after rocketing 2022-08-02 21:23:05 +10:00
SumianVoice e28c0d311a Merge branch 'master' into elytra-overhaul 2022-08-02 10:27:14 +00:00
cora 1065165952 fix mangrove trapdoor 2022-08-02 12:06:13 +02:00
cora c0fec69c70 Add plantlike_rooted propagules 2022-08-02 12:02:20 +02:00
cora 844cf6c5dc Fix waterlogged texture to be animated 2022-08-02 12:02:20 +02:00
cora 2b90675ea2 fix warnings 2022-08-02 12:02:20 +02:00
cora 8e41d5a1f4 Fix propagule growth 2022-08-02 12:02:20 +02:00
cora 811d7a778f Add tall mangrove tree schematics 2022-08-02 12:02:20 +02:00
cora 4491e962d5 grand mcl_mangrove cleanup 2022-08-02 12:02:20 +02:00
cora 77c878f609 make waterlogged roots work with river water 2022-08-02 12:02:20 +02:00
cora 51f79eaa39 Add lilypads and dead bushes 2022-08-02 12:02:20 +02:00
cora 3bf45ec4e9 Spawn mangroves in shallow water, fix schematics 2022-08-02 12:02:20 +02:00
cora e8fc56ab33 Fix water- and mudlogged roots, add w. logging abm 2022-08-02 12:02:20 +02:00
cora f003aefe19 allow coral reefs in MangroveSwamps 2022-08-02 12:02:20 +02:00
Thunder1035 d284ddf150 Add mangrove trees 2022-08-02 12:02:20 +02:00
cora 09889ca927 Add MangroveSwamp biome defs 2022-08-02 12:02:20 +02:00
cora 22dac6cc5c Merge pull request 'Biome specific weather' (#2505) from fix-biome-weather into master
Reviewed-on: MineClone2/MineClone2#2505
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-02 10:00:55 +00:00
cora 4b5476dbff fix end sky and void crash 2022-08-02 11:55:55 +02:00
cora a2b003a195 sky slightly overcast on weather in non-weather b. 2022-08-02 11:55:55 +02:00
cora ee3b98c809 Fix skybox in non-weather areas 2022-08-02 11:55:55 +02:00
cora 4a6f98636d fix crash in mapgen v6 2022-08-02 11:55:55 +02:00
cora cae11f99e4 fix wrong mapgen setting var 2022-08-02 11:55:55 +02:00
cora bb496db605 use _mcl_biome_type for weather 2022-08-02 11:55:55 +02:00
cora 50840f6bdc No nether rain lol 2022-08-02 11:55:55 +02:00
cora 05a6f09f05 Never rain in deserts 2022-08-02 11:55:55 +02:00
cora 2aaeed7720 Pile up snow while snowing 2022-08-02 11:55:55 +02:00
cora eb5378afec Rain and snow where appropriate(biome, heat, alt) 2022-08-02 11:55:55 +02:00
SumianVoice fab3c35c28 Merge branch 'master' into elytra-overhaul 2022-08-02 09:44:51 +00:00
Sumyjkl 0f6a51a031 remove unused file scope variables 2022-08-02 18:39:15 +10:00
Sumyjkl 1468acf6d4 move player up to give clearance when start flying 2022-08-02 18:26:00 +10:00
Sumyjkl 5fd66d1850 can pitch up without losing too much speed 2022-08-02 18:12:15 +10:00
cora a9e139f27d Merge pull request 'beacon optimisations' (#2512) from beacons_cleanup into master
Reviewed-on: MineClone2/MineClone2#2512
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-08-01 23:08:31 +00:00
chmodsayshello f949c72945 make abm check param2 for up-to date beam color 2022-08-01 23:06:02 +00:00
chmodsayshello e979535256 convert spaces into tabs 2022-08-01 23:06:02 +00:00
chmodsayshello e344d1c742 remove itemstring debug logging 2022-08-01 23:06:02 +00:00
chmodsayshello 10d200da80 beacon optimisations 2022-08-01 23:06:02 +00:00
Sumyjkl 8378ca92e2 turning slows the player down in fly mode 2022-08-02 08:20:08 +10:00
Sumyjkl 2b5e3b5123 code quality: combine add_velocity calls into one 2022-08-02 00:14:24 +10:00
Sumyjkl 368ffda75b can only fly when pressed jump and cannot hold jump to enter fly mode, set speed to player velocity when entered fly mode 2022-08-01 23:45:41 +10:00
Sumyjkl cd62278336 improved code quality 2022-08-01 23:01:27 +10:00
Sumyjkl 9e1b0184c5 fireworks function, slight balancing, removed debug starting speed 2022-08-01 22:15:36 +10:00
Sumyjkl 20b229a9b9 pitching up too far can make player fall fast 2022-08-01 20:53:35 +10:00
Sumyjkl 832b0afdd6 more reasonable values 2022-08-01 20:51:08 +10:00
Sumyjkl 177cf231b6 make elytra better again 2022-08-01 20:34:56 +10:00
Sumyjkl 696cc150b4 broke elytra 2022-08-01 20:12:53 +10:00
cora a687d9069c Merge pull request 'Make boats unsinkable in river water' (#2510) from riverwater_boats into master
Reviewed-on: MineClone2/MineClone2#2510
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-08-01 09:46:30 +00:00
Sumyjkl 8f4388c4c8 elytra less sensitive to landing, allows entering flight without as much downward velocity 2022-08-01 17:42:43 +10:00
cora eb7171fd51 Make boats unsinkable in river water 2022-08-01 05:20:19 +02:00
cora 2d97817991 Merge pull request 'beacons' (#2483) from beacons into master
Reviewed-on: MineClone2/MineClone2#2483
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-31 20:24:03 +00:00
chmodsayshello 4d52c0d9c6 glass no longer has to be right on top of the beacon 2022-07-31 22:22:57 +02:00
chmodsayshello 1830ca8815 'fix' beacon beam abm 2022-07-31 22:22:57 +02:00
chmodsayshello 1462c39092 remove unnecessary minetest.get_node 2022-07-31 22:22:57 +02:00
chmodsayshello ca77ffe1c7 decrease blockcheck by 25 nodes
that way, even with the lowest possible render distance, all nodes are loaded, if there are no nodes above the beacon (excluding glass etc.), it sets the meta and places the beam 175 blocks high, it extends all the way until the next non-air block if the player is near enoght...

Signed-off-by: chmodsayshello <chmodsayshello@hotmail.com>
2022-07-31 22:22:57 +02:00
chmodsayshello d3eccce013 fix color palette 2022-07-31 22:22:57 +02:00
chmodsayshello b9cb3a4d70 optimisations 2022-07-31 22:22:57 +02:00
chmodsayshello 022fa1d794 remove last beam completly before placing a new one 2022-07-31 22:22:57 +02:00
chmodsayshello 6ae9e6f873 minor optimisations 2022-07-31 22:22:56 +02:00
chmodsayshello dd9e6e5d6b mesh by Sumi 2022-07-31 22:22:56 +02:00
chmodsayshello 65171a34a8 prevent pistons from pushing beacon beams 2022-07-31 22:22:56 +02:00
chmodsayshello 2d407f8897 change 301 to 501 here as well 2022-07-31 22:22:56 +02:00
chmodsayshello d15ad61038 remove unnecessary minetest.log call 2022-07-31 22:22:56 +02:00
chmodsayshello 1fdd6a4707 glass changes color of beacon beam 2022-07-31 22:22:56 +02:00
chmodsayshello 56f3f0503e minor changes 2022-07-31 22:22:56 +02:00
chmodsayshello e0a205bdcc translation template + german translation 2022-07-31 22:22:56 +02:00
chmodsayshello 38d4e7afc9 changing some comments 2022-07-31 22:22:56 +02:00
chmodsayshello 154da96cb0 add beacon beam 2022-07-31 22:22:56 +02:00
chmodsayshello a5e1a00cd8 Use overlay properly in mcl_achievements 2022-07-31 22:22:56 +02:00
chmodsayshello 9e6af33469 drop items once beacon gets destroyed 2022-07-31 22:22:56 +02:00
chmodsayshello f7028bc836 'fix' beacon texture 2022-07-31 22:22:56 +02:00
chmodsayshello f6ce37f2b9 add netherite to beacon materials 2022-07-31 22:22:56 +02:00
chmodsayshello 18888d3ad8 make beacons mineable 2022-07-31 22:22:56 +02:00
chmodsayshello a3adb3d80a beacon crafting recipie 2022-07-31 22:22:56 +02:00
chmodsayshello 74e3dfa0d7 beacon related achievements 2022-07-31 22:22:56 +02:00
chmodsayshello cc877e1264 fix mayor multiplayer bug
because i escape the loop using return after applying the effect to ONE player, which causes the other ones to not get the effect
2022-07-31 22:22:56 +02:00
chmodsayshello a33d3e68a2 check if there are no blocks above beacons 2022-07-31 22:22:56 +02:00
chmodsayshello 9433cbe5a5 remove unnecessary code 2022-07-31 22:22:56 +02:00
chmodsayshello 6a7626e122 use globalstep instead of abm 2022-07-31 22:22:56 +02:00
chmodsayshello ef659bc5a9 remove debug logging 2022-07-31 22:22:56 +02:00
chmodsayshello eac55ecea4 upload mod (mcl_beacons) itself 2022-07-31 22:22:56 +02:00
chmodsayshello 86be87f263 upload textures 2/2 2022-07-31 22:22:56 +02:00
chmodsayshello f310395675 upload textures 1/2 2022-07-31 22:22:56 +02:00
chmodsayshello 17053a8420 add mod.conf 2022-07-31 22:22:56 +02:00
cora 4e12781822 Merge pull request 'Make riverwater transparent' (#2508) from transparent-river-water into master
Reviewed-on: MineClone2/MineClone2#2508
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-31 14:34:45 +00:00
cora d6bfe9eb50 Fix filesizes & saturation 2022-07-31 16:14:05 +02:00
cora 12180b93a0 Make riverwater transparent 2022-07-31 16:14:05 +02:00
cora e195e9908f Merge pull request 'Fix Water in Nether Using Fish Buckets' (#2506) from water_in_nether_fix into master
Reviewed-on: MineClone2/MineClone2#2506
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-30 22:23:15 +00:00
PrairieAstronomer 64f810ac76 Removed some unnessary code 2022-07-30 12:40:04 -06:00
PrairieAstronomer a153e5bc33 Fixed Place Water in the Nether with Fish Buckets. 2022-07-30 12:21:16 -06:00
cora 56f5ffc09c Merge pull request 'Fix crash when using /spawnstruct in singlenode mg' (#2502) from fix-singlenode-spawnstruct into master
Reviewed-on: MineClone2/MineClone2#2502
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-28 10:17:15 +00:00
cora 9b9f9d9b0c Fix crash when using /spawnstruct in singlenode mg 2022-07-28 08:49:59 +00:00
cora eaf4eb3945 Merge pull request 'Items float when in water / liquids and other changes' (#2481) from SumianVoice/MineClone2_c:item_floating into master
Reviewed-on: MineClone2/MineClone2#2481
2022-07-28 02:03:35 +00:00
Sumyjkl 86d6445f42 fix crash when items in unloaded chunk 2022-07-28 11:10:56 +10:00
SumianVoice 3abeed3025 Merge branch 'master' into item_floating 2022-07-28 00:55:55 +00:00
cora f57ec267c6 Merge pull request 'Walkover mod: fix walkover being triggered even when standing far above the block' (#2496) from SumianVoice/MineClone2_c:better_magma_damage into master
Reviewed-on: MineClone2/MineClone2#2496
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-27 23:33:47 +00:00
Sumyjkl 93e0e0607e walkover globalstep timer changed to align with mc time for damage and other actions 2022-07-26 23:21:56 +10:00
Sumyjkl 9cd454f9d7 magma no longer damages player on halfslabs 2022-07-26 23:16:14 +10:00
SumianVoice c93461ee0a Merge branch 'master' into item_floating 2022-07-26 10:21:17 +00:00
Sumyjkl 70b7655e46 various code style improvements 2022-07-26 20:20:13 +10:00
cora fac88fc53d Merge pull request 'Fix long globalstep for inactive shields' (#2489) from fix-shields-gs into master
Reviewed-on: MineClone2/MineClone2#2489
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-25 22:41:59 +00:00
cora 1743b8791b Fix long globalstep for inactive shields 2022-07-26 00:36:54 +02:00
cora e6d1f603ff Merge pull request 'Fix globalstep in mcl_hunger taking a long time' (#2491) from fix-hunger-gs into master
Reviewed-on: MineClone2/MineClone2#2491
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-25 22:33:27 +00:00
cora f1915ef2f1 Fix globalstep in mcl_hunger taking a long time 2022-07-26 00:27:34 +02:00
cora 3a09405a1c Merge pull request 'Added raw ores to iron and gold ore drops' (#2490) from raw_ore_drops into master
Reviewed-on: MineClone2/MineClone2#2490
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-25 22:24:59 +00:00
PrairieAstronomer c6644a3fd1 Change raw ore block cooktime to 90. 2022-07-26 00:23:09 +02:00
PrairieAstronomer 40d993764b Added Raw Ore Block Smelting Recipe
Added Raw Ore Block Smelting. Also fixed the whitespace in the raw ore init file.
2022-07-26 00:23:09 +02:00
PrairieAstronomer b2a73f26d7 Added fortune drops to iron and gold ores 2022-07-26 00:23:09 +02:00
PrairieAstronomer e3f8dd158e Added raw ores to iron and gold ore drops 2022-07-26 00:23:09 +02:00
cora 5a90f34edb Merge pull request 'Withering Heights Advancement' (#2492) from wither_advancement into master
Reviewed-on: MineClone2/MineClone2#2492
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-25 21:59:27 +00:00
PrairieAstronomer f84063ad0a Withering Heights Advancement 2022-07-25 11:48:38 -06:00
cora a9a8a18b9b Merge pull request 'Add tropical fish' (#2485) from tropical_fish into master
Reviewed-on: MineClone2/MineClone2#2485
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-24 22:00:28 +00:00
cora 0b729d7ada Fix wrong drops itemstring 2022-07-24 23:52:42 +02:00
PrairieAstronomer 3aa26cac14 Tropical Fish Bucket
Adds the bucket of tropical fish.
2022-07-24 23:52:42 +02:00
cora 3a47e8a2f9 Add tropical fish 2022-07-24 23:52:41 +02:00
cora fe4055c5cf Merge pull request 'Fix mcl_sprint globalstep taking way too long' (#2487) from fix_sprinting_gs into master
Reviewed-on: MineClone2/MineClone2#2487
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-24 21:40:20 +00:00
cora 8556226cf7 Move check to the top of the function 2022-07-24 23:38:24 +02:00
cora 323a1f6e18 Fix mcl_sprint globalstep taking long 2022-07-24 12:55:37 +02:00
cora 306c0d99ef Merge pull request 'Next mobs-redo batch' (#2480) from mobs-redo-merge into master
Reviewed-on: MineClone2/MineClone2#2480
2022-07-24 10:00:17 +00:00
Sumyjkl 5fc662664f cactus will act as if dug instead of its own hardcoded breaking function 2022-07-24 15:59:00 +10:00
Sumyjkl 6278fa21d3 Removed an entire block of code that was duplicate and didn't do anything 2022-07-23 16:41:41 +10:00
Sumyjkl fb28177ff1 items will stay put when loaded, items dug by the game will get more initial random velocity, game will no longer apply random velocity twice (?) 2022-07-23 16:10:52 +10:00
Sumyjkl 65e42845f4 netherite armour no longer burns in lava 2022-07-22 23:18:51 +10:00
Sumyjkl 58d80e5e9c netherite items (except armour) will float in lava and not burn 2022-07-22 23:06:35 +10:00
Sumyjkl eeace260fe don't disable physics if you've already disabled it 2022-07-22 22:45:22 +10:00
Sumyjkl 65fc5b6f28 droppers and dispensers actually shoot items out, items will merge with eachother even when floating 2022-07-22 22:38:36 +10:00
Sumyjkl dc6fbeeafd items will go into sleep mode even if there's a block above as long as it's not a liquid 2022-07-22 16:55:42 +10:00
Sumyjkl 70aca4c3ca fix infinite bobbing 2022-07-22 16:19:50 +10:00
Sumyjkl 9daac0aff1 make items float in water sources 2022-07-22 15:34:58 +10:00
cora acbf043df0 Check 3 nodes above for enderman spawn 2022-07-22 03:27:41 +02:00
cora 2ba1a40820 Add ghasts specific spawning conditions 2022-07-22 03:27:41 +02:00
cora 94f0d679f2 Add can_spawn callback in mob api 2022-07-22 03:27:41 +02:00
cora 32ac2ffeb8 remove unused alias_mob function 2022-07-22 03:27:41 +02:00
Sumyjkl 68e1fdde36 fixed comment about creative 2022-07-22 03:27:41 +02:00
Sumyjkl fbfc53ff42 eat sound will play even when feeding in creative 2022-07-22 03:27:41 +02:00
Sumyjkl d8172e404e wolf when tamed will retain its health and not heal to full hp 2022-07-22 03:27:41 +02:00
Sumyjkl 3852c0297f changed API to recognise sitting order, added animations for sitting and idle, dog will no longer walk around while in sit mode 2022-07-22 03:27:41 +02:00
Sumyjkl c60002b18d set tamed 2022-07-22 03:27:41 +02:00
Sumyjkl 4920ef0fd5 allow wolf to be bred like other animals 2022-07-22 03:27:41 +02:00
cora 96b628d418 Sheep run away when hit 2022-07-22 03:27:41 +02:00
cora 69c689bfb7 make llamas retaliate by spitting.
it's a bit picky when and how it will spit still but works.
2022-07-22 03:27:41 +02:00
cora b7a0460b15 Reset aggro when player far 2022-07-22 03:27:41 +02:00
SumianVoice cfb6b6003c Update api.lua 2022-07-22 03:27:41 +02:00
SumianVoice a6eae1e95e don't tame baby animals yet 2022-07-22 03:27:41 +02:00
SumianVoice 682b61ad4a make sure you can't heal and tame at the same time 2022-07-22 03:27:41 +02:00
SumianVoice 524da8a6cb move heal under tame so that you can tame an animal and then heal it, like in MC 2022-07-22 03:27:41 +02:00
SumianVoice e6a97031ef remove unnecessary check 2022-07-22 03:27:41 +02:00
SumianVoice 120b096fc8 move self.food check 2022-07-22 03:27:41 +02:00
SumianVoice 9d52fed357 non-tamable mobs will not send tame param to feed_tame func,
changed event flow so it tries in order: heal, tame, breed, grow child
2022-07-22 03:27:41 +02:00
SumianVoice e5c1da4380 make it check not child, since the return statement was removed 2022-07-22 03:27:41 +02:00
SumianVoice a07a5b24bd animals don't take food from player unless it is used for something 2022-07-22 03:27:41 +02:00
SumianVoice c626c977d1 Update api.lua 2022-07-22 03:27:41 +02:00
cora 69d1c26a15 Merge pull request 'mcl_dripping: Fix wrong sound position' (#2471) from dripping_particles into master
Reviewed-on: MineClone2/MineClone2#2471
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-21 10:05:57 +00:00
cora e1130a105f fix wrong sound position 2022-07-21 12:03:46 +02:00
cora cae53a8230 Merge pull request 'Add shadow under grass texture like on paths' (#2472) from SumianVoice/MineClone2_c:add_shadow_on_dirt into master
Reviewed-on: MineClone2/MineClone2#2472
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-21 10:03:01 +00:00
SumianVoice a35ec2e994 Merge branch 'master' into add_shadow_on_dirt 2022-07-21 10:02:17 +00:00
cora f8f44ddef0 Merge pull request 'Implement slimeblock piston launchers:' (#2474) from slimepistonlauncher into master
Reviewed-on: MineClone2/MineClone2#2474
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-21 09:54:20 +00:00
Sumyjkl cf8bbfef7b add similar shading to podzol, change to overlay for adding shading to grass 2022-07-21 19:53:39 +10:00
MysticTempest 2fd9e2ad53 Implement slimeblock piston launchers:
Adds the mechanic of launching entities standing on, or in
front of slimeblocks; which are attached to, and pushed by pistons.
2022-07-21 02:30:30 -05:00
Sumyjkl 16d65d25f2 added exact replica shading to grass block 2022-07-21 00:47:01 +10:00
Sumyjkl f214e2c1ad make snow dirt shadow less intense 2022-07-20 22:37:14 +10:00
Sumyjkl f9602c3ebb add shadow under grass and snow texture 2022-07-20 22:32:22 +10:00
cora 7d57b3448a Merge pull request 'Never show nitwit trading formspec' (#2466) from no-nitwit-trading into master
Reviewed-on: MineClone2/MineClone2#2466
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-20 10:37:30 +00:00
cora 54337e9854 never show nitwit trading formspec 2022-07-19 11:46:28 +02:00
cora e03801d45d Merge pull request 'Add debug hud' (#2459) from debug_hud into master
Reviewed-on: MineClone2/MineClone2#2459
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-19 09:29:36 +00:00
cora 37114e7d1a Add API documentation 2022-07-19 11:15:08 +02:00
cora ac45ed8a0a coord and biome use api too, fields well ordered 2022-07-19 11:15:08 +02:00
cora 7e6daa0e60 Add api to register custom debug fields
also add node info as first fields
2022-07-19 11:15:08 +02:00
cora 39b9a058e9 Save persistent setting in player meta 2022-07-19 11:15:08 +02:00
cora 00ef88e01c fix mistakes from mcl5 import, clean up output 2022-07-19 11:15:08 +02:00
kay27 d5b2e60e32 #278 Rename default_dbg to default_debug 2022-07-19 11:15:08 +02:00
kay27 cb2852e88f #233 Add /debug chat command 2022-07-19 11:15:08 +02:00
kay27 47719872e4 [hud] Show player biome and position 2022-07-19 11:15:08 +02:00
cora 024905f4ad Merge pull request 'no suffocation damage when swimming under a roof' (#2451) from SumianVoice/MineClone2_c:swimming_fix into master
Reviewed-on: MineClone2/MineClone2#2451
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-19 02:55:36 +00:00
SumianVoice d54d8fc657 Merge branch 'master' into swimming_fix 2022-07-19 02:32:19 +00:00
cora 169a43ab08 Merge pull request 'Change dripping entities to particles' (#2457) from dripping_particles into master
Reviewed-on: MineClone2/MineClone2#2457
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-18 20:33:42 +00:00
cora d89ef0581f Optimize ABMs 2022-07-18 22:28:02 +02:00
cora 0298cecbcd change dripping entities to particles 2022-07-18 22:28:02 +02:00
cora d45fc46d0e Merge pull request 'Improve crying obsidian visuals once more' (#2454) from crying_obby_particles_2 into master
Reviewed-on: MineClone2/MineClone2#2454
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-18 20:24:26 +00:00
cora da4aa9bc35 improve crying obsidian visuals 2022-07-18 22:21:58 +02:00
SumianVoice 1e41f403d3 Merge branch 'master' into swimming_fix 2022-07-18 05:03:46 +00:00
cora 29a97efc3f Merge pull request 'Fix nether dust particles using wrong setting' (#2449) from fix_dust_particle_setting into master
Reviewed-on: MineClone2/MineClone2#2449
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-18 03:33:05 +00:00
cora a3596d22e3 Fix nether dust particles using wrong setting 2022-07-18 05:30:37 +02:00
cora 396b65ca04 Merge pull request 'Several mob spawning and mob api fixes' (#2452) from mob_fixes into master
Reviewed-on: MineClone2/MineClone2#2452
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-18 03:23:17 +00:00
cora 68d45ff606 Remove MushroomIsland from several mobs spawn list 2022-07-18 02:11:48 +02:00
cora bf756403a3 Fix animals attacking players for no reason 2022-07-18 00:10:23 +00:00
cora 99037cb0ec adapt several mob spawning conditions to mc 2022-07-18 00:10:23 +00:00
cora 1087d9e54b Implement mc like mob cap 2022-07-18 00:10:23 +00:00
cora 2d3f4531c9 Add mob spawning debug command 2022-07-18 00:10:23 +00:00
cora 987ae3c6e8 Fix mobs spawning inside nodes 2022-07-18 00:10:23 +00:00
cora 3a32e4e4e9 Never spawn mobs on bedrock 2022-07-18 00:10:23 +00:00
cora 9883a37754 Enable group spawning for all mobs, add mc values 2022-07-18 00:10:23 +00:00
cora a68343b71d Add group spawning minimum attribute 2022-07-18 00:10:23 +00:00
cora a077e4535f Fix non-monsters being unable to attack
A check in the relevant function excluded all non-monsters from
looking for targets to attack. This removes that check and relies
on the passive attribute of the entity
2022-07-18 00:10:23 +00:00
SumianVoice 194d8525c4 Merge branch 'master' into swimming_fix 2022-07-18 00:09:47 +00:00
SumianVoice de0a78012d fix getting stuck under non-opaque blocks 2022-07-18 10:09:04 +10:00
cora 43b888968b Merge pull request 'Make parrots imitate nearby mobs by replaying their sounds with higher pitch' (#2453) from parrot_imitate into master
Reviewed-on: MineClone2/MineClone2#2453
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-18 00:04:44 +00:00
cora a49e66dbd3 Detection radius is 20 according to the wiki 2022-07-17 23:42:34 +02:00
cora e9ad2cfe11 Make parrots imitate nearby mobs 2022-07-17 23:34:39 +02:00
SumianVoice 0158681cf8 Merge branch 'master' into swimming_fix 2022-07-17 13:15:18 +00:00
Sumyjkl 9062a6e22e add node_head_top to check to make sure you won't clip through blocks before going out of swim / fly mode 2022-07-17 23:14:24 +10:00
Sumyjkl a41cbb7ebf added comment and removed unnecessary code 2022-07-17 22:50:22 +10:00
Sumyjkl 4738834ddd remove unecessary code 2022-07-17 22:40:33 +10:00
Sumyjkl 2e06e22d70 removed unnecessary node_above_head variable 2022-07-17 21:50:22 +10:00
Sumyjkl e4c7d575fc take no damage when swimming near roof, no ability to no-clip through roof when swimming 2022-07-17 21:46:36 +10:00
cora c20a8877ca Merge pull request 'Set version to 0.78 (indev)' (#2448) from release_0.77 into master
Reviewed-on: MineClone2/MineClone2#2448
2022-07-16 15:50:32 +00:00
cora 91d36a20d7 Set version to 0.78 (indev) 2022-07-16 17:49:31 +02:00
cora 6dfe57e301 Merge pull request 'Release 0.77 - The Netheraquatics update' (#2443) from release_0.77 into master
Reviewed-on: MineClone2/MineClone2#2443
2022-07-16 15:27:33 +00:00
cora 433242b247 Some more additions to CREDITS.md 2022-07-16 16:41:58 +02:00
cora 0e60f0ca5c Update CREDITS.md 2022-07-16 15:53:46 +02:00
cora 0b3f9d66a4 Update some wordings in readme, remove 1.12 target 2022-07-16 15:53:46 +02:00
cora ecea1224fc Set version to 0.77 in readme 2022-07-16 15:53:46 +02:00
cora 2da4962835 Merge pull request 'Arrows check if PVP is enabled by @pepebotella' (#2438) from arrow-pvp into master
Reviewed-on: MineClone2/MineClone2#2438
2022-07-16 13:05:58 +00:00
cora 0b157c953f fix wrong argument to sound_play 2022-07-16 12:12:28 +00:00
cora bf23c61e34 skip damage completely when player & pvp disabled 2022-07-16 12:12:28 +00:00
cora 77d834ac5e Add PVP check to tipped arrows 2022-07-16 12:12:28 +00:00
cora b7f8a75d04 Add PVP check for rocket arrows 2022-07-16 12:12:28 +00:00
Freedom 454d7e8b04 arrow check if pvp is enable 2022-07-16 12:12:28 +00:00
cora ac5682d509 Merge pull request 'Add ancient debris as normal ore' (#2447) from ancient_debris_ore into master
Reviewed-on: MineClone2/MineClone2#2447
Reviewed-by: MysticTempest <mystictempest@noreply.git.minetest.land>
2022-07-16 04:49:01 +00:00
cora 8ff559d4ad Add ancient debris as normal ore 2022-07-16 02:07:17 +02:00
cora 29d833eb6e Merge pull request 'Add spanish mobs_mc translation updates by pepebotella' (#2437) from mobs_i18n_es into master
Reviewed-on: MineClone2/MineClone2#2437
2022-07-15 22:56:35 +00:00
Freedom 27482ede7f update locale es 2022-07-15 22:55:03 +00:00
cora 8f875395ea Merge pull request 'Fix villager crash when opening iron doors' (#2440) from fix_mobs_doors_rightclick into master
Reviewed-on: MineClone2/MineClone2#2440

Tested by @kwadroke in MineClone2/MineClone2#2439 (comment)
2022-07-15 22:13:38 +00:00
cora ee9cc5341b Fix villager crash when opening iron doors 2022-07-15 22:11:07 +00:00
cora 43a343a832 Merge pull request 'Fix create_luacheck' (#2441) from Lazerbeak12345/MineCloneJEpC:lazerbeak-fix-create_luacheck into master
Reviewed-on: MineClone2/MineClone2#2441
Reviewed-by: cora <cora@noreply.git.minetest.land>
2022-07-15 22:09:27 +00:00
Nathan Fritzler e413bbaf36
Fix create_luacheck
I've tested this code.
2022-07-15 13:24:45 -06:00
306 changed files with 6271 additions and 1413 deletions

View File

@ -27,6 +27,11 @@
* Code-Sploit
* NO11
* kabou
* rudzik8
* chmodsayshello
* PrarieWind
* RandomLegoBrick
* SumianVoice
## Contributors
* Laurent Rocher
@ -71,6 +76,12 @@
* Sven792
* aldum
* Dieter44
* Pepebotella
* MrRar
* Lazerbeak12345
* mrminer
* Thunder1035
* opfromthestart
## MineClone5
* kay27
@ -78,10 +89,12 @@
* epCode
* NO11
* j45
* chmodsayshello
* 3raven
* PrarieWind
* Gustavo1
* CableGuy67
* MrRar
## Mineclonia
* erlehmann
@ -134,6 +147,9 @@
* yutyo
* NO11
* kay27
* MysticTempest
* RandomLegoBrick
* cora
## Translations
* Wuzzy
@ -143,6 +159,8 @@
* pitchum
* todoporlalibertad
* Marcin Serwin
* Pepebotella
* Emojigit
## Funders
* 40W
@ -150,5 +168,6 @@
## Special thanks
* celeron55 for creating Minetest
* Jordach for the jukebox music compilation from Big Freaking Dig
* wsor for working tirelessly in the shadows for the good of all of us, particularly helping with solving contentDB and copyright issues.
* The workaholics who spent way too much time writing for the Minecraft Wiki. It's an invaluable resource for creating this game
* Notch and Jeb for being the major forces behind Minecraft

View File

@ -2,7 +2,7 @@
An unofficial Minecraft-like game for Minetest. Forked from MineClone by davedevils.
Developed by many people. Not developed or endorsed by Mojang AB.
Version: 0.75 (in development)
Version: 0.79 (in development)
### Gameplay
You start in a randomly-generated world made entirely of cubes. You can explore
@ -91,11 +91,11 @@ The MineClone2 repository is hosted at Mesehub. To contribute or report issues,
## Target
- Crucially, create a stable, moddable, free/libre clone of Minecraft
based on the Minetest engine with polished features, usable in both
singleplayer and multiplayer. Currently, most of **Minecraft Java
Edition 1.12.2** features are already implemented and polishing existing
singleplayer and multiplayer. Currently, a lot of **Minecraft Java
Edition** features are already implemented and polishing existing
features are prioritized over new feature requests.
- With lessened priority yet strictly, implement features targetting
**Minecraft version 1.17 + OptiFine** (OptiFine only as far as supported
**Current Minecraft versions + OptiFine** (OptiFine only as far as supported
by the Minetest Engine). This means features in parity with the listed
Minecraft experiences are prioritized over those that don't fulfill this
scope.
@ -108,8 +108,7 @@ playerbase on low spec computers, optimizations are hard to investigate.
This game is currently in **beta** stage.
It is playable, but not yet feature-complete.
Backwards-compability is not entirely guaranteed, updating your world might cause small bugs.
If you want to use the git version of MineClone2 in production, consider using the production branch.
It is updated weekly and contains relatively stable code for servers.
If you want to use the development version of MineClone2 in production, the master branch is usually relatively stable. The testing branch often features some experimental PRs and should be considered less stable.
The following main features are available:
@ -124,7 +123,7 @@ The following main features are available:
* Most blocks in the overworld
* Water and lava
* Weather
* 28 biomes
* 28 biomes + 5 Nether Biomes
* The Nether, a fiery underworld in another dimension
* Redstone circuits (partially)
* Minecarts (partial)
@ -162,7 +161,7 @@ The following features are incomplete:
* Special minecarts
* A couple of non-trivial blocks and items
Bonus features (not found in Minecraft 1.12):
Bonus features (not found in Minecraft):
* Built-in crafting guide which shows you crafting and smelting recipes
* In-game help system containing extensive help about gameplay basics, blocks, items and more
@ -175,6 +174,9 @@ Bonus features (not found in Minecraft 1.12):
* Nether Brick Fence Gate
* Red Nether Brick Fence
* Red Nether Brick Fence Gate
* Structure replacements - these small variants of Minecraft structures serve as replacements until we can get large structures working:
* Woodland Cabin (Mansions)
* Nether Outpost (Fortress)
Technical differences from Minecraft:

170
README_locale/README.fr.md Normal file
View File

@ -0,0 +1,170 @@
# MineClone2
Un jeu non-officiel similaire à Minecraft pour Minetest. Forké depuis Mineclone par davedevils. Développé par de nombreuses personnes. Ni développé ou supporté par Mojang AB.
Version: 0.79 (en dévelopment)
### Gameplay
Vous atterissez dans un monde fait entièrement de cubes et généré aléatoirement. Vous pouvez explorer le monde, miner et construire presque n'importe quel bloc pour créer de nouvelles structures. Vous pouvez choisir de jouer en "mode survie" dans lequel vous devez combattre des monstres et la faim et progresser lentement dans différents aspects du jeu, comme l'extraction de minerai, l'agriculture, la construction de machines et ainsi de suite. Ou alors vous pouvez jouer en "mode créatif" où vous pouvez construire à peu près n'importe quoi instantanément.
### Résumé du Gameplay
* Jeu de type bac-à-sable, sans objetifs
* Survie : combattre des monstres hostiles et la faim
* Creuser pour du minerai et d'autres trésors
* Magie : gagner de l'expérience et enchanter les outils
* Utiliser les blocs ramassés pour construire de magnifiques bâtiments, votre imagination est la limite
* Ramasser des fleurs (et d'autres sources de teinture) et colorez votre monde
* Trouvez des graines et commencez à cultiver
* Trouvez ou fabriquez des centaines d'objets
* Construisez un réseau ferroviaire complexe et amusez vous avec les wagonnets
* En mode créatif vous pouvez construire presque n'importe quoi gratuitement et sans limite
## Comment jouer (démarrer rapidement)
### Commencer
* **Frappez un arbre** jusqu'à ce qu'il casse et donne du bois
* Placez le **bois dans la grille 2x2** (la "grille de fabrication" de votre menu d'inventaire) et fabriquez 4 planches de bois
* Placer les 4 planches de bois dans la grille 2x2 et **fabriquez une table d'artisanat**
* **Cliquez droit la table d'artisanat** (icone livre) pour apprendre toutes les recettes possibles
* **Fabriquez une pioche de bois** pour miner la pierre
* Différents outils minent différentes sortes de blocs. Essayez les !
* Continuez à jouer comme vous voulez. Amusez vous !
### Agriculture
* Trouvez des graines
* Fabriquez une houe
* Cliquez droit la terre ou des blocs similaires avec la houe pour créer des terres agricoles
* Placer des graines sur des terres agricoles et regardez les pousser
* Récoltez les plantes une fois matûres
* Les terres agricoles proche de l'eau deviennent humides et accélèrent la croissance
### Four
* Fabriquer un Four
* Le four permet d'obtenir plus d'objets
* L'emplacement du haut doit contienir un objet fondable (par ex : minerai de fer)
* L'emplacement du bas doit contienir un objet combustible (par ex : charbon)
* Voir le guide d'artisanat pour en apprendre plus sur les objets fondables et combustibles
### Aide supplémentaire
Plus d'aide à propos du jeu, des blocs, objets et plus encore peuvent être trouvés dans le jeu. Vous pouvez accéder à l'aide depuis le menu inventaire.
### Objets spéciaux
Les objets suivants sont intéressants pour le mode Créatif et pour les constructeurs de cartes d'aventure. Ils ne peuvent être obtenus dans le jeu ou dans l'inventaire créatif.
* Barrière : `mcl_core:barrier`
Utilisez la commande de chat `/giveme` pour les obtenir. Voir l'aide interne au jeu pour une explication.
## Installation
Ce jeu nécessite [Minetest](http://minetest.net) pour fonctionner (version 5.4.1 ou plus). Vous devez donc installer Minetest d'abord. Seules les versions stables de Minetest sont officielement supportées.
Il n'y a pas de support de MineClone2 dans les versions développement de Minetest.
Pour installer MineClone2 (si ce n'est pas déjà fait), déplacez ce dossier dans le dossier “games” de Minetest. Consultez l'aide de Minetest pour en apprendre plus.
## Liens utiles
Le dépôt de MineClone2 est hébergé sur Mesehub. Pour contribuer ou rapporter des problèmes, aller là-bas.
* Mesehub: <https://git.minetest.land/MineClone2/MineClone2>
* Discord: <https://discord.gg/xE4z8EEpDC>
* YouTube <https://www.youtube.com/channel/UClI_YcsXMF3KNeJtoBfnk9A>
* IRC: <https://web.libera.chat/#mineclone2>
* Matrix: <https://app.element.io/#/room/#mc2:matrix.org>
* Reddit: <https://www.reddit.com/r/MineClone2/>
* Minetest forums: <https://forum.minetest.net/viewtopic.php?f=50&t=16407>
* ContentDB: <https://content.minetest.net/packages/wuzzy/mineclone2/>
* OpenCollective: <https://opencollective.com/mineclone2>
## Objectif
* Créer un clone stable, moddable, libre et gratuit basé sur le moteur de jeu Minetest avec des fonctionalités abouties, utilisable à la fois en mode solo et multijoueur. Actuellement, beaucoup des fonctionalités de **Minecraft Java Edition** sont déjà implémentées et leur amélioration est prioritaire sur les nouvelles demandes.
* Avec une priorité moindre, implémenter les fonctionalités des versions **Minecraft + OptiFine** (OtiFine autant que supporté par le moteur Minetest). Cela signifie que les fonctionalités présentes dans les versions listées sont priorisées.
* Dans l'idéal, créer une expérience performante qui tourne bien sur des ordinateurs à basse performance. Malheureusement, en raison des mécanismes de Minecraft et des limitations du moteur Minetest ainsi que de la petite taille de la communauté de joueurs sur des ordinateurs à basse performances, les optimisations sont difficiles à explorer.
## Statut de complétion
Ce jeu est actuellement au stade **beta**.
Il est jouable mais incomplet en fonctionalités.
La rétro-compatibilité n'est pas entièrement garantie, mettre votre monde à jour peut causer de petits bugs.
Si vous voulez utiliser la version de développement de MineClone2 en production, la branche master est habituellement relativement stable. Les branches de test fusionnent souvent des pull requests expérimentales et doivent être considérées comme moins stable.
Les principales fonctionalités suivantes sont disponibles :
* Outils, armes
* Armure
* Système de fabrication : grille 2x2, table d'artisanat (grille 3x3), four, incluant un guide de fabrication
* Coffres, grands coffres, coffre ender, boite de shulker
* Fours, entonnoirs
* Faim
* La plupart des monstres et animaux
* Tout les minerais de Minecraft
* La plupart des blocs de l'overworld
* Eau et lave
* Météo
* 28 biomes + 5 biomes du nether
* Le Nether, monde souterrain brûlant dans une autre dimension
* Circuits Redstone (partiel)
* Effets de Statut (partiel)
* Expérience
* Enchantement
* Brassage, potions, flèches trempées (partiel)
* Bâteaux
* Feu
* Blocs de construction : escaliers, dalles, portes, trappes, barrière, portillon, muret
* Horloge
* Boussole
* Eponge
* Bloc de slime
* Petites plantes et pousses
* Teintures
* Bannières
* Blocs de décoration : verre, verre teinté, vitres, barres de fer, terre cuites (et couleurs), têtes et plus
* Cadres d'objets
* Juke-boxes
* Livres pour écrire
* Commandes
* Villages
* L'End
* et plus !
Les fonctionalités suivantes sont incomplètes :
* certains monstres et animaux
* certains composants de Redstone
* Wagonnets spéciaux
* quelques blocs et objets non-triviaux
Fonctionalités bonus (absentes de Minecraft) :
* Guide d'artisanat intégré au jeu qui montre les recettes d'artisanat et de cuisson
* Système d'aide intégré au jeu contenant des informations à propos des techniques de base, blocs, objets et plus
* Recettes d'artisanat temporaires. Elles existent uniquement pour rendre des objets accessibles qui ne le seraient pas autrement sauf en mode créatif. Elles seront retirées au cours de l'avancement du développement et de l'ajout de nouvelles fonctionalités.
* Pousses dans les coffres en mapgen v6
* Entièrement moddable (grâce la puissante API lua de Minetest)
* Nouveaux blocs et objets :
* Outil de recherche, montre l'aide de ce qu'il touche
* Plus de dalles et d'escaliers
* Portillon en briques du Nether
* Barrière en briques du Nether rouges
* Portillon en briques du Nether rouges
* Structures de remplacement - ces petites variantes de structures de Minecraft servent de remplacement en attendant qu'on arrive à en faire fonctionner de plus grandes :
* Cabine dans les bois (Manoir des bois)
* Avant-poste du Nether (Forteresse)
Différences techniques avec Minecraft :
* Limite en hauteur de 31000 blocs (bien plus grand que Minecraft)
* Taille horizontale du monde 62000×62000 blocs (bien plus petit que Minecraft mais toujours très grand)
* Toujours assez incomplet et buggé
* Des blocs, objets, ennemis et fonctionalités manquent
* Quelques objets ont des noms légèrement différents pour être plus faciles à distinguer
* Des musiques différentes pour le juke-boxe
* Des textures différentes (Pixel Perfection)
* Des sons différents (sources diverses)
* Un moteur de jeu différent (Minetest)
* Des bonus cachés différents
...et enfin MineClone2 est un logiciel libre !
## Autres fichiers readme
* `LICENSE.txt`: Le texte de la license GPLv3
* `CONTRIBUTING.md`: Information pour ceux qui veulent contribuer
* `API.md`: Pour les modders Minetest qui veulent modder ce jeu
* `LEGAL.md`: Information légale
* `CREDITS.md`: Liste des contributeurs

View File

@ -161,9 +161,9 @@ minetest.register_on_dieplayer(function(player, mt_reason)
if mt_reason.approved then
mcl_damage.run_death_callbacks(player, mcl_damage.from_mt(mt_reason))
end
minetest.log("action","Player "..player:get_player_name().." died at "..minetest.pos_to_string(vector.round(player:get_pos())))
end)
minetest.register_on_mods_loaded(function()
table.sort(mcl_damage.modifiers, function(a, b) return a.priority < b.priority end)
end)

View File

@ -337,7 +337,6 @@ local function trace_explode(pos, strength, raydirs, radius, info, direct, sourc
if not obj:is_player() then
return
end
mcl_util.deal_damage(obj, damage, {type = "explosion", direct = direct, source = source})
obj:add_velocity(vector.multiply(punch_dir, impact * 20))

View File

@ -28,11 +28,10 @@ end)
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime
if timer >= 0.3 then
if timer >= 0.6 then
for _, player in pairs(get_connected_players()) do
local ppos = player:get_pos()
ppos.y = ceil(ppos.y)
local npos = vector.add(ppos, vector.new(0, -1, 0))
local npos = vector.add(ppos, vector.new(0, -0.1, 0))
if npos then
local node = get_node(npos)
if node then

View File

@ -13,11 +13,21 @@ local function is_group(pos, group)
end
local is_water = flowlib.is_water
local function is_river_water(p)
local n = minetest.get_node(p).name
if n == "mclx_core:river_water_source" or n == "mclx_core:river_water_flowing" then
return true
end
end
local function is_ice(pos)
return is_group(pos, "ice")
end
local function is_fire(pos)
return is_group(pos, "set_on_fire")
end
local function get_sign(i)
if i == 0 then
return 0
@ -196,6 +206,8 @@ end
function boat.on_step(self, dtime, moveresult)
mcl_burning.tick(self.object, dtime, self)
-- mcl_burning.tick may remove object immediately
if not self.object:get_pos() then return end
self._v = get_v(self.object:get_velocity()) * get_sign(self._v)
local v_factor = 1
@ -204,16 +216,21 @@ function boat.on_step(self, dtime, moveresult)
local on_water = true
local on_ice = false
local in_water = is_water({x=p.x, y=p.y-boat_y_offset+1, z=p.z})
local in_river_water = is_river_water({x=p.x, y=p.y-boat_y_offset+1, z=p.z})
local waterp = {x=p.x, y=p.y-boat_y_offset - 0.1, z=p.z}
if not is_water(waterp) then
on_water = false
if not in_water and is_ice(waterp) then
on_ice = true
elseif is_fire({x=p.x, y=p.y-boat_y_offset, z=p.z}) then
boat.on_death(self, nil)
self.object:remove()
return
else
v_slowdown = 0.04
v_factor = 0.5
end
elseif in_water then
elseif in_water and not in_river_water then
on_water = false
in_water = true
v_factor = 0.75
@ -345,7 +362,18 @@ function boat.on_step(self, dtime, moveresult)
else
p.y = p.y + 1
local is_obsidian_boat = self.object:get_luaentity()._itemstring == "mcl_boats:boat_obsidian"
if is_water(p) or is_obsidian_boat then
if is_river_water(p) then
local y = self.object:get_velocity().y
if y >= 5 then
y = 5
elseif y < 0 then
new_acce = {x = 0, y = 10, z = 0}
else
new_acce = {x = 0, y = 2, z = 0}
end
new_velo = get_velocity(self._v, self.object:get_yaw(), y)
self.object:set_pos(self.object:get_pos())
elseif is_water(p) and not is_river_water(p) or is_obsidian_boat then
-- Inside water: Slowly sink
local y = self.object:get_velocity().y
y = y - 0.01

View File

@ -9,4 +9,5 @@ Oak Boat=Bateau en Chêne
Rightclick on a water source to place the boat. Rightclick the boat to enter it. Use [Left] and [Right] to steer, [Forwards] to speed up and [Backwards] to slow down or move backwards. Use [Sneak] to leave the boat, punch the boat to make it drop as an item.=Faites un clic droit sur une source d'eau pour placer le bateau. Faites un clic droit sur le bateau pour y entrer. Utilisez [Gauche] et [Droite] pour diriger, [Avant] pour accélérer et [Arrière] pour ralentir ou reculer. Utilisez [Sneak] pour le quitter, frappez le bateau pour le faire tomber en tant qu'objet.
Spruce Boat=Bateau en Sapin
Water vehicle=Véhicule aquatique
Sneak to dismount=
Sneak to dismount=Se baisser pour descendre
Obsidian Boat=Bateau en Obsidienne

View File

@ -10,3 +10,4 @@ Rightclick on a water source to place the boat. Rightclick the boat to enter it.
Spruce Boat=
Water vehicle=
Sneak to dismount=
Obsidian Boat=

View File

@ -1,3 +1,4 @@
name = mcl_burning
description = Burning Objects for MineClone2
author = Fleckenstein
depends = mcl_weather

View File

@ -1,66 +1,55 @@
-- Dripping Water Mod
-- by kddekadenz
local math = math
-- License of code, textures & sounds: CC0
local function register_drop(liquid, glow, sound, nodes)
minetest.register_entity("mcl_dripping:drop_" .. liquid, {
hp_max = 1,
physical = true,
collide_with_objects = false,
collisionbox = {-0.01, 0.01, -0.01, 0.01, 0.01, 0.01},
glow = glow,
pointable = false,
visual = "sprite",
visual_size = {x = 0.1, y = 0.1},
textures = {""},
spritediv = {x = 1, y = 1},
initial_sprite_basepos = {x = 0, y = 0},
static_save = false,
_dropped = false,
on_activate = function(self)
self.object:set_properties({
textures = {"[combine:2x2:" .. -math.random(1, 16) .. "," .. -math.random(1, 16) .. "=default_" .. liquid .. "_source_animated.png"}
})
end,
on_step = function(self, dtime)
local k = math.random(1, 222)
local ownpos = self.object:get_pos()
if k == 1 then
self.object:set_acceleration(vector.new(0, -5, 0))
end
if minetest.get_node(vector.offset(ownpos, 0, 0.5, 0)).name == "air" then
self.object:set_acceleration(vector.new(0, -5, 0))
end
if minetest.get_node(vector.offset(ownpos, 0, -0.1, 0)).name ~= "air" then
local ent = self.object:get_luaentity()
if not ent._dropped then
ent._dropped = true
minetest.sound_play({name = "drippingwater_" .. sound .. "drip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true)
end
if k < 3 then
self.object:remove()
end
end
end,
})
local math = math
local function make_drop(pos,liquid,sound,interval)
local pt = {
velocity = vector.new(0,0,0),
collision_removal = false,
}
local t = math.random() + math.random(1, interval)
minetest.after(t,function()
local x, z = math.random(-45, 45) / 100, math.random(-45, 45) / 100
pt.pos = vector.offset(pos,x,-0.52,z)
pt.acceleration = vector.new(0,0,0)
pt.collisiondetection = false
pt.expirationtime = t
pt.texture="[combine:2x2:" .. -math.random(1, 16) .. "," .. -math.random(1, 16) .. "=default_" .. liquid .. "_source_animated.png"
minetest.add_particle(pt)
minetest.after(t,function()
pt.acceleration = vector.new(0,-5,0)
pt.collisiondetection = true
pt.expirationtime = math.random() + math.random(1, interval/2)
minetest.add_particle(pt)
minetest.sound_play({name = "drippingwater_" .. sound .. "drip"}, {pos = pos, gain = 0.5, max_hear_distance = 8}, true)
end)
end)
end
local function register_drop(liquid, glow, sound, nodes, interval, chance)
minetest.register_abm({
label = "Create drops",
nodenames = nodes,
neighbors = {"group:" .. liquid},
interval = 2,
chance = 22,
interval = interval,
chance = chance,
action = function(pos)
if minetest.get_item_group(minetest.get_node(vector.offset(pos, 0, 1, 0)).name, liquid) ~= 0
and minetest.get_node(vector.offset(pos, 0, -1, 0)).name == "air" then
local x, z = math.random(-45, 45) / 100, math.random(-45, 45) / 100
minetest.add_entity(vector.offset(pos, x, -0.520, z), "mcl_dripping:drop_" .. liquid)
local r = math.ceil(interval / 20)
local nn=minetest.find_nodes_in_area(vector.offset(pos,-r,0,-r),vector.offset(pos,r,0,r),nodes)
--start a bunch of particle cycles to be able to get away
--with longer abm cycles
table.shuffle(nn)
for i=1,math.random(#nn) do
if minetest.get_item_group(minetest.get_node(vector.offset(nn[i], 0, 1, 0)).name, liquid) ~= 0
and minetest.get_node(vector.offset(nn[i], 0, -1, 0)).name == "air" then
make_drop(nn[i],liquid,sound,interval)
end
end
end,
})
end
register_drop("water", 1, "", {"group:opaque", "group:leaves"})
register_drop("lava", math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3), "lava", {"group:opaque"})
register_drop("water", 1, "", {"group:opaque", "group:leaves"},60,10)
register_drop("lava", math.max(7, minetest.registered_nodes["mcl_core:lava_source"].light_source - 3), "lava", {"group:opaque"},60,10)

View File

@ -318,18 +318,14 @@ function minetest.handle_node_drops(pos, drops, digger)
-- Spawn item and apply random speed
local obj = minetest.add_item(dpos, drop_item)
if obj then
local x = math.random(1, 5)
if math.random(1,2) == 1 then
x = -x
-- set the velocity multiplier to the stored amount or if the game dug this node, apply a bigger velocity
local v = 1
if digger and digger:is_player() then
obj:get_luaentity().random_velocity = 1
else
obj:get_luaentity().random_velocity = 1.6
end
local z = math.random(1, 5)
if math.random(1,2) == 1 then
z = -z
end
obj:set_velocity({x=1/x, y=obj:get_velocity().y, z=1/z})
obj:get_luaentity().age = item_drop_settings.dug_buffer
obj:get_luaentity()._insta_collect = false
end
end
@ -408,9 +404,33 @@ minetest.register_entity(":__builtin:item", {
-- Number of seconds this item entity has existed so far
age = 0,
-- Multiplier for initial random velocity when the item is spawned
random_velocity = 1,
-- How old it has become in the collection animation
collection_age = 0,
-- Function to apply a random velocity
apply_random_vel = function(self, speed)
if not self or not self.object or not self.object:get_luaentity() then
return
end
-- if you passed a value then use that for the velocity multiplier
if speed ~= nil then self.random_velocity = speed end
local vel = self.object:get_velocity()
if vel and vel.x == 0 and vel.z == 0 and self.random_velocity > 0 then
local v = self.random_velocity
local x = math.random(5, 10) / 10 * v
if math.random(0,10) < 5 then x = -x end
local z = math.random(5, 10) / 10 * v
if math.random(0,10) < 5 then z = -z end
local y = math.random(2,4)
self.object:set_velocity({x=x, y=y, z=z})
end
self.random_velocity = 0
end,
set_item = function(self, itemstring)
self.itemstring = itemstring
if self.itemstring == "" then
@ -463,27 +483,9 @@ minetest.register_entity(":__builtin:item", {
glow = glow,
}
self.object:set_properties(prop)
if item_drop_settings.random_item_velocity == true then
minetest.after(0, function(self)
if not self or not self.object or not self.object:get_luaentity() then
return
end
local vel = self.object:get_velocity()
if vel and vel.x == 0 and vel.z == 0 then
local x = math.random(1, 5)
if math.random(1,2) == 1 then
x = -x
end
local z = math.random(1, 5)
if math.random(1,2) == 1 then
z = -z
end
local y = math.random(2,4)
self.object:set_velocity({x=1/x, y=y, z=1/z})
end
end, self)
if item_drop_settings.random_item_velocity == true and self.age < 1 then
minetest.after(0, self.apply_random_vel, self)
end
end,
get_staticdata = function(self)
@ -572,7 +574,7 @@ minetest.register_entity(":__builtin:item", {
self._forcetimer = 0
self.object:set_armor_groups({immortal = 1})
self.object:set_velocity({x = 0, y = 2, z = 0})
-- self.object:set_velocity({x = 0, y = 2, z = 0})
self.object:set_acceleration({x = 0, y = -get_gravity(), z = 0})
self:set_item(self.itemstring)
end,
@ -602,12 +604,13 @@ minetest.register_entity(":__builtin:item", {
end
-- Merge the remote stack into this one
local pos = object:get_pos()
pos.y = pos.y + ((total_count - count) / max_count) * 0.15
self.object:move_to(pos)
-- local pos = object:get_pos()
-- pos.y = pos.y + ((total_count - count) / max_count) * 0.15
-- self.object:move_to(pos)
self.age = 0 -- Handle as new entity
own_stack:set_count(total_count)
self.random_velocity = 0
self:set_item(own_stack:to_string())
entity._removed = true
@ -646,33 +649,53 @@ minetest.register_entity(":__builtin:item", {
local node = minetest.get_node_or_nil(p)
local in_unloaded = (node == nil)
if self.is_clock then
self.object:set_properties({
textures = {"mcl_clock:clock_" .. (mcl_worlds.clock_works(p) and mcl_clock.old_time or mcl_clock.random_frame)}
})
end
-- If no collector was found for a long enough time, declare the magnet as disabled
if self._magnet_active and (self._collector_timer == nil or (self._collector_timer > item_drop_settings.magnet_time)) then
self._magnet_active = false
enable_physics(self.object, self)
return
end
if in_unloaded then
-- Don't infinetly fall into unloaded map
disable_physics(self.object, self)
return
end
-- Destroy item in lava, fire or special nodes
if self.is_clock then
self.object:set_properties({
textures = {"mcl_clock:clock_" .. (mcl_worlds.clock_works(p) and mcl_clock.old_time or mcl_clock.random_frame)}
})
end
local nn = node.name
local is_in_water = (minetest.get_item_group(nn, "liquid") ~= 0)
local nn_above = minetest.get_node({x=p.x, y=p.y+0.1, z=p.z}).name
-- make sure it's more or less stationary and is at water level
local sleep_threshold = 0.3
local is_floating = false
local is_stationary = math.abs(self.object:get_velocity().x) < sleep_threshold
and math.abs(self.object:get_velocity().y) < sleep_threshold
and math.abs(self.object:get_velocity().z) < sleep_threshold
if is_in_water and is_stationary then
is_floating = (is_in_water
and (minetest.get_item_group(nn_above, "liquid") == 0))
end
if is_floating and self.physical_state == true then
self.object:set_velocity({x = 0, y = 0, z = 0})
self.object:set_acceleration({x = 0, y = 0, z = 0})
disable_physics(self.object, self)
end
-- If no collector was found for a long enough time, declare the magnet as disabled
if self._magnet_active and (self._collector_timer == nil or (self._collector_timer > item_drop_settings.magnet_time)) then
self._magnet_active = false
enable_physics(self.object, self)
return
end
-- Destroy item in lava, fire or special nodes
local def = minetest.registered_nodes[nn]
local lg = minetest.get_item_group(nn, "lava")
local fg = minetest.get_item_group(nn, "fire")
local dg = minetest.get_item_group(nn, "destroys_items")
if (def and (lg ~= 0 or fg ~= 0 or dg == 1)) then
--Wait 2 seconds to allow mob drops to be cooked, & picked up instead of instantly destroyed.
if self.age > 2 then
if self.age > 2 and minetest.get_item_group(self.itemstring, "fire_immune") == 0 then
if dg ~= 2 then
minetest.sound_play("builtin_item_lava", {pos = self.object:get_pos(), gain = 0.5})
end
@ -695,7 +718,7 @@ minetest.register_entity(":__builtin:item", {
end
-- Push item out when stuck inside solid opaque node
if def and def.walkable and def.groups and def.groups.opaque == 1 then
if not is_in_water and def and def.walkable and def.groups and def.groups.opaque == 1 then
local shootdir
local cx = (p.x % 1) - 0.5
local cz = (p.z % 1) - 0.5
@ -736,9 +759,9 @@ minetest.register_entity(":__builtin:item", {
local newv = vector.multiply(shootdir, 3)
self.object:set_acceleration({x = 0, y = 0, z = 0})
self.object:set_velocity(newv)
disable_physics(self.object, self, false, false)
if shootdir.y == 0 then
self._force = newv
p.x = math.floor(p.x)
@ -776,7 +799,8 @@ minetest.register_entity(":__builtin:item", {
end
-- Move item around on flowing liquids; add 'source' check to allow items to continue flowing a bit in the source block of flowing water.
if def and def.liquidtype == "flowing" or def.liquidtype == "source" then
if def and not is_floating and (def.liquidtype == "flowing" or def.liquidtype == "source") then
self._flowing = true
--[[ Get flowing direction (function call from flowlib), if there's a liquid.
NOTE: According to Qwertymine, flowlib.quickflow is only reliable for liquids with a flowing distance of 7.
@ -798,7 +822,29 @@ minetest.register_entity(":__builtin:item", {
})
return
end
elseif self._flowing == true then
if is_in_water and def.liquidtype == "source" then
local cur_vec = self.object:get_velocity()
-- apply some acceleration in the opposite direction so it doesn't slide forever
local vec = {
x = 0 -cur_vec.x*0.9,
y = 3 -cur_vec.y*0.9,
z = 0 -cur_vec.z*0.9}
self.object:set_acceleration(vec)
-- slow down the item in water
local vel = self.object:get_velocity()
if vel.y < 0 then
vel.y = vel.y * 0.9
end
self.object:set_velocity(vel)
if self.physical_state ~= false or self._flowing ~= true then
self.physical_state = true
self._flowing = true
self.object:set_properties({
physical = true
})
end
end
elseif self._flowing == true and not is_in_water and not is_floating then
-- Disable flowing physics if not on/in flowing liquid
self._flowing = false
enable_physics(self.object, self, true)
@ -807,28 +853,34 @@ minetest.register_entity(":__builtin:item", {
-- If node is not registered or node is walkably solid and resting on nodebox
local nn = minetest.get_node({x=p.x, y=p.y-0.5, z=p.z}).name
local def = minetest.registered_nodes[nn]
local v = self.object:get_velocity()
local is_on_floor = def and (def.walkable
and not def.groups.slippery and v.y == 0)
if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable and not minetest.registered_nodes[nn].groups.slippery and v.y == 0 then
if self.physical_state then
local own_stack = ItemStack(self.object:get_luaentity().itemstring)
-- Merge with close entities of the same item
for _, object in pairs(minetest.get_objects_inside_radius(p, 0.8)) do
local obj = object:get_luaentity()
if obj and obj.name == "__builtin:item"
and obj.physical_state == false then
if self:try_merge_with(own_stack, object, obj) then
return
end
if not minetest.registered_nodes[nn]
or is_floating or is_on_floor then
local own_stack = ItemStack(self.object:get_luaentity().itemstring)
-- Merge with close entities of the same item
for _, object in pairs(minetest.get_objects_inside_radius(p, 0.8)) do
local obj = object:get_luaentity()
if obj and obj.name == "__builtin:item"
and obj.physical_state == false then
if self:try_merge_with(own_stack, object, obj) then
return
end
end
disable_physics(self.object, self)
-- don't disable if underwater
if not is_in_water then
disable_physics(self.object, self)
end
end
else
if self._magnet_active == false then
if self._magnet_active == false and not is_floating then
enable_physics(self.object, self)
end
end
end,
-- Note: on_punch intentionally left out. The player should *not* be able to collect items by punching

View File

@ -33,4 +33,4 @@ Activates minecarts when powered=Active les wagonnets lorsqu'il est alimenté
Emits redstone power when a minecart is detected=Émet de l'énergie redstone lorsqu'un wagonnet est détecté
Vehicle for fast travel on rails=Véhicule pour voyager rapidement sur rails
Can be ignited by tools or powered activator rail=Peut être allumé par des outils ou un rail d'activation motorisé
Sneak to dismount=
Sneak to dismount=Se baisser pour descendre

View File

@ -213,11 +213,11 @@ end
local collision = function(self)
local pos = self.object:get_pos()
if not pos then return {0,0} end
local vel = self.object:get_velocity()
local x = 0
local z = 0
local width = -self.collisionbox[1] + self.collisionbox[4] + 0.5
for _,object in pairs(minetest.get_objects_inside_radius(pos, width)) do
local ent = object:get_luaentity()
@ -248,18 +248,20 @@ local set_velocity = function(self, v)
end
-- halt mob if it has been ordered to stay
if self.order == "stand" then
if self.order == "stand" or self.order == "sit" then
self.object:set_velocity({x = 0, y = 0, z = 0})
return
end
local yaw = (self.object:get_yaw() or 0) + self.rotate
self.object:set_velocity({
x = (sin(yaw) * -v) + c_x,
y = self.object:get_velocity().y,
z = (cos(yaw) * v) + c_y,
})
local vv = self.object:get_velocity()
if vv then
self.object:set_velocity({
x = (sin(yaw) * -v) + c_x,
y = vv.y,
z = (cos(yaw) * v) + c_y,
})
end
end
@ -407,15 +409,15 @@ local set_animation = function(self, anim, fixed_frame)
if flight_check(self) and self.fly and anim == "walk" then anim = "fly" end
self.animation.current = self.animation.current or ""
self._current_animation = self._current_animation or ""
if (anim == self.animation.current
if (anim == self._current_animation
or not self.animation[anim .. "_start"]
or not self.animation[anim .. "_end"]) and self.state ~= "die" then
return
end
self.animation.current = anim
self._current_animation = anim
local a_start = self.animation[anim .. "_start"]
local a_end
@ -1905,13 +1907,11 @@ local specific_attack = function(list, what)
return false
end
-- monster find someone to attack
-- find someone to attack
local monster_attack = function(self)
if self.type ~= "monster"
or not damage_enabled
if not damage_enabled
or minetest.is_creative_enabled("")
or self.passive
or self.passive ~= false
or self.state == "attack"
or day_docile(self) then
return
@ -1927,10 +1927,9 @@ local monster_attack = function(self)
for n = 1, #objs do
if objs[n]:is_player() then
if mcl_mobs.invis[ objs[n]:get_player_name() ] or (not object_in_range(self, objs[n])) then
type = ""
else
elseif (self.type == "monster" or self._aggro) then
player = objs[n]
type = "player"
name = "player"
@ -2312,9 +2311,9 @@ local function check_doors(self)
local def = minetest.registered_nodes[n.name]
local closed = n.name:find("_b_1")
if t < 0.3 or t > 0.8 then
if not closed then def.on_rightclick(d,n,self) end
if not closed and def.on_rightclick then def.on_rightclick(d,n,self) end
else
if closed then def.on_rightclick(d,n,self) end
if closed and def.on_rightclick then def.on_rightclick(d,n,self) end
end
end
@ -2395,9 +2394,13 @@ local do_states = function(self, dtime)
yaw = set_yaw(self, yaw, 8)
end
set_velocity(self, 0)
set_animation(self, "stand")
if self.order == "sit" then
set_animation(self, "sit")
set_velocity(self, 0)
else
set_animation(self, "stand")
set_velocity(self, 0)
end
-- npc's ordered to stand stay standing
if self.type ~= "npc"
@ -3001,6 +3004,7 @@ end
local function check_entity_cramming(self)
local p = self.object:get_pos()
if not p then return end
local oo = minetest.get_objects_inside_radius(p,1)
local mobs = {}
for _,o in pairs(oo) do
@ -3346,11 +3350,11 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
and (self.child == false or self.type == "monster")
and hitter:get_player_name() ~= self.owner
and not mcl_mobs.invis[ name ] then
if not die then
-- attack whoever punched mob
self.state = ""
do_attack(self, hitter)
self._aggro= true
end
-- alert others to the attack
@ -3362,7 +3366,6 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
obj = objs[n]:get_luaentity()
if obj then
-- only alert members of same mob or friends
if obj.group_attack
and obj.state ~= "attack"
@ -3372,6 +3375,7 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir)
elseif type(obj.group_attack) == "table" then
for i=1, #obj.group_attack do
if obj.name == obj.group_attack[i] then
obj._aggro = true
do_attack(obj, hitter)
break
end
@ -3466,7 +3470,10 @@ local mob_activate = function(self, staticdata, def, dtime)
def.textures = {def.textures}
end
self.base_texture = def.textures[random(1, #def.textures)]
local c = 1
if #def.textures > c then c = #def.textures end
self.base_texture = def.textures[math.random(c)]
self.base_mesh = def.mesh
self.base_size = self.visual_size
self.base_colbox = self.collisionbox
@ -3598,12 +3605,27 @@ local mob_activate = function(self, staticdata, def, dtime)
end
end
local function check_aggro(self,dtime)
if not self._aggro or not self.attack then return end
if not self._check_aggro_timer or self._check_aggro_timer > 5 then
self._check_aggro_timer = 0
if not self.attack:get_pos() or vector.distance(self.attack:get_pos(),self.object:get_pos()) > 128 then
self._aggro = nil
self.attack = nil
self.state = "stand"
end
end
self._check_aggro_timer = self._check_aggro_timer + dtime
end
-- main mob function
local mob_step = function(self, dtime)
check_item_pickup(self)
check_aggro(self,dtime)
if not self.fire_resistant then
mcl_burning.tick(self.object, dtime, self)
-- mcl_burning.tick may remove object immediately
if not self.object:get_pos() then return end
end
local pos = self.object:get_pos()
@ -3932,7 +3954,7 @@ minetest.register_entity(name, {
xp_max = def.xp_max or 0,
xp_timestamp = 0,
breath_max = def.breath_max or 15,
breathes_in_water = def.breathes_in_water or false,
breathes_in_water = def.breathes_in_water or false,
physical = true,
collisionbox = collisionbox,
selectionbox = def.selectionbox or def.collisionbox,
@ -4020,6 +4042,7 @@ minetest.register_entity(name, {
teleport = teleport,
do_teleport = def.do_teleport,
spawn_class = def.spawn_class,
can_spawn = def.can_spawn,
ignores_nametag = def.ignores_nametag or false,
rain_damage = def.rain_damage or 0,
glow = def.glow,
@ -4037,6 +4060,7 @@ minetest.register_entity(name, {
fire_damage_resistant = def.fire_damage_resistant or false,
ignited_by_sunlight = def.ignited_by_sunlight or false,
spawn_in_group = def.spawn_in_group,
spawn_in_group_min = def.spawn_in_group_min,
-- End of MCL2 extensions
on_spawn = def.on_spawn,
@ -4366,73 +4390,69 @@ function mcl_mobs:feed_tame(self, clicker, feed_count, breed, tame, notake)
if not self.follow then
return false
end
-- can eat/tame with item in hand
if self.nofollow or follow_holding(self, clicker) then
local consume_food = false
-- if not in creative then take item
if not minetest.is_creative_enabled(clicker:get_player_name()) then
-- tame if not still a baby
local item = clicker:get_wielded_item()
if not notake then item:take_item() end
clicker:set_wielded_item(item)
if tame and not self.child then
if not self.owner or self.owner == "" then
self.tamed = true
self.owner = clicker:get_player_name()
consume_food = true
end
end
mob_sound(self, "eat", nil, true)
-- increase health
self.health = self.health + 4
if self.health >= self.hp_max then
self.health = self.hp_max
if self.health < self.hp_max and not consume_food then
consume_food = true
self.health = min(self.health + 4, self.hp_max)
if self.htimer < 1 then
self.htimer = 5
end
self.object:set_hp(self.health)
end
self.object:set_hp(self.health)
update_tag(self)
-- make children grow quicker
if self.child == true then
if not consume_food and self.child == true then
consume_food = true
-- deduct 10% of the time to adulthood
self.hornytimer = self.hornytimer + ((CHILD_GROW_TIME - self.hornytimer) * 0.1)
return true
end
-- feed and tame
self.food = (self.food or 0) + 1
if self.food >= feed_count then
-- breed animals
self.food = 0
if breed and self.hornytimer == 0 then
if breed and not consume_food and self.hornytimer == 0 and not self.horny then
self.food = (self.food or 0) + 1
consume_food = true
if self.food >= feed_count then
self.food = 0
self.horny = true
end
if tame then
self.tamed = true
if not self.owner or self.owner == "" then
self.owner = clicker:get_player_name()
end
end
-- make sound when fed so many times
mob_sound(self, "random", true)
end
update_tag(self)
-- play a sound if the animal used the item and take the item if not in creative
if consume_food then
-- don't consume food if clicker is in creative
if not minetest.is_creative_enabled(clicker:get_player_name()) and not notake then
local item = clicker:get_wielded_item()
item:take_item()
clicker:set_wielded_item(item)
end
-- always play the eat sound if food is used, even in creative
mob_sound(self, "eat", nil, true)
else
-- make sound when the mob doesn't want food
mob_sound(self, "random", true)
end
return true
end
return false
end
@ -4482,31 +4502,6 @@ function mcl_mobs:spawn_child(pos, mob_type)
return child
end
-- compatibility function for old entities to new modpack entities
function mcl_mobs:alias_mob(old_name, new_name)
-- spawn egg
minetest.register_alias(old_name, new_name)
-- entity
minetest.register_entity(":" .. old_name, {
physical = false,
on_step = function(self)
if minetest.registered_entities[new_name] then
minetest.add_entity(self.object:get_pos(), new_name)
end
self.object:remove()
end
})
end
local timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime

View File

@ -15,7 +15,7 @@ local math_cos = math.cos
local math_sin = math.sin
local math_round = function(x) return (x > 0) and math_floor(x + 0.5) or math_ceil(x - 0.5) end
--local vector_distance = vector.distance
local vector_distance = vector.distance
local vector_new = vector.new
local vector_floor = vector.floor
@ -23,9 +23,18 @@ local table_copy = table.copy
local table_remove = table.remove
local pairs = pairs
local dbg_spawn_attempts = 0
local dbg_spawn_succ = 0
-- range for mob count
local aoc_range = 32
local aoc_range = 136
local mob_cap = {
monster = 70,
animal =10,
ambient =15,
water = 5, --currently unused
water_ambient = 20, --currently unused
}
--do mobs spawn?
local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false
@ -63,6 +72,7 @@ local list_of_all_biomes = {
"JungleM_underground",
"ExtremeHillsM_underground",
"JungleEdgeM_underground",
"MangroveSwamp_underground",
-- ocean:
@ -126,6 +136,8 @@ local list_of_all_biomes = {
"BirchForestM_deep_ocean",
"Taiga_deep_ocean",
"JungleM_ocean",
"MangroveSwamp_ocean",
"MangroveSwamp_deep_ocean",
-- water or beach?
@ -149,10 +161,15 @@ local list_of_all_biomes = {
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MangroveSwamp_shore",
-- dimension biome:
"Nether",
"BasaltDelta",
"CrimsonForest",
"WarpedForest",
"SoulsandValley",
"End",
-- Overworld regular:
@ -162,6 +179,8 @@ local list_of_all_biomes = {
"Swampland",
"Taiga",
"ExtremeHills",
"ExtremeHillsM",
"ExtremeHills+_snowtop",
"Jungle",
"Savanna",
"BirchForest",
@ -180,7 +199,6 @@ local list_of_all_biomes = {
"ExtremeHills+_snowtop",
"MesaPlateauFM_grasstop",
"JungleEdgeM",
"ExtremeHillsM",
"JungleM",
"BirchForestM",
"MesaPlateauF",
@ -189,17 +207,30 @@ local list_of_all_biomes = {
"MesaBryce",
"JungleEdge",
"SavannaM",
"Nether",
"WarpedForest",
"SoulsandValley"
"MangroveSwamp",
}
-- count how many mobs are in an area
local function count_mobs(pos)
local function count_mobs(pos,r,mob_type)
local num = 0
for _,object in pairs(get_objects_inside_radius(pos, aoc_range)) do
if object and object:get_luaentity() and object:get_luaentity().is_mob then
num = num + 1
for _,l in pairs(minetest.luaentities) do
if l and l.is_mob and (mob_type == nil or l.type == mob_type) then
local p = l.object:get_pos()
if p and vector_distance(p,pos) < r then
num = num + 1
end
end
end
return num
end
local function count_mobs_total(mob_type)
local num = 0
for _,l in pairs(minetest.luaentities) do
if l.is_mob then
if mob_type == nil or l.type == mob_type then
num = num + 1
end
end
end
return num
@ -292,7 +323,7 @@ function mcl_mobs:spawn_setup(def)
spawn_dictionary[#spawn_dictionary + 1] = {
name = name,
dimension = dimension,
type_of_spawning = type_of_spawning,
type_of_spawning = type_of_spawning,
biomes = biomes,
min_light = min_light,
max_light = max_light,
@ -386,15 +417,74 @@ local function get_water_spawn(p)
end
end
local function spawn_group(p,mob,spawn_on,group_max)
local nn = minetest.find_nodes_in_area(vector.offset(p,-3,-3,-3),vector.offset(p,3,3,3),spawn_on)
local function spawn_check(pos,spawn_def)
if not spawn_def then return end
dbg_spawn_attempts = dbg_spawn_attempts + 1
local dimension = mcl_worlds.pos_to_dimension(pos)
local mob_type = minetest.registered_entities[spawn_def.name].type
local gotten_node = get_node(pos).name
local gotten_biome = minetest.get_biome_data(pos)
if not gotten_node or not gotten_biome then return end
gotten_biome = get_biome_name(gotten_biome.biome) --makes it easier to work with
local is_ground = minetest.get_item_group(gotten_node,"solid") ~= 0
if not is_ground then
pos.y = pos.y - 1
gotten_node = get_node(pos).name
is_ground = minetest.get_item_group(gotten_node,"solid") ~= 0
end
pos.y = pos.y + 1
local is_water = get_item_group(gotten_node, "water") ~= 0
local is_lava = get_item_group(gotten_node, "lava") ~= 0
local is_leaf = get_item_group(gotten_node, "leaves") ~= 0
local is_bedrock = gotten_node == "mcl_core:bedrock"
local is_grass = minetest.get_item_group(gotten_node,"grass_block") ~= 0
local mob_count_wide = count_mobs(pos,aoc_range,mob_type)
local mob_count = count_mobs(pos,32,mob_type)
if pos and spawn_def
and mob_count_wide < (mob_cap[mob_type] or 15)
and mob_count < 5
and pos.y >= spawn_def.min_height
and pos.y <= spawn_def.max_height
and spawn_def.dimension == dimension
and biome_check(spawn_def.biomes, gotten_biome)
and (is_ground or spawn_def.type_of_spawning ~= "ground")
and (spawn_def.type_of_spawning ~= "ground" or not is_leaf)
and (spawn_def.check_position and spawn_def.check_position(pos) or true)
and (not is_farm_animal(spawn_def.name) or is_grass)
and (spawn_def.type_of_spawning ~= "water" or is_water)
and not is_bedrock then
--only need to poll for node light if everything else worked
local gotten_light = get_node_light(pos)
if gotten_light >= spawn_def.min_light and gotten_light <= spawn_def.max_light then
return true
end
end
return false
end
local function spawn_group(p,mob,spawn_on,group_max,group_min)
if not group_min then group_min = 1 end
local nn= minetest.find_nodes_in_area_under_air(vector.offset(p,-5,-3,-5),vector.offset(p,5,3,5),spawn_on)
local o
table.shuffle(nn)
if not nn or #nn < 1 then
nn = {}
table.insert(nn,p)
end
for i = 1, math.random(group_max) do
minetest.add_entity(nn[math.random(#nn)],mob)
for i = 1, math.random(group_min,group_max) do
local sp = vector.offset(nn[math.random(#nn)],0,1,0)
if spawn_check(nn[math.random(#nn)],mob) then
if mob.type_of_spawning == "water" then
sp = get_water_spawn(sp)
end
o = minetest.add_entity(sp,mob.name)
if o then dbg_spawn_succ = dbg_spawn_succ + 1 end
end
end
return o
end
if mobs_spawn then
@ -402,8 +492,12 @@ if mobs_spawn then
local perlin_noise
local function spawn_a_mob(pos, dimension, y_min, y_max)
local dimension = dimension or mcl_worlds.pos_to_dimension(pos)
--create a disconnected clone of the spawn dictionary
--prevents memory leak
local mob_library_worker_table = table_copy(spawn_dictionary)
local goal_pos = get_next_mob_spawn_pos(pos)
--grab mob that fits into the spawning location
--randomly grab a mob, don't exclude any possibilities
local spawning_position_list = find_nodes_in_area_under_air(
{x = goal_pos.x, y = y_min, z = goal_pos.z},
{x = goal_pos.x, y = y_max, z = goal_pos.z},
@ -412,39 +506,6 @@ if mobs_spawn then
if #spawning_position_list <= 0 then return end
local spawning_position = spawning_position_list[math_random(1, #spawning_position_list)]
--hard code mob limit in area to 5 for now
if count_mobs(spawning_position) >= 5 then return end
local gotten_node = get_node(spawning_position).name
local gotten_biome = minetest.get_biome_data(spawning_position)
if not gotten_node or not gotten_biome then return end
gotten_biome = get_biome_name(gotten_biome.biome) --makes it easier to work with
--add this so mobs don't spawn inside nodes
spawning_position.y = spawning_position.y + 1
--only need to poll for node light if everything else worked
local gotten_light = get_node_light(spawning_position)
local is_water = get_item_group(gotten_node, "water") ~= 0
local is_lava = get_item_group(gotten_node, "lava") ~= 0
local is_leaf = get_item_group(gotten_node, "leaves") ~= 0
local is_ground = not (is_water or is_lava)
local is_grass = minetest.get_item_group(gotten_node,"grass_block") ~= 0
local has_bed = minetest.find_node_near(pos,25,{"group:bed"})
if not is_ground then
spawning_position.y = spawning_position.y - 1
end
local mob_def
--create a disconnected clone of the spawn dictionary
--prevents memory leak
local mob_library_worker_table = table_copy(spawn_dictionary)
--grab mob that fits into the spawning location
--randomly grab a mob, don't exclude any possibilities
perlin_noise = perlin_noise or minetest_get_perlin(noise_params)
local noise = perlin_noise:get_3d(spawning_position)
local current_summary_chance = summary_chance
@ -460,33 +521,28 @@ if mobs_spawn then
step_chance = step_chance + mob_chance
end
local mob_def = mob_library_worker_table[mob_index]
local spawn_in_group = minetest.registered_entities[mob_def.name].spawn_in_group or 4
local spawn_in_group_min = minetest.registered_entities[mob_def.name].spawn_in_group_min or 1
local mob_type = minetest.registered_entities[mob_def.name].type
local spawn_in_group = minetest.registered_entities[mob_def.name].spawn_in_group
if mob_def
and spawning_position.y >= mob_def.min_height
and spawning_position.y <= mob_def.max_height
and mob_def.dimension == dimension
and biome_check(mob_def.biomes, gotten_biome)
and gotten_light >= mob_def.min_light
and gotten_light <= mob_def.max_light
and (is_ground or mob_def.type_of_spawning ~= "ground")
and (mob_def.type_of_spawning ~= "ground" or not is_leaf)
and (mob_def.check_position and mob_def.check_position(spawning_position) or true)
and (not is_farm_animal(mob_def.name) or is_grass)
and (mob_type ~= "npc" or has_bed)
and (mob_def.type_of_spawning ~= "water" or is_water)
then
if spawn_check(spawning_position,mob_def) then
if mob_def.type_of_spawning == "water" then
spawning_position = get_water_spawn(spawning_position)
if not spawning_position then
return
end
end
--everything is correct, spawn mob
local object = minetest.add_entity(spawning_position, mob_def.name)
if spawn_in_group then
spawn_group(spawning_position,mob_def.name,{gotten_node},spawn_in_group)
if minetest.registered_entities[mob_def.name].can_spawn and not minetest.registered_entities[mob_def.name].can_spawn(pos) then
return
end
--everything is correct, spawn mob
local object
if spawn_in_group and ( mob_type ~= "monster" or math.random(5) == 1 ) then
object = spawn_group(spawning_position,mob_def,{minetest.get_node(vector.offset(spawning_position,0,-1,0)).name},spawn_in_group,spawn_in_group_min)
else
object = minetest.add_entity(spawning_position, mob_def.name)
end
if object then
return mob_def.on_spawn and mob_def.on_spawn(object, spawning_position)
end
@ -517,3 +573,14 @@ if mobs_spawn then
end
end)
end
minetest.register_chatcommand("mobstats",{
privs = { debug = true },
func = function(n,param)
local pos = minetest.get_player_by_name(n):get_pos()
minetest.chat_send_player(n,"mobs within 32 radius of player:"..count_mobs(pos,32))
minetest.chat_send_player(n,"total mobs:"..count_mobs_total())
minetest.chat_send_player(n,"spawning attempts since server start:"..dbg_spawn_attempts)
minetest.chat_send_player(n,"successful spawns since server start:"..dbg_spawn_succ)
end
})

View File

@ -38,6 +38,12 @@ local function wither_spawn(pos)
if check_schem(p, schem) then
remove_schem(p, schem)
minetest.add_entity(vector.add(p, {x = 0, y = 1, z = 0, [d] = 1}), "mobs_mc:wither")
local objects = minetest.get_objects_inside_radius(pos, 20)
for _, players in ipairs(objects) do
if players:is_player() then
awards.unlock(players:get_player_name(), "mcl:witheringHeights")
end
end
end
end
end

View File

@ -7,6 +7,7 @@ mcl_mobs:register_mob("mobs_mc:bat", {
type = "animal",
spawn_class = "ambient",
can_despawn = true,
spawn_in_group = 8,
passive = true,
hp_min = 6,
hp_max = 6,

View File

@ -16,6 +16,8 @@ mcl_mobs:register_mob("mobs_mc:blaze", {
description = S("Blaze"),
type = "monster",
spawn_class = "hostile",
spawn_in_group_min = 2,
spawn_in_group = 3,
hp_min = 20,
hp_max = 20,
xp_min = 10,

View File

@ -74,7 +74,7 @@ mcl_mobs:register_mob("mobs_mc:chicken", {
fear_height = 4,
on_rightclick = function(self, clicker)
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
if mcl_mobs:protect(self, clicker) then return end
if mcl_mobs:capture_mob(self, clicker, 0, 60, 5, false, nil) then return end
end,
@ -122,8 +122,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ExtremeHillsM",
"ExtremeHills+",
"ExtremeHills+_snowtop",
"StoneBeach",
"Plains",
"Plains_beach",
"SunflowerPlains",

View File

@ -40,7 +40,8 @@ local cod = {
xp_max = 3,
armor = 100,
rotate = 180,
spawn_in_group = 10,
spawn_in_group_min = 3,
spawn_in_group = 8,
tilt_swim = true,
collisionbox = {-0.3, 0.0, -0.3, 0.3, 0.79, 0.3},
visual = "mesh",
@ -103,7 +104,7 @@ local cod = {
on_rightclick = function(self, clicker)
if clicker:get_wielded_item():get_name() == "mcl_buckets:bucket_water" then
self.object:remove()
clicker:set_wielded_item("mcl_fishing:bucket_cod")
clicker:set_wielded_item("mcl_buckets:bucket_cod")
awards.unlock(clicker:get_player_name(), "mcl:tacticalFishing")
end
end

View File

@ -48,7 +48,7 @@ local cow_def = {
run_end = 40,
},
on_rightclick = function(self, clicker)
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
if mcl_mobs:protect(self, clicker) then return end
if self.child then
@ -83,9 +83,11 @@ mcl_mobs:register_mob("mobs_mc:cow", cow_def)
local mooshroom_def = table.copy(cow_def)
mooshroom_def.description = S("Mooshroom")
mooshroom_def.mesh = "mobs_mc_cow.b3d"
mooshroom_def.spawn_in_group_min = 4
mooshroom_def.spawn_in_group = 8
mooshroom_def.textures = { {"mobs_mc_mooshroom.png", "mobs_mc_mushroom_red.png"}, {"mobs_mc_mooshroom_brown.png", "mobs_mc_mushroom_brown.png" } }
mooshroom_def.on_rightclick = function(self, clicker)
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
if mcl_mobs:protect(self, clicker) then return end
if self.child then
@ -151,17 +153,12 @@ mcl_mobs:spawn_specific(
"ground",
{
"flat",
"IcePlainsSpikes",
"ColdTaiga",
"ColdTaiga_beach",
"ColdTaiga_beach_water",
"MegaTaiga",
"MegaSpruceTaiga",
"ExtremeHills",
"ExtremeHills_beach",
"ExtremeHillsM",
"ExtremeHills+",
"ExtremeHills+_snowtop",
"StoneBeach",
"Plains",
"Plains_beach",

View File

@ -12,6 +12,7 @@ local S = minetest.get_translator("mobs_mc")
mcl_mobs:register_mob("mobs_mc:creeper", {
type = "monster",
spawn_class = "hostile",
spawn_in_group = 1,
hp_min = 20,
hp_max = 20,
xp_min = 5,
@ -274,7 +275,6 @@ mcl_mobs:spawn_specific(
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -301,7 +301,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
@ -340,7 +339,6 @@ mcl_mobs:spawn_specific(
"Forest_deep_ocean",
"JungleM_deep_ocean",
"FlowerForest_deep_ocean",
"MushroomIsland_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
@ -350,7 +348,6 @@ mcl_mobs:spawn_specific(
"MesaBryce_deep_ocean",
"ExtremeHills+_deep_ocean",
"ExtremeHills_ocean",
"MushroomIsland_deep_ocean",
"Forest_ocean",
"MegaTaiga_deep_ocean",
"JungleEdge_ocean",
@ -376,7 +373,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",

View File

@ -30,7 +30,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
--###################
local dolphin = {
type = "monster",
type = "animal",
spawn_class = "water",
can_despawn = true,
passive = true,
@ -42,7 +42,8 @@ local dolphin = {
walk_chance = 100,
breath_max = 120,
rotate = 180,
spawn_in_group = 3,
spawn_in_group_min = 3,
spawn_in_group = 5,
tilt_swim = true,
collisionbox = {-0.3, 0.0, -0.3, 0.3, 0.79, 0.3},
visual = "mesh",
@ -136,7 +137,6 @@ mcl_mobs:spawn_specific(
"FlowerForest_beach",
"Forest_beach",
"StoneBeach",
"ColdTaiga_beach_water",
"Taiga_beach",
"Savanna_beach",
"Plains_beach",

View File

@ -219,6 +219,7 @@ local select_enderman_animation = function(animation_type)
end
local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false
local spawners = {}
mcl_mobs:register_mob("mobs_mc:enderman", {
description = S("Enderman"),
@ -257,23 +258,48 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
},
animation = select_enderman_animation("normal"),
_taken_node = "",
can_spawn = function(pos)
return #minetest.find_nodes_in_area(vector.offset(pos,0,1,0),vector.offset(pos,0,3,0),{"air"}) > 2
end,
do_custom = function(self, dtime)
-- PARTICLE BEHAVIOUR HERE.
local enderpos = self.object:get_pos()
local chanceOfParticle = math.random(0, 1)
if chanceOfParticle == 1 then
minetest.add_particle({
pos = {x=enderpos.x+math.random(-1,1)*math.random()/2,y=enderpos.y+math.random(0,3),z=enderpos.z+math.random(-1,1)*math.random()/2},
velocity = {x=math.random(-.25,.25), y=math.random(-.25,.25), z=math.random(-.25,.25)},
acceleration = {x=math.random(-.5,.5), y=math.random(-.5,.5), z=math.random(-.5,.5)},
expirationtime = math.random(),
size = math.random(),
collisiondetection = true,
vertical = false,
texture = "mcl_portals_particle"..math.random(1, 5)..".png",
})
if self._particle_timer and self._particle_timer >= 1 then
for _,player in pairs(minetest.get_connected_players()) do
if not spawners[player] then spawners[player] = {} end
local dst = vector.distance(player:get_pos(),enderpos)
if dst < 128 and not spawners[player][self.object] then
self._particle_timer = 0
spawners[player][self.object] = minetest.add_particlespawner({
amount = 5,
minpos = vector.new(-0.6,0,-0.6),
maxpos = vector.new(0.6,3,0.6),
minvel = vector.new(-0.25,-0.25,-0.25),
maxvel = vector.new(0.25,0.25,0.25),
minacc = vector.new(-0.5,-0.5,-0.5),
maxacc = vector.new(0.5,0.5,0.5),
minexptime = 0.2,
maxexptime = 3,
minsize = 0.2,
maxsize = 1.2,
collisiondetection = true,
vertical = false,
time = 0,
texture = "mcl_portals_particle"..math.random(1, 5)..".png",
attached = self.object,
playername = player:get_player_name(),
})
elseif dst > 128 and spawners[player][self.object] then
minetest.delete_particlespawner(spawners[player][self.object])
spawners[player][self.object] = nil
end
end
elseif not self._particle_timer then
self._particle_timer = 0
end
self._particle_timer = self._particle_timer + dtime
-- RAIN DAMAGE / EVASIVE WARP BEHAVIOUR HERE.
enderpos = self.object:get_pos()
local dim = mcl_worlds.pos_to_dimension(enderpos)
if dim == "overworld" then
if mcl_weather.state == "rain" or mcl_weather.state == "lightning" then
@ -309,24 +335,24 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
else return end
-- AGRESSIVELY WARP/CHASE PLAYER BEHAVIOUR HERE.
if self.state == "attack" then
--if (minetest.get_timeofday() * 24000) > 5001 and (minetest.get_timeofday() * 24000) < 19000 then
--self:teleport(nil)
--self.state = ""
--else
if self.attack then
local target = self.attack
local pos = target:get_pos()
if pos ~= nil then
if vector.distance(self.object:get_pos(), target:get_pos()) > 10 then
self:teleport(target)
end
if self.attack then
local target = self.attack
local pos = target:get_pos()
if pos ~= nil then
if vector.distance(self.object:get_pos(), target:get_pos()) > 10 then
self:teleport(target)
end
end
--end
end
else --if not attacking try to tp to the dark
if minetest.get_node_light(enderpos) > minetest.LIGHT_MAX then
self:teleport(nil)
end
end
-- ARROW / DAYTIME PEOPLE AVOIDANCE BEHAVIOUR HERE.
-- Check for arrows and people nearby.
local enderpos = self.object:get_pos()
enderpos = self.object:get_pos()
enderpos.y = enderpos.y + 1.5
local objs = minetest.get_objects_inside_radius(enderpos, 2)
for n = 1, #objs do
@ -590,6 +616,13 @@ mcl_mobs:register_mob("mobs_mc:enderman", {
attack_type = "dogfight",
})
minetest.register_on_leaveplayer(function(player)
for _,s in pairs(spawners[player]) do
minetest.delete_particlespawner(s)
end
spawners[player] = nil
end)
-- End spawn
mcl_mobs:spawn_specific(
@ -627,7 +660,6 @@ mcl_mobs:spawn_specific(
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -654,7 +686,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
@ -693,7 +724,6 @@ mcl_mobs:spawn_specific(
"Forest_deep_ocean",
"JungleM_deep_ocean",
"FlowerForest_deep_ocean",
"MushroomIsland_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
@ -703,7 +733,6 @@ mcl_mobs:spawn_specific(
"MesaBryce_deep_ocean",
"ExtremeHills+_deep_ocean",
"ExtremeHills_ocean",
"MushroomIsland_deep_ocean",
"Forest_ocean",
"MegaTaiga_deep_ocean",
"JungleEdge_ocean",
@ -729,7 +758,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",
@ -767,10 +795,10 @@ mcl_mobs:spawn_specific(
"ground",
{
"Nether",
"SoulsandValley",
"SoulsandVall3ey",
},
0,
minetest.LIGHT_MAX+1,
11,
30,
27500,
4,
@ -786,7 +814,7 @@ mcl_mobs:spawn_specific(
"WarpedForest"
},
0,
minetest.LIGHT_MAX+1,
11,
30,
5000,
4,

View File

@ -23,6 +23,7 @@ mcl_mobs:register_mob("mobs_mc:ghast", {
collisionbox = {-2, 5, -2, 2, 9, 2},
visual = "mesh",
mesh = "mobs_mc_ghast.b3d",
spawn_in_group = 1,
textures = {
{"mobs_mc_ghast.png"},
},
@ -64,6 +65,14 @@ mcl_mobs:register_mob("mobs_mc:ghast", {
makes_footstep_sound = false,
instant_death = true,
fire_resistant = true,
can_spawn = function(pos)
if not minetest.get_item_group(minetest.get_node(pos).name,"solid") then return false end
local p1=vector.offset(pos,-2,1,-2)
local p2=vector.offset(pos,2,5,2)
local nn = minetest.find_nodes_in_area(p1,p2,{"air"})
if #nn< 41 then return false end
return true
end,
do_custom = function(self)
if self.firing == true then
self.base_texture = {"mobs_mc_ghast_firing.png"}

View File

@ -8,12 +8,14 @@ mcl_mobs:register_mob("mobs_mc:guardian", {
description = S("Guardian"),
type = "monster",
spawn_class = "hostile",
spawn_in_group_min = 2,
spawn_in_group = 4,
hp_min = 30,
hp_max = 30,
xp_min = 10,
xp_max = 10,
breath_max = -1,
passive = false,
passive = false,
attack_type = "dogfight",
pathfinding = 1,
view_range = 16,

View File

@ -100,6 +100,8 @@ local horse = {
description = S("Horse"),
type = "animal",
spawn_class = "passive",
spawn_in_group_min = 2,
spawn_in_group = 6,
visual = "mesh",
mesh = "mobs_mc_horse.b3d",
visual_size = {x=3.0, y=3.0},
@ -490,6 +492,8 @@ local d = 0.86 -- donkey scale
local donkey = table.copy(horse)
donkey.description = S("Donkey")
donkey.textures = {{"blank.png", "mobs_mc_donkey.png", "blank.png"}}
donkey.spawn_in_group = 3
donkey.spawn_in_group_min = 1
donkey.animation = {
speed_normal = 25,
stand_start = 0, stand_end = 0,
@ -574,7 +578,7 @@ mcl_mobs:spawn_specific(
"Savanna_beach",
"Plains_beach",
},
0,
9,
minetest.LIGHT_MAX+1,
30,
15000,

View File

@ -114,6 +114,7 @@ dofile(path .. "/squid.lua") -- Animation, sound and egg texture by daufinsyd
dofile(path .. "/villager.lua") -- KrupnoPavel Mesh and animation by toby109tt / https://github.com/22i
-- Illagers and witch
dofile(path .. "/pillager.lua") -- Mesh by KrupnoPavel and MrRar, animation by MrRar
dofile(path .. "/villager_evoker.lua") -- Mesh and animation by toby109tt / https://github.com/22i
dofile(path .. "/villager_vindicator.lua") -- Mesh and animation by toby109tt / https://github.com/22i
dofile(path .. "/villager_zombie.lua") -- Mesh and animation by toby109tt / https://github.com/22i
@ -145,4 +146,5 @@ dofile(path .. "/wither.lua") -- Mesh and animation by toby109tt / https://gith
dofile(path .. "/cod.lua")
dofile(path .. "/salmon.lua")
dofile(path .. "/tropical_fish.lua")
dofile(path .. "/dolphin.lua")

View File

@ -28,11 +28,17 @@ mcl_mobs:register_mob("mobs_mc:llama", {
description = S("Llama"),
type = "animal",
spawn_class = "passive",
passive = false,
attack_type = "shoot",
shoot_interval = 5.5,
arrow = "mobs_mc:llamaspit",
shoot_offset = 1, --3.5 *would* be a good value visually but it somehow messes with the projectiles trajectory
spawn_in_group_min = 4,
spawn_in_group = 6,
hp_min = 15,
hp_max = 30,
xp_min = 1,
xp_max = 3,
passive = false,
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.86, 0.45},
visual = "mesh",
mesh = "mobs_mc_llama.b3d",
@ -45,7 +51,7 @@ mcl_mobs:register_mob("mobs_mc:llama", {
},
visual_size = {x=3, y=3},
makes_footstep_sound = true,
runaway = true,
runaway = false,
walk_velocity = 1,
run_velocity = 4.4,
follow_velocity = 4.4,
@ -211,24 +217,46 @@ mcl_mobs:register_mob("mobs_mc:llama", {
})
-- spit arrow (weapon)
mcl_mobs:register_arrow("mobs_mc:llamaspit", {
visual = "sprite",
visual_size = {x = 0.10, y = 0.10},
textures = {"mobs_mc_llama_spit.png"},
velocity = 5,
hit_player = function(self, player)
player:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 1},
}, nil)
end,
hit_mob = function(self, mob)
mob:punch(self.object, 1.0, {
full_punch_interval = 1.0,
damage_groups = {fleshy = 1},
}, nil)
end,
hit_node = function(self, pos, node)
end
})
--spawn
mcl_mobs:spawn_specific(
"mobs_mc:llama",
"overworld",
"ground",
{
"Mesa",
"MesaPlateauFM_grasstop",
"MesaPlateauF",
"MesaPlateauFM",
"MesaPlateauF_grasstop",
"MesaBryce",
"Jungle",
"Jungle_shore",
"JungleM",
"JungleM_shore",
"Savanna",
"SavannaM",
"SavannaM_beach",
"Savanna_beach",
"Savanna_ocean",
"JungleEdge",
"JungleEdgeM",
"ExtremeHills",
"ExtremeHills_beach",
"ExtremeHillsM",
},
0,
minetest.LIGHT_MAX+1,

View File

@ -1,64 +1,58 @@
# textdomain: mobs_mc
Agent=Agente
Bat=Murciélago
Blaze=Blaze
Chicken=Pollo
Cod=Bacalao
Cow=Vaca
Mooshroom=Champiñaca
Mooshroom=Champivaca
Creeper=Creeper
Ender Dragon=Enderdragón
Dolphin=Delfín
Ender Dragon=Ender Dragon
Enderman=Enderman
Endermite=Endermite
Ghast=Ghast
Elder Guardian=Gran guardián
Guardian=Guardián
Horse=Caballo
Skeleton Horse=Caballo esquelético
Zombie Horse=Caballo zombie
Elder Guardian=Guardián Anciano
Donkey=Burro
Horse=Caballo
Mule=Mula
Skeleton Horse=Caballo esqueleto
Zombie Horse=Caballo zombi
Iron Golem=Golem de hierro
Llama=Llama
Cat=Gato
Ocelot=Ocelote
Parrot=Loro
Pig=Cerdo
Polar Bear=Oso polar
Rabbit=Conejo
Killer Bunny=Conejo asesino
Rabbit=Conejo
Salmon=Salmón
Sheep=Oveja
Shulker=Shulker
Silverfish=Lepisma
Skeleton=Esqueleto
Stray=Esqueleto
Wither Skeleton=Esqueleto wither
Stray=Esqueleto glacial
Wither Skeleton=Esqueleto del Wither
Magma Cube=Cubo de Magma
Slime=Slime
Snow Golem=Golem de nieve
Spider=Araña
Cave Spider=Araña de las cuevas
Spider=Araña
Squid=Calamar
Vex=Ánima
Master=Maestro
Villager=Aldeano
Evoker=Invocador
Illusioner=Illusionista
Villager=Aldeano
Vindicator=Vindicador
Zombie Villager=Aldeano zombie
Zombie Villager=Aldeano zombi
Witch=Bruja
Wither=Wither
Wolf=Lobo
Husk=Husk
Zombie=Zombie
Zombie Pigman=Cerdo Zombie
Farmer=Granjero
Fisherman=Pescador
Fletcher=Flechador
Shepherd=Sacerdote
Librarian=Bibliotecario
Cartographer=Cartógrafo
Armorer=Armero
Leatherworker=Peletero
Butcher=Carnicero
Weapon Smith=Herrero de Armas
Tool Smith=Herrero de Herramientas
Cleric=Sacerdote
Nitwit=Simple
Baby Husk=Bebé Zombi Momificado
Baby Zombie=Bebé Zombi
Husk=Zombi Momificado
Zombie=Zombi
Baby Zombie Pigman=Bebé Hombrecerdo Zombi
Zombie Pigman=Hombrecerdo Zombi

View File

@ -62,3 +62,8 @@ Weapon Smith=Fabriquant d'arme
Tool Smith=Fabriquant d'outil
Cleric=Clerc
Nitwit=Crétin
Cod=Morue
Salmon=Saumon
Dolphin=Dauphin
Pillager=Pilleur
Tropical fish=Poisson tropical

View File

@ -65,3 +65,5 @@ Nitwit=
Cod=
Salmon=
Dolphin=
Pillager=
Tropical fish=

Binary file not shown.

Binary file not shown.

View File

@ -30,6 +30,8 @@ local ocelot = {
type = "animal",
spawn_class = "passive",
can_despawn = true,
spawn_in_group = 3,
spawn_in_group_min = 1,
hp_min = 10,
hp_max = 10,
xp_min = 1,

View File

@ -13,6 +13,53 @@ local shoulders = {
right = vector.new(3.75,10.5,0)
}
local function table_get_rand(tbl)
local keys = {}
for k in pairs(tbl) do
table.insert(keys, k)
end
return tbl[keys[math.random(#keys)]]
end
local function get_random_mob_sound()
local t = table.copy(minetest.registered_entities)
table.shuffle(t)
for _,e in pairs(t) do
if e.is_mob and e.sounds and #e.sounds > 0 then
return table_get_rand(e.sounds)
end
end
return minetest.registered_entities["mobs_mc:parrot"].sounds.random
end
local function imitate_mob_sound(self,mob)
local snd = mob.sounds.random
if not snd or mob.name == "mobs_mc:parrot" or math.random(20) == 1 then
snd = get_random_mob_sound()
end
return minetest.sound_play(snd, {
pos = self.object:get_pos(),
gain = 1.0,
pitch = 2.5,
max_hear_distance = self.sounds and self.sounds.distance or 32
}, true)
end
local function check_mobimitate(self,dtime)
if not self._mobimitate_timer or self._mobimitate_timer > 30 then
self._mobimitate_timer = 0
for _,o in pairs(minetest.get_objects_inside_radius(self.object:get_pos(),20)) do
local l = o:get_luaentity()
if l and l.is_mob and l.name ~= "mobs_mc:parrot" then
imitate_mob_sound(self,l)
return
end
end
end
self._mobimitate_timer = self._mobimitate_timer + dtime
end
--find a free shoulder or return nil
local function get_shoulder(player)
local sh = "left"
@ -53,7 +100,8 @@ local function check_perch(self,dtime)
local n1 = minetest.get_node(vector.offset(p:get_pos(),0,-0.6,0)).name
local n2 = minetest.get_node(vector.offset(p:get_pos(),0,0,0)).name
local n3 = minetest.get_node(vector.offset(p:get_pos(),0,1,0)).name
if n1 == "air" or minetest.get_item_group(n2,"water") > 0 or minetest.get_item_group(n2,"lava") > 0 then
if ( n1 == "air" or minetest.get_item_group(n2,"water") > 0 or minetest.get_item_group(n2,"lava") > 0) and
not minetest.is_creative_enabled(p:get_player_name()) then
o:set_detach()
self.detach_timer = 0
return
@ -79,7 +127,7 @@ end
mcl_mobs:register_mob("mobs_mc:parrot", {
description = S("Parrot"),
type = "npc",
type = "passive",
spawn_class = "passive",
pathfinding = 1,
hp_min = 6,
@ -159,6 +207,7 @@ mcl_mobs:register_mob("mobs_mc:parrot", {
end,
do_custom = function(self,dtime)
check_perch(self,dtime)
check_mobimitate(self,dtime)
end,
do_punch = function(self,puncher) --do_punch is the mcl_mobs_redo variant - it gets called by on_punch later....
if self.object:get_attach() == puncher then

View File

@ -99,7 +99,7 @@ mcl_mobs:register_mob("mobs_mc:pig", {
local wielditem = clicker:get_wielded_item()
-- Feed pig
if wielditem:get_name() ~= "mcl_mobitems:carrot_on_a_stick" then
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
end
if mcl_mobs:protect(self, clicker) then return end
@ -194,17 +194,12 @@ mcl_mobs:spawn_specific(
"ground",
{
"flat",
"IcePlainsSpikes",
"ColdTaiga",
"ColdTaiga_beach",
"ColdTaiga_beach_water",
"MegaTaiga",
"MegaSpruceTaiga",
"ExtremeHills",
"ExtremeHills_beach",
"ExtremeHillsM",
"ExtremeHills+",
"ExtremeHills+_snowtop",
"StoneBeach",
"Plains",
"Plains_beach",

View File

@ -0,0 +1,122 @@
local S = minetest.get_translator("mobs_mc")
local function reload(self)
if not self.object:get_pos() then return end
minetest.sound_play("mcl_bows_crossbow_drawback_1", {object = self.object, max_hear_distance=16}, true)
local props = self.object:get_properties()
if not props then return end
props.textures[2] = "mcl_bows_crossbow_3.png^[resize:16x16"
self.object:set_properties(props)
end
local function reset_animation(self, animation)
if not self.object:get_pos() or self._current_animation ~= animation then return end
self._current_animation = "stand_reload" -- Mobs Redo won't set the animation unless we do this
mcl_mobs:set_animation(self, animation)
end
pillager = {
description = S("Pillager"),
type = "monster",
spawn_class = "hostile",
hp_min = 24,
hp_max = 24,
xp_min = 6,
xp_max = 6,
breath_max = -1,
eye_height = 1.5,
shoot_interval = 3,
shoot_offset = 1.5,
armor = {fleshy = 100},
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.98, 0.3},
pathfinding = 1,
group_attack = true,
visual = "mesh",
mesh = "mobs_mc_pillager.b3d",
visual_size = {x=2.75, y=2.75},
makes_footstep_sound = true,
walk_velocity = 1.2,
run_velocity = 4,
view_range = 16,
fear_height = 4,
arrow = "mcl_bows:arrow_entity",
attack_type = "dogshoot", -- Alternate punching/shooting
reach = 0, -- Punching max distance
damage = 0, -- Punching damage
dogshoot_switch = 1, -- Start of shooting
dogshoot_count_max = 5, -- Max time spent shooting (standing)
dogshoot_count2_max = 1, -- Max time spent punching (running)
sounds = {
random = "mobs_mc_pillager_grunt2",
war_cry = "mobs_mc_pillager_grunt1",
death = "mobs_mc_pillager_ow2",
damage = "mobs_mc_pillager_ow1",
distance = 16,
},
textures = {
{
"mobs_mc_pillager.png", -- Skin
"mcl_bows_crossbow_3.png^[resize:16x16", -- Wielded item
}
},
drops = {
{
name = "mcl_bows:arrow",
chance = 1,
min = 0,
max = 2,
looting = "common",
},
{
name = "mcl_bows:crossbow",
chance = 100 / 8.5,
min = 1,
max = 1,
looting = "rare",
},
},
animation = {
unloaded_walk_start = 1, unloaded_walk_end = 40,
unloaded_stand_start = 41, unloaded_stand_end = 60,
reload_stand_start = 61, reload_stand_end = 100, reload_stand_speed = 20,
stand_start = 101, stand_end = 109, stand_speed = 6,
walk_start = 111, walk_end = 150, walk_speed = 30,
run_start = 111, run_end = 150, run_speed = 50,
reload_run_start = 151, reload_run_end = 190, reload_run_speed = 20,
die_start = 191, die_end = 192, die_speed = 15,
stand_unloaded_start = 40, stand_unloaded_end = 59,
die_loop = false,
},
shoot_arrow = function(self, pos, dir)
minetest.sound_play("mcl_bows_crossbow_shoot", {object = self.object, max_hear_distance=16}, true)
local props = self.object:get_properties()
props.textures[2] = "mcl_bows_crossbow_0.png^[resize:16x16"
self.object:set_properties(props)
local old_anim = self._current_animation
if old_anim == "run" or old_anim == "walk" then
mcl_mobs:set_animation(self, "reload_run")
end
if old_anim == "stand" then
mcl_mobs:set_animation(self, "reload_stand")
end
self._current_animation = old_anim -- Mobs Redo will imediately reset the animation otherwise
minetest.after(1, reload, self)
minetest.after(2, reset_animation, self, old_anim)
-- 2-4 damage per arrow
local dmg = math.max(4, math.random(2, 8))
mcl_bows_s.shoot_arrow_crossbow("mcl_bows:arrow", pos, dir, self.object:get_yaw(), self.object, nil, dmg)
-- While we are at it, change the sounds since there is no way to do this in Mobs Redo
if self.sounds and self.sounds.random then
self.sounds = table.copy(self.sounds)
self.sounds.random = "mobs_mc_pillager_grunt" .. math.random(2)
end
-- Randomize reload time
self.shoot_interval = math.random(3, 4)
end,
}
mcl_mobs:register_mob("mobs_mc:pillager", pillager)
mcl_mobs:register_egg("mobs_mc:pillager", S("Pillager"), "mobs_mc_spawn_icon_pillager.png", 0)

View File

@ -6,9 +6,10 @@ local rabbit = {
description = S("Rabbit"),
type = "animal",
spawn_class = "passive",
spawn_in_group_min = 2,
spawn_in_group = 3,
passive = true,
reach = 1,
hp_min = 3,
hp_max = 3,
xp_min = 1,
@ -74,7 +75,7 @@ local rabbit = {
},
on_rightclick = function(self, clicker)
-- Feed, tame protect or capture
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
if mcl_mobs:protect(self, clicker) then return end
if mcl_mobs:capture_mob(self, clicker, 0, 50, 80, false, nil) then return end
end,

View File

@ -60,7 +60,7 @@ local salmon = {
on_rightclick = function(self, clicker)
if clicker:get_wielded_item():get_name() == "mcl_buckets:bucket_water" then
self.object:remove()
clicker:set_wielded_item("mcl_fishing:bucket_salmon")
clicker:set_wielded_item("mcl_buckets:bucket_salmon")
awards.unlock(clicker:get_player_name(), "mcl:tacticalFishing")
end
end

View File

@ -70,6 +70,8 @@ mcl_mobs:register_mob("mobs_mc:sheep", {
color = "unicolor_white",
makes_footstep_sound = true,
walk_velocity = 1,
runaway = true,
runaway_from = {"mobs_mc:wolf"},
drops = {
{name = "mcl_mobitems:mutton",
chance = 1,
@ -195,7 +197,7 @@ mcl_mobs:register_mob("mobs_mc:sheep", {
on_rightclick = function(self, clicker)
local item = clicker:get_wielded_item()
if mcl_mobs:feed_tame(self, clicker, 1, true, true) then return end
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then return end
if mcl_mobs:protect(self, clicker) then return end
if item:get_name() == "mcl_tools:shears" and not self.gotten and not self.child then
@ -346,7 +348,7 @@ mcl_mobs:spawn_specific(
"Swampland",
"Swampland_shore"
},
0,
9,
minetest.LIGHT_MAX+1,
30,
15000,

View File

@ -162,7 +162,6 @@ mcl_mobs:spawn_specific(
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -189,7 +188,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
@ -228,7 +226,6 @@ mcl_mobs:spawn_specific(
"Forest_deep_ocean",
"JungleM_deep_ocean",
"FlowerForest_deep_ocean",
"MushroomIsland_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
@ -238,7 +235,6 @@ mcl_mobs:spawn_specific(
"MesaBryce_deep_ocean",
"ExtremeHills+_deep_ocean",
"ExtremeHills_ocean",
"MushroomIsland_deep_ocean",
"Forest_ocean",
"MegaTaiga_deep_ocean",
"JungleEdge_ocean",
@ -264,7 +260,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",

View File

@ -101,7 +101,8 @@ mcl_mobs:spawn_specific(
"nether",
"ground",
{
"Nether"
"Nether",
"SoulsandValley",
},
0,
7,

View File

@ -446,11 +446,6 @@ minetest.LIGHT_MAX+1,
mmin,
mmax)
--mcl_mobs:spawn_specific("mobs_mc:magma_cube_tiny", { "mcl_nether:nether_brick", "mcl_nether:netherrack" }, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 11000, 4, mmin, mmax)
--mcl_mobs:spawn_specific("mobs_mc:magma_cube_small", { "mcl_nether:nether_brick", "mcl_nether:netherrack" }, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 11100, 4, mmin, mmax)
--mcl_mobs:spawn_specific("mobs_mc:magma_cube_big", { "mcl_nether:nether_brick", "mcl_nether:netherrack" }, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 11200, 4, mmin, mmax)
-- spawn eggs
mcl_mobs:register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "mobs_mc_spawn_icon_magmacube.png")
mcl_mobs:register_egg("mobs_mc:slime_big", S("Slime"), "mobs_mc_spawn_icon_slime.png")

Binary file not shown.

Binary file not shown.

View File

@ -109,7 +109,6 @@ mcl_mobs:spawn_specific(
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -136,7 +135,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
@ -175,7 +173,6 @@ mcl_mobs:spawn_specific(
"Forest_deep_ocean",
"JungleM_deep_ocean",
"FlowerForest_deep_ocean",
"MushroomIsland_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
@ -185,7 +182,6 @@ mcl_mobs:spawn_specific(
"MesaBryce_deep_ocean",
"ExtremeHills+_deep_ocean",
"ExtremeHills_ocean",
"MushroomIsland_deep_ocean",
"Forest_ocean",
"MegaTaiga_deep_ocean",
"JungleEdge_ocean",
@ -211,7 +207,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 938 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 477 B

View File

@ -0,0 +1,186 @@
--Tropical Fish by cora
local S = minetest.get_translator(minetest.get_current_modname())
local base_colors = {
"#FF3855",
"#FFF700",
"#A7F432",
"#FF5470",
"#5DADEC",
"#A83731",
"#87FF2A",
"#E936A7",
"#FF007C",
"#9C51B6",
"#66FF66",
"#AAF0D1",
"#50BFE6",
"#FFFF66",
"#FF9966",
"#FF00CC",
}
local pattern_colors = {
"#FF3855",
"#FFF700",
"#A7F432",
"#FF5470",
"#5DADEC",
"#A83731",
"#87FF2A",
"#E936A7",
"#FF007C",
"#9C51B6",
"#66FF66",
"#AAF0D1",
"#50BFE6",
"#FFFF66",
"#FF9966",
"#FF00CC",
}
local function set_textures(self)
if not self._type then
self._type = "a"
if math.random(2) == 1 then
self.object:set_properties({})
self._type="b"
end
self._base_color = base_colors[math.random(#base_colors)]
self._pattern_color = pattern_colors[math.random(#pattern_colors)]
self._pattern = "extra_mobs_tropical_fish_pattern_"..self._type.."_"..math.random(6)..".png"
end
self.object:set_properties({
textures = {
"(extra_mobs_tropical_fish_"..self._type..".png^[colorize:"..self._base_color..":127)^("..self._pattern.."^[colorize:"..self._pattern_color..")",
},
mesh="extra_mobs_tropical_fish_"..self._type..".b3d"
})
end
local tropical_fish = {
type = "animal",
spawn_class = "water",
can_despawn = true,
passive = true,
hp_min = 3,
hp_max = 3,
xp_min = 1,
xp_max = 3,
armor = 100,
spawn_in_group = 9,
tilt_swim = true,
collisionbox = {-0.2, 0.0, -0.2, 0.2, 0.1, 0.2},
visual = "mesh",
mesh = "extra_mobs_tropical_fish_a.b3d",
textures = { "extra_mobs_tropical_fish_a.png" }, -- to be populated on_spawn
sounds = {},
animation = {
stand_start = 0,
stand_end = 20,
walk_start = 20,
walk_end = 40,
run_start = 20,
run_end = 40,
},
drops = {
{name = "mcl_fishing:clownfish_raw",
chance = 1,
min = 1,
max = 1,},
{name = "mcl_dye:white",
chance = 20,
min = 1,
max = 1,},
},
visual_size = {x=3, y=3},
makes_footstep_sound = false,
swim = true,
fly = true,
fly_in = "mcl_core:water_source",
breathes_in_water = true,
jump = false,
view_range = 16,
runaway = true,
fear_height = 4,
on_rightclick = function(self, clicker)
if clicker:get_wielded_item():get_name() == "mcl_buckets:bucket_water" then
self.object:remove()
clicker:set_wielded_item("mcl_buckets:bucket_tropical_fish")
awards.unlock(clicker:get_player_name(), "mcl:tacticalFishing")
end
end,
on_spawn = set_textures,
}
mcl_mobs:register_mob("mobs_mc:tropical_fish", tropical_fish)
local water = 0
mcl_mobs:spawn_specific(
"mobs_mc:tropical_fish",
"overworld",
"water",
{
"Mesa",
"Jungle",
"Savanna",
"Desert",
"MesaPlateauFM_grasstop",
"JungleEdgeM",
"JungleM",
"MesaPlateauF",
"MesaPlateauFM",
"MesaPlateauF_grasstop",
"MesaBryce",
"JungleEdge",
"SavannaM",
"Savanna_beach",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
"MesaPlateauF_sandlevel",
"MesaBryce_sandlevel",
"Mesa_sandlevel",
"JungleEdgeM_ocean",
"Jungle_deep_ocean",
"Savanna_ocean",
"MesaPlateauF_ocean",
"Savanna_deep_ocean",
"JungleEdgeM_deep_ocean",
"SunflowerPlains_deep_ocean",
"Mesa_ocean",
"JungleEdge_deep_ocean",
"SavannaM_deep_ocean",
"Desert_deep_ocean",
"Mesa_deep_ocean",
"MesaPlateauFM_ocean",
"JungleM_deep_ocean",
"SavannaM_ocean",
"MesaPlateauF_deep_ocean",
"MesaBryce_deep_ocean",
"JungleEdge_ocean",
"MesaBryce_ocean",
"Jungle_ocean",
"MesaPlateauFM_deep_ocean",
"Desert_ocean",
"JungleM_ocean",
"MesaBryce_underground",
"Mesa_underground",
"Jungle_underground",
"MesaPlateauF_underground",
"SavannaM_underground",
"MesaPlateauFM_underground",
"Desert_underground",
"Savanna_underground",
"JungleM_underground",
"JungleEdgeM_underground",
},
0,
minetest.LIGHT_MAX+1,
30,
4000,
3,
water-16,
water+1)
--spawn egg
mcl_mobs:register_egg("mobs_mc:tropical_fish", S("Tropical fish"), "extra_mobs_spawn_icon_tropical_fish.png", 0)

View File

@ -591,6 +591,51 @@ local function go_home(entity)
end)
end
local function has_golem(pos)
local r = false
for _,o in pairs(minetest.get_objects_inside_radius(pos,16)) do
local l = o:get_luaentity()
if l and l.name == "mobs_mc:iron_golem" then return true end
end
end
local function has_summon_participants(self)
local r = 0
for _,o in pairs(minetest.get_objects_inside_radius(self.object:get_pos(),10)) do
local l = o:get_luaentity()
--TODO check for panicking or gossiping
if l and l.name == "mobs_mc:villager" then r = r + 1 end
end
return r > 2
end
local function summon_golem(self)
vector.offset(self.object:get_pos(),-10,-10,-10)
local nn = minetest.find_nodes_in_area_under_air(vector.offset(self.object:get_pos(),-10,-10,-10),vector.offset(self.object:get_pos(),10,10,10),{"group:solid","group:water"})
table.shuffle(nn)
for _,n in pairs(nn) do
local up = minetest.find_nodes_in_area(vector.offset(n,0,1,0),vector.offset(n,0,3,0),{"air"})
if up and #up >= 3 then
minetest.sound_play("mcl_portals_open_end_portal", {pos=n, gain=0.5, max_hear_distance = 16}, true)
return minetest.add_entity(vector.offset(n,0,1,0),"mobs_mc:iron_golem")
end
end
end
local function check_summon(self,dtime)
-- TODO has selpt in last 20?
if self._summon_timer and self._summon_timer > 30 then
local pos = self.object:get_pos()
self._summon_timer = 0
if has_golem(pos) then return false end
if not has_summon_participants(self) then return end
summon_golem(self)
elseif self._summon_timer == nil then
self._summon_timer = 0
end
self._summon_timer = self._summon_timer + dtime
end
----- JOBSITE LOGIC
local function get_profession_by_jobsite(js)
for k,v in pairs(professions) do
@ -816,7 +861,7 @@ local function show_trade_formspec(playername, trader, tradenum)
.."listring[current_player;main]"
.."listring["..tradeinv..";input]"
.."listring[current_player;main]"
minetest.sound_play("mobs_mc_villager_trade", {to_player = playername}, true)
minetest.sound_play("mobs_mc_villager_trade", {to_player = playername,object=trader.object}, true)
minetest.show_formspec(playername, tradeinv_name, formspec)
end
@ -878,13 +923,13 @@ local function update_offer(inv, player, sound)
(trade.locked == false)) then
inv:set_stack("output", 1, inv:get_stack("offered", 1))
if sound then
minetest.sound_play("mobs_mc_villager_accept", {to_player = name}, true)
minetest.sound_play("mobs_mc_villager_accept", {to_player = name,object=trader.object}, true)
end
return true
else
inv:set_stack("output", 1, ItemStack(""))
if sound then
minetest.sound_play("mobs_mc_villager_deny", {to_player = name}, true)
minetest.sound_play("mobs_mc_villager_deny", {to_player = name,object=trader.object}, true)
end
return false
end
@ -1084,7 +1129,8 @@ local trade_inventory = {
if not wanted2:is_empty() then
inv:remove_item("input", inv:get_stack("wanted", 2))
end
minetest.sound_play("mobs_mc_villager_accept", {to_player = player:get_player_name()}, true)
local trader = player_trading_with[name]
minetest.sound_play("mobs_mc_villager_accept", {to_player = player:get_player_name(),object=trader.object}, true)
end
update_offer(inv, player, true)
end,
@ -1194,10 +1240,11 @@ local trade_inventory = {
elseif listname == "input" then
update_offer(inv, player, false)
end
local trader = player_trading_with[name]
if accept then
minetest.sound_play("mobs_mc_villager_accept", {to_player = name}, true)
minetest.sound_play("mobs_mc_villager_accept", {to_player = name,object=trader.object}, true)
else
minetest.sound_play("mobs_mc_villager_deny", {to_player = name}, true)
minetest.sound_play("mobs_mc_villager_deny", {to_player = name,object=trader.object}, true)
end
end,
}
@ -1295,7 +1342,7 @@ mcl_mobs:register_mob("mobs_mc:villager", {
--minetest.log("arrived at jobsite")
end)
end
if self.child or self._profession == "unemployed" then
if self.child or self._profession == "unemployed" or self._profession == "nitwit" then
return
end
-- Initiate trading
@ -1335,6 +1382,7 @@ mcl_mobs:register_mob("mobs_mc:villager", {
_player_scan_timer = 0,
_trading_players = {}, -- list of playernames currently trading with villager (open formspec)
do_custom = function(self, dtime)
check_summon(self,dtime)
-- Stand still if player is nearby.
if not self._player_scan_timer then
self._player_scan_timer = 0

View File

@ -29,6 +29,7 @@ mcl_mobs:register_mob("mobs_mc:villager_zombie", {
description = S("Zombie Villager"),
type = "monster",
spawn_class = "hostile",
spawn_in_group = 1,
hp_min = 20,
hp_max = 20,
xp_min = 5,
@ -147,7 +148,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",
@ -184,7 +184,6 @@ mcl_mobs:spawn_specific(
"Plains",
"Desert",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -211,7 +210,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",

View File

@ -18,6 +18,7 @@ local wolf = {
xp_max = 3,
passive = false,
group_attack = true,
spawn_in_group = 8,
collisionbox = {-0.3, -0.01, -0.3, 0.3, 0.84, 0.3},
visual = "mesh",
mesh = "mobs_mc_wolf.b3d",
@ -64,6 +65,11 @@ local wolf = {
dog:set_yaw(yaw)
ent = dog:get_luaentity()
ent.owner = clicker:get_player_name()
ent.tamed = true
mcl_mobs:set_animation(ent, "sit")
ent.walk_chance = 0
ent.jump = false
ent.health = self.health
-- cornfirm taming
minetest.sound_play("mobs_mc_wolf_bark", {object=dog, max_hear_distance=16}, true)
-- Replace wolf
@ -73,9 +79,10 @@ local wolf = {
end,
animation = {
speed_normal = 50, speed_run = 100,
stand_start = 40, stand_end = 45,
walk_start = 0, walk_end = 40,
run_start = 0, run_end = 40,
stand_start = 0, stand_end = 40,
walk_start = 40, walk_end = 80,
run_start = 80, run_end = 120,
sit_start = 121, sit_end = 140,
},
jump = true,
attacks_monsters = true,
@ -126,7 +133,8 @@ dog.hp_max = 20
dog.textures = get_dog_textures("unicolor_red")
dog.owner = ""
-- TODO: Start sitting by default
dog.order = "roam"
dog.order = "sit"
dog.state = "stand"
dog.owner_loyal = true
dog.follow_velocity = 3.2
-- Automatically teleport dog to owner
@ -149,33 +157,12 @@ end
dog.on_rightclick = function(self, clicker)
local item = clicker:get_wielded_item()
if mcl_mobs:protect(self, clicker) then
if mcl_mobs:feed_tame(self, clicker, 1, true, false) then
return
elseif mcl_mobs:protect(self, clicker) then
return
elseif item:get_name() ~= "" and mcl_mobs:capture_mob(self, clicker, 0, 2, 80, false, nil) then
return
elseif is_food(item:get_name()) then
-- Feed to increase health
local hp = self.health
local hp_add = 0
-- Use eatable group to determine health boost
local eatable = minetest.get_item_group(item, "eatable")
if eatable > 0 then
hp_add = eatable
elseif item:get_name() == "mcl_mobitems:rotten_flesh" then
hp_add = 4
else
hp_add = 4
end
local new_hp = hp + hp_add
if new_hp > self.hp_max then
new_hp = self.hp_max
end
if not minetest.is_creative_enabled(clicker:get_player_name()) then
item:take_item()
clicker:set_wielded_item(item)
end
self.health = new_hp
return
elseif minetest.get_item_group(item:get_name(), "dye") == 1 then
-- Dye (if possible)
for group, _ in pairs(colors) do
@ -209,14 +196,18 @@ dog.on_rightclick = function(self, clicker)
if not self.order or self.order == "" or self.order == "sit" then
particle = "mobs_mc_wolf_icon_roam.png"
self.order = "roam"
self.state = "stand"
self.walk_chance = default_walk_chance
self.jump = true
mcl_mobs:set_animation(self, "stand")
-- TODO: Add sitting model
else
particle = "mobs_mc_wolf_icon_sit.png"
self.order = "sit"
self.state = "stand"
self.walk_chance = 0
self.jump = false
mcl_mobs:set_animation(self, "sit")
end
-- Display icon to show current order (sit or roam)
minetest.add_particle({

View File

@ -55,7 +55,7 @@ local zombie = {
xp_max = 5,
breath_max = -1,
armor = {undead = 90, fleshy = 90},
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.8, 0.3},
visual = "mesh",
mesh = "mobs_mc_zombie.b3d",
textures = {
@ -65,7 +65,6 @@ local zombie = {
"mobs_mc_empty.png", -- wielded_item
}
},
visual_size = {x=3, y=3},
makes_footstep_sound = true,
sounds = {
random = "mobs_mc_zombie_growl",
@ -85,16 +84,23 @@ local zombie = {
group_attack = { "mobs_mc:zombie", "mobs_mc:baby_zombie", "mobs_mc:husk", "mobs_mc:baby_husk" },
drops = drops_zombie,
animation = {
speed_normal = 25, speed_run = 50,
stand_start = 40, stand_end = 80,
walk_start = 0, walk_end = 40,
run_start = 0, run_end = 40,
stand_start = 40, stand_end = 49, stand_speed = 2,
walk_start = 0, walk_end = 39, speed_normal = 25,
run_start = 0, run_end = 39, speed_run = 50,
punch_start = 50, punch_end = 59, punch_speed = 20,
},
ignited_by_sunlight = true,
sunlight_damage = 2,
view_range = 16,
attack_type = "dogfight",
harmed_by_heal = true,
on_spawn = function(self)
-- Remove saved visual_size on old existing entites.
-- Old entities were 3 now it's 1.
self.visual_size = nil
self.object:set_properties({visual_size = self.visual_size})
self.base_size = self.visual_size
end,
}
mcl_mobs:register_mob("mobs_mc:zombie", zombie)
@ -104,13 +110,20 @@ mcl_mobs:register_mob("mobs_mc:zombie", zombie)
local baby_zombie = table.copy(zombie)
baby_zombie.description = S("Baby Zombie")
baby_zombie.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
baby_zombie.collisionbox = {-0.25, -0.01, -0.25, 0.25, 1, 0.25}
baby_zombie.xp_min = 12
baby_zombie.xp_max = 12
baby_zombie.visual_size = {x=zombie.visual_size.x/2, y=zombie.visual_size.y/2}
baby_zombie.visual_size = {x = 1 / 2, y = 1 / 2}
baby_zombie.walk_velocity = 1.2
baby_zombie.run_velocity = 2.4
baby_zombie.child = 1
baby_zombie.reach = 1
baby_zombie.animation = {
stand_start = 100, stand_end = 109, stand_speed = 2,
walk_start = 60, walk_end = 99, speed_normal = 40,
run_start = 60, run_end = 99, speed_run = 80,
punch_start = 109, punch_end = 119
}
mcl_mobs:register_mob("mobs_mc:baby_zombie", baby_zombie)
@ -134,15 +147,16 @@ mcl_mobs:register_mob("mobs_mc:husk", husk)
-- Baby husk.
-- A smaller and more dangerous variant of the husk
local baby_husk = table.copy(husk)
local baby_husk = table.copy(baby_zombie)
baby_husk.description = S("Baby Husk")
baby_husk.collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.94, 0.25}
baby_husk.xp_min = 12
baby_husk.xp_max = 12
baby_husk.visual_size = {x=zombie.visual_size.x/2, y=zombie.visual_size.y/2}
baby_husk.walk_velocity = 1.2
baby_husk.run_velocity = 2.4
baby_husk.child = 1
baby_husk.textures = {{
"mobs_mc_empty.png", -- armor
"mobs_mc_husk.png", -- texture
"mobs_mc_empty.png", -- wielded_item
}}
baby_husk.ignited_by_sunlight = false
baby_husk.sunlight_damage = 0
baby_husk.drops = drops_common
mcl_mobs:register_mob("mobs_mc:baby_husk", baby_husk)
@ -162,7 +176,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",
@ -198,7 +211,6 @@ mcl_mobs:spawn_specific(
"Forest",
"Plains",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -225,7 +237,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",
@ -254,7 +265,6 @@ mcl_mobs:spawn_specific(
"RoofedForest_underground",
"Jungle_underground",
"Swampland_underground",
"MushroomIsland_underground",
"BirchForest_underground",
"Plains_underground",
"MesaPlateauF_underground",
@ -290,7 +300,6 @@ mcl_mobs:spawn_specific(
"Forest",
"Plains",
"ColdTaiga",
"MushroomIsland",
"IcePlainsSpikes",
"SunflowerPlains",
"IcePlains",
@ -317,7 +326,6 @@ mcl_mobs:spawn_specific(
"ExtremeHills_beach",
"ColdTaiga_beach",
"Swampland_shore",
"MushroomIslandShore",
"JungleM_shore",
"Jungle_shore",
"MesaPlateauFM_sandlevel",

View File

@ -134,7 +134,8 @@ mcl_mobs:spawn_specific(
"nether",
"ground",
{
"Nether"
"Nether",
"CrimsonForest",
},
0,
minetest.LIGHT_MAX+1,

View File

@ -120,9 +120,10 @@ function lightning.strike(pos)
if not pos then
return false
end
local objects = get_objects_inside_radius(pos2, 3.5)
if lightning.on_strike_functions then
for _, func in pairs(lightning.on_strike_functions) do
-- allow on_strike callbacks to destroy entities by re-obtaining objects for each callback
local objects = get_objects_inside_radius(pos2, 3.5)
func(pos, pos2, objects)
end
end
@ -174,6 +175,7 @@ lightning.register_on_strike(function(pos, pos2, objects)
elseif lua and lua.name == "mobs_mc:creeper" then
mcl_util.replace_mob(obj, "mobs_mc:creeper_charged")
else
-- WARNING: unsafe entity handling. object may be removed immediately
mcl_util.deal_damage(obj, 5, { type = "lightning_bolt" })
end
end
@ -182,8 +184,9 @@ lightning.register_on_strike(function(pos, pos2, objects)
for i = 1, #playerlist do
local player = playerlist[i]
local sky = {}
local sky_table = player:get_sky(true)
sky.bgcolor, sky.type, sky.textures = player:get_sky()
sky.bgcolor, sky.type, sky.textures = sky_table.base_color, sky_table.type, sky_table.textures
local name = player:get_player_name()
if ps[name] == nil then

View File

@ -1,4 +1,3 @@
# textdomain: lightning
@1 was struck by lightning.=@1 a été frappé par la foudre.
Let lightning strike at the specified position or yourself=Laissez la foudre frapper à la position spécifiée ou sur vous-même
Let lightning strike at the specified position or player. No parameter will strike yourself.=Fait frapper la foudre à la position spécifiée ou sur le joueur. Sans paramètre vous vous frapperez vous-même.
No position specified and unknown player=Aucune position spécifiée et joueur inconnu

View File

@ -1,7 +1,7 @@
mcl_weather.nether_dust = {}
mcl_weather.nether_dust.particlespawners = {}
local PARTICLES_COUNT_NETHER_DUST = tonumber(minetest.settings:get("mcl_weather_rain_particles")) or 150
local PARTICLES_COUNT_NETHER_DUST = tonumber(minetest.settings:get("mcl_weather_dust_particles")) or 150
local psdef= {
amount = PARTICLES_COUNT_NETHER_DUST,

View File

@ -2,6 +2,7 @@ local PARTICLES_COUNT_RAIN = tonumber(minetest.settings:get("mcl_weather_rain_pa
local PARTICLES_COUNT_THUNDER = tonumber(minetest.settings:get("mcl_weather_thunder_particles")) or 900
local get_connected_players = minetest.get_connected_players
local mgname = minetest.get_mapgen_setting("mg_name")
mcl_weather.rain = {
-- max rain particles created at time
@ -41,6 +42,14 @@ local psdef= {
local textures = {"weather_pack_rain_raindrop_1.png", "weather_pack_rain_raindrop_2.png"}
function mcl_weather.has_rain(pos)
if not mcl_worlds.has_weather(pos) then return false end
if mgname == "singlenode" or mgname == "v6" then return true end
local bd = minetest.registered_biomes[minetest.get_biome_name(minetest.get_biome_data(pos).biome)]
if bd and bd._mcl_biome_type == "hot" then return false end
return true
end
function mcl_weather.rain.sound_handler(player)
return minetest.sound_play("weather_rain", {
to_player = player:get_player_name(),
@ -83,7 +92,7 @@ end
function mcl_weather.rain.add_player(player)
if mcl_weather.players[player:get_player_name()] == nil then
local player_meta = {}
player_meta.origin_sky = {player:get_sky()}
player_meta.origin_sky = {player:get_sky(true)}
mcl_weather.players[player:get_player_name()] = player_meta
update_sound[player:get_player_name()]=true
end
@ -166,13 +175,23 @@ function mcl_weather.rain.make_weather()
for _, player in pairs(get_connected_players()) do
local pos=player:get_pos()
if mcl_weather.is_underwater(player) or not mcl_worlds.has_weather(pos) then
if mcl_weather.is_underwater(player) or not mcl_weather.has_rain(pos) then
mcl_weather.rain.remove_sound(player)
mcl_weather.remove_spawners_player(player)
if mcl_worlds.has_weather(pos) then
mcl_weather.set_sky_box_clear(player)
end
else
mcl_weather.rain.add_player(player)
mcl_weather.rain.add_rain_particles(player)
mcl_weather.rain.update_sound(player)
if mcl_weather.has_snow(pos) then
mcl_weather.rain.remove_sound(player)
mcl_weather.snow.add_player(player)
mcl_weather.snow.set_sky_box()
else
mcl_weather.rain.add_player(player)
mcl_weather.rain.add_rain_particles(player)
mcl_weather.rain.update_sound(player)
mcl_weather.rain.set_sky_box()
end
end
end
end

View File

@ -1,6 +1,21 @@
local mods_loaded = false
local NIGHT_VISION_RATIO = 0.45
function mcl_weather.set_sky_box_clear(player)
player:set_sky({
type = "regular",
sky_color = {
day_sky = "#92B9FF",
day_horizon = "#B4D0FF",
dawn_sky = "#B4BAFA",
dawn_horizon = "#BAC1F0",
night_sky = "#006AFF",
night_horizon = "#4090FF",
},
clouds = true,
})
end
mcl_weather.skycolor = {
-- Should be activated before do any effect.
active = true,
@ -9,7 +24,7 @@ mcl_weather.skycolor = {
force_update = true,
-- Update interval.
update_interval = 15,
update_interval = 3,
-- Main sky colors: starts from midnight to midnight.
-- Please do not set directly. Use add_layer instead.
@ -80,26 +95,34 @@ mcl_weather.skycolor = {
for _, player in ipairs(players) do
local pos = player:get_pos()
local dim = mcl_worlds.pos_to_dimension(pos)
local has_weather = (mcl_worlds.has_weather(pos) and (mcl_weather.state == "snow" or mcl_weather.state =="rain" or mcl_weather.state == "thunder") and mcl_weather.has_snow(pos)) or ((mcl_weather.state =="rain" or mcl_weather.state == "thunder") and mcl_weather.has_rain(pos))
if dim == "overworld" then
if (mcl_weather.state == "none") then
-- Clear weather
player:set_sky({
type = "regular",
sky_color = {
day_sky = "#92B9FF",
day_horizon = "#B4D0FF",
dawn_sky = "#B4BAFA",
dawn_horizon = "#BAC1F0",
night_sky = "#006AFF",
night_horizon = "#4090FF",
},
clouds = true,
})
mcl_weather.set_sky_box_clear(player)
player:set_sun({visible = true, sunrise_visible = true})
player:set_moon({visible = true})
player:set_stars({visible = true})
mcl_weather.skycolor.override_day_night_ratio(player, nil)
else
elseif not has_weather then
local day_color = mcl_weather.skycolor.get_sky_layer_color(0.15)
local dawn_color = mcl_weather.skycolor.get_sky_layer_color(0.27)
local night_color = mcl_weather.skycolor.get_sky_layer_color(0.1)
player:set_sky({ type = "regular",
sky_color = {
day_sky = day_color,
day_horizon = day_color,
dawn_sky = dawn_color,
dawn_horizon = dawn_color,
night_sky = night_color,
night_horizon = night_color,
},
clouds = true,
})
player:set_sun({visible = false, sunrise_visible = false})
player:set_moon({visible = false})
player:set_stars({visible = false})
elseif has_weather then
-- Weather skies
local day_color = mcl_weather.skycolor.get_sky_layer_color(0.5)
local dawn_color = mcl_weather.skycolor.get_sky_layer_color(0.75)
@ -223,7 +246,7 @@ mcl_weather.skycolor = {
get_current_bg_color = function()
local players = mcl_weather.skycolor.utils.get_players(nil)
if players[1] then
return players[1]:get_sky()
return players[1]:get_sky(true).sky_color
end
return nil
end
@ -253,6 +276,11 @@ minetest.register_globalstep(function(dtime)
end)
local function initsky(player)
if player.set_lighting then
player:set_lighting({ shadows = { intensity = tonumber(minetest.settings:get("mcl_default_shadow_intensity") or 0.33) } })
end
if (mcl_weather.skycolor.active) then
mcl_weather.skycolor.force_update = true
end

View File

@ -2,8 +2,44 @@ local get_connected_players = minetest.get_connected_players
mcl_weather.snow = {}
local PARTICLES_COUNT_SNOW = tonumber(minetest.settings:get("mcl_weather_snow_particles")) or 99
local PARTICLES_COUNT_SNOW = tonumber(minetest.settings:get("mcl_weather_snow_particles")) or 100
mcl_weather.snow.init_done = false
local mgname = minetest.get_mapgen_setting("mg_name")
local snow_biomes = {
"ColdTaiga_underground",
"IcePlains_underground",
"IcePlainsSpikes_underground",
"MegaTaiga_underground",
"Taiga_underground",
"IcePlains_deep_ocean",
"MegaSpruceTaiga_deep_ocean",
"IcePlainsSpikes_ocean",
"StoneBeach_ocean",
"ColdTaiga_deep_ocean",
"MegaTaiga_ocean",
"StoneBeach_deep_ocean",
"IcePlainsSpikes_deep_ocean",
"ColdTaiga_ocean",
"MegaTaiga_deep_ocean",
"MegaSpruceTaiga_ocean",
"ExtremeHills+_ocean",
"IcePlains_ocean",
"Taiga_ocean",
"Taiga_deep_ocean",
"StoneBeach",
"ColdTaiga_beach_water",
"Taiga_beach",
"ColdTaiga_beach",
"Taiga",
"ExtremeHills+_snowtop",
"MegaSpruceTaiga",
"MegaTaiga",
"ExtremeHills+",
"ColdTaiga",
"IcePlainsSpikes",
"IcePlains",
}
local psdef= {
amount = PARTICLES_COUNT_SNOW,
@ -25,6 +61,19 @@ local psdef= {
glow = 1
}
function mcl_weather.has_snow(pos)
if not mcl_worlds.has_weather(pos) then return false end
if mgname == "singlenode" or mgname == "v6" then return false end
local bn = minetest.get_biome_name(minetest.get_biome_data(pos).biome)
local bd = minetest.registered_biomes[bn]
if bd and bd._mcl_biome_type == "snowy" then return true end
if bd and bd._mcl_biome_type == "cold" then
if bn == "Taiga" and pos.y > 140 then return true end
if bn == "MegaSpruceTaiga" and pos.y > 100 then return true end
end
return false
end
function mcl_weather.snow.set_sky_box()
mcl_weather.skycolor.add_layer(
"weather-pack-snow-sky",
@ -46,9 +95,11 @@ function mcl_weather.snow.clear()
mcl_weather.remove_all_spawners()
end
-- Simple random texture getter
function mcl_weather.snow.get_texture()
return "weather_pack_snow_snowflake"..math.random(1,2)..".png"
function mcl_weather.snow.add_player(player)
for i=1,2 do
psdef.texture="weather_pack_snow_snowflake"..i..".png"
mcl_weather.add_spawner_player(player,"snow"..i,psdef)
end
end
local timer = 0
@ -70,13 +121,12 @@ minetest.register_globalstep(function(dtime)
end
for _, player in pairs(get_connected_players()) do
if mcl_weather.is_underwater(player) or not mcl_worlds.has_weather(player:get_pos()) then
if mcl_weather.is_underwater(player) or not mcl_weather.has_snow(player:get_pos()) then
mcl_weather.remove_spawners_player(player)
mcl_weather.set_sky_box_clear(player)
else
for i=1,2 do
psdef.texture="weather_pack_snow_snowflake"..i..".png"
mcl_weather.add_spawner_player(player,"snow"..i,psdef)
end
mcl_weather.snow.add_player(player)
mcl_weather.snow.set_sky_box()
end
end
end)
@ -96,3 +146,34 @@ if mcl_weather.reg_weathers.snow == nil then
}
}
end
minetest.register_abm({
label = "Snow piles up",
nodenames = {"group:opaque","group:leaves","group:snow_cover"},
neighbors = {"air"},
interval = 27,
chance = 33,
action = function(pos, node, active_object_count, active_object_count_wider)
if node.name == "mcl_core:snowblock" then return end
local above = vector.offset(pos,0,1,0)
local above_node = minetest.get_node(above)
if above_node.name ~= "air" then return end
if (mcl_weather.state == "rain" or mcl_weather.state == "thunder" or mcl_weather.state == "snow") and mcl_weather.is_outdoor(pos) and mcl_weather.has_snow(pos) then
local nn = nil
if node.name:find("snow") then
local l = node.name:sub(-1)
l = tonumber(l)
if node.name == "mcl_core:snow" then
nn={name = "mcl_core:snow_2"}
elseif l and l < 7 then
nn={name="mcl_core:snow_"..tostring(math.min(8,l + 1))}
elseif l and l >= 7 then
nn={name = "mcl_core:snowblock"}
end
if nn then minetest.set_node(pos,nn) end
else
minetest.set_node(above,{name = "mcl_core:snow"})
end
end
end
})

View File

@ -54,6 +54,8 @@ function mcl_weather.add_spawner_player(pl,id,ps)
particlespawners[name] = {}
end
if not particlespawners[name][id] then
mcl_weather.remove_spawners_player(pl)
particlespawners[name] = {}
ps.playername =name
ps.attached = pl
particlespawners[name][id]=minetest.add_particlespawner(ps)

View File

@ -45,3 +45,4 @@ Mining durability: @1=Durabilité de minage: @1
Block breaking strength: @1=Résistance à la rupture: @1
@1 uses=@1 utilisations
Unlimited uses=Utilisations illimitées
Durability: @1=Durabilité

View File

@ -1,25 +1,24 @@
# textdomain:awards
@1/@2 chat messages=@1/@2 chat messages
@1/@2 crafted=@1/@2 fabrication
@1/@2 deaths=@1/@2 Mort
@1/@2 crafted=@1/@2 fabriqués
@1/@2 deaths=@1/@2 morts
@1/@2 dug=@1/@2 creusé
@1/@2 game joins=@1/@2 sessions
@1/@2 placed=@1/@2 mis
@1/@2 placed=@1/@2 placé
@1 (got)=@1 (obtenu)
@1: @1=@1: @1
@1: @2=@1 : @2
@1s awards:=Récompenses de @1:
(Secret Award)=(Récompense Secrètte)
<achievement ID>=<Succès ID>
<name>=<nom>
A Cat in a Pop-Tart?!=A Cat in a Pop-Tart?!
Achievement gotten!=Succès obtenu !
Achievement gotten:=Succès obtenu :
Achievement gotten: @1=Succès obtenu : @1
Achievement not found.=Succès inconnu
All your awards and statistics have been cleared. You can now start again.=Toutes vos récompenses et statistiques ont été effacées. Vous pouvez maintenant recommencer.
Awards=Récompenses
Craft: @1×@2=Frabrication: @1×@2
Craft: @1=Frabrication: @1
Craft: @1×@2=Fabrication: @1×@2
Craft: @1=Fabrication: @1
Die @1 times.=Mort @1 fois.
Die.=Mort.
Get the achievements statistics for the given player or yourself=Obtenez les statistiques de succès pour le joueur donné ou vous-même
@ -28,9 +27,9 @@ Join the game.=Rejoignez le jeu.
List awards in chat (deprecated)=Liste des récompenses dans le chat (obsolète)
Place a block: @1=Placer un bloc: @1
Place blocks: @1×@2=Placer des blocs: @1×@2
Secret Achievement gotten!=Succès secret obtenu !
Secret Achievement gotten:=Succès secret obtenu :
Secret Achievement gotten: @1=Succès secret obtenu : @1
Secret achievement gotten!=Succès secret obtenu !
Secret achievement gotten:=Succès secret obtenu :
Secret achievement gotten: @1=Succès secret obtenu : @1
Show details of an achievement=Afficher les détails d'un succès
Show, clear, disable or enable your achievements=Affichez, effacez, désactivez ou activez vos succès
Get this achievement to find out what it is.=Obtenez ce succès pour découvrir de quoi il s'agit.
@ -59,3 +58,7 @@ Invalid action.=Action invalide.
Player is not online.=Le joueur n'est pas en ligne.
Done.=Terminé.
Achievement “@1” does not exist.=Le succès «@1» n'existe pas.
@1 has made the achievement @2=@1 a obtenu le succès
Mine a block: @1=Miner un bloc : @1
Mine blocks: @1×@2=Miner des blocs : @1×@2
Awards are disabled, enable them first by using /awards enable!=Les succès sont désactivés, activez les d'abord en utilisant /awards enable !

View File

@ -231,6 +231,12 @@ awards.register_achievement("mcl:tacticalFishing", {
icon = "pufferfish_bucket.png",
})
awards.register_achievement("mcl:witheringHeights", {
title = S("Withering Heights"),
description = S("Summon the wither from the dead."),
icon = "mcl_mobitems_nether_star.png",
})
-- Triggered in mcl_fishing
awards.register_achievement("mcl:fishyBusiness", {
title = S("Fishy Business"),
@ -266,6 +272,19 @@ awards.register_achievement("mcl:enchanter", {
icon = "mcl_enchanting_book_enchanted.png",
})
--Triggered in mcl_beacons
awards.register_achievement("mcl:beacon", {
title = S("Bring Home the Beacon"),
description = S("Use a beacon."),
icon = "beacon_achievement_icon.png",
})
awards.register_achievement("mcl:maxed_beacon", {
title = S("Beaconator"),
description = S("Use a fully powered beacon."),
icon = "beacon_achievement_icon.png",
})
-- NON-PC ACHIEVEMENTS (XBox, Pocket Edition, etc.)
if non_pc_achievements then

View File

@ -47,3 +47,7 @@ Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Benutz
Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Benutzen Sie eine Werkbank, um eine Holzspitzhacke aus Holzplanken und Stöcken zu fertigen.
Use obsidian and a fire starter to construct a Nether portal.=Benutzen Sie Obsidian und ein Feuerzeug, um ein Netherportal zu errichten.
Use wheat to craft a bread.=Benutzen Sie Weizen, um ein Brot zu machen.
Bring Home the Beacon=Den Nachbarn heimleuchten
Use a beacon.=Benutzen Sie ein Leuchtfeuer.
Beaconator=Leuchtturmwärter
Use a fully powered beacon.=Benutzen Sie ein vollständiges Leuchtfeuer.

View File

@ -19,7 +19,7 @@ Getting an Upgrade=Obtenir une augmentaton de niveau
Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters.=Frappez un squelette, wither squelette ou stray à l'arc et à la flèche à une distance d'au moins 20 mètres.
Hot Topic=Sujet brûlant
Into Fire=Dans le feu
Into the Nether=Dans le Nether
We Need to Go Deeper=Aller au fond des choses
Iron Belly=Ventre de fer
Librarian=Bibliothécaire
Mine emerald ore.=Mine de minerai d'émeraude.
@ -47,3 +47,35 @@ Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Utilis
Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Utilisez un établi pour fabriquer une pioche en bois à partir de planches et de bâtons en bois.
Use obsidian and a fire starter to construct a Nether portal.=Utilisez de l'obsidienne et un briquet pour construire un portail du Nether.
Use wheat to craft a bread.=Utilisez du blé pour fabriquer un pain.
Who is Cutting Onions?=Qui épluche des oignons ?
Pick up a crying obsidian from the floor.=Ramasser une obsidienne pleureuse sur le sol.
Hidden in the Depths=Caché dans les profondeurs
Pick up an Ancient Debris from the floor.=Ramasser un Ancien Débris par terre.
The Nether=Le Nether
Bring summer clothes.@nHint: Enter the Nether.=Apportez des vêtements d'été.@nAstuce : Entrez dans le Nether
Isn't It Iron Pick=Bonne Pioche !
Craft a iron pickaxe using sticks and iron.=Fabriquer une pioche de fer avec des batons et du fer.
Postmortal=Aux frontières de la mort
Use a Totem of Undying to cheat death.=Utiliser un Totem d'imortalité pour tromper la mort.
Sweet Dreams=Bonne nuit les petits
Sleep in a bed to change your respawn point.=Dormez dans un lit pour changer votre point de réapparition.
Not Quite "Nine" Lives=Presque "neuf" vies
Charge a Respawn Anchor to the maximum.=Charger une Ancre de Réapparition au maximum.
What A Deal!=Adjugé, Vendu !
Successfully trade with a Villager.=Commercez avec succès avec un villageois.
Withering Heights=Les Witherables
Summon the wither from the dead.=Invoquez le Wither d'entre les morts.
Fishy Business=Merci pour le poisson
Catch a fish.@nHint: Catch a fish, salmon, clownfish, or pufferfish.=Attrapez un poisson. \nAstuce : attrapez un poisson, saumon, poisson-clown, ou poisson-globe.
Country Lode,@nTake Me Home=Petit Poucet
Use a compass on a Lodestone.=utiliser une boussole sur une magnétite.
Serious Dedication=Sérieux dévouement
Use a Netherite Ingot to upgrade a hoe, and then completely reevaluate your life choices.=Utilisez un lingot de netherite pour améliorez une houe, puis réévaluez complètement vos choix de vie.
Local Brewery=Apprenti chimiste
Brew a Potion.@nHint: Take a potion or glass bottle out of the brewing stand.=Concotez une potion.@nAstuce : Retirez une potion ou bouteille d'eau d'un alambic.
Enchanter=Enchanté !
Enchant an item using an Enchantment Table.=Enchanter un objet avec la table d'enchantement.
Bring Home the Beacon=Fais ta balise
Use a beacon.=Utilisez une balise.
Beaconator=Phare allumé
Use a fully powered beacon.=Utilisez une balise à pleine puissance.

View File

@ -63,6 +63,8 @@ Not Quite "Nine" Lives=
Charge a Respawn Anchor to the maximum.=
What A Deal!=
Successfully trade with a Villager.=
Withering Heights=
Summon the wither from the dead.=
Fishy Business=
Catch a fish.@nHint: Catch a fish, salmon, clownfish, or pufferfish.=
Country Lode,@nTake Me Home=
@ -73,3 +75,7 @@ Local Brewery=
Brew a Potion.@nHint: Take a potion or glass bottle out of the brewing stand.=
Enchanter=
Enchant an item using an Enchantment Table.=
Bring Home the Beacon=
Use a beacon.=
Beaconator=
Use a fully powered beacon.=

View File

@ -28,6 +28,11 @@ return {
"Code-Sploit",
"NO11",
"kabou",
"rudzik8",
"chmodsayshello",
"PrarieWind",
"RandomLegoBrick",
"SumianVoice",
}},
{S("Contributors"), 0x52FF00, {
"Laurent Rocher",
@ -72,6 +77,12 @@ return {
"Sven792",
"aldum",
"Dieter44",
"Pepebotella",
"MrRar",
"Lazerbeak12345",
"mrminer",
"Thunder1035",
"opfromthestart",
}},
{S("MineClone5"), 0xA60014, {
"kay27",
@ -79,10 +90,12 @@ return {
"epCode",
"NO11",
"j45",
"chmodsayshello",
"3raven",
"PrarieWind",
"Gustavo1",
"CableGuy67",
"MrRar",
}},
{S("Mineclonia"), 0xFFFFFF, {
"erlehmann",
@ -135,6 +148,9 @@ return {
"yutyo",
"NO11",
"kay27",
"MysticTempest",
"RandomLegoBrick",
"cora",
}},
{S("Translations"), 0x00FF60, {
"Wuzzy",
@ -144,6 +160,8 @@ return {
"pitchum",
"todoporlalibertad",
"Marcin Serwin",
"Pepebotella",
"Emojigit",
}},
{S("Funders"), 0xF7FF00, {
"40W",
@ -151,7 +169,8 @@ return {
{S("Special thanks"), 0x00E9FF, {
"celeron55 for creating Minetest",
"Jordach for the jukebox music compilation from Big Freaking Dig",
"wsor for working tirelessly in the shadows for the good of all of us, particularly helping with solving contentDB and copyright issues.",
"The workaholics who spent way too much time writing for the Minecraft Wiki. It's an invaluable resource for creating this game",
"Notch and Jeb for being the major forces behind Minecraft",
}},
}
}

View File

@ -1,59 +1,55 @@
# textdomain: mcl_death_messages
@1 was fatally hit by an arrow.=@1 a été mortellement touché par une flèche.
@1 has been killed with an arrow.=@1 a été tué avec une flèche.
@1 was shot by an arrow from @2.=@1 a été abattu par une flèche de @2.
@1 was shot by an arrow from a skeleton.=@1 a été abattu par une flèche d'un squelette.
@1 was shot by an arrow from a stray.=@1 a été abattu par une flèche d'un vagabond.
@1 was shot by an arrow from an illusioner.=@1 a été abattu par une flèche d'un illusionniste.
@1 was shot by an arrow.=@1 a été abattu par une flèche.
@1 forgot to breathe.=@1 a oublié de respirer.
@1 drowned.=@1 s'est noyé.
@1 ran out of oxygen.=@1 a manqué d'oxygène.
@1 was killed by @2.=@1 a été tué par @2.
@1 was killed.=@1 a été tué.
@1 was killed by a mob.=@1 a été tué par un mob.
@1 was burned to death by a blaze's fireball.=@1 a été brûlé vif par la boule de feu d'un blaze.
@1 was killed by a fireball from a blaze.=@1 a été tué par une boule de feu lors d'un blaze.
@1 was burned by a fire charge.=@1 a été brûlé par un incendie.
A ghast scared @1 to death.=Un ghast a éffrayé @1 à mort.
@1 has been fireballed by a ghast.=@1 a été pétrifié par un ghast.
@1 fell from a high cliff.=@1 est tombé d'une haute falaise.
@1 took fatal fall damage.=@1 a succombé à un chute mortelle.
@1 fell victim to gravity.=@1 a été victime de la gravité.
@1 died.=@1 est mort.
@1 was killed by a zombie.=@1 a été tué par un zombie.
@1 was killed by a baby zombie.=@1 a été tué par un bébé zombie.
@1 was killed by a blaze.=@1 a été tué par un blaze.
@1 was killed by a slime.=@1 a été tué par un slime.
@1 was killed by a witch.=@1 a été tué par un sorcier.
@1 was killed by a magma cube.=@1 a été tué par un cube de magma.
@1 was killed by a wolf.=@1 a été tué par un loup.
@1 was killed by a cat.=@1 a été tué par un chat.
@1 was killed by an ocelot.=@1 a été tué par un ocelot.
@1 was killed by an ender dragon.=@1 a été tué par un ender dragon.
@1 was killed by a wither.=@1 a été tué par un wither.
@1 was killed by an enderman.=@1 a été tué par un enderman.
@1 was killed by an endermite.=@1 a été tué par un endermite.
@1 was killed by a ghast.=@1 a été tué par un ghast.
@1 was killed by an elder guardian.=@1 a été tué par un grand gardien.
@1 was killed by a guardian.=@1 a été tué par un gardien.
@1 was killed by an iron golem.=@1 a été tué par un golem de fer.
@1 was killed by a polar_bear.=@1 a été tué par un ours blanc.
@1 was killed by a killer bunny.=@1 a été tué par un lapin tueur.
@1 was killed by a shulker.=@1 a été tué par un shulker.
@1 was killed by a silverfish.=@1 a été tué par un poisson d'argent.
@1 was killed by a skeleton.=@1 a été tué par un squelette.
@1 was killed by a stray.=@1 a été tué par un vagabond.
@1 was killed by a slime.=@1 a été tué par un slime.
@1 was killed by a spider.=@1 a été tué par une araignée.
@1 was killed by a cave spider.=@1 a été tué par une araignée venimeuse.
@1 was killed by a vex.=@1 a été tué par un vex.
@1 was killed by an evoker.=@1 a été tué par un invocateur.
@1 was killed by an illusioner.=@1 a été tué par un illusionniste.
@1 was killed by a vindicator.=@1 a été tué par un vindicateur.
@1 was killed by a zombie villager.=@1 a été tué par un villageois zombie.
@1 was killed by a husk.=@1 a été tué par un zombie momie.
@1 was killed by a baby husk.=@1 a été tué par un bébé zombie momie.
@1 was killed by a zombie pigman.=@1 a été tué par un zombie-couchon.
@1 was killed by a baby zombie pigman.=@1 a été tué par un bébé zombie-couchon
@1 was slain by @2.=
@1 went up in flames=@1 est parti(e) en fumée
@1 walked into fire whilst fighting @2=@1 a marché dans le feu en combattant @2
@1 was struck by lightning=@1 a été frappé(e) par la foudre
@1 was struck by lightning whilst fighting @2=@1 a été frappé(e) par la foudre en combattant @2
@1 burned to death=@1 est mort(e) brûlé vif(ve)
@1 was burnt to a crisp whilst fighting @2=@1 a été grillé comme une saucisse en combattant @2
@1 tried to swim in lava=@1 a essayé de nager dans la lave
@1 tried to swim in lava to escape @2=1 a essayé de nager dans la lave pour échapper à @2
@1 discovered the floor was lava=@1 a découvert que le sol était en lave
@1 walked into danger zone due to @2=@1 a marché dans une zone de danger à cause de @2
@1 suffocated in a wall=@1 a étouffé dans un mur
@1 suffocated in a wall whilst fighting @2=@1 a étouffé dans un mur en combattant @2
@1 drowned=@1 s'est noyé(e)
@1 drowned whilst trying to escape @2=@1 s'est noyé(e) en tentant d'échapper à @2
@1 starved to death=@1 est mort(e) de faim
@1 starved to death whilst fighting @2=@1 est mort(e) de faim en combattant @2
@1 was pricked to death=@1 a été piqué(e) à mort
@1 walked into a cactus whilst trying to escape @2=@1 est rentré(e) dans un cactus en tentant d'échapper @2
@1 hit the ground too hard=@1 a heurté le sol trop fort
@1 hit the ground too hard whilst trying to escape @2=@1 a heurté le sol trop fort en tentant d'échapper à @2
@1 experienced kinetic energy=@1 a fait l'expérience de l'énergie cinétique
@1 experienced kinetic energy whilst trying to escape @2=@1 a fait l'expérience de l'énergie cinétique en tentant d'échapper à @2
@1 fell out of the world=@1 est tombé(e) hors du monde
@1 didn't want to live in the same world as @2=@1 ne voulait pas vivre dans le même monde que @2
@1 died=@1 est mort.
@1 died because of @2=@1 est mort à cause de @2
@1 was killed by magic=@1 a été tué(e) par magie
@1 was killed by magic whilst trying to escape @2=@1 a été tué(e) par magie en tentant d'échapper à @2
@1 was killed by @2 using magic=@1 a été tué(e) par @2 en utilisant la magie
@1 was killed by @2 using @3=@1 a été tué(e) par @2 en utilisant @3
@1 was roasted in dragon breath=@1 a été rôti(e) dans le souffle du dragon
@1 was roasted in dragon breath by @2=@1 a été rôti(e) dans le souffle du dragon par @2
@1 withered away=@1 s'est flétri(e)
@1 withered away whilst fighting @2=@1 s'est flétri(e) en combattant @2
@1 was shot by a skull from @2=@1 a été abattu(e) par un crâne lancé par @2
@1 was squashed by a falling anvil=@1 a été écrasé(e) par la chute d'une enclume
@1 was squashed by a falling anvil whilst fighting @2=@1 a été écrasé(e) par la chute d'une enclume en combattant @2
@1 was squashed by a falling block=@1 a été écrasé(e) par la chute d'un bloc
@1 was squashed by a falling block whilst fighting @2=@1 a été écrasé(e) par la chute d'un bloc en combattant @2
@1 was slain by @2=@1 a été occis par @2
@1 was slain by @2 using @3=@1 a été occis par @2 en utilisant @3
@1 was shot by @2=@1 a été abattu(e) par @2
@1 was shot by @2 using @3=@1 a été abattu(e) par @2 en utilisant @3
@1 was fireballed by @2=@1 a reçu une balle de feu lancée par @2
@1 was fireballed by @2 using @3=@1 a reçu une balle de feu lancée par @2 en utilisant @3
@1 was killed trying to hurt @2=@1 a été tué(e) en essayant de blesser @2
@1 was killed by @3 trying to hurt @2=@1 a été tué(e) par @3 en essayant de blesser @2
@1 blew up=@1 a explosé
@1 was blown up by @2=@2 a fait exploser @1
@1 was blown up by @2 using @3=@2 a fait exploser @1 en utilisant @3
@1 was squished too much=@1 a été pressé(e) un peu trop
@1 was squashed by @2=@1 a été écrasé(e) par @2
@1 went off with a bang=@1 est parti(e) avec un bang
@1 went off with a bang due to a firework fired from @3 by @2=@1 est parti(e) avec un bang dû à un feu d'artifice tiré depuis @3 par @2

Some files were not shown because too many files have changed in this diff Show More