diff --git a/API.md b/API.md index 344414b7..7611ce44 100644 --- a/API.md +++ b/API.md @@ -21,7 +21,6 @@ All nodes can have these fields: * `_mcl_hardness`: Hardness of the block, ranges from 0 to infinity (represented by -1). Determines digging times. Default: 0 * `_mcl_blast_resistance`: How well this block blocks and resists explosions. Default: 0 -* `_mcl_falling_node_alternative`: If set to an itemstring, the node will turn into this node before it starts to fall. * `_mcl_after_falling(pos)`: Called after a falling node finished falling and turned into a node. Use the `mcl_sounds` mod for the sounds. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0fdda27f..57b1a41f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ Wow, thank you! :-) But first, some things to note: MineClone 2's development target is to make a free software clone of Minecraft, -***version 1.11***, ***PC edition***. +***version 1.11*** (later: 1.12), ***PC edition***. MineClone 2 is maintained by one person. Namely, Wuzzy. You can find me, Wuzzy, in the Minetest forums (forums.minetest.net), in IRC in the #minetest @@ -26,8 +26,8 @@ For small and medium changes: * Fork the repository * Do your change in a new branch -* Upload the repository somewhere where it can be accessed from the Internet and - notify me +* Upload the repository somewhere where it can be accessed from the Internet +* Ask me to pull in your changes (and briefly say what you're changed) For small changes, sending me a patch is also good. @@ -35,7 +35,7 @@ For big changes: Same as above, but consider notifying me first to avoid duplicate work and possible tears of rejection. ;-) ## Quality remarks -Again: There is ***no*** guarantee I will accept anything from anybody. +Again: There is ***no*** guarantee I will accept anything from anything. But I will gladly take in code from others when I feel it saves me work in the long run. @@ -64,10 +64,10 @@ Depending on what you add, the chances for inclusion vary: ## Coding style guide * Indentations should reflect the code flow -* Use tabs, not spaces for indentation (tab size = 8) +* Use tabs, not spaces for indentation * Never use `minetest.env` ## Reporting bugs Report all bugs and missing Minecraft features here: - + diff --git a/GROUPS.md b/GROUPS.md index 1ac531b8..cb1f531e 100644 --- a/GROUPS.md +++ b/GROUPS.md @@ -36,11 +36,7 @@ Please read to learn how digging times * `dig_by_piston=1`: Blocks which will drop as an item when pushed by a piston. They also cannot be pulled by sticky pistons * `cultivatable=2`: Block will be turned into Farmland by using a hoe on it * `cultivatable=1`: Block will be turned into Dirt by using a hoe on it -* `flammable`: Block spreads fire - * `flammable>0`: Gets destroyed by fire - * `flammable=-1` Does not get destroyed by fire -* `fire_encouragement`: How quickly this block catches fire -* `fire_flammability`: How fast the block will burn away +* `flammable`: Block helps spreading fire and gets destroyed by nearby fire (rating doesn't matter) * `spreading_dirt_type=1`: A dirt-type block with a cover (e.g. grass) which may spread to neighbor dirt blocks * `dirtifies_below_solid=1`: This node turns into dirt immediately when a solid or dirtifier node is placed on top * `dirtifier=1`: This node turns nodes the above group into dirt when placed above @@ -60,16 +56,6 @@ Please read to learn how digging times * `anvil`: Anvil. 1: No damage. 2-3: Higher damage levels * `no_rename=1`: Item cannot be renamed by anvil * `comparator_signal=X`: If set, this node outputs a constant (!) comparator signal output of strength X. -* `piston=X`: Piston (main body) (1 = normal, 2 = sticky) -* `piston_pusher=X`: Piston pusher (1 = normal, 2 = sticky) -* `hopper=X`: Hopper (1 = downwards, 2 = sideways) -* `portal=1`: Portal (node that teleports players and things by standing inside) -* `end_portal_frame=X`: End portal frame (1 = no eye, 2 = with eye) -* `coral=X`: Coral (any type) (1 = alive, 2 = dead) -* `coral_plant=X`: Coral in the "plant" shape (1 = alive, 2 = dead) -* `coral_fan=X`: Coral fan (1 = alive, 2 = dead) -* `coral_block=X`: Coral block (1 = alive, 2 = dead) -* `coral_species=X`: Specifies the species of a coral; equal X means equal species #### Footnotes diff --git a/README.md b/README.md index c1879598..76718595 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,8 @@ -# MineClone 2 (Forkhausen Edition) -An unofficial Minecraft-like game for Minetest. Forked from MineClone2 developed by Wuzzy -and contributors which is a fork of MineClone by davedevils. Not developed or endorsed by Mojang AB. +# MineClone 2 +An unofficial Minecraft-like game for Minetest. Forked from MineClone by davedevils. +Developed by Wuzzy and contributors. Not developed or endorsed by Mojang AB. -Version: 0.65.2 - -## Differences to MineClone 2 -So far some minor fixes that I also sent upstream to Wuzzy for inclusion and some yet unmerged features from others: - -* ~~Fix a crash when refueling powered minecarts [issue #683](https://git.minetest.land/Wuzzy/MineClone2/issues/683)~~ -* Pumpkins grow without a face and can be carved [issue #682](https://git.minetest.land/Wuzzy/MineClone2/issues/682) -* Fix acceleration of powered minecarts and powered rails not summing up (by 2mac) - [issue #658](https://git.minetest.land/Wuzzy/MineClone2/issues/658). -* Mobs take damage from magma block if susceptible to fire damage (inspiraton from [minetest_npc](https://forum.minetest.net/viewtopic.php?p=371969#p371969)) -* ~~When mobs are trying to escape dangerous situations (e.g. standing on lava), make more efforts to check if destination is safe.~~ -* Carpets can be added to tamed Llamas. TODO: Replace textures because community-provided PixelPerfection textures of carpets are a bit **too** close to the original MC textures. -* ~~Fix crash in new explosion API [issue #689](https://git.minetest.land/Wuzzy/MineClone2/issues/689)~~ -* Fix crash when igniting a creeper with flint and steel ([fix by nelkat](https://forum.minetest.net/viewtopic.php?p=372836#p372836)) +Version: 0.55.1 ### Gameplay You start in a randomly-generated world made entirely of cubes. You can explore @@ -80,6 +67,7 @@ an explanation. #### Incomplete items These items do not work yet, but you can get them with `/giveme` for testing: +* Activator Rail: `mcl_minecarts:activator_rail` * Minecart with Chest: `mcl_minecarts:chest_minecart` * Minecart with Furnace: `mcl_minecarts:furnace_minecart` * Minecart with Hopper: `mcl_minecarts:hopper_minecart` @@ -195,7 +183,7 @@ Technical differences from Minecraft: ## Reporting bugs Please report all bugs and missing Minecraft features here: - + ## Other readme files @@ -213,22 +201,15 @@ There are so many people to list (sorry). Check out the respective mod directori * [ex-bart](https://github.com/ex-bart): Redstone comparators * [Rootyjr](https://github.com/Rootyjr): Fishing rod and bugfixes * [aligator](https://github.com/aligator): Improvement of doors -* [ryvnf](https://github.com/ryvnf): Explosion mechanics * Lots of other people: TO BE WRITTEN (see mod directories for details) -### Graphics +### Textures * [XSSheep](http://www.minecraftforum.net/members/XSSheep): Main author; creator of the Pixel Perfection resource pack of Minecraft 1.11 * [Wuzzy](https://forum.minetest.net/memberlist.php?mode=viewprofile&u=3082): Main menu imagery and various edits and additions of texture pack * [kingoscargames](https://github.com/kingoscargames): Various edits and additions of existing textures * [leorockway](https://github.com/leorockway): Some edits of mob textures * [xMrVizzy](https://minecraft.curseforge.com/members/xMrVizzy): Glazed terracotta (textures are subject to be replaced later) -* yutyo : MineClone 2 logo -* Other authors: GUI images - -### Translations -* Wuzzy: German -* Rocher Laurent : French -* wuniversales: Spanish +* Other authors: GUI images, ### Models * [22i](https://github.com/22i): Creator of all models @@ -269,8 +250,6 @@ project by davedevils which fell under the same license. Mods credit: See `README.txt` or `README.md` in each mod directory for information about other authors. -For mods that do not have such a file, the license is the source code license -of MineClone 2 and the author is Wuzzy. ### License of media (textures and sounds) No non-free licenses are used anywhere. diff --git a/menu/header.png b/menu/header.png index 5d34dd6a..36ece0e4 100644 Binary files a/menu/header.png and b/menu/header.png differ diff --git a/menu/icon.png b/menu/icon.png index e479dfff..4db6979f 100644 Binary files a/menu/icon.png and b/menu/icon.png differ diff --git a/mods/CORE/biomeinfo/README.md b/mods/CORE/biomeinfo/README.md index a99d1dbc..d895dadb 100644 --- a/mods/CORE/biomeinfo/README.md +++ b/mods/CORE/biomeinfo/README.md @@ -6,6 +6,6 @@ Most importantly, you can get the heat, humidity and biome in the v6 mapgen. See `API.md` for the API documentation. -Current version: 1.0.3 (this is a [SemVer](https://semver.org/)) +Current version: 1.0.1 (this is a [SemVer](https://semver.org/)) License: MIT License diff --git a/mods/CORE/biomeinfo/init.lua b/mods/CORE/biomeinfo/init.lua index 5013647e..1ba18284 100644 --- a/mods/CORE/biomeinfo/init.lua +++ b/mods/CORE/biomeinfo/init.lua @@ -19,28 +19,6 @@ local seed = tonumber(minetest.get_mapgen_setting("seed")) or 0 local mgv6_perlin_biome, mgv6_perlin_humidity, mgv6_np_biome --- v6 default noiseparams are hardcoded here because Minetest doesn't give us those -local mgv6_np_biome_default = { - offset = 0, - scale = 1, - spread = { x = 500, y = 500, z = 500}, - seed = 9130, - octaves = 3, - persistence = 0.50, - lacunarity = 2.0, - flags = "eased", -} -local mgv6_np_humidity_default = { - offset = 0.5, - scale = 0.5, - spread = { x = 500, y = 500, z = 500}, - seed = 72384, - octaves = 3, - persistence = 0.50, - lacunarity = 2.0, - flags = "eased", -} - local v6_flags_str = minetest.get_mapgen_setting("mgv6_spflags") if v6_flags_str == nil then v6_flags_str = "" @@ -108,19 +86,15 @@ biomeinfo.all_v6_biomes = { local function init_perlins() if not mgv6_perlin_biome then mgv6_np_biome = minetest.get_mapgen_setting_noiseparams("mgv6_np_biome") - if not mgv6_np_biome then - mgv6_np_biome = mgv6_np_biome_default - minetest.log("action", "[biomeinfo] Using hardcoded mgv6_np_biome default") + if mgv6_np_biome then + mgv6_perlin_biome = minetest.get_perlin(mgv6_np_biome) end - mgv6_perlin_biome = minetest.get_perlin(mgv6_np_biome) end if not mgv6_perlin_humidity then local np_humidity = minetest.get_mapgen_setting_noiseparams("mgv6_np_humidity") - if not np_humidity then - np_humidity = mgv6_np_humidity_default - minetest.log("action", "[biomeinfo] Using hardcoded mgv6_np_humidity default") + if np_humidity then + mgv6_perlin_humidity = minetest.get_perlin(np_humidity) end - mgv6_perlin_humidity = minetest.get_perlin(np_humidity) end end @@ -138,9 +112,6 @@ end function biomeinfo.get_v6_heat(pos) init_perlins() - if not mgv6_perlin_biome then - return nil - end local bpos = vector.floor(pos) -- The temperature noise needs a special offset (see calculateNoise in mapgen_v6.cpp) return mgv6_perlin_biome:get_2d({x=bpos.x + mgv6_np_biome.spread.x*0.6, y=bpos.z + mgv6_np_biome.spread.z*0.2}) @@ -148,9 +119,6 @@ end function biomeinfo.get_v6_humidity(pos) init_perlins() - if not mgv6_perlin_humidity then - return nil - end local bpos = vector.floor(pos) return mgv6_perlin_humidity:get_2d({x=bpos.x, y=bpos.z}) end diff --git a/mods/CORE/mcl_attached/init.lua b/mods/CORE/mcl_attached/init.lua index 146cb225..45e1e56b 100644 --- a/mods/CORE/mcl_attached/init.lua +++ b/mods/CORE/mcl_attached/init.lua @@ -7,17 +7,15 @@ minetest.check_single_for_falling = function(pos) local node = minetest.get_node(pos) if minetest.get_item_group(node.name, "attached_node_facedir") ~= 0 then local dir = minetest.facedir_to_dir(node.param2) - if dir then - local cpos = vector.add(pos, dir) - local cnode = minetest.get_node(cpos) - if minetest.get_item_group(cnode.name, "solid") == 0 then - minetest.remove_node(pos) - local drops = minetest.get_node_drops(node.name, "") - for dr=1, #drops do - minetest.add_item(pos, drops[dr]) - end - ret = true + local cpos = vector.add(pos, dir) + local cnode = minetest.get_node(cpos) + if minetest.get_item_group(cnode.name, "solid") == 0 then + minetest.remove_node(pos) + local drops = minetest.get_node_drops(node.name, "") + for dr=1, #drops do + minetest.add_item(pos, drops[dr]) end + ret = true end end diff --git a/mods/CORE/mcl_explosions/init.lua b/mods/CORE/mcl_explosions/init.lua deleted file mode 100644 index bd697208..00000000 --- a/mods/CORE/mcl_explosions/init.lua +++ /dev/null @@ -1,383 +0,0 @@ ---[[ -Explosion API mod for Minetest (adapted to MineClone 2) - -This mod is based on the Minetest explosion API mod, but has been changed -to have the same explosion mechanics as Minecraft and work with MineClone. -The computation-intensive parts of the mod has been optimized to allow for -larger explosions and faster world updating. - -This mod was created by Elias Astrom and is released -under the LGPLv2.1 license. ---]] - -mcl_explosions = {} - -local creative_mode = minetest.settings:get_bool("creative_mode") -local mod_death_messages = minetest.get_modpath("mcl_death_messages") ~= nil -local mod_fire = minetest.get_modpath("mcl_fire") ~= nil -local CONTENT_FIRE = minetest.get_content_id("mcl_fire:fire") - -local S = minetest.get_translator("mcl_explosions") - --- Saved sphere explosion shapes for various radiuses -local sphere_shapes = {} - --- Saved node definitions in table using cid-keys for faster look-up. -local node_blastres = {} -local node_on_blast = {} -local node_walkable = {} - --- The step length for the rays (Minecraft uses 0.3) -local STEP_LENGTH = 0.3 - --- How many rays to compute entity exposure to explosion -local N_EXPOSURE_RAYS = 16 - -minetest.register_on_mods_loaded(function() - -- Store blast resistance values by content ids to improve performance. - for name, def in pairs(minetest.registered_nodes) do - node_blastres[minetest.get_content_id(name)] = def._mcl_blast_resistance or 0 - node_on_blast[minetest.get_content_id(name)] = def.on_blast - node_walkable[minetest.get_content_id(name)] = def.walkable - end -end) - --- Compute the rays which make up a sphere with radius. Returns a list of rays --- which can be used to trace explosions. This function is not efficient --- (especially for larger radiuses), so the generated rays for various radiuses --- should be cached and reused. --- --- Should be possible to improve by using a midpoint circle algorithm multiple --- times to create the sphere, currently uses more of a brute-force approach. -local function compute_sphere_rays(radius) - local rays = {} - local sphere = {} - - for i=1, 2 do - for y = -radius, radius do - for z = -radius, radius do - for x = -radius, 0, 1 do - local d = x * x + y * y + z * z - if d <= radius * radius then - local pos = { x = x, y = y, z = z } - sphere[minetest.hash_node_position(pos)] = pos - break - end - end - end - end - end - - for i=1,2 do - for x = -radius, radius do - for z = -radius, radius do - for y = -radius, 0, 1 do - local d = x * x + y * y + z * z - if d <= radius * radius then - local pos = { x = x, y = y, z = z } - sphere[minetest.hash_node_position(pos)] = pos - break - end - end - end - end - end - - for i=1,2 do - for x = -radius, radius do - for y = -radius, radius do - for z = -radius, 0, 1 do - local d = x * x + y * y + z * z - if d <= radius * radius then - local pos = { x = x, y = y, z = z } - sphere[minetest.hash_node_position(pos)] = pos - break - end - end - end - end - end - - for _, pos in pairs(sphere) do - rays[#rays + 1] = vector.normalize(pos) - end - - return rays -end - --- Add particles from explosion --- --- Parameters: --- pos - The position of the explosion --- radius - The radius of the explosion -local function add_particles(pos, radius) - minetest.add_particlespawner({ - amount = 64, - time = 0.125, - minpos = pos, - maxpos = pos, - minvel = {x = -radius, y = -radius, z = -radius}, - maxvel = {x = radius, y = radius, z = radius}, - minacc = vector.new(), - maxacc = vector.new(), - minexptime = 0.5, - maxexptime = 1.0, - minsize = radius * 0.5, - maxsize = radius * 1.0, - texture = "tnt_smoke.png", - }) -end - --- Traces the rays of an explosion, and updates the environment. --- --- Parameters: --- pos - Where the rays in the explosion should start from --- strength - The strength of each ray --- raydirs - The directions for each ray --- radius - The maximum distance each ray will go --- drop_chance - The chance that destroyed nodes will drop their items --- fire - If true, 1/3 of destroyed nodes become fire --- puncher - object that punches other objects (optional) --- --- Note that this function has been optimized, it contains code which has been --- inlined to avoid function calls and unnecessary table creation. This was --- measured to give a significant performance increase. -local function trace_explode(pos, strength, raydirs, radius, drop_chance, fire, puncher) - local vm = minetest.get_voxel_manip() - - local emin, emax = vm:read_from_map(vector.subtract(pos, radius), - vector.add(pos, radius)) - local emin_x = emin.x - local emin_y = emin.y - local emin_z = emin.z - - local ystride = (emax.x - emin_x + 1) - local zstride = ystride * (emax.y - emin_y + 1) - local pos_x = pos.x - local pos_y = pos.y - local pos_z = pos.z - - local area = VoxelArea:new { - MinEdge = emin, - MaxEdge = emax - } - local data = vm:get_data() - local destroy = {} - - -- Trace rays for environment destruction - for i = 1, #raydirs do - local rpos_x = pos.x - local rpos_y = pos.y - local rpos_z = pos.z - local rdir_x = raydirs[i].x - local rdir_y = raydirs[i].y - local rdir_z = raydirs[i].z - local rstr = (0.7 + math.random() * 0.6) * strength - - for r = 0, math.ceil(radius * (1.0 / STEP_LENGTH)) do - local npos_x = math.floor(rpos_x + 0.5) - local npos_y = math.floor(rpos_y + 0.5) - local npos_z = math.floor(rpos_z + 0.5) - local idx = (npos_z - emin_z) * zstride + (npos_y - emin_y) * ystride + - npos_x - emin_x + 1 - - local cid = data[idx] - local br = node_blastres[cid] - local hash = (npos_z + 32768) * 65536 * 65536 + - (npos_y + 32768) * 65536 + - npos_x + 32768 - - rpos_x = rpos_x + STEP_LENGTH * rdir_x - rpos_y = rpos_y + STEP_LENGTH * rdir_y - rpos_z = rpos_z + STEP_LENGTH * rdir_z - - rstr = rstr - 0.75 * STEP_LENGTH - (br + 0.3) * STEP_LENGTH - - if rstr <= 0 then - break - end - - if cid ~= minetest.CONTENT_AIR then - destroy[hash] = idx - end - end - end - - -- Entities in radius of explosion - local punch_radius = 2 * strength - local objs = minetest.get_objects_inside_radius(pos, punch_radius) - - -- Trace rays for entity damage - for _, obj in pairs(objs) do - local ent = obj:get_luaentity() - - -- Ignore items to lower lag - if obj:is_player() or (ent and ent.name ~= '__builtin.item') then - local opos = obj:get_pos() - local collisionbox = nil - - if obj:is_player() then - collisionbox = { -0.3, 0.0, -0.3, 0.3, 1.77, 0.3 } - elseif ent.name then - local def = minetest.registered_entities[ent.name] - collisionbox = def.collisionbox - end - - if collisionbox then - -- Create rays from random points in the collision box - local x1 = collisionbox[1] * 2 - local y1 = collisionbox[2] * 2 - local z1 = collisionbox[3] * 2 - local x2 = collisionbox[4] * 2 - local y2 = collisionbox[5] * 2 - local z2 = collisionbox[6] * 2 - local x_len = math.abs(x2 - x1) - local y_len = math.abs(y2 - y1) - local z_len = math.abs(z2 - z1) - - -- Move object position to the center of its bounding box - opos.x = opos.x + x1 + x2 - opos.y = opos.y + y1 + y2 - opos.z = opos.z + z1 + z2 - - -- Count number of rays from collision box which are unobstructed - local count = N_EXPOSURE_RAYS - - for i = 1, N_EXPOSURE_RAYS do - local rpos_x = opos.x + math.random() * x_len - x_len / 2 - local rpos_y = opos.y + math.random() * y_len - y_len / 2 - local rpos_z = opos.z + math.random() * z_len - z_len / 2 - local rdir_x = pos.x - rpos_x - local rdir_y = pos.y - rpos_y - local rdir_z = pos.z - rpos_z - local rdir_len = math.hypot(rdir_x, math.hypot(rdir_y, rdir_z)) - rdir_x = rdir_x / rdir_len - rdir_y = rdir_y / rdir_len - rdir_z = rdir_z / rdir_len - - for i=0, rdir_len / STEP_LENGTH do - rpos_x = rpos_x + rdir_x * STEP_LENGTH - rpos_y = rpos_y + rdir_y * STEP_LENGTH - rpos_z = rpos_z + rdir_z * STEP_LENGTH - local npos_x = math.floor(rpos_x + 0.5) - local npos_y = math.floor(rpos_y + 0.5) - local npos_z = math.floor(rpos_z + 0.5) - local idx = (npos_z - emin_z) * zstride + (npos_y - emin_y) * ystride + - npos_x - emin_x + 1 - - - local cid = data[idx] - local walkable = node_walkable[cid] - - if walkable then - count = count - 1 - break - end - end - end - - -- Punch entity with damage depending on explosion exposure and - -- distance to explosion - local exposure = count / N_EXPOSURE_RAYS - local punch_vec = vector.subtract(opos, pos) - local punch_dir = vector.normalize(punch_vec) - local impact = (1 - vector.length(punch_vec) / punch_radius) * exposure - if impact < 0 then - impact = 0 - end - local damage = math.floor((impact * impact + impact) * 7 * strength + 1) - if mod_death_messages and obj:is_player() then - mcl_death_messages.player_damage(obj, S("@1 was caught in an explosion.", obj:get_player_name())) - end - local source = puncher - if not source then - source = obj - end - obj:punch(source, 10, { damage_groups = { full_punch_interval = 1, - fleshy = damage, knockback = impact * 20.0 } }, punch_dir) - - if obj:is_player() then - obj:add_player_velocity(vector.multiply(punch_dir, impact * 20)) - elseif ent.tnt_knockback then - obj:add_velocity(vector.multiply(punch_dir, impact * 20)) - end - end - end - end - - -- Remove destroyed blocks and drop items - for hash, idx in pairs(destroy) do - local do_drop = not creative_mode and math.random() <= drop_chance - local on_blast = node_on_blast[data[idx]] - local remove = true - - if do_drop or on_blast ~= nil then - local npos = minetest.get_position_from_hash(hash) - if on_blast ~= nil then - remove = on_blast(npos, 1.0) - else - local name = minetest.get_name_from_content_id(data[idx]) - local drop = minetest.get_node_drops(name, "") - - for _, item in ipairs(drop) do - if type(item) ~= "string" then - item = item:get_name() .. item:get_count() - end - minetest.add_item(npos, item) - end - end - end - if remove then - if mod_fire and fire and math.random(1, 3) == 1 then - data[idx] = CONTENT_FIRE - else - data[idx] = minetest.CONTENT_AIR - end - end - end - - -- Log explosion - minetest.log('action', 'Explosion at ' .. minetest.pos_to_string(pos) .. - ' with strength ' .. strength .. ' and radius ' .. radius) - - -- Update environment - vm:set_data(data) - vm:write_to_map(data) - vm:update_liquids() -end - --- Create an explosion with strength at pos. --- --- Parameters: --- pos - The position where the explosion originates from --- strength - The blast strength of the explosion (a TNT explosion uses 4) --- info - Table containing information about explosion. --- puncher - object that is reported as source of punches/damage (optional) --- --- Values in info: --- drop_chance - If specified becomes the drop chance of all nodes in the --- explosion (defaults to 1.0 / strength) --- no_sound - If true then the explosion will not play a sound --- no_particle - If true then the explosion will not create particles --- fire - If true, 1/3 nodes become fire (default: false) -function mcl_explosions.explode(pos, strength, info, puncher) - -- The maximum blast radius (in the air) - local radius = math.ceil(1.3 * strength / (0.3 * 0.75) * 0.3) - - if not sphere_shapes[radius] then - sphere_shapes[radius] = compute_sphere_rays(radius) - end - local shape = sphere_shapes[radius] - - trace_explode(pos, strength, shape, radius, (info and info.drop_chance) or 1 / strength, info.fire == true, puncher) - - if not (info and info.no_sound) then - add_particles(pos, radius) - end - if not (info and info.no_particle) then - minetest.sound_play("tnt_explode", { - pos = pos, gain = 1.0, - max_hear_distance = strength * 16 - }, true) - end -end diff --git a/mods/CORE/mcl_explosions/locale/mcl_explosions.de.tr b/mods/CORE/mcl_explosions/locale/mcl_explosions.de.tr deleted file mode 100644 index 4abbc64b..00000000 --- a/mods/CORE/mcl_explosions/locale/mcl_explosions.de.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_explosions -@1 was caught in an explosion.=@1 wurde Opfer einer Explosion. diff --git a/mods/CORE/mcl_explosions/locale/template.txt b/mods/CORE/mcl_explosions/locale/template.txt deleted file mode 100644 index 6a9348dd..00000000 --- a/mods/CORE/mcl_explosions/locale/template.txt +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_explosions -@1 was caught in an explosion.= diff --git a/mods/CORE/mcl_explosions/mod.conf b/mods/CORE/mcl_explosions/mod.conf deleted file mode 100644 index 7ce4b678..00000000 --- a/mods/CORE/mcl_explosions/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = mcl_explosions -description = A common API to create explosions. -optional_depends = mcl_fire diff --git a/mods/CORE/mcl_init/init.lua b/mods/CORE/mcl_init/init.lua index ddcf1cd6..afbe9dfa 100644 --- a/mods/CORE/mcl_init/init.lua +++ b/mods/CORE/mcl_init/init.lua @@ -4,20 +4,13 @@ mcl_vars = {} --- GUI / inventory menu settings mcl_vars.gui_slots = "listcolors[#9990;#FFF7;#FFF0;#000;#FFF]" -- nonbg is added as formspec prepend in mcl_formspec_prepend -mcl_vars.gui_nonbg = mcl_vars.gui_slots .. - "style_type[image_button;border=false;bgimg=mcl_inventory_button9.png;bgimg_pressed=mcl_inventory_button9_pressed.png;bgimg_middle=2,2]".. - "style_type[button;border=false;bgimg=mcl_inventory_button9.png;bgimg_pressed=mcl_inventory_button9_pressed.png;bgimg_middle=2,2]".. - "style_type[field;textcolor=#323232]".. - "style_type[label;textcolor=#323232]".. - "style_type[textarea;textcolor=#323232]".. - "style_type[checkbox;textcolor=#323232]" +mcl_vars.gui_nonbg = mcl_vars.gui_slots -- Background stuff must be manually added by mods (no formspec prepend) -mcl_vars.gui_bg_color = "bgcolor[#00000000]" -mcl_vars.gui_bg_img = "background9[1,1;1,1;mcl_base_textures_background9.png;true;7]" +mcl_vars.gui_bg = "bgcolor[#080808BB;true]" +mcl_vars.gui_bg_img = "" --- Legacy -mcl_vars.inventory_header = "" +mcl_vars.inventory_header = mcl_vars.gui_bg -- Mapgen variables local mg_name = minetest.get_mapgen_setting("mg_name") diff --git a/mods/CORE/mcl_particles/textures/mcl_particles_bubble.png b/mods/CORE/mcl_particles/textures/mcl_particles_bubble.png index 3370a698..c64ceea3 100644 Binary files a/mods/CORE/mcl_particles/textures/mcl_particles_bubble.png and b/mods/CORE/mcl_particles/textures/mcl_particles_bubble.png differ diff --git a/mods/CORE/mcl_sounds/init.lua b/mods/CORE/mcl_sounds/init.lua index b4d43f0c..70010fda 100644 --- a/mods/CORE/mcl_sounds/init.lua +++ b/mods/CORE/mcl_sounds/init.lua @@ -164,5 +164,5 @@ end -- Player death sound minetest.register_on_dieplayer(function(player) -- TODO: Add separate death sound - minetest.sound_play({name="player_damage", gain = 1.0}, {pos=player:get_pos(), max_hear_distance=16}, true) + minetest.sound_play({name="player_damage", gain = 1.0}, {pos=player:get_pos(), max_hear_distance=16}) end) diff --git a/mods/CORE/mcl_util/init.lua b/mods/CORE/mcl_util/init.lua index 6a74bb69..b5d5e1bb 100644 --- a/mods/CORE/mcl_util/init.lua +++ b/mods/CORE/mcl_util/init.lua @@ -385,7 +385,7 @@ function mcl_util.generate_on_place_plant_function(condition) if success then if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=pointed_thing.above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=pointed_thing.above, gain=1}) end end itemstack = new_itemstack diff --git a/mods/CORE/walkover/README.md b/mods/CORE/walkover/README.md index d3922ee7..2b78b0b0 100644 --- a/mods/CORE/walkover/README.md +++ b/mods/CORE/walkover/README.md @@ -1,11 +1,11 @@ -Walkover +WalkOver -------- -Some mode developers have shown an interest in having an `on_walk_over` event. This is useful for pressure-plates and the like. +Some mode developers have shown an interest in having an on_walk_over event. This is useful for pressure-plates and the like. See this issue - https://github.com/minetest/minetest/issues/247 -I have implemented a server-side version in Lua using globalstep which people might find useful. Of course this would better implemented via a client-based "on walk over", but it is sufficient for my needs now. +I have implemented a server_side version in lua using globalstep which people might find useful. Of course this would better implemented via a client-based "on walk over", but it is sufficient for my needs now. Example Usage ------------- @@ -19,6 +19,3 @@ Example Usage }) -Credits -------- -Mod created by lordfingle, licensed under Apache License 2.0. diff --git a/mods/ENTITIES/drippingwater/init.lua b/mods/ENTITIES/drippingwater/init.lua index 730cb7b7..6e23183f 100644 --- a/mods/ENTITIES/drippingwater/init.lua +++ b/mods/ENTITIES/drippingwater/init.lua @@ -39,7 +39,7 @@ minetest.register_entity("drippingwater:drop_water", { if minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z}).name ~= "air" then self.object:remove() - minetest.sound_play({name="drippingwater_drip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true) + minetest.sound_play({name="drippingwater_drip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}) end end, }) @@ -81,7 +81,7 @@ minetest.register_entity("drippingwater:drop_lava", { if minetest.get_node({x=ownpos.x, y=ownpos.y -0.5, z=ownpos.z}).name ~= "air" then self.object:remove() - minetest.sound_play({name="drippingwater_lavadrip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true) + minetest.sound_play({name="drippingwater_lavadrip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}) end end, }) @@ -93,7 +93,7 @@ minetest.register_entity("drippingwater:drop_lava", { minetest.register_abm( { label = "Create water drops", - nodenames = {"group:opaque", "group:leaves"}, + nodenames = {"group:solid"}, neighbors = {"group:water"}, interval = 2, chance = 22, @@ -111,7 +111,7 @@ minetest.register_abm( minetest.register_abm( { label = "Create lava drops", - nodenames = {"group:opaque"}, + nodenames = {"group:solid"}, neighbors = {"group:lava"}, interval = 2, chance = 22, diff --git a/mods/ENTITIES/mcl_boats/README.txt b/mods/ENTITIES/mcl_boats/README.txt index 195a2241..6d218f27 100644 --- a/mods/ENTITIES/mcl_boats/README.txt +++ b/mods/ENTITIES/mcl_boats/README.txt @@ -10,7 +10,8 @@ License of boat model: GNU GPLv3 ## Textures -See the main MineClone 2 README.md file to learn more. +All textures are from the Faithful texture pack for Minecraft. +See the main MineClone 2 license to learn more. ## Code Code based on Minetest Game, licensed under the MIT License (MIT). diff --git a/mods/ENTITIES/mcl_boats/init.lua b/mods/ENTITIES/mcl_boats/init.lua index 6c0ad9a1..9999b2b7 100644 --- a/mods/ENTITIES/mcl_boats/init.lua +++ b/mods/ENTITIES/mcl_boats/init.lua @@ -279,7 +279,7 @@ local images = { "oak", "spruce", "birch", "jungle", "acacia", "dark_oak" } for b=1, #boat_ids do local itemstring = "mcl_boats:"..boat_ids[b] - local longdesc, usagehelp, tt_help, help, helpname + local longdesc, usagehelp, help, helpname help = false -- Only create one help entry for all boats if b == 1 then @@ -288,11 +288,9 @@ for b=1, #boat_ids do usagehelp = S("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. Rightclick the boat again to leave it, punch the boat to make it drop as an item.") helpname = S("Boat") end - tt_help = S("Water vehicle") minetest.register_craftitem(itemstring, { description = names[b], - _tt_help = tt_help, _doc_items_create_entry = help, _doc_items_entry_name = helpname, _doc_items_longdesc = longdesc, diff --git a/mods/ENTITIES/mcl_boats/locale/mcl_boats.de.tr b/mods/ENTITIES/mcl_boats/locale/mcl_boats.de.tr index 95066b53..3c97cf5e 100644 --- a/mods/ENTITIES/mcl_boats/locale/mcl_boats.de.tr +++ b/mods/ENTITIES/mcl_boats/locale/mcl_boats.de.tr @@ -8,4 +8,3 @@ Jungle Boat=Dschungelboot Oak Boat=Eichenboot 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. Rightclick the boat again to leave it, punch the boat to make it drop as an item.=Rechtsklicken Sie auf eine Wasserquelle, um das Boot zu platzieren. Rechtsklicken Sie auf das Boot, um es zu betreten. Mit [Links] und [Rechts] lenken, mit [Vorwärts] und [Rückwärts] Geschwindigkeit regeln oder rückwärts fahren. Rechtsklicken Sie erneut auf das Boot, um es zu verlassen, schlagen Sie das Boot, um es als Gegenstand fallen zu lassen. Spruce Boat=Fichtenboot -Water vehicle=Wasserfahrzeug diff --git a/mods/ENTITIES/mcl_boats/locale/mcl_boats.es.tr b/mods/ENTITIES/mcl_boats/locale/mcl_boats.es.tr deleted file mode 100644 index 644efdb6..00000000 --- a/mods/ENTITIES/mcl_boats/locale/mcl_boats.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_boats -Acacia Boat=Barca de acacia -Birch Boat=Barca de abedul -Boat=Barca -Boats are used to travel on the surface of water.=Las barcas se utilizan para viajar en la superficie del agua. -Dark Oak Boat=Barca de roble oscuro -Jungle Boat=Barca de la selva -Oak Boat=Barca de roble -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. Rightclick the boat again to leave it, punch the boat to make it drop as an item.=Haga clic derecho en una fuente de agua para colocar el barco. Haga clic derecho en el barco para entrar. Utilice [Izquierda] y [Derecha] para dirigir, [Adelante] para acelerar y [Atrás] para reducir la velocidad o retroceder. Haga clic derecho en el barco nuevamente para dejarlo, golpee el barco para que se caiga como un artículo. -Spruce Boat=Barca de abeto diff --git a/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr b/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr deleted file mode 100644 index 04d6d9da..00000000 --- a/mods/ENTITIES/mcl_boats/locale/mcl_boats.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_boats -Acacia Boat=Bateau en Acacia -Birch Boat=Bateau en Bouleau -Boat=Bateau -Boats are used to travel on the surface of water.=Les bateaux sont utilisés pour voyager à la surface de l'eau. -Dark Oak Boat=Bateau en Chêne Noir -Jungle Boat=Bateau en Acajou -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. Rightclick the boat again to leave it, 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. Cliquez de nouveau avec le bouton droit sur le bateau pour le quitter, frappez le bateau pour le faire tomber en tant qu'objet. -Spruce Boat=Bateau en Sapin -Water vehicle=Véhicule aquatique \ No newline at end of file diff --git a/mods/ENTITIES/mcl_boats/locale/template.txt b/mods/ENTITIES/mcl_boats/locale/template.txt index 54f1fd64..9af27b70 100644 --- a/mods/ENTITIES/mcl_boats/locale/template.txt +++ b/mods/ENTITIES/mcl_boats/locale/template.txt @@ -8,4 +8,3 @@ Jungle Boat= Oak Boat= 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. Rightclick the boat again to leave it, punch the boat to make it drop as an item.= Spruce Boat= -Water vehicle= diff --git a/mods/ENTITIES/mcl_boats/textures/mcl_boats_acacia_boat.png b/mods/ENTITIES/mcl_boats/textures/mcl_boats_acacia_boat.png index 40f767c3..3ba00911 100644 Binary files a/mods/ENTITIES/mcl_boats/textures/mcl_boats_acacia_boat.png and b/mods/ENTITIES/mcl_boats/textures/mcl_boats_acacia_boat.png differ diff --git a/mods/ENTITIES/mcl_boats/textures/mcl_boats_birch_boat.png b/mods/ENTITIES/mcl_boats/textures/mcl_boats_birch_boat.png index fed5be7c..ac0f3dc1 100644 Binary files a/mods/ENTITIES/mcl_boats/textures/mcl_boats_birch_boat.png and b/mods/ENTITIES/mcl_boats/textures/mcl_boats_birch_boat.png differ diff --git a/mods/ENTITIES/mcl_boats/textures/mcl_boats_oak_boat.png b/mods/ENTITIES/mcl_boats/textures/mcl_boats_oak_boat.png index 75f27b21..371596f6 100644 Binary files a/mods/ENTITIES/mcl_boats/textures/mcl_boats_oak_boat.png and b/mods/ENTITIES/mcl_boats/textures/mcl_boats_oak_boat.png differ diff --git a/mods/ENTITIES/mcl_falling_nodes/init.lua b/mods/ENTITIES/mcl_falling_nodes/init.lua index 1ffc87b3..54074567 100644 --- a/mods/ENTITIES/mcl_falling_nodes/init.lua +++ b/mods/ENTITIES/mcl_falling_nodes/init.lua @@ -57,7 +57,7 @@ local deal_falling_damage = function(self, dtime) mcl_death_messages.player_damage(v, msg) end end - v:set_hp(hp, { type = "punch", from = "mod" }) + v:set_hp(hp) end end end @@ -79,30 +79,21 @@ minetest.register_entity(":__builtin:falling_node", { meta = {}, set_node = function(self, node, meta) - local def = minetest.registered_nodes[node.name] - -- Change falling node if definition tells us to - if def and def._mcl_falling_node_alternative then - node.name = def._mcl_falling_node_alternative - end - local glow self.node = node self.meta = meta or {} - -- Set correct entity yaw - if def and node.param2 ~= 0 then - if (def.paramtype2 == "facedir" or def.paramtype2 == "colorfacedir") then - self.object:set_yaw(minetest.dir_to_yaw(minetest.facedir_to_dir(node.param2))) - elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then - self.object:set_yaw(minetest.dir_to_yaw(minetest.wallmounted_to_dir(node.param2))) - end - if def.light_source then - glow = def.light_source - end - end self.object:set_properties({ is_visible = true, textures = {node.name}, - glow = glow, }) + local def = core.registered_nodes[node.name] + -- Set correct entity yaw + if def and node.param2 ~= 0 then + if (def.paramtype2 == "facedir" or def.paramtype2 == "colorfacedir") then + self.object:set_yaw(core.dir_to_yaw(core.facedir_to_dir(node.param2))) + elseif (def.paramtype2 == "wallmounted" or def.paramtype2 == "colorwallmounted") then + self.object:set_yaw(core.dir_to_yaw(core.wallmounted_to_dir(node.param2))) + end + end end, get_staticdata = function(self) @@ -221,7 +212,7 @@ minetest.register_entity(":__builtin:falling_node", { meta:from_table(self.meta) end if def.sounds and def.sounds.place and def.sounds.place.name then - minetest.sound_play(def.sounds.place, {pos = np}, true) + minetest.sound_play(def.sounds.place, {pos = np}) end end else @@ -258,7 +249,7 @@ minetest.register_entity(":__builtin:falling_node", { def._mcl_after_falling(npos3, get_falling_depth(self)) end if def.sounds and def.sounds.place and def.sounds.place.name then - minetest.sound_play(def.sounds.place, {pos = np}, true) + minetest.sound_play(def.sounds.place, {pos = np}) end end deal_falling_damage(self, dtime) diff --git a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.es.tr b/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.es.tr deleted file mode 100644 index 41cbf61b..00000000 --- a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_falling_nodes -@1 was smashed by a falling anvil.=@1 fue aplastado por la caída de un yunque. -@1 was smashed by a falling block.=@1 fue aplastado por la caída de un bloque. diff --git a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.fr.tr b/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.fr.tr deleted file mode 100644 index 781cd704..00000000 --- a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.fr.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_falling_nodes -@1 was smashed by a falling anvil.=@1 a été écrasé par une enclume qui tombait. -@1 was smashed by a falling block.=@1 a été écrasé par un bloc qui tombait. diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 7e10babc..36282449 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -75,7 +75,7 @@ minetest.register_globalstep(function(dtime) pos = pos, max_hear_distance = 16, gain = 1.0, - }, true) + }) check_pickup_achievements(object, player) @@ -129,7 +129,7 @@ minetest.register_globalstep(function(dtime) pos = pos, max_hear_distance = 16, gain = 1.0, - }, true) + }) end check_pickup_achievements(object, player) object:get_luaentity()._removed = true @@ -254,13 +254,7 @@ function minetest.handle_node_drops(pos, drops, digger) local drop_item = ItemStack(item) drop_item:set_count(1) for i=1,count do - local dpos = table.copy(pos) - -- Apply offset for plantlike_rooted nodes because of their special shape - if nodedef and nodedef.drawtype == "plantlike_rooted" and nodedef.walkable then - dpos.y = dpos.y + 1 - end - -- Spawn item and apply random speed - local obj = minetest.add_item(dpos, drop_item) + local obj = core.add_item(pos, drop_item) if obj ~= nil then local x = math.random(1, 5) if math.random(1,2) == 1 then @@ -286,7 +280,7 @@ function minetest.item_drop(itemstack, dropper, pos) cs = 1 end local item = itemstack:take_item(cs) - local obj = minetest.add_item(p, item) + local obj = core.add_item(p, item) if obj then v.x = v.x*4 v.y = v.y*4 + 2 @@ -306,7 +300,7 @@ if not time_to_live then time_to_live = 300 end -minetest.register_entity(":__builtin:item", { +core.register_entity(":__builtin:item", { initial_properties = { hp_max = 1, physical = true, @@ -350,6 +344,8 @@ minetest.register_entity(":__builtin:item", { count = max_count self.itemstring = stack:get_name().." "..max_count end + local s = 0.2 + 0.1 * (count / max_count) + local c = s local itemtable = stack:to_table() local itemname = nil local description = "" @@ -358,18 +354,11 @@ minetest.register_entity(":__builtin:item", { end local item_texture = nil local item_type = "" - local glow - local def = minetest.registered_items[itemname] - if def then - item_texture = def.inventory_image - item_type = def.type - description = def.description - glow = def.light_source + if core.registered_items[itemname] then + item_texture = core.registered_items[itemname].inventory_image + item_type = core.registered_items[itemname].type + description = core.registered_items[itemname].description end - local s = 0.2 + 0.1 * (count / max_count) - local wield_scale = (def and def.wield_scale and def.wield_scale.x) or 1 - local c = s - s = s / wield_scale local prop = { is_visible = true, visual = "wielditem", @@ -378,7 +367,6 @@ minetest.register_entity(":__builtin:item", { collisionbox = {-c, -c, -c, c, c, c}, automatic_rotate = math.pi * 0.5, infotext = description, - glow = glow, } self.object:set_properties(prop) if item_drop_settings.random_item_velocity == true then @@ -405,7 +393,7 @@ minetest.register_entity(":__builtin:item", { end, get_staticdata = function(self) - return minetest.serialize({ + return core.serialize({ itemstring = self.itemstring, always_collect = self.always_collect, age = self.age, @@ -417,7 +405,7 @@ minetest.register_entity(":__builtin:item", { on_activate = function(self, staticdata, dtime_s) if string.sub(staticdata, 1, string.len("return")) == "return" then - local data = minetest.deserialize(staticdata) + local data = core.deserialize(staticdata) if data and type(data) == "table" then self.itemstring = data.itemstring self.always_collect = data.always_collect @@ -522,7 +510,7 @@ minetest.register_entity(":__builtin:item", { end local p = self.object:get_pos() - local node = minetest.get_node_or_nil(p) + local node = core.get_node_or_nil(p) local in_unloaded = (node == nil) -- If no collector was found for a long enough time, declare the magnet as disabled @@ -545,7 +533,7 @@ minetest.register_entity(":__builtin:item", { local dg = minetest.get_item_group(nn, "destroys_items") if (def and (lg ~= 0 or fg ~= 0 or dg == 1)) then if dg ~= 2 then - minetest.sound_play("builtin_item_lava", {pos = self.object:get_pos(), gain = 0.5}, true) + minetest.sound_play("builtin_item_lava", {pos = self.object:get_pos(), gain = 0.5}) end self._removed = true self.object:remove() @@ -677,11 +665,11 @@ minetest.register_entity(":__builtin:item", { local nn = minetest.get_node({x=p.x, y=p.y-0.5, z=p.z}).name local v = self.object:get_velocity() - if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable and v.y == 0 then + if not core.registered_nodes[nn] or core.registered_nodes[nn].walkable 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 ipairs(minetest.get_objects_inside_radius(p, 0.8)) do + for _, object in ipairs(core.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 @@ -701,3 +689,7 @@ minetest.register_entity(":__builtin:item", { -- Note: on_punch intentionally left out. The player should *not* be able to collect items by punching }) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "mcl_item_entity loaded") +end diff --git a/mods/ENTITIES/mcl_minecarts/README.txt b/mods/ENTITIES/mcl_minecarts/README.txt index 112cbd30..881e2a58 100644 --- a/mods/ENTITIES/mcl_minecarts/README.txt +++ b/mods/ENTITIES/mcl_minecarts/README.txt @@ -3,6 +3,12 @@ mcl_minecarts Based on the mod "boost_carts" by Krock. Target: Run smoothly and do not use too much CPU. +TODO: +- Minecraft-like physics +- Add activator rail +- Add more rail textures +- Add loaded minecarts + License of source code: ----------------------- MIT License @@ -17,5 +23,10 @@ Authors/licenses of media files: Minecart model: 22i (GPLv3) -Texture files (CC BY-SA 3.0): +Wuzzy (based on Pixel Perfection 1.11, MIT License): + carts_rail_crossing_pwr.png + carts_rail_curved_pwr.png + carts_rail_t_junction_pwr.png + +Other texture files (CC BY-SA 3.0: XSSheep diff --git a/mods/ENTITIES/mcl_minecarts/depends.txt b/mods/ENTITIES/mcl_minecarts/depends.txt index cdf7feb5..51e65fb8 100644 --- a/mods/ENTITIES/mcl_minecarts/depends.txt +++ b/mods/ENTITIES/mcl_minecarts/depends.txt @@ -1,4 +1,3 @@ -mcl_explosions mcl_core mcl_sounds mcl_player diff --git a/mods/ENTITIES/mcl_minecarts/init.lua b/mods/ENTITIES/mcl_minecarts/init.lua index ca1791d9..2f9d6730 100644 --- a/mods/ENTITIES/mcl_minecarts/init.lua +++ b/mods/ENTITIES/mcl_minecarts/init.lua @@ -8,50 +8,10 @@ mcl_minecarts.check_float_time = 15 dofile(mcl_minecarts.modpath.."/functions.lua") dofile(mcl_minecarts.modpath.."/rails.lua") -local function detach_driver(self) - if not self._driver then - return - end - mcl_player.player_attached[self._driver] = nil - local player = minetest.get_player_by_name(self._driver) - self._driver = nil - self._start_pos = nil - if player then - player:set_detach() - player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) - mcl_player.player_set_animation(player, "stand" , 30) - end -end - -local function activate_tnt_minecart(self, timer) - if self._boomtimer then - return - end - self.object:set_armor_groups({immortal=1}) - if timer then - self._boomtimer = timer - else - self._boomtimer = tnt.BOOMTIMER - end - self.object:set_properties({textures = { - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_minecarts_minecart.png", - }}) - self._blinktimer = tnt.BLINKTIMER - minetest.sound_play("tnt_ignite", {pos = self.object:get_pos(), gain = 1.0, max_hear_distance = 15}, true) -end - -local activate_normal_minecart = detach_driver - -- Table for item-to-entity mapping. Keys: itemstring, Values: Corresponding entity ID local entity_mapping = {} -local function register_entity(entity_id, mesh, textures, drop, on_rightclick, on_activate_by_rail) +local function register_entity(entity_id, mesh, textures, drop, on_rightclick) local cart = { physical = false, collisionbox = {-10/16., -0.5, -10/16, 10/16, 0.25, 10/16}, @@ -67,10 +27,6 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o _velocity = {x=0, y=0, z=0}, -- only used on punch _start_pos = nil, -- Used to calculate distance for “On A Rail” achievement _last_float_check = nil, -- timestamp of last time the cart was checked to be still on a rail - _fueltime = nil, -- how many seconds worth of fuel is left. Only used by minecart with furnace - _boomtimer = nil, -- how many seconds are left before exploding - _blinktimer = nil, -- how many seconds are left before TNT blinking - _blink = false, -- is TNT blink texture active? _old_dir = {x=0, y=0, z=0}, _old_pos = nil, _old_vel = {x=0, y=0, z=0}, @@ -79,21 +35,11 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o } function cart:on_activate(staticdata, dtime_s) - -- Initialize local data = minetest.deserialize(staticdata) if type(data) == "table" then self._railtype = data._railtype end self.object:set_armor_groups({immortal=1}) - - -- Activate cart if on activator rail - if self.on_activate_by_rail then - local pos = self.object:get_pos() - local node = minetest.get_node(vector.floor(pos)) - if node.name == "mcl_minecarts:activator_rail_on" then - self:on_activate_by_rail() - end - end end function cart:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) @@ -114,13 +60,17 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o return end - -- Punch+sneak: Pick up minecart (unless TNT was ignited) - if puncher:get_player_control().sneak and not self._boomtimer then + if puncher:get_player_control().sneak then if self._driver then if self._old_pos then self.object:set_pos(self._old_pos) end - detach_driver(self) + mcl_player.player_attached[self._driver] = nil + local player = minetest.get_player_by_name(self._driver) + if player then + player:set_detach() + player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + end end -- Disable detector rail @@ -172,8 +122,6 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o self._punched = true end - cart.on_activate_by_rail = on_activate_by_rail - function cart:on_step(dtime) local vel = self.object:get_velocity() local update = {} @@ -203,15 +151,8 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o end end - -- Explode if already ignited - if self._boomtimer then - self.object:remove() - mcl_explosions.explode(pos, 4, { drop_chance = 1.0 }) - return - end - -- Drop items and remove cart entity - if not minetest.settings:get_bool("creative_mode") then + if not minetest.settings:get_bool("creative_mode") then for d=1, #drop do minetest.add_item(self.object:get_pos(), drop[d]) end @@ -223,74 +164,11 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o self._last_float_check = 0 end - -- Update furnace stuff - if self._fueltime and self._fueltime > 0 then - self._fueltime = self._fueltime - dtime - if self._fueltime <= 0 then - self.object:set_properties({textures = - { - "default_furnace_top.png", - "default_furnace_top.png", - "default_furnace_front.png", - "default_furnace_side.png", - "default_furnace_side.png", - "default_furnace_side.png", - "mcl_minecarts_minecart.png", - }}) - self._fueltime = 0 - end - end - local has_fuel = self._fueltime and self._fueltime > 0 - - -- Update TNT stuff - if self._boomtimer then - -- Explode - self._boomtimer = self._boomtimer - dtime - local pos = self.object:get_pos() - if self._boomtimer <= 0 then - self.object:remove() - mcl_explosions.explode(pos, 4, { drop_chance = 1.0 }) - return - else - tnt.smoke_step(pos) - end - end - if self._blinktimer then - self._blinktimer = self._blinktimer - dtime - if self._blinktimer <= 0 then - self._blink = not self._blink - if self._blink then - self.object:set_properties({textures = - { - "default_tnt_top.png", - "default_tnt_bottom.png", - "default_tnt_side.png", - "default_tnt_side.png", - "default_tnt_side.png", - "default_tnt_side.png", - "mcl_minecarts_minecart.png", - }}) - else - self.object:set_properties({textures = - { - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_tnt_blink.png", - "mcl_minecarts_minecart.png", - }}) - end - self._blinktimer = tnt.BLINKTIMER - end - end - if self._punched then vel = vector.add(vel, self._velocity) self.object:set_velocity(vel) self._old_dir.y = 0 - elseif vector.equals(vel, {x=0, y=0, z=0}) and (not has_fuel) then + elseif vector.equals(vel, {x=0, y=0, z=0}) then return end @@ -301,7 +179,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o if self._old_pos and not self._punched then local flo_pos = vector.floor(pos) local flo_old = vector.floor(self._old_pos) - if vector.equals(flo_pos, flo_old) and (not has_fuel) then + if vector.equals(flo_pos, flo_old) then return -- Prevent querying the same node over and over again end @@ -309,7 +187,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o if not rou_pos then rou_pos = vector.round(pos) end - local rou_old = vector.round(self._old_pos) + rou_old = vector.round(self._old_pos) if not node then node = minetest.get_node(rou_pos) end @@ -326,10 +204,6 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o minetest.swap_node(rou_old, newnode) mesecon.receptor_off(rou_old) end - -- Activate minecart if on activator rail - if node_old.name == "mcl_minecarts:activator_rail_on" and self.on_activate_by_rail then - self:on_activate_by_rail() - end end local ctrl, player = nil, nil @@ -383,7 +257,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o end local new_acc = {x=0, y=0, z=0} - if vector.equals(dir, {x=0, y=0, z=0}) and not has_fuel then + if vector.equals(dir, {x=0, y=0, z=0}) then vel = {x=0, y=0, z=0} update.vel = true else @@ -409,17 +283,12 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o -- Slow down or speed up local acc = dir.y * -1.8 - local friction = 0.4 + local speed_mod = minetest.registered_nodes[minetest.get_node(pos).name]._rail_acceleration - - acc = acc - friction - - if has_fuel then - acc = acc + 0.6 - end - if speed_mod and speed_mod ~= 0 then - acc = acc + speed_mod + friction + acc = acc + speed_mod + else + acc = acc - 0.4 end new_acc = vector.multiply(dir, acc) @@ -529,7 +398,7 @@ mcl_minecarts.place_minecart = function(itemstack, pointed_thing) end -local register_craftitem = function(itemstring, entity_id, description, tt_help, longdesc, usagehelp, icon, creative) +local register_craftitem = function(itemstring, entity_id, description, longdesc, usagehelp, icon, creative) entity_mapping[itemstring] = entity_id local groups = { minecart = 1, transport = 1 } @@ -569,7 +438,6 @@ local register_craftitem = function(itemstring, entity_id, description, tt_help, groups = groups, } def.description = description - def._tt_help = tt_help def._doc_items_longdesc = longdesc def._doc_items_usagehelp = usagehelp def.inventory_image = icon @@ -592,9 +460,9 @@ Register a minecart * on_activate_by_rail: Called when above activator rail * creative: If false, don't show in Creative Inventory ]] -local function register_minecart(itemstring, entity_id, description, tt_help, longdesc, usagehelp, mesh, textures, icon, drop, on_rightclick, on_activate_by_rail, creative) - register_entity(entity_id, mesh, textures, drop, on_rightclick, on_activate_by_rail) - register_craftitem(itemstring, entity_id, description, tt_help, longdesc, usagehelp, icon, creative) +local function register_minecart(itemstring, entity_id, description, longdesc, usagehelp, mesh, textures, icon, drop, on_rightclick, on_activate_by_rail, creative) + register_entity(entity_id, mesh, textures, drop, on_rightclick) + register_craftitem(itemstring, entity_id, description, longdesc, usagehelp, icon, creative) if minetest.get_modpath("doc_identifier") ~= nil then doc.sub.identifier.register_object(entity_id, "craftitems", itemstring) end @@ -605,12 +473,10 @@ register_minecart( "mcl_minecarts:minecart", "mcl_minecarts:minecart", S("Minecart"), - S("Vehicle for fast travel on rails"), S("Minecarts can be used for a quick transportion on rails.") .. "\n" .. S("Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type."), S("You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.") .. "\n" .. - S("To obtain the minecart, punch it while holding down the sneak key.") .. "\n" .. - S("If it moves over a powered activator rail, you'll get ejected."), + S("To obtain the minecart, punch it while holding down the sneak key."), "mcl_minecarts_minecart.b3d", {"mcl_minecarts_minecart.png"}, "mcl_minecarts_minecart_normal.png", @@ -622,7 +488,11 @@ register_minecart( end local player_name = clicker:get_player_name() if self._driver and player_name == self._driver then - detach_driver(self) + self._driver = nil + self._start_pos = nil + clicker:set_detach() + clicker:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + mcl_player.player_set_animation(clicker, "stand" , 30) elseif not self._driver then self._driver = player_name self._start_pos = self.object:get_pos() @@ -637,7 +507,7 @@ register_minecart( end end, name) end - end, activate_normal_minecart + end ) -- Minecart with Chest @@ -645,7 +515,7 @@ register_minecart( "mcl_minecarts:chest_minecart", "mcl_minecarts:chest_minecart", S("Minecart with Chest"), - nil, nil, nil, + nil, nil, "mcl_minecarts_minecart_chest.b3d", { "mcl_chests_normal.png", "mcl_minecarts_minecart.png" }, "mcl_minecarts_minecart_chest.png", @@ -657,11 +527,7 @@ register_minecart( "mcl_minecarts:furnace_minecart", "mcl_minecarts:furnace_minecart", S("Minecart with Furnace"), - nil, - S("A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel."), - S("Place it on rails. If you give it some coal, the furnace will start burning for a long time and the minecart will be able to move itself. Punch it to get it moving.") .. "\n" .. - S("To obtain the minecart and furnace, punch them while holding down the sneak key."), - + nil, nil, "mcl_minecarts_minecart_block.b3d", { "default_furnace_top.png", @@ -688,20 +554,13 @@ register_minecart( if not minetest.settings:get_bool("creative_mode") then held:take_item() - local index = clicker:get_wield_index() + local index = clicker:get_wielded_index() local inv = clicker:get_inventory() inv:set_stack("main", index, held) end - self.object:set_properties({textures = - { - "default_furnace_top.png", - "default_furnace_top.png", - "default_furnace_front_active.png", - "default_furnace_side.png", - "default_furnace_side.png", - "default_furnace_side.png", - "mcl_minecarts_minecart.png", - }}) + + -- DEBUG + minetest.chat_send_player(clicker:get_player_name(), "Fuel: " .. tostring(self._fueltime)) end end, nil, false ) @@ -711,7 +570,7 @@ register_minecart( "mcl_minecarts:command_block_minecart", "mcl_minecarts:command_block_minecart", S("Minecart with Command Block"), - nil, nil, nil, + nil, nil, "mcl_minecarts_minecart_block.b3d", { "jeija_commandblock_off.png^[verticalframe:2:0", @@ -732,7 +591,7 @@ register_minecart( "mcl_minecarts:hopper_minecart", "mcl_minecarts:hopper_minecart", S("Minecart with Hopper"), - nil, nil, nil, + nil, nil, "mcl_minecarts_minecart_hopper.b3d", { "mcl_hoppers_hopper_inside.png", @@ -750,10 +609,7 @@ register_minecart( "mcl_minecarts:tnt_minecart", "mcl_minecarts:tnt_minecart", S("Minecart with TNT"), - S("Vehicle for fast travel on rails").."\n"..S("Can be ignited by tools or powered activator rail"), - S("A minecart with TNT is an explosive vehicle that travels on rail."), - S("Place it on rails. Punch it to move it. The TNT is ignited with a flint and steel or when the minecart is on an powered activator rail.") .. "\n" .. - S("To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited."), + nil, nil, "mcl_minecarts_minecart_block.b3d", { "default_tnt_top.png", @@ -766,25 +622,8 @@ register_minecart( }, "mcl_minecarts_minecart_tnt.png", {"mcl_minecarts:minecart", "mcl_tnt:tnt"}, - -- Ingite - function(self, clicker) - if not clicker or not clicker:is_player() then - return - end - if self._boomtimer then - return - end - local held = clicker:get_wielded_item() - if held:get_name() == "mcl_fire:flint_and_steel" then - if not minetest.settings:get_bool("creative_mode") then - held:add_wear(65535/65) -- 65 uses - local index = clicker:get_wield_index() - local inv = clicker:get_inventory() - inv:set_stack("main", index, held) - end - activate_tnt_minecart(self) - end - end, activate_tnt_minecart) + nil, nil, false +) minetest.register_craft({ @@ -795,25 +634,8 @@ minetest.register_craft({ }, }) -minetest.register_craft({ - output = "mcl_minecarts:tnt_minecart", - recipe = { - {"mcl_tnt:tnt"}, - {"mcl_minecarts:minecart"}, - }, -}) - -- TODO: Re-enable crafting of special minecarts when they have been implemented if false then - -minetest.register_craft({ - output = "mcl_minecarts:furnace_minecart", - recipe = { - {"mcl_furnaces:furnace"}, - {"mcl_minecarts:minecart"}, - }, -}) - minetest.register_craft({ output = "mcl_minecarts:hopper_minecart", recipe = { @@ -830,4 +652,19 @@ minetest.register_craft({ }, }) +minetest.register_craft({ + output = "mcl_minecarts:tnt_minecart", + recipe = { + {"mcl_tnt:tnt"}, + {"mcl_minecarts:minecart"}, + }, +}) + +minetest.register_craft({ + output = "mcl_minecarts:furnace_minecart", + recipe = { + {"mcl_furnaces:furnace"}, + {"mcl_minecarts:minecart"}, + }, +}) end diff --git a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.de.tr b/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.de.tr index 4d9b6c2f..65df678e 100644 --- a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.de.tr +++ b/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.de.tr @@ -4,12 +4,6 @@ Minecarts can be used for a quick transportion on rails.=Loren können für eine Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type.=Loren fahren nur auf Schienen und bleiben immer auf der Strecke. An einer Einmündung ohne einem Weg nach vorne fahren sie nach links. Die Geschwindigkeit hängt vom Schienentyp ab. You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Sie können die Lore auf Schienen platzieren. Rechtsklicken, um einzusteigen. To obtain the minecart, punch it while holding down the sneak key.=Um die Lore aufzusammeln, schlagen Sie sie, während Sie die Schleichen-Taste gedrückt halten. -A minecart with TNT is an explosive vehicle that travels on rail.=Eine Lore mit TNT ist ein explosives Fahrzeug, das auf Schienen fährt. -Place it on rails. Punch it to move it. The TNT is ignited with a flint and steel or when the minecart is on an powered activator rail.=Auf Schienen platzieren. Zuschlagen zum Bewegen. Das TNT wird mit einem Feuerzeug angezündet, oder, wenn die Lore sich auf einer bestromten Aktivierungsschiene befindet. -To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.=Um die Lore und das TNT zu erhalten, schlagen Sie sie, während Sie die Schleichtaste drücken. Das ist nicht möglich, wenn das TNT bereits gezündet wurde. -A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.=Eine Lore mit Ofen ist ein Fahrzeug, das auf Rädern fährt. Sie kann mit Brennstoff angetrieben werden. -Place it on rails. If you give it some coal, the furnace will start burning for a long time and the minecart will be able to move itself. Punch it to get it moving.=Auf Schienen platzieren. Wird Kohle eingefügt, wird der Ofen für eine lange Zeit brennen und die Lore wird fähig sein, sich selbst anzutreiben. Zuschlagen, um die Bewegung einzuläuten. -To obtain the minecart and furnace, punch them while holding down the sneak key.=Um die Lore und den Ofen zu erhalten, schlagen Sie zu, während Sie die Schleichtaste drücken. Minecart with Chest=Lore mit Truhe Minecart with Furnace=Lore mit Ofen Minecart with Command Block=Lore mit Befehlsblock @@ -27,9 +21,3 @@ To make this rail activate minecarts, power it with redstone power and send a mi Detector Rail=Sensorschiene Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms.=Schienen können benutzt werden, um Strecken für Loren zu bauen. Eine Sensorschiene kann eine Lore erkennen und versorgt Redstone-Mechanismen. To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Um eine Lore zu erkennen und die Redstone-Energie zu aktivieren, verbinden Sie die Schiene mit Redstonestaub oder Redstone-Mechanismen und schicken Sie eine beliebige Lore über die Schiene. -Track for minecarts=Strecke für Loren -Speed up when powered, slow down when not powered=Beschleunigt, wenn bestromt, sonst verlangsamt es -Activates minecarts when powered=Aktiviert Loren, wenn bestromt -Emits redstone power when a minecart is detected=Gibt ein Redstonesignal aus, wenn eine Lore erfasst wird -Vehicle for fast travel on rails=Fahrzeug zum schnellen Transport auf Schienen -Can be ignited by tools or powered activator rail=Kann mit Werkzeugen oder bestromten Aktivierungsschienen angezündet werden diff --git a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.es.tr b/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.es.tr deleted file mode 100644 index 06ee2ca6..00000000 --- a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_minecarts -Minecart=Vagoneta -Minecarts can be used for a quick transportion on rails.=Las vagonetas se pueden usar para transportarse rápido en los rieles. -Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type.=Las vagonetas solo viajan en rieles y siempre siguen las pistas. En un cruce en T sin camino recto, giran a la izquierda. La velocidad se ve afectada por el tipo de riel. -You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Puedes colocar el vagoneta en los rieles. Haga clic derecho para insertarlo. Golpea para que se mueva. -To obtain the minecart, punch it while holding down the sneak key.=Para obtener el vagoneta, golpéalo mientras mantienes presionada la tecla. -Minecart with Chest=Vagoneta con cofre -Minecart with Furnace=Vagoneta con horno -Minecart with Command Block=Vagoneta con bloque de comandos -Minecart with Hopper=Vagoneta con tolva -Minecart with TNT=Vagoneta con dinamita -Place them on the ground to build your railway, the rails will automatically connect to each other and will turn into curves, T-junctions, crossings and slopes as needed.=Colóquelos en el suelo para construir su ferrocarril, los rieles se conectarán automáticamente entre sí y se convertirán en curvas, uniones en T, cruces y pendientes según sea necesario. -Rail=Raíl -Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction.=Los rieles se pueden usar para construir vías de transporte para vagonetas. Los rieles normales ralentizan ligeramente las vagonetas debido a la fricción. -Powered Rail=Raíl propulsor -Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts.=Los rieles se pueden usar para construir vías de transporte para vagonetas. Los railes propulsores pueden acelerar y frenar las vagonetas. -Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power.=Sin energía de redstone, el riel frenará las vagonetas. Para hacer que este riel acelere las vagonetas, aliméntalo con redstone. -Activator Rail=Raíl activador -Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts.=Los rieles se pueden usar para construir vías de transporte para vagonetas. Los railes activador se utilizan para activar una vagoneta especial. -To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail.=Para hacer que este riel active las vagonetas, enciéndelo con energía de redstone y envía una vagoneta sobre este pedazo de riel. -Detector Rail=Raíl detector -Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms.=Los rieles se pueden usar para construir vías de transporte para vagonetas. Un raíl detector puede detectar una vagoneta sobre él y alimenta los mecanismos de redstone. -To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Para detectar una vagoneta y proporcionar energía de redstone, conéctelo a los senderos de redstone o mecanismos de redstone y envíe cualquier vagoneta sobre el riel. diff --git a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.fr.tr b/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.fr.tr deleted file mode 100644 index 39cdfd01..00000000 --- a/mods/ENTITIES/mcl_minecarts/locale/mcl_minecarts.fr.tr +++ /dev/null @@ -1,35 +0,0 @@ -# textdomain: mcl_minecarts -Minecart=Wagonnet -Minecarts can be used for a quick transportion on rails.=Les wagonnets peuvent être utilisés pour un transport rapide sur rails. -Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type.=Les wagonnets roulent uniquement sur des rails et suivent toujours les pistes. À un carrefour en T sans voie directe, ils tournent à gauche. La vitesse dépend du type de rail. -You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.=Vous pouvez placer le wagonnet sur des rails. Faites un clic droit dessus pour entrer dedans. Frappez-le pour le faire bouger. -To obtain the minecart, punch it while holding down the sneak key.=Pour obtenir la wagonnet, frappez-le tout en maintenant la touche furtive enfoncée. -A minecart with TNT is an explosive vehicle that travels on rail.=Un wagonnet avec de la TNT est un véhicule explosif qui se déplace sur rail. -Place it on rails. Punch it to move it. The TNT is ignited with a flint and steel or when the minecart is on an powered activator rail.=Placez-le sur des rails. Frappez-le pour le déplacer. Le TNT est allumé avec un briquet ou lorsque le minecart est sur un rail d'activation alimenté. -To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.=Pour obtenir la wagonnet et la TNT, frappez-les tout en maintenant la touche furtive enfoncée. Vous ne pouvez pas faire cela si le TNT a été allumé. -A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.=Une wagonnet avec un four est un véhicule qui se déplace sur rails. Il peut se propulser avec du carburant. -Place it on rails. If you give it some coal, the furnace will start burning for a long time and the minecart will be able to move itself. Punch it to get it moving.=Placez-le sur des rails. Si vous lui donnez du charbon, le four commencera à brûler pendant longtemps et le wagonnet pourra se déplacer. Frappez-le pour le faire bouger. -To obtain the minecart and furnace, punch them while holding down the sneak key.=Pour obtenir le wagonnet et le four, frappez-les tout en maintenant la touche furtive enfoncée. -Minecart with Chest=Wagonnet avec Coffre -Minecart with Furnace=Wagonnet avec Four -Minecart with Command Block=Wagonnet avec Bloc de Commande -Minecart with Hopper=Wagonnet avec Entonoir -Minecart with TNT=Wagonnet avec TNT -Place them on the ground to build your railway, the rails will automatically connect to each other and will turn into curves, T-junctions, crossings and slopes as needed.=Placez-les sur le sol pour construire votre chemin de fer, les rails se connecteront automatiquement les uns aux autres et se transformeront en courbes, en jonctions en T, en traversées et en pentes au besoin. -Rail=Rail -Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction.=Les rails peuvent être utilisés pour construire des voies de transport pour les wagonnets. Les rails ralentissent légèrement les wagonnets en raison de la friction. -Powered Rail=Rail allimenté -Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts.=Les rails peuvent être utilisés pour construire des voies de transport pour les wagonnets. Les rails motorisés sont capables d'accélérer et de freiner les wagonnets. -Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power.=Sans énergie de redstone, le rail freinera les wagonnets. Pour que ce rail accélère les minecarts, alimentez-le avec une source d'énergie redstone. -Activator Rail=Rail d'activation -Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts.=Les rails peuvent être utilisés pour construire des voies de transport pour les wagonnets. Des rails activateurs sont utilisés pour activer des wagonnets spéciaux. -To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail.=Pour activer ce rail, activez les wagonnets, alimentez-le avec de l'énergie redstone et envoyez un wagonnet sur ce morceau de rail. -Detector Rail=Rail de détection -Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms.=Les rails peuvent être utilisés pour construire des voies de transport pour les wagonnets. Un rail de détection est capable de détecter un wagonnet au-dessus et alimente les mécanismes de redstone. -To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.=Pour détecter un wagonnet et fournir une alimentation redstone, connectez-le aux câble redstone ou aux mécanismes redstone et envoyez n'importe quel wagonnet sur le rail. -Track for minecarts=Piste pour wagonnets -Speed up when powered, slow down when not powered=Accélérez lorsqu'il est alimenté, ralentissez lorsqu'il n'est pas alimenté -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é diff --git a/mods/ENTITIES/mcl_minecarts/locale/template.txt b/mods/ENTITIES/mcl_minecarts/locale/template.txt index 25418954..74bd547b 100644 --- a/mods/ENTITIES/mcl_minecarts/locale/template.txt +++ b/mods/ENTITIES/mcl_minecarts/locale/template.txt @@ -4,12 +4,6 @@ Minecarts can be used for a quick transportion on rails.= Minecarts only ride on rails and always follow the tracks. At a T-junction with no straight way ahead, they turn left. The speed is affected by the rail type.= You can place the minecart on rails. Right-click it to enter it. Punch it to get it moving.= To obtain the minecart, punch it while holding down the sneak key.= -A minecart with TNT is an explosive vehicle that travels on rail.= -Place it on rails. Punch it to move it. The TNT is ignited with a flint and steel or when the minecart is on an powered activator rail.= -To obtain the minecart and TNT, punch them while holding down the sneak key. You can't do this if the TNT was ignited.= -A minecart with furnace is a vehicle that travels on rails. It can propel itself with fuel.= -Place it on rails. If you give it some coal, the furnace will start burning for a long time and the minecart will be able to move itself. Punch it to get it moving.= -To obtain the minecart and furnace, punch them while holding down the sneak key.= Minecart with Chest= Minecart with Furnace= Minecart with Command Block= @@ -27,9 +21,3 @@ To make this rail activate minecarts, power it with redstone power and send a mi Detector Rail= Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms.= To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail.= -Track for minecarts= -Speed up when powered, slow down when not powered= -Activates minecarts when powered= -Emits redstone power when a minecart is detected= -Vehicle for fast travel on rails= -Can be ignited by tools or powered activator rail= diff --git a/mods/ENTITIES/mcl_minecarts/rails.lua b/mods/ENTITIES/mcl_minecarts/rails.lua index 4c26aea8..cf1ebacf 100644 --- a/mods/ENTITIES/mcl_minecarts/rails.lua +++ b/mods/ENTITIES/mcl_minecarts/rails.lua @@ -73,7 +73,6 @@ register_rail("mcl_minecarts:rail", {"default_rail.png", "default_rail_curved.png", "default_rail_t_junction.png", "default_rail_crossing.png"}, { description = S("Rail"), - _tt_help = S("Track for minecarts"), _doc_items_longdesc = S("Rails can be used to build transport tracks for minecarts. Normal rails slightly slow down minecarts due to friction."), _doc_items_usagehelp = railuse, } @@ -84,7 +83,6 @@ register_rail("mcl_minecarts:golden_rail", {"mcl_minecarts_rail_golden.png", "mcl_minecarts_rail_golden_curved.png", "mcl_minecarts_rail_golden_t_junction.png", "mcl_minecarts_rail_golden_crossing.png"}, { description = S("Powered Rail"), - _tt_help = S("Track for minecarts").."\n"..S("Speed up when powered, slow down when not powered"), _doc_items_longdesc = S("Rails can be used to build transport tracks for minecarts. Powered rails are able to accelerate and brake minecarts."), _doc_items_usagehelp = railuse .. "\n" .. S("Without redstone power, the rail will brake minecarts. To make this rail accelerate minecarts, power it with redstone power."), _rail_acceleration = -3, @@ -123,7 +121,6 @@ register_rail("mcl_minecarts:activator_rail", {"mcl_minecarts_rail_activator.png", "mcl_minecarts_rail_activator_curved.png", "mcl_minecarts_rail_activator_t_junction.png", "mcl_minecarts_rail_activator_crossing.png"}, { description = S("Activator Rail"), - _tt_help = S("Track for minecarts").."\n"..S("Activates minecarts when powered"), _doc_items_longdesc = S("Rails can be used to build transport tracks for minecarts. Activator rails are used to activate special minecarts."), _doc_items_usagehelp = railuse .. "\n" .. S("To make this rail activate minecarts, power it with redstone power and send a minecart over this piece of rail."), mesecons = { @@ -132,10 +129,12 @@ register_rail("mcl_minecarts:activator_rail", offstate = "mcl_minecarts:activator_rail", onstate = "mcl_minecarts:activator_rail_on", rules = rail_rules_long, - }, }, - } + }, + -- Hidden from creative because no cart is using this rail so far. + -- TODO: Remove this when the activator rail has become useful. + false ) -- Activator rail (on) @@ -150,20 +149,6 @@ register_rail("mcl_minecarts:activator_rail_on", onstate = "mcl_minecarts:activator_rail_on", rules = rail_rules_long, }, - effector = { - -- Activate minecarts - action_on = function(pos, node) - local pos2 = { x = pos.x, y =pos.y + 1, z = pos.z } - local objs = minetest.get_objects_inside_radius(pos2, 1) - for _, o in pairs(objs) do - local l = o:get_luaentity() - if l and string.sub(l.name, 1, 14) == "mcl_minecarts:" and l.on_activate_by_rail then - l:on_activate_by_rail() - end - end - end, - }, - }, drop = "mcl_minecarts:activator_rail", }, @@ -175,7 +160,6 @@ register_rail("mcl_minecarts:detector_rail", {"mcl_minecarts_rail_detector.png", "mcl_minecarts_rail_detector_curved.png", "mcl_minecarts_rail_detector_t_junction.png", "mcl_minecarts_rail_detector_crossing.png"}, { description = S("Detector Rail"), - _tt_help = S("Track for minecarts").."\n"..S("Emits redstone power when a minecart is detected"), _doc_items_longdesc = S("Rails can be used to build transport tracks for minecarts. A detector rail is able to detect a minecart above it and powers redstone mechanisms."), _doc_items_usagehelp = railuse .. "\n" .. S("To detect a minecart and provide redstone power, connect it to redstone trails or redstone mechanisms and send any minecart over the rail."), mesecons = { @@ -223,6 +207,9 @@ minetest.register_craft({ } }) +-- Activator rail crafting is disabled until it becomes useful. +-- TODO: Enable crafting as needed. +if false then minetest.register_craft({ output = "mcl_minecarts:activator_rail 6", recipe = { @@ -231,6 +218,7 @@ minetest.register_craft({ {"mcl_core:iron_ingot", "mcl_core:stick", "mcl_core:iron_ingot"}, } }) +end minetest.register_craft({ output = "mcl_minecarts:detector_rail 6", diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_furnace.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_furnace.png index 71aec1c7..7beaaa1c 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_furnace.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_furnace.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_tnt.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_tnt.png index 246d3632..cbd31280 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_tnt.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_minecart_tnt.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_activator.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_activator.png index c318e757..15f2cdba 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_activator.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_activator.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing.png index 57c72925..52674486 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing_powered.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing_powered.png index c0b8490e..08b20a81 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing_powered.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_crossing_powered.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved.png index cb7c1057..b5dabcc0 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved_powered.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved_powered.png index 8ee6ce3b..2a9cc602 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved_powered.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_detector_curved_powered.png differ diff --git a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_golden_powered.png b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_golden_powered.png index 5277e24e..c118032e 100644 Binary files a/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_golden_powered.png and b/mods/ENTITIES/mcl_minecarts/textures/mcl_minecarts_rail_golden_powered.png differ diff --git a/mods/ENTITIES/mcl_mobs/api.lua b/mods/ENTITIES/mcl_mobs/api.lua index 6b3f7423..fb823270 100644 --- a/mods/ENTITIES/mcl_mobs/api.lua +++ b/mods/ENTITIES/mcl_mobs/api.lua @@ -7,13 +7,8 @@ mobs.version = "20180531" -- don't rely too much on this, rarely updated, if eve local MAX_MOB_NAME_LENGTH = 30 -local MOB_CAP = {} -MOB_CAP.hostile = 70 -MOB_CAP.passive = 10 -MOB_CAP.ambient = 15 -MOB_CAP.water = 15 - -- Localize +local MP = minetest.get_modpath(minetest.get_current_modname()) local S = minetest.get_translator("mcl_mobs") -- CMI support check @@ -55,21 +50,22 @@ end -- Load settings local damage_enabled = minetest.settings:get_bool("enable_damage") -local mobs_spawn = minetest.settings:get_bool("mobs_spawn", true) ~= false - +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false +local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") local disable_blood = minetest.settings:get_bool("mobs_disable_blood") local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false local creative = minetest.settings:get_bool("creative_mode") local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false +-- TODO local remove_far = false local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 local show_health = false -local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 64) +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) local mobs_spawn_chance = tonumber(minetest.settings:get("mobs_spawn_chance") or 2.5) -- Peaceful mode message so players will know there are no monsters -if minetest.settings:get_bool("only_peaceful_mobs", false) then +if peaceful_only then minetest.register_on_joinplayer(function(player) minetest.chat_send_player(player:get_player_name(), S("Peaceful mode active! No monsters will spawn.")) @@ -87,17 +83,17 @@ local stuck_timeout = 3 -- how long before mob gets stuck in place and starts se local stuck_path_timeout = 10 -- how long will mob follow path before giving up -- default nodes +local node_fire = "mcl_fire:fire" +local node_permanent_flame = "mcl_fire:eternal_fire" local node_ice = "mcl_core:ice" local node_snowblock = "mcl_core:snowblock" local node_snow = "mcl_core:snow" mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "mcl_core:dirt" local mod_weather = minetest.get_modpath("mcl_weather") ~= nil -local mod_explosions = minetest.get_modpath("mcl_explosions") ~= nil +local mod_tnt = minetest.get_modpath("mcl_tnt") ~= nil local mod_mobspawners = minetest.get_modpath("mcl_mobspawners") ~= nil local mod_hunger = minetest.get_modpath("mcl_hunger") ~= nil -local mod_worlds = minetest.get_modpath("mcl_worlds") ~= nil -local mod_armor = minetest.get_modpath("mcl_armor") ~= nil -- play sound local mob_sound = function(self, soundname, is_opinion, fixed_pitch) @@ -136,36 +132,11 @@ local mob_sound = function(self, soundname, is_opinion, fixed_pitch) gain = 1.0, max_hear_distance = self.sounds.distance, pitch = pitch, - }, true) + }) self.opinion_sound_cooloff = 1 end end --- Reeturn true if object is in view_range -local function object_in_range(self, object) - if not object then - return false - end - local factor - -- Apply view range reduction for special player armor - if object:is_player() and mod_armor then - factor = armor:get_mob_view_range_factor(object, self.name) - end - -- Distance check - local dist - if factor and factor == 0 then - return false - elseif factor then - dist = self.view_range * factor - else - dist = self.view_range - end - if vector.distance(self.object:get_pos(), object:get_pos()) > dist then - return false - else - return true - end -end -- attack player/mob local do_attack = function(self, player) @@ -194,10 +165,10 @@ local set_velocity = function(self, v) end local yaw = (self.object:get_yaw() or 0) + self.rotate - local vel = self.object:get_velocity() + self.object:set_velocity({ x = sin(yaw) * -v, - y = (vel and vel.y) or 0, + y = self.object:get_velocity().y, z = cos(yaw) * v }) end @@ -297,39 +268,6 @@ function mobs:set_animation(self, anim) set_animation(self, anim) end --- Returns true is node can deal damage to self -local is_node_dangerous = function(self, nodename) - local nn = nodename - if self.water_damage > 0 then - if minetest.get_item_group(nn, "water") ~= 0 then - return true - end - end - if self.lava_damage > 0 then - if minetest.get_item_group(nn, "lava") ~= 0 then - return true - end - end - if self.fire_damage > 0 then - if (minetest.get_item_group(nn, "fire") ~= 0) or nn == "mcl_nether:magma" then - return true - end - end - if minetest.registered_nodes[nn].drowning > 0 then - if self.breath_max ~= -1 then - -- check if the mob is water-breathing _and_ the block is water; only return true if neither is the case - -- this will prevent water-breathing mobs to classify water or e.g. sand below them as dangerous - if not self.breathes_in_water and minetest.get_item_group(nn, "water") ~= 0 then - return true - end - end - end - if minetest.registered_nodes[nn].damage_per_second > 0 then - return true - end - return false -end - -- check line of sight (BrunoMine) local line_of_sight = function(self, pos1, pos2, stepsize) @@ -402,29 +340,34 @@ end -- are we flying in what we are suppose to? (taikedz) -local flight_check = function(self) +local flight_check = function(self, pos_w) local nod = self.standing_in local def = minetest.registered_nodes[nod] if not def then return false end -- nil check - local fly_in - if type(self.fly_in) == "string" then - fly_in = { self.fly_in } + if type(self.fly_in) == "string" + and nod == self.fly_in then + + return true + elseif type(self.fly_in) == "table" then - fly_in = self.fly_in - else - return false + + for _,fly_in in pairs(self.fly_in) do + + if nod == fly_in then + + return true + end + end end - for _,checknode in pairs(fly_in) do - if nod == checknode then - return true - elseif checknode == "__airlike" and def.walkable == false and - (def.liquidtype == "none" or minetest.get_item_group(nod, "fake_liquid") == 1) then - return true - end + -- stops mobs getting stuck inside stairs and plantlike nodes + if def.drawtype ~= "airlike" + and def.drawtype ~= "liquid" + and def.drawtype ~= "flowingliquid" then + return true end return false @@ -557,7 +500,7 @@ local check_for_death = function(self, cause, cmi_cause) -- has health actually changed? if self.health == self.old_health and self.health > 0 then - return false + return end local damaged = self.health < self.old_health @@ -599,8 +542,8 @@ local check_for_death = function(self, cause, cmi_cause) return false end - -- dropped cooked item if mob died in fire or lava - if cause == "lava" or cause == "fire" then + -- dropped cooked item if mob died in lava + if cause == "lava" then item_drop(self, true) else item_drop(self, nil) @@ -683,36 +626,25 @@ local within_limits = function(pos, radius) end --- is mob facing a cliff or danger -local is_at_cliff_or_danger = function(self) +-- is mob facing a cliff +local is_at_cliff = function(self) if self.fear_height == 0 then -- 0 for no falling protection! return false end - if not self.object:get_luaentity() then - return false - end local yaw = self.object:get_yaw() local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) local pos = self.object:get_pos() local ypos = pos.y + self.collisionbox[2] -- just above floor - local free_fall, blocker = minetest.line_of_sight( + if minetest.line_of_sight( {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, - {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z}) - if free_fall then + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} + , 1) then + return true - else - local bnode = minetest.get_node(blocker) - local danger = is_node_dangerous(self, bnode.name) - if danger then - return true - else - local def = minetest.registered_nodes[bnode.name] - return (not def and def.walkable) - end end return false @@ -758,37 +690,27 @@ local do_env_damage = function(self) -- remove mob if beyond map limits if not within_limits(pos, 0) then self.object:remove() - return true + return end - -- Deal light damage to mob, returns true if mob died local deal_light_damage = function(self, pos, damage) if not (mod_weather and (mcl_weather.rain.raining or mcl_weather.state == "snow") and mcl_weather.is_outdoor(pos)) then self.health = self.health - damage effect(pos, 5, "tnt_smoke.png") - if check_for_death(self, "light", {type = "light"}) then - return true - end + if check_for_death(self, "light", {type = "light"}) then return end end end -- bright light harms mob if self.light_damage ~= 0 and (minetest.get_node_light(pos) or 0) > 12 then - if deal_light_damage(self, pos, self.light_damage) then - return true - end - end - local _, dim = nil, "overworld" - if mod_worlds then - _, dim = mcl_worlds.y_to_layer(pos.y) + deal_light_damage(self, pos, self.light_damage) end + local _, dim = mcl_worlds.y_to_layer(pos.y) if self.sunlight_damage ~= 0 and (minetest.get_node_light(pos) or 0) >= minetest.LIGHT_MAX and dim == "overworld" then - if deal_light_damage(self, pos, self.sunlight_damage) then - return true - end + deal_light_damage(self, pos, self.sunlight_damage) end local y_level = self.collisionbox[2] @@ -799,9 +721,7 @@ local do_env_damage = function(self) -- what is mob standing in? pos.y = pos.y + y_level + 0.25 -- foot level - local pos2 = {x=pos.x, y=pos.y-1, z=pos.z} self.standing_in = node_ok(pos, "air").name - self.standing_on = node_ok(pos2, "air").name -- don't fall when on ignore, just stand still if self.standing_in == "ignore" then @@ -811,22 +731,20 @@ local do_env_damage = function(self) local nodef = minetest.registered_nodes[self.standing_in] -- rain - if self.rain_damage > 0 and mod_weather then + if self.rain_damage and mod_weather then if mcl_weather.rain.raining and mcl_weather.is_outdoor(pos) then self.health = self.health - self.rain_damage if check_for_death(self, "rain", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + pos = pos, node = self.standing_in}) then return end end end pos.y = pos.y + 1 -- for particle effect position -- water damage - if self.water_damage > 0 + if self.water_damage and nodef.groups.water then if self.water_damage ~= 0 then @@ -836,13 +754,11 @@ local do_env_damage = function(self) effect(pos, 5, "tnt_smoke.png", nil, nil, 1, nil) if check_for_death(self, "water", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + pos = pos, node = self.standing_in}) then return end end -- lava damage - elseif self.lava_damage > 0 + elseif self.lava_damage and (nodef.groups.lava) then if self.lava_damage ~= 0 then @@ -852,29 +768,21 @@ local do_env_damage = function(self) effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) if check_for_death(self, "lava", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + pos = pos, node = self.standing_in}) then return end end -- fire damage - elseif self.fire_damage > 0 - and (nodef.groups.fire) or self.standing_on == "mcl_nether:magma" then + elseif self.fire_damage + and (nodef.groups.fire) then if self.fire_damage ~= 0 then self.health = self.health - self.fire_damage - if self.standing_on ~= "mcl_nether:magma" then - effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) - if check_for_death(self, "fire", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end - elseif check_for_death(self, "water", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if check_for_death(self, "fire", {type = "environment", + pos = pos, node = self.standing_in}) then return end end -- damage_per_second node check @@ -885,9 +793,7 @@ local do_env_damage = function(self) effect(pos, 5, "tnt_smoke.png") if check_for_death(self, "dps", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + pos = pos, node = self.standing_in}) then return end end -- Drowning damage @@ -916,9 +822,7 @@ local do_env_damage = function(self) self.health = self.health - dmg end if check_for_death(self, "drowning", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end + pos = pos, node = self.standing_in}) then return end else self.breath = math.min(self.breath_max, self.breath + 1) end @@ -933,28 +837,15 @@ local do_env_damage = function(self) and (nodef.groups.disable_suffocation ~= 1) and (nodef.groups.opaque == 1) then - -- Short grace period before starting to take suffocation damage. - -- This is different from players, who take damage instantly. - -- This has been done because mobs might briefly be inside solid nodes - -- when e.g. climbing up stairs. - -- This is a bit hacky because it assumes that do_env_damage - -- is called roughly every second only. - self.suffocation_timer = self.suffocation_timer + 1 - if self.suffocation_timer >= 3 then - -- 2 damage per second - -- TODO: Deal this damage once every 1/2 second - self.health = self.health - 2 + -- 2 damage per second + -- TODO: Deal this damage once every 1/2 second + self.health = self.health - 2 - if check_for_death(self, "suffocation", {type = "environment", - pos = pos, node = self.standing_in}) then - return true - end - end - else - self.suffocation_timer = 0 + if check_for_death(self, "suffocation", {type = "environment", + pos = pos, node = self.standing_in}) then return end end - return check_for_death(self, "", {type = "unknown"}) + check_for_death(self, "", {type = "unknown"}) end @@ -995,7 +886,7 @@ local do_jump = function(self) local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) -- what is in front of mob? - nod = node_ok({ + local nod = node_ok({ x = pos.x + dir_x, y = pos.y + 0.5, z = pos.z + dir_z @@ -1022,9 +913,9 @@ local do_jump = function(self) if self.walk_chance == 0 or minetest.registered_items[nod.name].walkable then - if minetest.get_item_group(nod.name, "fence") == 0 - and minetest.get_item_group(nod.name, "fence_gate") == 0 - and minetest.get_item_group(nod.name, "wall") == 0 then + if not nod.name:find("fence") + and not nod.name:find("fence_gate") + and not nod.name:find("wall") then local v = self.object:get_velocity() @@ -1456,15 +1347,10 @@ local smart_mobs = function(self, s, p, dist, dtime) p1.y = floor(p1.y + 0.5) p1.z = floor(p1.z + 0.5) - local dropheight = 12 + local dropheight = 6 if self.fear_height ~= 0 then dropheight = self.fear_height end - local jumpheight = 0 - if self.jump and self.jump_height >= 4 then - jumpheight = math.min(math.ceil(self.jump_height / 4), 4) - elseif self.stepheight > 0.5 then - jumpheight = 1 - end - self.path.way = minetest.find_path(s, p1, 16, jumpheight, dropheight, "A*_noprefetch") + + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "A*_noprefetch") self.state = "" do_attack(self, self.attack) @@ -1562,15 +1448,12 @@ local smart_mobs = function(self, s, p, dist, dtime) end end - -- will try again in 2 seconds + -- will try again in 2 second self.path.stuck_timer = stuck_timeout - 2 - elseif s.y < p1.y and (not self.fly) then - do_jump(self) --add jump to pathfinding - self.path.following = true - -- Yay, I found path! + else + -- yay i found path -- TODO: Implement war_cry sound without being annoying --mob_sound(self, "war_cry", true) - else set_velocity(self, self.walk_velocity) -- follow path now that it has it @@ -1599,6 +1482,7 @@ local specific_attack = function(list, what) return false end + -- monster find someone to attack local monster_attack = function(self) @@ -1621,7 +1505,8 @@ local monster_attack = function(self) if objs[n]:is_player() then - if mobs.invis[ objs[n]:get_player_name() ] or (not object_in_range(self, objs[n])) then + if mobs.invis[ objs[n]:get_player_name() ] then + type = "" else player = objs[n] @@ -1751,8 +1636,8 @@ local runaway_from = function(self) if objs[n]:is_player() then if mobs.invis[ objs[n]:get_player_name() ] - or self.owner == objs[n]:get_player_name() - or (not object_in_range(self, objs[n])) then + or self.owner == objs[n]:get_player_name() then + type = "" else player = objs[n] @@ -1830,7 +1715,7 @@ local follow_flop = function(self) for n = 1, #players do - if (object_in_range(self, players[n])) + if vector.distance(players[n]:get_pos(), s) < self.view_range and not mobs.invis[ players[n]:get_player_name() ] then self.following = players[n] @@ -1881,7 +1766,7 @@ local follow_flop = function(self) local dist = vector.distance(p, s) -- dont follow if out of range - if (not object_in_range(self, self.following)) then + if dist > self.view_range then self.following = nil else local vec = { @@ -1893,7 +1778,7 @@ local follow_flop = function(self) if p.x > s.x then yaw = yaw + pi end - set_yaw(self, yaw, 6) + yaw = set_yaw(self, yaw, 6) -- anyone but standing npc's can move along if dist > self.reach @@ -1962,7 +1847,6 @@ end -- execute current state (stand, walk, run, attacks) --- returns true if mob has died local do_states = function(self, dtime) local yaw = self.object:get_yaw() or 0 @@ -2011,7 +1895,7 @@ local do_states = function(self, dtime) if self.walk_chance ~= 0 and self.facing_fence ~= true and random(1, 100) <= self.walk_chance - and is_at_cliff_or_danger(self) == false then + and is_at_cliff(self) == false then set_velocity(self, self.walk_velocity) self.state = "walk" @@ -2025,9 +1909,8 @@ local do_states = function(self, dtime) local lp = nil -- is there something I need to avoid? - if (self.water_damage > 0 - and self.lava_damage > 0) - or self.breath_max ~= -1 then + if self.water_damage > 0 + and self.lava_damage > 0 then lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) @@ -2038,29 +1921,18 @@ local do_states = function(self, dtime) elseif self.lava_damage > 0 then lp = minetest.find_node_near(s, 1, {"group:lava"}) - - elseif self.fire_damage > 0 then - - lp = minetest.find_node_near(s, 1, {"group:fire", "mcl_nether:magma"}) - end - local is_in_danger = false if lp then - - local is_in_danger = false - -- if mob is flying, only check for node it is currently in (no contact with node below) - if flight_check(self) then - is_in_danger = is_node_dangerous(self, self.standing_in) - elseif (is_node_dangerous(self, self.standing_in) or - is_node_dangerous(self, self.standing_on)) then - is_in_danger = true - end + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then - -- If mob in or on dangerous block, look for land - if is_in_danger then - lp = minetest.find_node_near(s, 5, {"group:solid"}) + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", node_ice, node_snowblock}) -- did we find land? if lp then @@ -2082,14 +1954,16 @@ local do_states = function(self, dtime) yaw = yaw + random(-0.5, 0.5) end - -- A danger is near but mob is not inside else - -- Randomly turn - if random(1, 100) <= 30 then - yaw = yaw + random(-0.5, 0.5) - yaw = set_yaw(self, yaw, 8) - end + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end end yaw = set_yaw(self, yaw, 8) @@ -2098,23 +1972,21 @@ local do_states = function(self, dtime) elseif random(1, 100) <= 30 then yaw = yaw + random(-0.5, 0.5) + yaw = set_yaw(self, yaw, 8) end - -- stand for great fall or danger or fence in front - local cliff_or_danger = false - if is_in_danger then - cliff_or_danger = is_at_cliff_or_danger(self) - end + -- stand for great fall in front + local temp_is_cliff = is_at_cliff(self) + if self.facing_fence == true - or cliff_or_danger + or temp_is_cliff or random(1, 100) <= 30 then set_velocity(self, 0) self.state = "stand" set_animation(self, "stand") else - set_velocity(self, self.walk_velocity) if flight_check(self) @@ -2134,7 +2006,7 @@ local do_states = function(self, dtime) -- stop after 5 seconds or when at cliff if self.runaway_timer > 5 - or is_at_cliff_or_danger(self) then + or is_at_cliff(self) then self.runaway_timer = 0 set_velocity(self, 0) self.state = "stand" @@ -2153,9 +2025,9 @@ local do_states = function(self, dtime) local dist = vector.distance(p, s) -- stop attacking if player invisible or out of range - if not self.attack + if dist > self.view_range + or not self.attack or not self.attack:get_pos() - or not object_in_range(self, self.attack) or self.attack:get_hp() <= 0 or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then @@ -2245,23 +2117,36 @@ local do_states = function(self, dtime) local pos = self.object:get_pos() - if mod_explosions then - if mobs_griefing and not minetest.is_protected(pos, "") then - mcl_explosions.explode(self.object:get_pos(), self.explosion_strength, { drop_chance = 1.0 }, self.object) + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + node_break_radius = 1 + end + + self.object:remove() + + if mobs_griefing and mod_tnt and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = node_break_radius, + damage_radius = entity_damage_radius, + sound = self.sounds.explode, + }) else + minetest.sound_play(self.sounds.explode, { pos = pos, gain = 1.0, max_hear_distance = self.sounds.distance or 32 - }, true) + }) entity_physics(pos, entity_damage_radius) effect(pos, 32, "tnt_smoke.png", nil, nil, node_break_radius, 1, 0) end - end - self.object:remove() - return true + return end end @@ -2366,7 +2251,7 @@ local do_states = function(self, dtime) smart_mobs(self, s, p, dist, dtime) end - if is_at_cliff_or_danger(self) then + if is_at_cliff(self) then set_velocity(self, 0) set_animation(self, "stand") @@ -2510,7 +2395,6 @@ end -- falling and fall damage --- returns true if mob died local falling = function(self, pos) if self.fly then @@ -2563,20 +2447,12 @@ local falling = function(self, pos) if d > 5 then - local add = minetest.get_item_group(self.standing_on, "fall_damage_add_percent") - local damage = d - 5 - if add ~= 0 then - damage = damage + damage * (add/100) - end - damage = floor(damage) - if damage > 0 then - self.health = self.health - damage + self.health = self.health - floor(d - 5) - effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) - if check_for_death(self, "fall", {type = "fall"}) then - return true - end + if check_for_death(self, "fall", {type = "fall"}) then + return end end @@ -2676,24 +2552,13 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) punch_interval = tool_capabilities.full_punch_interval or 1.4 end - -- add weapon wear manually - -- Required because we have custom health handling ("health" property) + -- add weapon wear if minetest.settings:get_bool("creative_mode") ~= true - and tool_capabilities then - if tool_capabilities.punch_attack_uses then - -- Without this delay, the wear does not work. Quite hacky ... - minetest.after(0, function(name) - local player = minetest.get_player_by_name(name) - if not player then return end - local weapon = hitter:get_wielded_item(player) - local def = weapon:get_definition() - if def.tool_capabilities and def.tool_capabilities.punch_attack_uses then - local wear = floor(65535/tool_capabilities.punch_attack_uses) - weapon:add_wear(wear) - hitter:set_wielded_item(weapon) - end - end, hitter:get_player_name()) - end + and weapon:get_definition() + and weapon:get_definition().tool_capabilities then + + weapon:add_wear(floor((punch_interval / 75) * 9000)) + hitter:set_wielded_item(weapon) end local die = false @@ -2709,12 +2574,12 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) minetest.sound_play(weapon:get_definition().sounds[s], { object = self.object, --hitter, max_hear_distance = 8 - }, true) + }) else minetest.sound_play("default_punch", { object = self.object, --hitter, max_hear_distance = 5 - }, true) + }) end damage_effect(self, damage) @@ -2755,7 +2620,7 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) self.object:set_velocity({ x = dir.x * kb, - y = dir.y * kb + up, + y = up, z = dir.z * kb }) @@ -2836,13 +2701,6 @@ local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) end end -local mob_detach_child = function(self, child) - - if self.driver == child then - self.driver = nil - end - -end -- get entity staticdata local mob_staticdata = function(self) @@ -2865,6 +2723,12 @@ local mob_staticdata = function(self) self.following = nil self.state = "stand" + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + if use_cmi then self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) end @@ -2892,7 +2756,7 @@ local mob_activate = function(self, staticdata, def, dtime) -- remove monsters in peaceful mode if self.type == "monster" - and minetest.settings:get_bool("only_peaceful_mobs", false) then + and peaceful_only then self.object:remove() @@ -2992,17 +2856,8 @@ local mob_activate = function(self, staticdata, def, dtime) self.path.following = false -- currently following path? self.path.stuck_timer = 0 -- if stuck for too long search for path - -- Armor groups - -- immortal=1 because we use custom health - -- handling (using "health" property) - local armor - if type(self.armor) == "table" then - armor = table.copy(self.armor) - armor.immortal = 1 - else - armor = {immortal=1, fleshy = self.armor} - end - self.object:set_armor_groups(armor) + -- mob defaults + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) self.old_y = self.object:get_pos().y self.old_health = self.health self.sounds.distance = self.sounds.distance or 10 @@ -3011,18 +2866,11 @@ local mob_activate = function(self, staticdata, def, dtime) self.collisionbox = colbox self.selectionbox = selbox self.visual_size = vis_size - self.standing_in = "ignore" - self.standing_on = "ignore" + self.standing_in = "" self.jump_sound_cooloff = 0 -- used to prevent jump sound from being played too often in short time self.opinion_sound_cooloff = 0 -- used to prevent sound spam of particular sound types self.texture_mods = {} - self.object:set_texture_mod("") - - self.v_start = false - self.timer = 0 - self.blinktimer = 0 - self.blinkstatus = false -- check existing nametag if not self.nametag then @@ -3101,16 +2949,13 @@ local mob_step = function(self, dtime) if self.opinion_sound_cooloff > 0 then self.opinion_sound_cooloff = self.opinion_sound_cooloff - dtime end - if falling(self, pos) then - -- Return if mob died after falling - return - end + falling(self, pos) -- smooth rotation by ThomasMonroe314 if self.delay and self.delay > 0 then - local yaw = self.object:get_yaw() or 0 + local yaw = self.object:get_yaw() if self.delay == 1 then yaw = self.target_yaw @@ -3194,9 +3039,7 @@ local mob_step = function(self, dtime) self.env_damage_timer = 0 -- check for environmental damage (water, fire, lava etc.) - if do_env_damage(self) then - return - end + do_env_damage(self) -- node replace check (cow eats grass etc.) replace(self, pos) @@ -3210,9 +3053,7 @@ local mob_step = function(self, dtime) follow_flop(self) - if do_states(self, dtime) then - return - end + do_states(self, dtime) do_jump(self) @@ -3291,28 +3132,21 @@ local function scale_difficulty(value, default, min, special) end end -local collisionbox = def.collisionbox or {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25} --- Workaround for : --- Increase upper Y limit to avoid mobs glitching through solid nodes. --- FIXME: Remove workaround if it's no longer needed. -if collisionbox[5] < 0.79 then - collisionbox[5] = 0.79 -end - minetest.register_entity(name, { - stepheight = def.stepheight or 0.6, + stepheight = def.stepheight or 1.1, -- was 0.6 name = name, type = def.type, attack_type = def.attack_type, fly = def.fly, - fly_in = def.fly_in or {"air", "__airlike"}, + fly_in = def.fly_in or "air", owner = def.owner or "", order = def.order or "", on_die = def.on_die, spawn_small_alternative = def.spawn_small_alternative, do_custom = def.do_custom, jump_height = def.jump_height or 4, -- was 6 + drawtype = def.drawtype, -- DEPRECATED, use rotate instead rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 lifetimer = def.lifetimer or 57.73, hp_min = scale_difficulty(def.hp_min, 5, 1), @@ -3320,7 +3154,7 @@ minetest.register_entity(name, { breath_max = def.breath_max or 15, breathes_in_water = def.breathes_in_water or false, physical = true, - collisionbox = collisionbox, + collisionbox = def.collisionbox or {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, selectionbox = def.selectionbox or def.collisionbox, visual = def.visual, visual_size = def.visual_size or {x = 1, y = 1}, @@ -3360,7 +3194,7 @@ minetest.register_entity(name, { replace_offset = def.replace_offset or 0, on_replace = def.on_replace, timer = 0, - env_damage_timer = 0, + env_damage_timer = 0, -- only used when state = "attack" tamed = false, pause_timer = 0, horny = false, @@ -3378,8 +3212,8 @@ minetest.register_entity(name, { runaway_timer = 0, pathfinding = def.pathfinding, immune_to = def.immune_to or {}, - explosion_radius = def.explosion_radius, -- LEGACY - explosion_damage_radius = def.explosion_damage_radius, -- LEGACY + explosion_radius = def.explosion_radius, + explosion_damage_radius = def.explosion_damage_radius, explosion_timer = def.explosion_timer or 3, allow_fuse_reset = def.allow_fuse_reset ~= false, stop_to_explode = def.stop_to_explode ~= false, @@ -3397,7 +3231,6 @@ minetest.register_entity(name, { _cmi_is_mob = true, -- MCL2 extensions - spawn_class = def.spawn_class, ignores_nametag = def.ignores_nametag or false, rain_damage = def.rain_damage or 0, glow = def.glow, @@ -3406,8 +3239,6 @@ minetest.register_entity(name, { texture_mods = {}, shoot_arrow = def.shoot_arrow, sounds_child = def.sounds_child, - explosion_strength = def.explosion_strength, - suffocation_timer = 0, -- End of MCL2 extensions on_spawn = def.on_spawn, @@ -3424,8 +3255,6 @@ minetest.register_entity(name, { on_grown = def.on_grown, - on_detach_child = mob_detach_child, - on_activate = function(self, staticdata, dtime) return mob_activate(self, staticdata, def, dtime) end, @@ -3444,48 +3273,33 @@ end -- END mobs:register_mob function -- count how many mobs of one type are inside an area -local count_mobs = function(pos, mobtype) +local count_mobs = function(pos, type) - local num = 0 + local num_type = 0 + local num_total = 0 local objs = minetest.get_objects_inside_radius(pos, aoc_range) for n = 1, #objs do - local obj = objs[n]:get_luaentity() + if not objs[n]:is_player() then - if obj and obj.name and obj._cmi_is_mob then + local obj = objs[n]:get_luaentity() - -- count passive mobs only - if mobtype == "!passive" then - if obj.spawn_class == "passive" then - num = num + 1 - end - -- count hostile mobs only - elseif mobtype == "!hostile" then - if obj.spawn_class == "hostile" then - num = num + 1 - end - -- count ambient mobs only - elseif mobtype == "!ambient" then - if obj.spawn_class == "ambient" then - num = num + 1 - end - -- count water mobs only - elseif mobtype == "!water" then - if obj.spawn_class == "water" then - num = num + 1 - end - -- count mob type - elseif mobtype and obj.name == mobtype then - num = num + 1 - -- count total mobs - elseif not mobtype then - num = num + 1 + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 end end end - return num + return num_type, num_total end @@ -3540,21 +3354,9 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, return end - -- count nearby mobs in same spawn class - local entdef = minetest.registered_entities[name] - local spawn_class = entdef and entdef.spawn_class - if not spawn_class then - if entdef.type == "monster" then - spawn_class = "hostile" - else - spawn_class = "passive" - end - end - local in_class_cap = count_mobs(pos, "!"..spawn_class) < MOB_CAP[spawn_class] -- do not spawn if too many of same mob in area - if active_object_count_wider >= max_per_block -- large-range mob cap - or (not in_class_cap) -- spawn class mob cap - or count_mobs(pos, name) >= aoc then -- per-mob mob cap + if active_object_count_wider >= max_per_block + or count_mobs(pos, name) >= aoc then -- too many entities minetest.log("info", "Mob spawn of "..name.." at "..minetest.pos_to_string(pos).." failed, too crowded!") return @@ -3742,7 +3544,6 @@ function mobs:register_arrow(name, def) hit_player = def.hit_player, hit_node = def.hit_node, hit_mob = def.hit_mob, - hit_object = def.hit_object, drop = def.drop or false, -- drops arrow as registered item when true collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows timer = 0, @@ -3809,7 +3610,7 @@ function mobs:register_arrow(name, def) end end - if self.hit_player or self.hit_mob or self.hit_object then + if self.hit_player or self.hit_mob then for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do @@ -3828,18 +3629,11 @@ function mobs:register_arrow(name, def) and entity._cmi_is_mob == true and tostring(player) ~= self.owner_id and entity.name ~= self.object:get_luaentity().name then - self.hit_mob(self, player) - self.object:remove(); - return - end - if entity - and self.hit_object - and (not entity._cmi_is_mob) - and tostring(player) ~= self.owner_id - and entity.name ~= self.object:get_luaentity().name then - self.hit_object(self, player) + self.hit_mob(self, player) + self.object:remove(); + return end end @@ -3851,13 +3645,22 @@ function mobs:register_arrow(name, def) end +-- compatibility function +function mobs:explosion(pos, radius) + local self = {sounds = {}} + self.sounds.explode = "tnt_explode" + mobs:boom(self, pos, radius) +end + + -- no damage to nodes explosion -function mobs:safe_boom(self, pos, strength) +function mobs:safe_boom(self, pos, radius) + minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { pos = pos, gain = 1.0, max_hear_distance = self.sounds and self.sounds.distance or 32 - }, true) + }) entity_physics(pos, radius) effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) @@ -3865,14 +3668,18 @@ end -- make explosion with protection and tnt mod check -function mobs:boom(self, pos, strength, fire) +function mobs:boom(self, pos, radius) - if mod_explosions then - if mobs_griefing and not minetest.is_protected(pos, "") then - mcl_explosions.explode(pos, strength, { drop_chance = 1.0, fire = fire }, self.object) - else - mobs:safe_boom(self, pos, strength) - end + if mobs_griefing + and mod_tnt and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = radius, + sound = self.sounds and self.sounds.explode, + explode_center = true, + }) else mobs:safe_boom(self, pos, radius) end @@ -3947,12 +3754,6 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative) return itemstack end - if minetest.settings:get_bool("only_peaceful_mobs", false) - and minetest.registered_entities[mob].type == "monster" then - minetest.chat_send_player(name, S("Only peaceful mobs allowed!")) - return itemstack - end - pos.y = pos.y + 1 local mob = minetest.add_entity(pos, mob) @@ -4001,6 +3802,9 @@ function mobs:protect(self, clicker) end +local mob_obj = {} +local mob_sta = {} + -- feeding, taming and breeding (thanks blert2112) function mobs:feed_tame(self, clicker, feed_count, breed, tame) if not self.follow then diff --git a/mods/ENTITIES/mcl_mobs/api.txt b/mods/ENTITIES/mcl_mobs/api.txt index 17a6a8b0..96ae363b 100644 --- a/mods/ENTITIES/mcl_mobs/api.txt +++ b/mods/ENTITIES/mcl_mobs/api.txt @@ -35,12 +35,8 @@ functions needed for the mob to work properly which contains the following: 'breathes_in_water' If true, mob loses breath when not in water. Otherwise, mob loses breath when inside a node with `drowning` attribute set (default: false). - 'armor' entity armor groups (see lua_api.txt). If table, a list of - armor groups like for entities. If number, set value of - 'fleshy' armor group only. - Note: The 'immortal=1' armor group will automatically be added - since this mod handles health and damage manually. - Default: 100 (mob will take full dmg from 'fleshy' hits) + 'armor' holds strength of mob, 100 is normal, lower is more powerful + and needs more hits and better weapons to kill. 'passive' when true allows animals to defend themselves when hit, otherwise they amble onwards. 'walk_velocity' is the speed that your mob can walk around. @@ -50,12 +46,10 @@ functions needed for the mob to work properly which contains the following: 'jump' when true allows your mob to jump updwards. 'jump_height' holds the height your mob can jump, 0 to disable jumping. 'stepheight' height of a block that your mob can easily walk up onto, - defaults to 0.6. + defaults to 1.1. 'fly' when true allows your mob to fly around instead of walking. - 'fly_in' holds the node name or a table of node names in which the - mob flies (or swims) around in. The special name - '__airlike' stands for all nodes with 'walkable=false' - that are not liquids + 'fly_in' holds the node name that the mob flies (or swims) around + in e.g. "air" or "default:water_source". 'runaway' if true causes animals to turn and run away when hit. 'view_range' how many nodes in distance the mob can see a player. 'damage' how many health points the mob does to a player or another @@ -171,9 +165,7 @@ functions needed for the mob to work properly which contains the following: 'mesh' uses separate object file to define mob. 'visual_size' has the size of the mob, defaults to {x = 1, y = 1} 'collisionbox' has the box in which mob can be interacted with the - world e.g. {-0.5, -0.5, -0.5, 0.5, 0.8, 0.5}. - NOTE: Due to a workaround, the upper Y coordinate will be forced - to a minimum value of 0.79. + world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} 'selectionbox' has the box in which player can interact with mob 'textures' holds a table list of textures to be used for mob, or you could use multiple lists inside another table for random @@ -226,8 +218,6 @@ functions needed for the mob to work properly which contains the following: MineClone 2 extensions: - 'spawn_class' Classification of mod for the spawning algorithm: - "hostile", "passive", "ambient" or "water" 'ignores_nametag' if true, mob cannot be named by nametag 'rain_damage' damage per second if mob is standing in rain (default: 0) 'sunlight_damage' holds the damage per second inflicted to mobs when they @@ -430,9 +420,6 @@ This function registers a arrow for mobs with the attack type shoot. 'hit_mob' a function that is called when the arrow hits a mob; this function should hurt the mob, the parameters are (self, mob) - 'hit_object' a function that is called when the arrow hits an object - that is neither a player nor a mob. this function should - hurt the object, the parameters are (self, object) 'hit_node' a function that is called when the arrow hits a node, the parameters are (self, pos, node) 'tail' when set to 1 adds a trail or tail to mob arrows @@ -466,6 +453,8 @@ This function registers a spawn egg which can be used by admin to properly spawn Explosion Function ------------------ +mobs:explosion(pos, radius) -- DEPRECATED!!! use mobs:boom() instead + mobs:boom(self, pos, radius) 'self' mob entity 'pos' centre position of explosion diff --git a/mods/ENTITIES/mcl_mobs/crafts.lua b/mods/ENTITIES/mcl_mobs/crafts.lua index e8a5b60f..e9e6abf9 100644 --- a/mods/ENTITIES/mcl_mobs/crafts.lua +++ b/mods/ENTITIES/mcl_mobs/crafts.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mcl_mobs") -- name tag minetest.register_craftitem("mcl_mobs:nametag", { description = S("Name Tag"), - _tt_help = S("Give names to mobs").."\n"..S("Set name at anvil"), _doc_items_longdesc = S("A name tag is an item to name a mob."), _doc_items_usagehelp = S("Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag."), inventory_image = "mobs_nametag.png", diff --git a/mods/ENTITIES/mcl_mobs/depends.txt b/mods/ENTITIES/mcl_mobs/depends.txt new file mode 100644 index 00000000..eb3eb2aa --- /dev/null +++ b/mods/ENTITIES/mcl_mobs/depends.txt @@ -0,0 +1,9 @@ +mcl_core +mcl_weather? +mcl_tnt? +mcl_hunger? +invisibility? +intllib? +lucky_block? +cmi? +doc_identifier? diff --git a/mods/ENTITIES/mcl_mobs/init.lua b/mods/ENTITIES/mcl_mobs/init.lua index c2d6cb21..87e7c19b 100644 --- a/mods/ENTITIES/mcl_mobs/init.lua +++ b/mods/ENTITIES/mcl_mobs/init.lua @@ -9,3 +9,5 @@ dofile(path .. "/mount.lua") -- Mob Items dofile(path .. "/crafts.lua") + +minetest.log("action", "[MOD] Mobs Redo: MineClone 2 Edition loaded") diff --git a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.de.tr b/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.de.tr index 3b1a310b..59f65eae 100644 --- a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.de.tr +++ b/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.de.tr @@ -6,6 +6,3 @@ You need the “maphack” privilege to change the mob spawner.=Sie brauchen das Name Tag=Namensschild A name tag is an item to name a mob.=Ein Namensschild ist ein Gegenstand, um einen Mob zu benennen. Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag.=Bevor Sie ein Namensschild benutzen können, müssen Sie ihn an einem Amboss benennen. Dann können können Sie das Namensschild benutztn, um einen Mob zu benennen. Das wird das Namensschild verbrauchen. -Only peaceful mobs allowed!=Nur friedliche Mobs erlaubt! -Give names to mobs=Benennt Mobs -Set name at anvil=Namen am Amboss setzen diff --git a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.es.tr b/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.es.tr deleted file mode 100644 index ef067141..00000000 --- a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.es.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_mobs -Peaceful mode active! No monsters will spawn.=¡Modo pacífico activo! No aparecerán monstruos. -This allows you to place a single mob.=Esto le permite colocar un solo animal. -Just place it where you want the mob to appear. Animals will spawn tamed, unless you hold down the sneak key while placing. If you place this on a mob spawner, you change the mob it spawns.=Simplemente colóquelo donde desea que aparezcan los animales. Los animales aparecerán domesticados, a menos que mantenga presionada la tecla de sigilo mientras coloca. Si coloca esto en un engendrador de animales, cambia el animal que genera. -You need the “maphack” privilege to change the mob spawner.=Necesita el privilegio "maphack" para cambiar el generador de animales. -Name Tag=Etiqueta -A name tag is an item to name a mob.=Una etiqueta es un elemento para nombrar una animal. -Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag.=Antes de usar la etiqueta, debe establecer un nombre en un yunque. Luego puede usar la etiqueta para nombrar un animal. Esto usa la etiqueta. -Only peaceful mobs allowed!=¡Solo se permiten animales pacíficos! diff --git a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.fr.tr b/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.fr.tr deleted file mode 100644 index 96ac6a81..00000000 --- a/mods/ENTITIES/mcl_mobs/locale/mcl_mobs.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_mobs -Peaceful mode active! No monsters will spawn.=Mode paisible actif! Aucun monstre n'apparaîtra. -This allows you to place a single mob.=Cela vous permet de placer un seul mob. -Just place it where you want the mob to appear. Animals will spawn tamed, unless you hold down the sneak key while placing. If you place this on a mob spawner, you change the mob it spawns.=Placez-le là où vous voulez que le mob apparaisse. Les animaux apparaîtront apprivoisés, sauf si vous maintenez la touche furtive enfoncée pendant le placement. Si vous le placez sur un générateur de mob, vous changez le mob qu'il génère. -You need the “maphack” privilege to change the mob spawner.=Vous avez besoin du privilège "maphack" pour changer le générateur de mob. -Name Tag=Étiquette de nom -A name tag is an item to name a mob.=Une étiquette de nom est un élément pour nommer un mob. -Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag.=Avant d'utiliser l'étiquette de nom, vous devez définir un nom sur une enclume. Ensuite, vous pouvez utiliser l'étiquette de nom pour nommer un mob. Cela utilise l'étiquette de nom. -Only peaceful mobs allowed!=Seuls les mobs pacifiques sont autorisées! -Give names to mobs=Donne des noms aux mobs -Set name at anvil=Définir le nom sur l'enclume diff --git a/mods/ENTITIES/mcl_mobs/locale/template.txt b/mods/ENTITIES/mcl_mobs/locale/template.txt index e24974a4..db0c4d53 100644 --- a/mods/ENTITIES/mcl_mobs/locale/template.txt +++ b/mods/ENTITIES/mcl_mobs/locale/template.txt @@ -6,6 +6,3 @@ You need the “maphack” privilege to change the mob spawner.= Name Tag= A name tag is an item to name a mob.= Before you use the name tag, you need to set a name at an anvil. Then you can use the name tag to name a mob. This uses up the name tag.= -Only peaceful mobs allowed!= -Give names to mobs= -Set name at anvil= diff --git a/mods/ENTITIES/mcl_mobs/mod.conf b/mods/ENTITIES/mcl_mobs/mod.conf index a32827a6..bfad5550 100644 --- a/mods/ENTITIES/mcl_mobs/mod.conf +++ b/mods/ENTITIES/mcl_mobs/mod.conf @@ -1,2 +1 @@ name = mcl_mobs -optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, lucky_block, cmi, doc_identifier, mcl_armor diff --git a/mods/ENTITIES/mcl_mobs/mount.lua b/mods/ENTITIES/mcl_mobs/mount.lua index 8c4a6aa5..d24fc26f 100644 --- a/mods/ENTITIES/mcl_mobs/mount.lua +++ b/mods/ENTITIES/mcl_mobs/mount.lua @@ -121,7 +121,7 @@ end) function mobs.attach(entity, player) - local attach_at, eye_offset + local attach_at, eye_offset = {}, {} entity.player_rotation = entity.player_rotation or {x = 0, y = 0, z = 0} entity.driver_attach_at = entity.driver_attach_at or {x = 0, y = 0, z = 0} @@ -183,10 +183,10 @@ end function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) - local rot_view = 0 + local rot_steer, rot_view = math.pi/2, 0 if entity.player_rotation.y == 90 then - rot_view = math.pi/2 + rot_steer, rot_view = 0, math.pi/2 end local acce_y = 0 @@ -262,7 +262,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) return end - + -- set moving animation if moving_anim then mobs:set_animation(entity, moving_anim) @@ -293,7 +293,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) -- Set position, velocity and acceleration local p = entity.object:get_pos() - local new_velo + local new_velo = {x = 0, y = 0, z = 0} local new_acce = {x = 0, y = -9.8, z = 0} p.y = p.y - 0.5 @@ -318,7 +318,7 @@ function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) minetest.sound_play("default_punch", { object = entity.object, max_hear_distance = 5 - }, true) + }) entity.object:punch(entity.object, 1.0, { full_punch_interval = 1.0, @@ -390,6 +390,11 @@ function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) local velo = entity.object:get_velocity() local dir = entity.driver:get_look_dir() local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands + local rot_steer, rot_view = math.pi / 2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi / 2 + end if ctrl.up then entity.object:set_velocity({ diff --git a/mods/ENTITIES/mcl_mobs/textures/mobs_blood.png b/mods/ENTITIES/mcl_mobs/textures/mobs_blood.png index ebda3703..aa4a6123 100644 Binary files a/mods/ENTITIES/mcl_mobs/textures/mobs_blood.png and b/mods/ENTITIES/mcl_mobs/textures/mobs_blood.png differ diff --git a/mods/ENTITIES/mcl_paintings/init.lua b/mods/ENTITIES/mcl_paintings/init.lua deleted file mode 100644 index df29395b..00000000 --- a/mods/ENTITIES/mcl_paintings/init.lua +++ /dev/null @@ -1,276 +0,0 @@ -mcl_paintings = {} - -dofile(minetest.get_modpath(minetest.get_current_modname()).."/paintings.lua") - -local S = minetest.get_translator("mcl_paintings") - -local wood = "[combine:16x16:-192,0=mcl_paintings_paintings.png" - --- Check if there's a painting for provided painting size. --- If yes, returns the arguments. --- If not, returns the next smaller available painting. -local shrink_painting = function(x, y) - if x > 4 or y > 4 then - return nil - end - local xstart = x - local painting - while not painting do - painting = mcl_paintings.paintings[y] and mcl_paintings.paintings[y][x] - if type(painting) == "table" then - break - elseif type(painting) == "number" then - x = painting - painting = nil - else - x = xstart - y = y - 1 - end - if y < 1 then - return nil - end - end - if type(painting) == "table" then - return x, y - end -end - -local get_painting = function(x, y, motive) - local painting = mcl_paintings.paintings[y] and mcl_paintings.paintings[y][x] and mcl_paintings.paintings[y][x][motive] - if not painting then - return nil - end - local px, py = -painting.cx, -painting.cy - local sx, sy = 16*x, 16*y - return "[combine:"..sx.."x"..sy..":"..px..","..py.."=mcl_paintings_paintings.png" -end - -local get_random_painting = function(x, y) - if not mcl_paintings.paintings[y] or not mcl_paintings.paintings[y][x] then - return nil - end - local max = #mcl_paintings.paintings[y][x] - if max < 1 then - return nil - end - local r = math.random(1, max) - return get_painting(x, y, r), r -end - -local size_to_minmax = function(size) - local min, max - if size == 2 then - min = -0.5 - max = 1.5 - elseif size == 3 then - min = -1.5 - max = 1.5 - elseif size == 4 then - min = -1.5 - max = 2.5 - else - min = -0.5 - max = 0.5 - end - return min, max -end - -local size_to_minmax_entity = function(size) - return -size/2, size/2 -end - -local set_entity = function(object) - local ent = object:get_luaentity() - local wallm = ent._facing - local xsize = ent._xsize - local ysize = ent._ysize - local exmin, exmax = size_to_minmax_entity(xsize) - local eymin, eymax = size_to_minmax_entity(ysize) - local visual_size = { x=xsize-0.0001, y=ysize-0.0001, z=1/32 } - if not ent._xsize or not ent._ysize or not ent._motive then - minetest.log("error", "[mcl_paintings] Painting loaded with missing painting values!") - return - end - local painting = get_painting(xsize, ysize, ent._motive) - if not painting then - minetest.log("error", "[mcl_paintings] No painting found for size " - ..xsize..","..ysize..", motive number "..ent._motive.."!") - return - end - if wallm == 4 or wallm == 5 then - object:set_properties({ - selectionbox = { exmin, eymin, -1/64, exmax, eymax, 1/64 }, - visual_size = visual_size, - textures = { wood, wood, wood, wood, painting, wood }, - }) - else - object:set_properties({ - selectionbox = { -1/64, eymin, exmin, 1/64, eymax, exmax }, - visual_size = visual_size, - textures = { wood, wood, wood, wood, painting, wood }, - }) - end - local dir = minetest.wallmounted_to_dir(wallm) - if not dir then - return - end - object:set_yaw(minetest.dir_to_yaw(dir)) -end - -minetest.register_entity("mcl_paintings:painting", { - visual = "cube", - visual_size = { x=0.999, y=0.999, z=1/32 }, - selectionbox = { -1/64, -0.5, -0.5, 1/64, 0.5, 0.5 }, - physical = false, - collide_with_objects = false, - textures = { wood, wood, wood, wood, wood, wood }, - hp_max = 1, - - _motive = 0, - _pos = nil, - _facing = 2, - _xsize = 1, - _ysize = 1, - on_activate = function(self, staticdata) - if staticdata and staticdata ~= "" then - local data = minetest.deserialize(staticdata) - if data then - self._facing = data._facing - self._pos = data._pos - self._motive = data._motive - self._xsize = data._xsize - self._ysize = data._ysize - end - end - set_entity(self.object) - end, - get_staticdata = function(self) - local data = { - _facing = self._facing, - _pos = self._pos, - _motive = self._motive, - _xsize = self._xsize, - _ysize = self._ysize, - } - return minetest.serialize(data) - end, - on_death = function(self, killer) - -- Drop as item on death - if not minetest.settings:get_bool("creative_mode") then - local pos = self._pos - if not pos then - pos = self.object:get_pos() - end - minetest.add_item(pos, "mcl_paintings:painting") - end - end, -}) - -minetest.register_craftitem("mcl_paintings:painting", { - description = S("Painting"), - inventory_image = "mcl_paintings_painting.png", - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - return itemstack - end - local dir = vector.subtract(pointed_thing.above, pointed_thing.under) - dir = vector.normalize(dir) - if dir.y ~= 0 then - -- Ceiling/floor paintings are not supported - return itemstack - end - local wallm = minetest.dir_to_wallmounted(dir) - if wallm then - local ppos = pointed_thing.above - local xmax - local ymax = 4 - local xmaxes = {} - local ymaxed = false - local negative = dir.x < 0 or dir.z > 0 - -- Check maximum possible painting size - local t - for y=0,3 do - for x=0,3 do - local k = x - if negative then - k = -k - end - if dir.z ~= 0 then - t = {x=k,y=y,z=0} - else - t = {x=0,y=y,z=k} - end - local unode = minetest.get_node(vector.add(pointed_thing.under, t)) - local anode = minetest.get_node(vector.add(ppos, t)) - local udef = minetest.registered_nodes[unode.name] - local adef = minetest.registered_nodes[anode.name] - if (not (udef and udef.walkable)) or (not adef or adef.walkable) then - xmaxes[y+1] = x - if x == 0 and not ymaxed then - ymax = y - ymaxed = true - end - break - end - end - if not xmaxes[y] then - xmaxes[y] = 4 - end - end - xmax = math.max(unpack(xmaxes)) - - local xsize, ysize = xmax, ymax - xsize, ysize = shrink_painting(xsize, ysize) - if not xsize then - return itemstack - end - local _, exmax = size_to_minmax_entity(xsize) - local _, eymax = size_to_minmax_entity(ysize) - local pposa = vector.subtract(ppos, vector.multiply(dir, 0.5-2/64)) - local pexmax - local peymax = eymax - 0.5 - if negative then - pexmax = -exmax + 0.5 - else - pexmax = exmax - 0.5 - end - if dir.z ~= 0 then - pposa = vector.add(pposa, {x=pexmax, y=peymax, z=0}) - else - pposa = vector.add(pposa, {x=0, y=peymax, z=pexmax}) - end - local painting, pid = get_random_painting(xsize, ysize) - if not painting then - minetest.log("error", "[mcl_paintings] No painting found for size "..xsize..","..ysize.."!") - return itemstack - end - local staticdata = { - _facing = wallm, - _pos = ppos, - _motive = pid, - _xsize = xsize, - _ysize = ysize, - } - local obj = minetest.add_entity(pposa, "mcl_paintings:painting", minetest.serialize(staticdata)) - if not obj then - return itemstack - end - else - return itemstack - end - if not minetest.settings:get_bool("creative_mode") then - itemstack:take_item() - end - return itemstack - end, -}) - -minetest.register_craft({ - output = "mcl_paintings:painting", - recipe = { - { "mcl_core:stick", "mcl_core:stick", "mcl_core:stick" }, - { "mcl_core:stick", "group:wool", "mcl_core:stick" }, - { "mcl_core:stick", "mcl_core:stick", "mcl_core:stick" }, - } -}) - diff --git a/mods/ENTITIES/mcl_paintings/locale/mcl_paintings.de.tr b/mods/ENTITIES/mcl_paintings/locale/mcl_paintings.de.tr deleted file mode 100644 index 98387725..00000000 --- a/mods/ENTITIES/mcl_paintings/locale/mcl_paintings.de.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_paintings -Painting=Gemälde diff --git a/mods/ENTITIES/mcl_paintings/locale/template.txt b/mods/ENTITIES/mcl_paintings/locale/template.txt deleted file mode 100644 index 73abae1e..00000000 --- a/mods/ENTITIES/mcl_paintings/locale/template.txt +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_paintings -Painting= diff --git a/mods/ENTITIES/mcl_paintings/mod.conf b/mods/ENTITIES/mcl_paintings/mod.conf deleted file mode 100644 index ea1d61c3..00000000 --- a/mods/ENTITIES/mcl_paintings/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = mcl_paintings diff --git a/mods/ENTITIES/mcl_paintings/paintings.lua b/mods/ENTITIES/mcl_paintings/paintings.lua deleted file mode 100644 index d606306c..00000000 --- a/mods/ENTITIES/mcl_paintings/paintings.lua +++ /dev/null @@ -1,55 +0,0 @@ -local TS = 16 -- texture size - -mcl_paintings.paintings = { - [1] = { - [1] = { - { cx = 0, cy = 0 }, - { cx = TS, cy = 0 }, - { cx = 2*TS, cy = 0 }, - { cx = 3*TS, cy = 0 }, - { cx = 4*TS, cy = 0 }, - { cx = 5*TS, cy = 0 }, - { cx = 6*TS, cy = 0 }, - }, - [2] = { - { cx = 0, cy = 2*TS }, - { cx = 2*TS, cy = 2*TS }, - { cx = 4*TS, cy = 2*TS }, - { cx = 6*TS, cy = 2*TS }, - { cx = 8*TS, cy = 2*TS }, - }, - [3] = 2, - [4] = 2, - }, - [2] = { - [1] = { - { cx = 0, cy = 4*TS }, - { cx = TS, cy = 4*TS }, - }, - [2] = { - { cx = 0, cy = 8*TS }, - { cx = 2*TS, cy = 8*TS }, - { cx = 4*TS, cy = 8*TS }, - { cx = 6*TS, cy = 8*TS }, - { cx = 8*TS, cy = 8*TS }, - { cx = 10*TS, cy = 8*TS }, - }, - [3] = 2, - [4] = { - { cx = 0, cy = 6*TS }, - }, - }, - [3] = { - [4] = { - { cx = 12*TS, cy = 4*TS }, - { cx = 12*TS, cy = 7*TS }, - }, - }, - [4] = { - [4] = { - { cx = 0, cy = 12*TS }, - { cx = 4*TS, cy = 12*TS }, - { cx = 8*TS, cy = 12*TS }, - }, - }, -} diff --git a/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_painting.png b/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_painting.png deleted file mode 100644 index afaaa935..00000000 Binary files a/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_painting.png and /dev/null differ diff --git a/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_paintings.png b/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_paintings.png deleted file mode 100644 index 0a8462d1..00000000 Binary files a/mods/ENTITIES/mcl_paintings/textures/mcl_paintings_paintings.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/0_gameconfig.lua b/mods/ENTITIES/mobs_mc/0_gameconfig.lua index 74c92d41..81229aa2 100644 --- a/mods/ENTITIES/mobs_mc/0_gameconfig.lua +++ b/mods/ENTITIES/mobs_mc/0_gameconfig.lua @@ -279,8 +279,8 @@ mobs_mc.spawn = { -- These probably don't need overrides mushroom_island = { mobs_mc.items.mycelium, "mcl_core:mycelium" }, - nether_fortress = { mobs_mc.items.nether_brick_block, "mcl_nether:nether_brick", }, - nether = { mobs_mc.items.netherrack, "mcl_nether:netherrack", }, + nether_fortress = { mobs_mc.items.nether_brick_block, "mcl_nether:nether_brick", "mcl_portals:nether_air" }, + nether = { mobs_mc.items.netherrack, "mcl_nether:netherrack", "mcl_portals:nether_air" }, nether_portal = { mobs_mc.items.nether_portal, "mcl_portals:portal" }, water = { mobs_mc.items.water_source, "mcl_core:water_source", "default:water_source" }, } diff --git a/mods/ENTITIES/mobs_mc/1_items_default.lua b/mods/ENTITIES/mobs_mc/1_items_default.lua index 1085235a..f0e1301e 100644 --- a/mods/ENTITIES/mobs_mc/1_items_default.lua +++ b/mods/ENTITIES/mobs_mc/1_items_default.lua @@ -262,6 +262,17 @@ if c("saddle") then }) end +if c("saddle") and c("lether") and c("string") and c("iron_ingot") then + minetest.register_craft({ + output = "mobs_mc:saddle", + recipe = { + {"mobs:leather", "mobs:leather", "mobs:leather"}, + {"farming:string", "", "farming:string"}, + {"default:steel_ingot", "", "default:steel_ingot"} + }, + }) +end + -- Horse Armor local horse_armor_use = S("Place it on a horse to put on the horse armor. Donkeys and mules can't wear horse armor.") -- TODO: Balance the horse armor strength, compare with MC armor strength @@ -272,9 +283,6 @@ if c("iron_horse_armor") then _doc_items_usagehelp = horse_armor_use, inventory_image = "mobs_mc_iron_horse_armor.png", _horse_overlay_image = "mobs_mc_horse_armor_iron.png", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - }, stack_max = 1, groups = { horse_armor = 85 }, }) @@ -286,9 +294,6 @@ if c("gold_horse_armor") then _doc_items_usagehelp = horse_armor_use, inventory_image = "mobs_mc_gold_horse_armor.png", _horse_overlay_image = "mobs_mc_horse_armor_gold.png", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - }, stack_max = 1, groups = { horse_armor = 60 }, }) @@ -300,9 +305,6 @@ if c("diamond_horse_armor") then _doc_items_usagehelp = horse_armor_use, inventory_image = "mobs_mc_diamond_horse_armor.png", _horse_overlay_image = "mobs_mc_horse_armor_diamond.png", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_diamond", - }, stack_max = 1, groups = { horse_armor = 45 }, }) @@ -521,7 +523,6 @@ if c("totem") then -- Totem of Undying minetest.register_craftitem("mobs_mc:totem", { description = S("Totem of Undying"), - _tt_help = minetest.colorize("#00FF00", S("Protects you from death while wielding it")), _doc_items_longdesc = S("A totem of undying is a rare artifact which may safe you from certain death."), _doc_items_usagehelp = S("The totem only works while you hold it in your hand. If you receive fatal damage, you are saved from death and you get a second chance with 1 HP. The totem is destroyed in the process, however."), inventory_image = "mcl_totems_totem.png", @@ -557,7 +558,7 @@ if c("totem") then player:set_wielded_item(wield) end -- Effects - minetest.sound_play({name = "mcl_totems_totem", gain=1}, {pos=ppos, max_hear_distance=16}, true) + minetest.sound_play({name = "mcl_totems_totem", gain=1}, {pos=ppos, max_hear_distance=16}) -- Big totem overlay if not hud_totem[player:get_player_name()] then @@ -567,7 +568,6 @@ if c("totem") then position = { x=0.5, y=1 }, scale = { x=17, y=17 }, offset = { x=0, y=-178 }, - z_index = 100, }) minetest.after(3, function(name) local player = minetest.get_player_by_name(name) diff --git a/mods/ENTITIES/mobs_mc/2_throwing.lua b/mods/ENTITIES/mobs_mc/2_throwing.lua index 089e39ca..f3b40691 100644 --- a/mods/ENTITIES/mobs_mc/2_throwing.lua +++ b/mods/ENTITIES/mobs_mc/2_throwing.lua @@ -85,7 +85,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) if obj:get_luaentity() ~= nil then if obj:get_luaentity().name ~= "mobs_mc:arrow_entity" and obj:get_luaentity().name ~= "__builtin:item" then local damage = 3 - minetest.sound_play("damage", {pos = pos}, true) + minetest.sound_play("damage", {pos = pos}) obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, @@ -94,7 +94,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) end else local damage = 3 - minetest.sound_play("damage", {pos = pos}, true) + minetest.sound_play("damage", {pos = pos}) obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=damage}, @@ -106,7 +106,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime) if self.lastpos.x~=nil then if node.name ~= "air" then - minetest.sound_play("bowhit1", {pos = pos}, true) + minetest.sound_play("bowhit1", {pos = pos}) minetest.add_item(self.lastpos, 'mobs_mc:arrow') self.object:remove() end @@ -132,7 +132,7 @@ local throwing_shoot_arrow = function(itemstack, player) obj:set_velocity({x=dir.x*22, y=dir.y*22, z=dir.z*22}) obj:set_acceleration({x=dir.x*-3, y=-10, z=dir.z*-3}) obj:set_yaw(player:get_look_yaw()+math.pi) - minetest.sound_play("throwing_sound", {pos=playerpos}, true) + minetest.sound_play("throwing_sound", {pos=playerpos}) if obj:get_luaentity().player == "" then obj:get_luaentity().player = player end @@ -266,7 +266,7 @@ if c("egg") then pos = playerpos, gain = 1.0, max_hear_distance = 5, - }, true) + }) local obj = minetest.add_entity({ x = playerpos.x, @@ -399,3 +399,7 @@ if c("snowball") then end --end maikerumine code + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC mobs loaded") +end diff --git a/mods/ENTITIES/mobs_mc/agent.lua b/mods/ENTITIES/mobs_mc/agent.lua index 8fa7314c..0a5f0354 100644 --- a/mods/ENTITIES/mobs_mc/agent.lua +++ b/mods/ENTITIES/mobs_mc/agent.lua @@ -6,8 +6,8 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:agent", { type = "npc", - spawn_class = "passive", passive = true, + stepheight = 1.2, hp_min = 20, hp_max = 20, armor = 100, @@ -37,3 +37,7 @@ mobs:register_mob("mobs_mc:agent", { }) mobs:register_egg("mobs_mc:agent", S("Agent"), "mobs_mc_spawn_icon_agent.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Agent loaded") +end diff --git a/mods/ENTITIES/mobs_mc/bat.lua b/mods/ENTITIES/mobs_mc/bat.lua index be0d72e8..36415470 100644 --- a/mods/ENTITIES/mobs_mc/bat.lua +++ b/mods/ENTITIES/mobs_mc/bat.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:bat", { type = "animal", - spawn_class = "ambient", can_despawn = true, passive = true, hp_min = 6, @@ -45,6 +44,7 @@ mobs:register_mob("mobs_mc:bat", { view_range = 16, fly = true, + fly_in = "air", }) @@ -66,3 +66,8 @@ mobs:spawn_specific("mobs_mc:bat", mobs_mc.spawn.solid, {"air"}, 0, maxlight, 20 -- spawn eggs mobs:register_egg("mobs_mc:bat", S("Bat"), "mobs_mc_spawn_icon_bat.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Bat loaded") +end diff --git a/mods/ENTITIES/mobs_mc/blaze.lua b/mods/ENTITIES/mobs_mc/blaze.lua index 8231148e..400a5339 100644 --- a/mods/ENTITIES/mobs_mc/blaze.lua +++ b/mods/ENTITIES/mobs_mc/blaze.lua @@ -12,7 +12,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:blaze", { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.79, 0.3}, @@ -22,7 +21,6 @@ mobs:register_mob("mobs_mc:blaze", { textures = { {"mobs_mc_blaze.png"}, }, - armor = { fleshy = 100, snowball_vulnerable = 100 }, visual_size = {x=3, y=3}, sounds = { random = "mobs_mc_blaze_breath", @@ -63,11 +61,11 @@ mobs:register_mob("mobs_mc:blaze", { attack_type = "dogshoot", arrow = "mobs_mc:blaze_fireball", shoot_interval = 3.5, - shoot_offset = 1.0, passive = false, jump = true, jump_height = 4, fly = true, + jump_chance = 98, fear_height = 0, glow = 14, }) @@ -79,7 +77,7 @@ mobs:register_arrow("mobs_mc:blaze_fireball", { visual = "sprite", visual_size = {x = 0.3, y = 0.3}, textures = {"mcl_fire_fire_charge.png"}, - velocity = 15, + velocity = 12, -- Direct hit, no fire... just plenty of pain hit_player = function(self, player) @@ -96,15 +94,6 @@ mobs:register_arrow("mobs_mc:blaze_fireball", { }, nil) end, - hit_object = function(self, object) - local lua = object:get_luaentity() - if lua then - if lua.name == "mcl_minecarts:tnt_minecart" then - lua:on_activate_by_rail(2) - end - end - end, - -- Node hit, make fire hit_node = function(self, pos, node) if node.name == "air" then @@ -125,3 +114,12 @@ mobs:register_arrow("mobs_mc:blaze_fireball", { -- spawn eggs mobs:register_egg("mobs_mc:blaze", S("Blaze"), "mobs_mc_spawn_icon_blaze.png", 0) + + + + + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Blaze loaded") +end diff --git a/mods/ENTITIES/mobs_mc/chicken.lua b/mods/ENTITIES/mobs_mc/chicken.lua index d0c9c7c7..e5c9ba80 100644 --- a/mods/ENTITIES/mobs_mc/chicken.lua +++ b/mods/ENTITIES/mobs_mc/chicken.lua @@ -10,7 +10,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:chicken", { type = "animal", - spawn_class = "passive", hp_min = 4, hp_max = 4, @@ -87,7 +86,7 @@ mobs:register_mob("mobs_mc:chicken", { pos = pos, gain = 1.0, max_hear_distance = 16, - }, true) + }) end, }) @@ -97,3 +96,7 @@ mobs:spawn_specific("mobs_mc:chicken", mobs_mc.spawn.grassland, {"air"}, 9, mine -- spawn eggs mobs:register_egg("mobs_mc:chicken", S("Chicken"), "mobs_mc_spawn_icon_chicken.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC chicken loaded") +end diff --git a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua index 58d2cd58..cfc4991f 100644 --- a/mods/ENTITIES/mobs_mc/cow+mooshroom.lua +++ b/mods/ENTITIES/mobs_mc/cow+mooshroom.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mobs_mc") local cow_def = { type = "animal", - spawn_class = "passive", hp_min = 10, hp_max = 10, collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.39, 0.45}, @@ -88,7 +87,7 @@ mooshroom_def.on_rightclick = function(self, clicker) -- Use shears to get mushrooms and turn mooshroom into cow if item:get_name() == mobs_mc.items.shears then local pos = self.object:get_pos() - minetest.sound_play("shears", {pos = pos}, true) + minetest.sound_play("shears", {pos = pos}) if self.base_texture[1] == "mobs_mc_mooshroom_brown.png" then minetest.add_item({x=pos.x, y=pos.y+1.4, z=pos.z}, mobs_mc.items.mushroom_brown .. " 5") @@ -136,9 +135,16 @@ mobs:register_mob("mobs_mc:mooshroom", mooshroom_def) -- Spawning -mobs:spawn_specific("mobs_mc:cow", mobs_mc.spawn.grassland, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 17000, 10, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) -mobs:spawn_specific("mobs_mc:mooshroom", mobs_mc.spawn.mushroom_island, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 17000, 5, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:cow", mobs_mc.spawn.grassland, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 17000, 20, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:mooshroom", mobs_mc.spawn.mushroom_island, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 17000, 10, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) + +-- compatibility +mobs:alias_mob("mobs_animal:cow", "mobs_mc:cow") -- spawn egg mobs:register_egg("mobs_mc:cow", S("Cow"), "mobs_mc_spawn_icon_cow.png", 0) mobs:register_egg("mobs_mc:mooshroom", S("Mooshroom"), "mobs_mc_spawn_icon_mooshroom.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Cow loaded") +end diff --git a/mods/ENTITIES/mobs_mc/creeper.lua b/mods/ENTITIES/mobs_mc/creeper.lua index e5ff688c..07750ff2 100644 --- a/mods/ENTITIES/mobs_mc/creeper.lua +++ b/mods/ENTITIES/mobs_mc/creeper.lua @@ -11,7 +11,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:creeper", { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.69, 0.3}, @@ -36,8 +35,9 @@ mobs:register_mob("mobs_mc:creeper", { runaway_from = { "mobs_mc:ocelot", "mobs_mc:cat" }, attack_type = "explode", - explosion_strength = 3, + explosion_radius = 3, reach = 4, + explosion_damage_radius = 7, explosion_timer = 1.5, allow_fuse_reset = true, stop_to_explode = true, @@ -57,19 +57,19 @@ mobs:register_mob("mobs_mc:creeper", { item:add_wear(1000) -- Tool break sound if item:get_count() == 0 and wdef.sound and wdef.sound.breaks then - minetest.sound_play(wdef.sound.breaks, {pos = clicker:get_pos(), gain = 0.5}, true) + minetest.sound_play(wdef.sound.breaks, {pos = clicker:get_pos(), gain = 0.5}) end clicker:set_wielded_item(item) end self._forced_explosion_countdown_timer = self.explosion_timer - minetest.sound_play(self.sounds.attack, {pos = self.object:get_pos(), gain = 1, max_hear_distance = 16}, true) + minetest.sound_play(self.sounds.attack, {pos = self.object:get_pos(), gain = 1, max_hear_distance = 16}) end end, do_custom = function(self, dtime) if self._forced_explosion_countdown_timer ~= nil then self._forced_explosion_countdown_timer = self._forced_explosion_countdown_timer - dtime if self._forced_explosion_countdown_timer <= 0 then - mobs:boom(self, self.object:get_pos(), self.explosion_strength) + mobs:explosion(self.object:get_pos(), self.explosion_radius, 0, 1, self.sounds.explode) self.object:remove() end end @@ -120,5 +120,12 @@ mobs:register_mob("mobs_mc:creeper", { mobs:spawn_specific("mobs_mc:creeper", mobs_mc.spawn.solid, {"air"}, 0, 7, 20, 16500, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +-- compatibility +mobs:alias_mob("mobs:creeper", "mobs_mc:creeper") + -- spawn eggs mobs:register_egg("mobs_mc:creeper", S("Creeper"), "mobs_mc_spawn_icon_creeper.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Creeper loaded") +end diff --git a/mods/ENTITIES/mobs_mc/ender_dragon.lua b/mods/ENTITIES/mobs_mc/ender_dragon.lua index c9da0c49..ccd2fe30 100644 --- a/mods/ENTITIES/mobs_mc/ender_dragon.lua +++ b/mods/ENTITIES/mobs_mc/ender_dragon.lua @@ -6,7 +6,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:enderdragon", { type = "monster", - spawn_class = "hostile", pathfinding = 1, attacks_animals = true, walk_chance = 100, @@ -33,7 +32,10 @@ mobs:register_mob("mobs_mc:enderdragon", { damage = 10, jump = true, jump_height = 14, + stepheight = 1.2, + jump_chance = 100, fly = true, + fly_in = {"air"}, dogshoot_switch = 1, dogshoot_count_max =5, dogshoot_count2_max = 5, @@ -49,9 +51,9 @@ mobs:register_mob("mobs_mc:enderdragon", { fire_damage = 0, on_rightclick = nil, attack_type = "dogshoot", - arrow = "mobs_mc:dragon_fireball", + arrow = "mobs_mc:fireball2", shoot_interval = 0.5, - shoot_offset = -1.0, + shoot_offset = -1, animation = { fly_speed = 8, stand_speed = 8, stand_start = 0, stand_end = 20, @@ -65,33 +67,87 @@ mobs:register_mob("mobs_mc:enderdragon", { local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false --- dragon fireball (projectile) -mobs:register_arrow("mobs_mc:dragon_fireball", { +mobs:register_arrow("mobs_mc:roar_of_the_dragon2", { visual = "sprite", - visual_size = {x = 1.25, y = 1.25}, + visual_size = {x = 1, y = 1}, + --textures = {"transparent.png"}, + textures = {"mese_egg.png"}, + velocity = 10, + + on_step = function(self, dtime) + + local pos = self.object:get_pos() + + local n = minetest.get_node(pos).name + + if self.timer == 0 then + self.timer = os.time() + end + + if os.time() - self.timer > 8 or minetest.is_protected(pos, "") then + self.object:remove() + end + + local objects = minetest.get_objects_inside_radius(pos, 1) + for _,obj in ipairs(objects) do + local name = self.name + if name~="mobs_mc:roar_of_the_dragon2" and name ~= "mobs_mc:enderdragon" then + obj:set_hp(obj:get_hp()-5) + if (obj:get_hp() <= 0) then + if (not obj:is_player()) and name ~= self.object:get_luaentity().name then + obj:remove() + end + end + end + end + + if mobs_griefing then + minetest.set_node(pos, {name="air"}) + if math.random(1,2)==1 then + local dx = math.random(-1,1) + local dy = math.random(-1,1) + local dz = math.random(-1,1) + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + minetest.set_node(p, {name="air"}) + end + end + end +}) +--GOOD LUCK LOL! +-- fireball (weapon) +mobs:register_arrow(":mobs_mc:fireball2", { + visual = "sprite", + visual_size = {x = 1.5, y = 1.5}, textures = {"mobs_mc_dragon_fireball.png"}, + --textures = {"mobs_skeleton2_front.png^[makealpha:255,255,255 "}, velocity = 6, -- direct hit, no fire... just plenty of pain hit_player = function(self, player) + minetest.sound_play("tnt_explode", {pos = player:get_pos(), gain = 1.5, max_hear_distance = 2*64}) player:punch(self.object, 1.0, { full_punch_interval = 0.5, - damage_groups = {fleshy = 12}, + damage_groups = {fleshy = 6}, }, nil) + end, hit_mob = function(self, mob) - minetest.sound_play("tnt_explode", {pos = mob:get_pos(), gain = 1.5, max_hear_distance = 2*64}, true) + minetest.sound_play("tnt_explode", {pos = mob:get_pos(), gain = 1.5, max_hear_distance = 2*64}) mob:punch(self.object, 1.0, { full_punch_interval = 0.5, damage_groups = {fleshy = 12}, }, nil) + end, - -- node hit, explode + -- node hit, bursts into flame hit_node = function(self, pos, node) - mobs:boom(self, pos, 2) + mobs:explosion(pos, 3, 0, 1) + --from tnt + minetest.sound_play("tnt_explode", {pos = pos, gain = 1.5, max_hear_distance = 2*64}) + end }) -mobs:register_egg("mobs_mc:enderdragon", S("Ender Dragon"), "mobs_mc_spawn_icon_dragon.png", 0, true) +mobs:register_egg("mobs_mc:enderdragon", S("Ender Dragon"), "mobs_mc_spawn_icon_dragon.png", 0) diff --git a/mods/ENTITIES/mobs_mc/enderman.lua b/mods/ENTITIES/mobs_mc/enderman.lua index c159c92f..124a2c9d 100644 --- a/mods/ENTITIES/mobs_mc/enderman.lua +++ b/mods/ENTITIES/mobs_mc/enderman.lua @@ -168,9 +168,9 @@ local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false mobs:register_mob("mobs_mc:enderman", { -- TODO: Endermen should be classified as passive type = "monster", - spawn_class = "passive", passive = false, pathfinding = 1, + stepheight = 1.2, hp_min = 40, hp_max = 40, collisionbox = {-0.3, -0.01, -0.3, 0.3, 2.89, 0.3}, @@ -255,7 +255,7 @@ mobs:register_mob("mobs_mc:enderman", { self.animation = select_enderman_animation("block") mobs:set_animation(self, self.animation.current) if def.sounds and def.sounds.dug then - minetest.sound_play(def.sounds.dug, {pos = take_pos, max_hear_distance = 16}, true) + minetest.sound_play(def.sounds.dug, {pos = take_pos, max_hear_distance = 16}) end end end @@ -276,7 +276,7 @@ mobs:register_mob("mobs_mc:enderman", { self.animation = select_enderman_animation("normal") mobs:set_animation(self, self.animation.current) if def.sounds and def.sounds.place then - minetest.sound_play(def.sounds.place, {pos = place_pos, max_hear_distance = 16}, true) + minetest.sound_play(def.sounds.place, {pos = place_pos, max_hear_distance = 16}) end self._taken_node = "" end @@ -337,3 +337,9 @@ mobs:spawn_specific("mobs_mc:enderman", mobs_mc.spawn.solid, {"air"}, 0, 7, 30, -- spawn eggs mobs:register_egg("mobs_mc:enderman", S("Enderman"), "mobs_mc_spawn_icon_enderman.png", 0) + +if minetest.settings:get_bool("log_mods") then + + minetest.log("action", "MC Enderman loaded") +end + diff --git a/mods/ENTITIES/mobs_mc/endermite.lua b/mods/ENTITIES/mobs_mc/endermite.lua index 3fb0c1eb..5a9793cd 100644 --- a/mods/ENTITIES/mobs_mc/endermite.lua +++ b/mods/ENTITIES/mobs_mc/endermite.lua @@ -6,7 +6,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:endermite", { type = "monster", - spawn_class = "hostile", passive = false, hp_min = 8, hp_max = 8, diff --git a/mods/ENTITIES/mobs_mc/ghast.lua b/mods/ENTITIES/mobs_mc/ghast.lua index 2efe56af..fe14e0e6 100644 --- a/mods/ENTITIES/mobs_mc/ghast.lua +++ b/mods/ENTITIES/mobs_mc/ghast.lua @@ -12,7 +12,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:ghast", { type = "monster", - spawn_class = "hostile", pathfinding = 1, group_attack = true, hp_min = 10, @@ -56,10 +55,13 @@ mobs:register_mob("mobs_mc:ghast", { }, fall_damage = 0, view_range = 100, + --attack_type = "dogshoot", attack_type = "dogshoot", - arrow = "mobs_mc:fireball", + arrow = "mobs_monster:fireball", shoot_interval = 3.5, - shoot_offset = -5, + shoot_offset = 1, + --'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight) + --'dogshoot_count_max' number of seconds before switching above modes. dogshoot_switch = 1, dogshoot_count_max =1, passive = false, @@ -67,36 +69,38 @@ mobs:register_mob("mobs_mc:ghast", { jump_height = 4, floats=1, fly = true, + fly_in = {"air"}, + jump_chance = 98, }) mobs:spawn_specific("mobs_mc:ghast", mobs_mc.spawn.nether, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 18000, 2, mobs_mc.spawn_height.nether_min, mobs_mc.spawn_height.nether_max) --- fireball (projectile) -mobs:register_arrow("mobs_mc:fireball", { +-- fireball (weapon) +mobs:register_arrow(":mobs_monster:fireball", { visual = "sprite", - visual_size = {x = 1, y = 1}, + visual_size = {x = 0.5, y = 0.5}, textures = {"mcl_fire_fire_charge.png"}, - velocity = 15, + velocity = 6, + -- direct hit, no fire... just plenty of pain hit_player = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 6}, + damage_groups = {fleshy = 8}, }, nil) - mobs:boom(self, self.object:get_pos(), 1, true) end, hit_mob = function(self, mob) mob:punch(self.object, 1.0, { full_punch_interval = 1.0, - damage_groups = {fleshy = 6}, + damage_groups = {fleshy = 8}, }, nil) - mobs:boom(self, self.object:get_pos(), 1, true) end, + -- node hit, bursts into flame hit_node = function(self, pos, node) - mobs:boom(self, pos, 1, true) + mobs:explosion(pos, 1, 1, 0) end }) @@ -105,3 +109,7 @@ mobs:register_arrow("mobs_mc:fireball", { -- spawn eggs mobs:register_egg("mobs_mc:ghast", S("Ghast"), "mobs_mc_spawn_icon_ghast.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Ghast loaded") +end diff --git a/mods/ENTITIES/mobs_mc/guardian.lua b/mods/ENTITIES/mobs_mc/guardian.lua index b5c736c2..503417d2 100644 --- a/mods/ENTITIES/mobs_mc/guardian.lua +++ b/mods/ENTITIES/mobs_mc/guardian.lua @@ -8,7 +8,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:guardian", { type = "monster", - spawn_class = "hostile", hp_min = 30, hp_max = 30, breath_max = -1, @@ -39,12 +38,10 @@ mobs:register_mob("mobs_mc:guardian", { run_start = 0, run_end = 20, }, drops = { - -- Greatly increased amounts of prismarine {name = mobs_mc.items.prismarine_shard, chance = 1, min = 0, - max = 32,}, - -- TODO: Reduce of drops when ocean monument is ready. + max = 2,}, -- The following drops are approximations -- Fish / prismarine crystal @@ -55,7 +52,7 @@ mobs:register_mob("mobs_mc:guardian", { {name = mobs_mc.items.prismarine_crystals, chance = 4, min = 1, - max = 2,}, + max = 1,}, -- Rare drop: fish {name = mobs_mc.items.fish_raw, @@ -77,13 +74,12 @@ mobs:register_mob("mobs_mc:guardian", { }, fly = true, fly_in = { mobs_mc.items.water_source, mobs_mc.items.river_water_source }, + stepheight = 0.1, jump = false, view_range = 16, }) --- Spawning disabled due to size issues --- TODO: Re-enable spawning ---mobs:spawn_specific("mobs_mc:guardian", mobs_mc.spawn.water, mobs_mc.spawn_water, 0, minetest.LIGHT_MAX+1, 30, 25000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.water - 10) +mobs:spawn_specific("mobs_mc:guardian", mobs_mc.spawn.water, mobs_mc.spawn_water, 0, minetest.LIGHT_MAX+1, 30, 25000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.water - 10) -- spawn eggs mobs:register_egg("mobs_mc:guardian", S("Guardian"), "mobs_mc_spawn_icon_guardian.png", 0) diff --git a/mods/ENTITIES/mobs_mc/guardian_elder.lua b/mods/ENTITIES/mobs_mc/guardian_elder.lua index 84f9ddb8..61f5097d 100644 --- a/mods/ENTITIES/mobs_mc/guardian_elder.lua +++ b/mods/ENTITIES/mobs_mc/guardian_elder.lua @@ -8,7 +8,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:guardian_elder", { type = "monster", - spawn_class = "hostile", hp_min = 80, hp_max = 80, breath_max = -1, @@ -39,14 +38,10 @@ mobs:register_mob("mobs_mc:guardian_elder", { run_start = 0, run_end = 20, }, drops = { - -- TODO: Reduce # of drops when ocean monument is ready. - - -- Greatly increased amounts of prismarine {name = mobs_mc.items.prismarine_shard, chance = 1, - min = 1, - max = 64,}, - + min = 0, + max = 2,}, -- TODO: Only drop if killed by player {name = mobs_mc.items.wet_sponge, chance = 1, @@ -60,9 +55,9 @@ mobs:register_mob("mobs_mc:guardian_elder", { min = 1, max = 1,}, {name = mobs_mc.items.prismarine_crystals, - chance = 1, + chance = 4, min = 1, - max = 10,}, + max = 1,}, -- Rare drop: fish {name = mobs_mc.items.fish_raw, @@ -84,13 +79,12 @@ mobs:register_mob("mobs_mc:guardian_elder", { }, fly = true, fly_in = { mobs_mc.items.water_source, mobs_mc.items.river_water_source }, + stepheight = 0.1, jump = false, view_range = 16, }) --- Spawning disabled due to size issues --- TODO: Re-enable spawning --- mobs:spawn_specific("mobs_mc:guardian_elder", mobs_mc.spawn.water, mobs_mc.spawn_water, 0, minetest.LIGHT_MAX+1, 30, 40000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.water-18) +mobs:spawn_specific("mobs_mc:guardian_elder", mobs_mc.spawn.water, mobs_mc.spawn_water, 0, minetest.LIGHT_MAX+1, 30, 40000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.water-18) -- spawn eggs mobs:register_egg("mobs_mc:guardian_elder", S("Elder Guardian"), "mobs_mc_spawn_icon_guardian_elder.png", 0) diff --git a/mods/ENTITIES/mobs_mc/horse.lua b/mods/ENTITIES/mobs_mc/horse.lua index 664a1ca8..7eea999a 100644 --- a/mods/ENTITIES/mobs_mc/horse.lua +++ b/mods/ENTITIES/mobs_mc/horse.lua @@ -84,7 +84,6 @@ end -- Horse local horse = { type = "animal", - spawn_class = "passive", visual = "mesh", mesh = "mobs_mc_horse.b3d", visual_size = {x=3.0, y=3.0}, @@ -185,36 +184,14 @@ local horse = { end local item = clicker:get_wielded_item() - local iname = item:get_name() - local heal = 0 - if can_breed(self.name) then + if can_breed(self.name) and (item:get_name() == mobs_mc.items.golden_apple or item:get_name() == mobs_mc.items.golden_carrot) then -- Breed horse with golden apple or golden carrot - if (iname == mobs_mc.items.golden_apple) then - heal = 10 - elseif (iname == mobs_mc.items.golden_carrot) then - heal = 4 - end - if heal > 0 and mobs:feed_tame(self, clicker, heal, true, false) then - return - end + if mobs:feed_tame(self, clicker, 1, true, false) then return end end -- Feed/tame with anything else - if (iname == mobs_mc.items.sugar) then - heal = 1 - elseif (iname == mobs_mc.items.wheat) then - heal = 2 - elseif (iname == mobs_mc.items.apple) then - heal = 3 - elseif (iname == mobs_mc.items.hay_bale) then - heal = 20 - end - if heal > 0 and mobs:feed_tame(self, clicker, heal, false, true) then - return - end - - if mobs:protect(self, clicker) then - return - end + -- TODO: Different health bonus for feeding + if mobs:feed_tame(self, clicker, 1, false, true) then return end + if mobs:protect(self, clicker) then return end -- Make sure tamed horse is mature and being clicked by owner only if self.tamed and not self.child and self.owner == clicker:get_player_name() then @@ -228,7 +205,7 @@ local horse = { -- Put on saddle if tamed elseif not self.driver and not self._saddle - and iname == mobs_mc.items.saddle then + and clicker:get_wielded_item():get_name() == mobs_mc.items.saddle then -- Put on saddle and take saddle from player's inventory local w = clicker:get_wielded_item() @@ -246,17 +223,16 @@ local horse = { local tex = horse_extra_texture(self) self.base_texture = tex self.object:set_properties({textures = self.base_texture}) - minetest.sound_play({name = "mcl_armor_equip_leather"}, {gain=0.5, max_hear_distance=12, pos=self.object:get_pos()}, true) -- Put on horse armor if tamed elseif can_equip_horse_armor(self.name) and not self.driver and not self._horse_armor - and minetest.get_item_group(iname, "horse_armor") > 0 then + and minetest.get_item_group(clicker:get_wielded_item():get_name(), "horse_armor") > 0 then -- Put on armor and take armor from player's inventory - local armor = minetest.get_item_group(iname, "horse_armor") - self._horse_armor = iname local w = clicker:get_wielded_item() + local armor = minetest.get_item_group(w:get_name(), "horse_armor") + self._horse_armor = w:get_name() if not minetest.settings:get_bool("creative_mode") then w:take_item() clicker:set_wielded_item(w) @@ -276,10 +252,7 @@ local horse = { local tex = horse_extra_texture(self) self.base_texture = tex self.object:set_properties({textures = self.base_texture}) - local def = w:get_definition() - if def.sounds and def.sounds._mcl_armor_equip then - minetest.sound_play({name = def.sounds._mcl_armor_equip}, {gain=0.5, max_hear_distance=12, pos=self.object:get_pos()}, true) - end + -- Mount horse elseif not self.driver and self._saddle then @@ -288,7 +261,7 @@ local horse = { mobs.attach(self, clicker) -- Used to capture horse - elseif not self.driver and iname ~= "" then + elseif not self.driver and clicker:get_wielded_item():get_name() ~= "" then mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) end end @@ -426,8 +399,11 @@ mobs:register_mob("mobs_mc:mule", mule) --=========================== --Spawn Function -mobs:spawn_specific("mobs_mc:horse", mobs_mc.spawn.grassland_savanna, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 4, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) -mobs:spawn_specific("mobs_mc:donkey", mobs_mc.spawn.grassland_savanna, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 4, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:horse", mobs_mc.spawn.grassland_savanna, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 12, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:donkey", mobs_mc.spawn.grassland_savanna, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 12, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) + +-- compatibility +mobs:alias_mob("mobs:horse", "mobs_mc:horse") -- spawn eggs mobs:register_egg("mobs_mc:horse", S("Horse"), "mobs_mc_spawn_icon_horse.png", 0) @@ -435,3 +411,8 @@ mobs:register_egg("mobs_mc:skeleton_horse", S("Skeleton Horse"), "mobs_mc_spawn_ mobs:register_egg("mobs_mc:zombie_horse", S("Zombie Horse"), "mobs_mc_spawn_icon_horse_zombie.png", 0) mobs:register_egg("mobs_mc:donkey", S("Donkey"), "mobs_mc_spawn_icon_donkey.png", 0) mobs:register_egg("mobs_mc:mule", S("Mule"), "mobs_mc_spawn_icon_mule.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Horse loaded") +end diff --git a/mods/ENTITIES/mobs_mc/init.lua b/mods/ENTITIES/mobs_mc/init.lua index 58006fe9..3206c0ba 100644 --- a/mods/ENTITIES/mobs_mc/init.lua +++ b/mods/ENTITIES/mobs_mc/init.lua @@ -98,3 +98,7 @@ COLISIONBOX in minetest press f5 to see where you are looking at then put these --]] -- -- + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "[MOD] mobs_mc loaded") +end diff --git a/mods/ENTITIES/mobs_mc/iron_golem.lua b/mods/ENTITIES/mobs_mc/iron_golem.lua index 2ccee2d0..046c655a 100644 --- a/mods/ENTITIES/mobs_mc/iron_golem.lua +++ b/mods/ENTITIES/mobs_mc/iron_golem.lua @@ -13,7 +13,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:iron_golem", { type = "npc", - spawn_class = "passive", passive = true, hp_min = 100, hp_max = 100, @@ -173,3 +172,7 @@ mobs_mc.tools.check_iron_golem_summon = function(pos) end end end + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Iron Golem loaded") +end diff --git a/mods/ENTITIES/mobs_mc/llama.lua b/mods/ENTITIES/mobs_mc/llama.lua index fcb9df73..07956761 100644 --- a/mods/ENTITIES/mobs_mc/llama.lua +++ b/mods/ENTITIES/mobs_mc/llama.lua @@ -4,29 +4,8 @@ local S = minetest.get_translator("mobs_mc") --################### LLAMA --################### -local carpets = { - -- group = { carpet , short_texture_name } - unicolor_white = { "mcl_wool:white_carpet", "white" }, - unicolor_dark_orange = { "mcl_wool:brown_carpet", "brown" }, - unicolor_grey = { "mcl_wool:silver_carpet", "light_gray" }, - unicolor_darkgrey = { "mcl_wool:grey_carpet", "gray" }, - unicolor_blue = { "mcl_wool:blue_carpet", "blue" }, - unicolor_dark_green = { "mcl_wool:green_carpet", "green" }, - unicolor_green = { "mcl_wool:lime_carpet", "lime" }, - unicolor_violet = { "mcl_wool:purple_carpet", "purple" }, - unicolor_light_red = { "mcl_wool:pink_carpet", "pink" }, - unicolor_yellow = { "mcl_wool:yellow_carpet", "yellow" }, - unicolor_orange = { "mcl_wool:orange_carpet", "orange" }, - unicolor_red = { "mcl_wool:red_carpet", "red" }, - unicolor_cyan = { "mcl_wool:cyan_carpet", "cyan" }, - unicolor_red_violet = { "mcl_wool:magenta_carpet", "magenta" }, - unicolor_black = { "mcl_wool:black_carpet", "black" }, - unicolor_light_blue = { "mcl_wool:light_blue_carpet", "light_blue" }, -} - mobs:register_mob("mobs_mc:llama", { type = "animal", - spawn_class = "passive", hp_min = 15, hp_max = 30, passive = false, @@ -39,7 +18,7 @@ mobs:register_mob("mobs_mc:llama", { {"blank.png", "blank.png", "mobs_mc_llama_gray.png"}, {"blank.png", "blank.png", "mobs_mc_llama_white.png"}, {"blank.png", "blank.png", "mobs_mc_llama.png"}, - -- TODO: Add llama carpet textures (Pixel Perfection seems to use verbatim copy from Minecraft :-( ) + -- TODO: Implement carpet (aka decor) on llama }, visual_size = {x=3, y=3}, makes_footstep_sound = true, @@ -130,36 +109,7 @@ mobs:register_mob("mobs_mc:llama", { -- Make sure tamed llama is mature and being clicked by owner only if self.tamed and not self.child and self.owner == clicker:get_player_name() then - -- Place carpet - if minetest.get_item_group(item:get_name(), "carpet") == 1 and not self.carpet then - for group, carpetdata in pairs(carpets) do - if minetest.get_item_group(item:get_name(), group) == 1 then - if not minetest.settings:get_bool("creative_mode") then - item:take_item() - clicker:set_wielded_item(item) - end - local substr = carpetdata[2] - local tex_carpet = "mobs_mc_llama_decor_"..substr..".png" - self.base_texture = table.copy(self.base_texture) - self.base_texture[2] = tex_carpet - self.object:set_properties({ - textures = self.base_texture, - }) - self.carpet = item:get_name() - self.drops = { - {name = mobs_mc.items.leather, - chance = 1, - min = 0, - max = 2,}, - {name = item:get_name(), - chance = 1, - min = 1, - max = 1,}, - } - return - end - end - end + local inv = clicker:get_inventory() -- detatch player already riding llama if self.driver and clicker == self.driver then @@ -177,29 +127,7 @@ mobs:register_mob("mobs_mc:llama", { elseif not self.driver and clicker:get_wielded_item():get_name() ~= "" then mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) end - end, - - on_breed = function(parent1, parent2) - -- When breeding, make sure the child has no carpet - local pos = parent1.object:get_pos() - local child, parent - if math.random(1,2) == 1 then - parent = parent1 - else - parent = parent2 - end - child = mobs:spawn_child(pos, parent.name) - if child then - local ent_c = child:get_luaentity() - ent_c.base_texture = table.copy(ent_c.base_texture) - ent_c.base_texture[2] = "blank.png" - child:set_properties({textures = ent_c.base_texture}) - ent_c.tamed = true - ent_c.carpet = nil - ent_c.owner = parent.owner - return false - end - end, + end }) @@ -208,3 +136,7 @@ mobs:spawn_specific("mobs_mc:llama", mobs_mc.spawn.savanna, {"air"}, 0, minetest -- spawn eggs mobs:register_egg("mobs_mc:llama", S("Llama"), "mobs_mc_spawn_icon_llama.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Llama loaded") +end diff --git a/mods/ENTITIES/mobs_mc/locale/mobs_mc.de.tr b/mods/ENTITIES/mobs_mc/locale/mobs_mc.de.tr index 24d3fa32..1e514028 100644 --- a/mods/ENTITIES/mobs_mc/locale/mobs_mc.de.tr +++ b/mods/ENTITIES/mobs_mc/locale/mobs_mc.de.tr @@ -72,4 +72,3 @@ Weapon Smith=Waffenschmied Tool Smith=Werkzeugschmied Cleric=Priester Nitwit=Dorftrottel -Protects you from death while wielding it=Schützt vor dem Tod, wenn es gehalten wird diff --git a/mods/ENTITIES/mobs_mc/locale/mobs_mc.es.tr b/mods/ENTITIES/mobs_mc/locale/mobs_mc.es.tr deleted file mode 100644 index 240e7759..00000000 --- a/mods/ENTITIES/mobs_mc/locale/mobs_mc.es.tr +++ /dev/null @@ -1,74 +0,0 @@ -# textdomain: mobs_mc -Totem of Undying=Tótem de la inmortalidad -A totem of undying is a rare artifact which may safe you from certain death.=Un tótem de la inmortalidad es un artefacto raro que puede salvarte de una muerte segura. -The totem only works while you hold it in your hand. If you receive fatal damage, you are saved from death and you get a second chance with 1 HP. The totem is destroyed in the process, however.=El tótem solo funciona mientras lo sostienes en tu mano. Si recibes un daño crítico, no mueres y obtienes una segunda oportunidad con 1 HP. Sin embargo, el tótem se destruye en el proceso. -Agent=Agente -Bat=Murciélago -Blaze=Blaze -Chicken=Pollo -Cow=Vaca -Mooshroom=Champiñaca -Creeper=Creeper -Ender Dragon=Enderdragón -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 -Donkey=Burro -Mule=Mula -Iron Golem=Golem de hierro -Llama=Llama -Ocelot=Ocelote -Parrot=Loro -Pig=Cerdo -Polar Bear=Oso polar -Rabbit=Conejo -Killer Bunny=Conejo asesino -Sheep=Oveja -Shulker=Shulker -Silverfish=Lepisma -Skeleton=Esqueleto -Stray=Esqueleto -Wither Skeleton=Esqueleto wither -Magma Cube=Cubo de Magma -Slime=Slime -Snow Golem=Golem de nieve -Spider=Araña -Cave Spider=Araña de las cuevas -Squid=Calamar -Vex=Ánima -Evoker=Invocador -Illusioner=Illusionista -Villager=Aldeano -Vindicator=Vindicador -Zombie Villager=Aldeano zombie -Witch=Bruja -Wither=Wither -Wolf=Lobo -Husk=Husk -Zombie=Zombie -Zombie Pigman=Cerdo Zombie -Iron Horse Armor=Armadura de hierro para caballo -Iron horse armor can be worn by horses to increase their protection from harm a bit.=Los caballos pueden usar armadura de caballo de hierro para aumentar un poco su protección contra el daño. -Golden Horse Armor=Armadura de oro para caballo -Golden horse armor can be worn by horses to increase their protection from harm.=Los caballos pueden usar armadura de caballo de oro para aumentar su protección contra el daño. -Diamond Horse Armor=Armadura de diamante para caballo -Diamond horse armor can be worn by horses to greatly increase their protection from harm.=Los caballos pueden usar armadura de caballo de diamante para aumentar en gran medida su protección contra el daño. -Place it on a horse to put on the horse armor. Donkeys and mules can't wear horse armor.=Colóquelo en un caballo para ponerle la armadura de caballo. Los burros y las mulas no pueden usar armadura de caballo. -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 diff --git a/mods/ENTITIES/mobs_mc/locale/mobs_mc.fr.tr b/mods/ENTITIES/mobs_mc/locale/mobs_mc.fr.tr deleted file mode 100644 index ff1e2b9c..00000000 --- a/mods/ENTITIES/mobs_mc/locale/mobs_mc.fr.tr +++ /dev/null @@ -1,75 +0,0 @@ -# textdomain: mobs_mc -Totem of Undying=Totem d'immortalité -A totem of undying is a rare artifact which may safe you from certain death.=Un totem d'immortalité est un artefact rare qui peut vous protéger d'une mort certaine. -The totem only works while you hold it in your hand. If you receive fatal damage, you are saved from death and you get a second chance with 1 HP. The totem is destroyed in the process, however.=Le totem ne fonctionne que lorsque vous le tenez dans votre main. Si vous recevez des dégâts mortels, vous êtes sauvé de la mort et vous obtenez une seconde chance avec 1 HP. Cependant, le totem est détruit. -Agent=Agent -Bat=Chauve-souris -Blaze=Blaze -Chicken=Poulet -Cow=Vache -Mooshroom=Champimeuh -Creeper=Creeper -Ender Dragon=Ender Dragon -Enderman=Enderman -Endermite=Endermite -Ghast=Ghast -Elder Guardian=Gardien de l'Elder -Guardian=Gardien -Horse=Cheval -Skeleton Horse=Cheval-squelette -Zombie Horse=Cheval-zombie -Donkey=Âne -Mule=Mule -Iron Golem=Golem de fer -Llama=Lama -Ocelot=Ocelot -Parrot=Perroquet -Pig=Cochon -Polar Bear=Ours blanc -Rabbit=Lapin -Killer Bunny=Lapin tueur -Sheep=Mouton -Shulker=Shulker -Silverfish=Poisson d'argent -Skeleton=Squelette -Stray=Vagabond -Wither Skeleton=Wither squelette -Magma Cube=Cube de magma -Slime=Slime -Snow Golem=Golem de neige -Spider=Araignée -Cave Spider=Araignée venimeuse -Squid=Poulpe -Vex=Vex -Evoker=Invocateur -Illusioner=Illusionniste -Villager=Villageois -Vindicator=Vindicateur -Zombie Villager=Zombie Villageois -Witch=Sorcière -Wither=Wither -Wolf=Loup -Husk=Zombie Momifié -Zombie=Zombie -Zombie Pigman=Zombie Cochon -Iron Horse Armor=Armure de cheval en fer -Iron horse armor can be worn by horses to increase their protection from harm a bit.=L'armure de cheval en fer peut être portée par les chevaux pour augmenter un peu leur protection contre les dommages. -Golden Horse Armor=Armure de cheval en or -Golden horse armor can be worn by horses to increase their protection from harm.=Une armure de cheval en or peut être portée par les chevaux pour augmenter leur protection contre les dommages. -Diamond Horse Armor=Armure de cheval en diamant -Diamond horse armor can be worn by horses to greatly increase their protection from harm.=Une armure de cheval en diament peut être portée par les chevaux pour augmenter fortement leur protection contre les dommages. -Place it on a horse to put on the horse armor. Donkeys and mules can't wear horse armor.=Placez-la sur un cheval pour mettre l'armure de cheval. Les ânes et les mules ne peuvent pas porter d'armure de cheval. -Farmer=Fermier -Fisherman=Pêcheur -Fletcher=Archer -Shepherd=Berger -Librarian=Bibliothécaire -Cartographer=Cartographe -Armorer=Armurier -Leatherworker=Tanneur -Butcher=Boucher -Weapon Smith=Fabriquant d'arme -Tool Smith=Fabriquant d'outil -Cleric=Clerc -Nitwit=Crétin -Protects you from death while wielding it=Vous protège de la mort en la maniant diff --git a/mods/ENTITIES/mobs_mc/locale/template.txt b/mods/ENTITIES/mobs_mc/locale/template.txt index 04ba9e46..3cd260ce 100644 --- a/mods/ENTITIES/mobs_mc/locale/template.txt +++ b/mods/ENTITIES/mobs_mc/locale/template.txt @@ -72,4 +72,3 @@ Weapon Smith= Tool Smith= Cleric= Nitwit= -Protects you from death while wielding it= diff --git a/mods/ENTITIES/mobs_mc/ocelot.lua b/mods/ENTITIES/mobs_mc/ocelot.lua index 5a9525a0..e2b37220 100644 --- a/mods/ENTITIES/mobs_mc/ocelot.lua +++ b/mods/ENTITIES/mobs_mc/ocelot.lua @@ -28,7 +28,6 @@ end -- Ocelot local ocelot = { type = "animal", - spawn_class = "passive", can_despawn = true, hp_min = 10, hp_max = 10, @@ -202,6 +201,13 @@ mobs:spawn({ end, }) +-- compatibility +mobs:alias_mob("mobs:kitten", "mobs_mc:ocelot") + -- spawn eggs -- FIXME: The spawn icon shows a cat texture, not an ocelot texture mobs:register_egg("mobs_mc:ocelot", S("Ocelot"), "mobs_mc_spawn_icon_cat.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Ocelot loaded") +end diff --git a/mods/ENTITIES/mobs_mc/parrot.lua b/mods/ENTITIES/mobs_mc/parrot.lua index 080bddd4..9474c2b7 100644 --- a/mods/ENTITIES/mobs_mc/parrot.lua +++ b/mods/ENTITIES/mobs_mc/parrot.lua @@ -13,7 +13,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:parrot", { type = "npc", - spawn_class = "passive", pathfinding = 1, hp_min = 6, hp_max = 6, @@ -53,6 +52,7 @@ mobs:register_mob("mobs_mc:parrot", { floats = 1, physical = true, fly = true, + fly_in = {"air"}, fear_height = 4, view_range = 16, follow = mobs_mc.follow.parrot, @@ -85,4 +85,8 @@ mobs:register_mob("mobs_mc:parrot", { --mobs:spawn_specific("mobs_mc:parrot", mobs_mc.spawn.jungle, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 30000, 1, mobs_mc.spawn_height.water+1, mobs_mc.spawn_height.overworld_max) -- spawn eggs -mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0, true) +mobs:register_egg("mobs_mc:parrot", S("Parrot"), "mobs_mc_spawn_icon_parrot.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Parrot loaded") +end diff --git a/mods/ENTITIES/mobs_mc/pig.lua b/mods/ENTITIES/mobs_mc/pig.lua index 05e6a085..472d8f77 100644 --- a/mods/ENTITIES/mobs_mc/pig.lua +++ b/mods/ENTITIES/mobs_mc/pig.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:pig", { type = "animal", - spawn_class = "passive", runaway = true, hp_min = 10, hp_max = 10, @@ -126,7 +125,6 @@ mobs:register_mob("mobs_mc:pig", { stack:take_item() inv:set_stack("main", clicker:get_wield_index(), stack) end - minetest.sound_play({name = "mcl_armor_equip_leather"}, {gain=0.5, max_hear_distance=8, pos=self.object:get_pos()}, true) return end @@ -150,7 +148,7 @@ mobs:register_mob("mobs_mc:pig", { -- Break carrot on a stick local def = wielditem:get_definition() if def.sounds and def.sounds.breaks then - minetest.sound_play(def.sounds.breaks, {pos = clicker:get_pos(), max_hear_distance = 8, gain = 0.5}, true) + minetest.sound_play(def.sounds.breaks, {pos = clicker:get_pos(), max_hear_distance = 8, gain = 0.5}) end wielditem = {name = mobs_mc.items.fishing_rod, count = 1} else @@ -178,7 +176,15 @@ mobs:register_mob("mobs_mc:pig", { end, }) -mobs:spawn_specific("mobs_mc:pig", mobs_mc.spawn.grassland, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 15000, 8, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:pig", mobs_mc.spawn.grassland, {"air"}, 9, minetest.LIGHT_MAX+1, 30, 15000, 30, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) + +-- compatibility +mobs:alias_mob("mobs:pig", "mobs_mc:pig") -- spawn eggs mobs:register_egg("mobs_mc:pig", S("Pig"), "mobs_mc_spawn_icon_pig.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Pig loaded") +end diff --git a/mods/ENTITIES/mobs_mc/polar_bear.lua b/mods/ENTITIES/mobs_mc/polar_bear.lua index fd1eaa1c..438ea320 100644 --- a/mods/ENTITIES/mobs_mc/polar_bear.lua +++ b/mods/ENTITIES/mobs_mc/polar_bear.lua @@ -9,9 +9,9 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:polar_bear", { type = "animal", - spawn_class = "passive", runaway = false, passive = false, + stepheight = 1.2, hp_min = 30, hp_max = 30, breath_max = -1, @@ -56,7 +56,16 @@ mobs:register_mob("mobs_mc:polar_bear", { }) +-- compatibility +mobs:alias_mob("mobs_mc:polarbear", "mobs_mc:polar_bear") + + mobs:spawn_specific("mobs_mc:polar_bear", mobs_mc.spawn.snow, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 7000, 3, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) -- spawn egg mobs:register_egg("mobs_mc:polar_bear", S("Polar Bear"), "mobs_mc_spawn_icon_polarbear.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Polar Bear loaded") +end diff --git a/mods/ENTITIES/mobs_mc/rabbit.lua b/mods/ENTITIES/mobs_mc/rabbit.lua index ef7b702b..8803b754 100644 --- a/mods/ENTITIES/mobs_mc/rabbit.lua +++ b/mods/ENTITIES/mobs_mc/rabbit.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mobs_mc") local rabbit = { type = "animal", - spawn_class = "passive", passive = true, reach = 1, @@ -75,7 +74,6 @@ mobs:register_mob("mobs_mc:rabbit", rabbit) -- The killer bunny (Only with spawn egg) local killer_bunny = table.copy(rabbit) killer_bunny.type = "monster" -killer_bunny.spawn_class = "hostile" killer_bunny.attack_type = "dogfight" killer_bunny.specific_attack = { "player", "mobs_mc:wolf", "mobs_mc:dog" } killer_bunny.damage = 8 @@ -104,7 +102,7 @@ local spawn = { name = "mobs_mc:rabbit", neighbors = {"air"}, chance = 15000, - active_object_count = 10, + active_object_count = 99, min_light = 0, max_light = minetest.LIGHT_MAX+1, min_height = mobs_mc.spawn_height.overworld_min, @@ -162,3 +160,11 @@ mobs:register_egg("mobs_mc:rabbit", S("Rabbit"), "mobs_mc_spawn_icon_rabbit.png" -- Note: This spawn egg does not exist in Minecraft mobs:register_egg("mobs_mc:killer_bunny", S("Killer Bunny"), "mobs_mc_spawn_icon_rabbit.png^[colorize:#FF0000:192", 0) -- TODO: Update inventory image + + +-- compatibility +mobs:alias_mob("mobs:bunny", "mobs_mc:rabbit") + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Bunny loaded") +end diff --git a/mods/ENTITIES/mobs_mc/sheep.lua b/mods/ENTITIES/mobs_mc/sheep.lua index 94c2d48c..3d643ec8 100644 --- a/mods/ENTITIES/mobs_mc/sheep.lua +++ b/mods/ENTITIES/mobs_mc/sheep.lua @@ -44,7 +44,6 @@ local gotten_texture = { "blank.png", "mobs_mc_sheep.png" } --mcsheep mobs:register_mob("mobs_mc:sheep", { type = "animal", - spawn_class = "passive", hp_min = 8, hp_max = 8, @@ -156,7 +155,7 @@ mobs:register_mob("mobs_mc:sheep", { if item:get_name() == mobs_mc.items.shears and not self.gotten and not self.child then self.gotten = true local pos = self.object:get_pos() - minetest.sound_play("shears", {pos = pos}, true) + minetest.sound_play("shears", {pos = pos}) pos.y = pos.y + 0.5 if not self.color then self.color = "unicolor_white" @@ -261,5 +260,11 @@ mobs:register_mob("mobs_mc:sheep", { }) mobs:spawn_specific("mobs_mc:sheep", mobs_mc.spawn.grassland, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 3, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +-- compatibility +mobs:alias_mob("mobs_animal:sheep", "mobs_mc:sheep") -- spawn eggs mobs:register_egg("mobs_mc:sheep", S("Sheep"), "mobs_mc_spawn_icon_sheep.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Sheep loaded") +end diff --git a/mods/ENTITIES/mobs_mc/shulker.lua b/mods/ENTITIES/mobs_mc/shulker.lua index 4304ef06..0a06fe89 100644 --- a/mods/ENTITIES/mobs_mc/shulker.lua +++ b/mods/ENTITIES/mobs_mc/shulker.lua @@ -13,7 +13,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:shulker", { type = "monster", - spawn_class = "hostile", attack_type = "shoot", shoot_interval = 0.5, arrow = "mobs_mc:shulkerbullet", @@ -78,3 +77,7 @@ mobs:register_arrow("mobs_mc:shulkerbullet", { mobs:register_egg("mobs_mc:shulker", S("Schulker"), "mobs_mc_spawn_icon_shulker.png", 0) mobs:spawn_specific("mobs_mc:shulker", mobs_mc.spawn.end_city, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 5000, 2, mobs_mc.spawn_height.end_min, mobs_mc.spawn_height.end_max) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Shulkers loaded") +end diff --git a/mods/ENTITIES/mobs_mc/silverfish.lua b/mods/ENTITIES/mobs_mc/silverfish.lua index a6baf1e4..f2c11198 100644 --- a/mods/ENTITIES/mobs_mc/silverfish.lua +++ b/mods/ENTITIES/mobs_mc/silverfish.lua @@ -6,7 +6,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:silverfish", { type = "monster", - spawn_class = "hostile", passive = false, group_attack = true, reach = 1, diff --git a/mods/ENTITIES/mobs_mc/skeleton+stray.lua b/mods/ENTITIES/mobs_mc/skeleton+stray.lua index 5d0c8ae8..4157f750 100644 --- a/mods/ENTITIES/mobs_mc/skeleton+stray.lua +++ b/mods/ENTITIES/mobs_mc/skeleton+stray.lua @@ -14,7 +14,6 @@ local mod_bows = minetest.get_modpath("mcl_bows") ~= nil local skeleton = { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, breath_max = -1, @@ -122,6 +121,9 @@ table.insert(stray.drops, { mobs:register_mob("mobs_mc:stray", stray) +-- compatibility +mobs:alias_mob("mobs:skeleton", "mobs_mc:skeleton") + -- Overworld spawn mobs:spawn_specific("mobs_mc:skeleton", mobs_mc.spawn.solid, {"air"}, 0, 7, 20, 17000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) -- Nether spawn @@ -135,3 +137,7 @@ mobs:spawn_specific("mobs_mc:stray", mobs_mc.spawn.snow, {"air"}, 0, 7, 20, 1900 -- spawn eggs mobs:register_egg("mobs_mc:skeleton", S("Skeleton"), "mobs_mc_spawn_icon_skeleton.png", 0) mobs:register_egg("mobs_mc:stray", S("Stray"), "mobs_mc_spawn_icon_stray.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Skeleton loaded") +end diff --git a/mods/ENTITIES/mobs_mc/skeleton_wither.lua b/mods/ENTITIES/mobs_mc/skeleton_wither.lua index c202228c..896df69a 100644 --- a/mods/ENTITIES/mobs_mc/skeleton_wither.lua +++ b/mods/ENTITIES/mobs_mc/skeleton_wither.lua @@ -11,7 +11,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:witherskeleton", { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, breath_max = -1, @@ -90,3 +89,7 @@ mobs:spawn_specific("mobs_mc:witherskeleton", mobs_mc.spawn.nether_fortress, {"a -- spawn eggs mobs:register_egg("mobs_mc:witherskeleton", S("Wither Skeleton"), "mobs_mc_spawn_icon_witherskeleton.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Wither Skeleton loaded") +end diff --git a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua index d361b89b..00486499 100644 --- a/mods/ENTITIES/mobs_mc/slime+magma_cube.lua +++ b/mods/ENTITIES/mobs_mc/slime+magma_cube.lua @@ -57,7 +57,6 @@ end -- Slime local slime_big = { type = "monster", - spawn_class = "hostile", pathfinding = 1, group_attack = { "mobs_mc:slime_big", "mobs_mc:slime_small", "mobs_mc:slime_tiny" }, hp_min = 16, @@ -103,6 +102,7 @@ local slime_big = { run_velocity = 2.5, walk_chance = 0, jump_height = 5.2, + jump_chance = 100, fear_height = 0, spawn_small_alternative = "mobs_mc:slime_small", on_die = spawn_children_on_die("mobs_mc:slime_small", 4, 1.0, 1.5) @@ -157,7 +157,6 @@ mobs:spawn_specific("mobs_mc:slime_big", mobs_mc.spawn.solid, {"air"}, 0, minete -- Magma cube local magma_cube_big = { type = "monster", - spawn_class = "hostile", hp_min = 16, hp_max = 16, collisionbox = {-1.02, -0.01, -1.02, 1.02, 2.03, 1.02}, @@ -209,6 +208,7 @@ local magma_cube_big = { jump = true, jump_height = 8, walk_chance = 0, + jump_chance = 100, fear_height = 0, spawn_small_alternative = "mobs_mc:magma_cube_small", on_die = spawn_children_on_die("mobs_mc:magma_cube_small", 3, 0.8, 1.5) @@ -267,6 +267,19 @@ mobs:spawn_specific("mobs_mc:magma_cube_small", mobs_mc.spawn.nether_fortress, { mobs:spawn_specific("mobs_mc:magma_cube_big", mobs_mc.spawn.nether_fortress, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 11200, 4, mmin, mmax) +-- Compability +mobs:alias_mob("mobs_mc:greensmall", "mobs_mc:slime_tiny") +mobs:alias_mob("mobs_mc:greenmedium", "mobs_mc:slime_small") +mobs:alias_mob("mobs_mc:greenbig", "mobs_mc:slime_big") +mobs:alias_mob("mobs_mc:lavasmall", "mobs_mc:magma_cube_tiny") +mobs:alias_mob("mobs_mc:lavamedium", "mobs_mc:magma_cube_small") +mobs:alias_mob("mobs_mc:lavabig", "mobs_mc:magma_cube_big") + -- spawn eggs mobs:register_egg("mobs_mc:magma_cube_big", S("Magma Cube"), "mobs_mc_spawn_icon_magmacube.png") mobs:register_egg("mobs_mc:slime_big", S("Slime"), "mobs_mc_spawn_icon_slime.png") + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Slimes loaded") +end diff --git a/mods/ENTITIES/mobs_mc/snowman.lua b/mods/ENTITIES/mobs_mc/snowman.lua index fd3947d7..7e74d8d6 100644 --- a/mods/ENTITIES/mobs_mc/snowman.lua +++ b/mods/ENTITIES/mobs_mc/snowman.lua @@ -22,7 +22,6 @@ local gotten_texture = { mobs:register_mob("mobs_mc:snowman", { type = "npc", - spawn_class = "passive", passive = true, hp_min = 4, hp_max = 4, @@ -116,7 +115,7 @@ mobs:register_mob("mobs_mc:snowman", { }) local pos = self.object:get_pos() - minetest.sound_play("shears", {pos = pos}, true) + minetest.sound_play("shears", {pos = pos}) -- Wear out if not minetest.settings:get_bool("creative_mode") then @@ -164,3 +163,7 @@ end -- Spawn egg mobs:register_egg("mobs_mc:snowman", S("Snow Golem"), "mobs_mc_spawn_icon_snowman.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Snow Golem loaded") +end diff --git a/mods/ENTITIES/mobs_mc/spider.lua b/mods/ENTITIES/mobs_mc/spider.lua index f9d58407..5a353c88 100644 --- a/mods/ENTITIES/mobs_mc/spider.lua +++ b/mods/ENTITIES/mobs_mc/spider.lua @@ -14,7 +14,6 @@ local S = minetest.get_translator("mobs_mc") local spider = { type = "monster", - spawn_class = "hostile", passive = false, docile_by_day = true, attack_type = "dogfight", @@ -39,7 +38,7 @@ local spider = { }, walk_velocity = 3.9, jump = true, - jump_height = 4, + jump_height = 2, view_range = 16, floats = 1, drops = { @@ -78,6 +77,14 @@ mobs:register_mob("mobs_mc:cave_spider", cave_spider) mobs:spawn_specific("mobs_mc:spider", mobs_mc.spawn.solid, {"air"}, 0, 7, 30, 17000, 2, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +-- compatibility +mobs:alias_mob("mobs:spider", "mobs_mc:spider") +mobs:alias_mob("esmobs:spider", "mobs_mc:spider") + -- spawn eggs mobs:register_egg("mobs_mc:spider", S("Spider"), "mobs_mc_spawn_icon_spider.png", 0) mobs:register_egg("mobs_mc:cave_spider", S("Cave Spider"), "mobs_mc_spawn_icon_cave_spider.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Spiders loaded") +end diff --git a/mods/ENTITIES/mobs_mc/squid.lua b/mods/ENTITIES/mobs_mc/squid.lua index a43bade3..d2a45f44 100644 --- a/mods/ENTITIES/mobs_mc/squid.lua +++ b/mods/ENTITIES/mobs_mc/squid.lua @@ -8,14 +8,13 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:squid", { type = "animal", - spawn_class = "water", can_despawn = true, passive = true, hp_min = 10, hp_max = 10, armor = 100, -- FIXME: If the squid is near the floor, it turns black - collisionbox = {-0.4, 0.0, -0.4, 0.4, 0.9, 0.4}, + collisionbox = {-0.4, 0.1, -0.4, 0.4, 0.9, 0.4}, visual = "mesh", mesh = "mobs_mc_squid.b3d", textures = { @@ -41,8 +40,9 @@ mobs:register_mob("mobs_mc:squid", { min = 1, max = 3,}, }, - visual_size = {x=3, y=3}, + visual_size = {x=1.75, y=1.75}, makes_footstep_sound = false, + stepheight = 0.1, fly = true, fly_in = { mobs_mc.items.water_source, mobs_mc.items.river_water_source }, breathes_in_water = true, @@ -61,5 +61,8 @@ local water = mobs_mc.spawn_height.water --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height mobs:spawn_specific("mobs_mc:squid", mobs_mc.spawn.water, {mobs_mc.items.water_source}, 0, minetest.LIGHT_MAX+1, 30, 5500, 3, water-16, water) +-- compatibility +mobs:alias_mob("mobs:squid", "mobs_mc:squid") + -- spawn eggs mobs:register_egg("mobs_mc:squid", S("Squid"), "mobs_mc_spawn_icon_squid.png", 0) diff --git a/mods/ENTITIES/mobs_mc/textures/mcl_totems_totem.png b/mods/ENTITIES/mobs_mc/textures/mcl_totems_totem.png index 96243d5b..603a8676 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mcl_totems_totem.png and b/mods/ENTITIES/mobs_mc/textures/mcl_totems_totem.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_chicken_egg.png b/mods/ENTITIES/mobs_mc/textures/mobs_chicken_egg.png index 65dd01de..9c654545 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_chicken_egg.png and b/mods/ENTITIES/mobs_mc/textures/mobs_chicken_egg.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_TEMP_wither_projectile.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_TEMP_wither_projectile.png index b4c007a7..df8b24c1 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_TEMP_wither_projectile.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_TEMP_wither_projectile.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_arrow_particle.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_arrow_particle.png index 40af172b..1d0cd9b1 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_arrow_particle.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_arrow_particle.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_donkey.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_donkey.png index c2ef07b7..e3f04ffd 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_donkey.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_donkey.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_dragon_fireball.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_dragon_fireball.png index cee41904..69e643b1 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_dragon_fireball.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_dragon_fireball.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_evoker.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_evoker.png index 59fb9169..eec707c5 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_evoker.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_evoker.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast.png index a2321c0a..dc2addc1 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_ghast.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_black.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_black.png index 45752c27..91159c9d 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_black.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_black.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_brown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_brown.png index ca978f6d..2d1733af 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_brown.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_brown.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_chestnut.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_chestnut.png index a6556245..ef051a00 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_chestnut.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_chestnut.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_darkbrown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_darkbrown.png index 048f68df..5fa6dd45 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_darkbrown.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_darkbrown.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_gray.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_gray.png index 851aafe8..fb6c1c6b 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_gray.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_gray.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_skeleton.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_skeleton.png index 5d460ad8..7fa9ce1d 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_skeleton.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_skeleton.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_white.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_white.png index c9478abf..264fffd2 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_white.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_horse_white.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_illusionist.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_illusionist.png index 3a67a687..e6a0f86a 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_illusionist.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_illusionist.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama.png index d465e1ff..4a08544c 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_brown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_brown.png index 442f90d6..6cf366de 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_brown.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_brown.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_creamy.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_creamy.png index cb6851f5..e1df4612 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_creamy.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_creamy.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_black.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_black.png deleted file mode 100644 index f48562d8..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_black.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_blue.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_blue.png deleted file mode 100644 index edc969da..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_blue.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_brown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_brown.png deleted file mode 100644 index 934b4024..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_brown.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_cyan.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_cyan.png deleted file mode 100644 index a8dfd197..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_cyan.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_gray.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_gray.png deleted file mode 100644 index bb6404a8..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_gray.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_green.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_green.png deleted file mode 100644 index 1848956b..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_green.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_blue.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_blue.png deleted file mode 100644 index 0932b5fe..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_blue.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_gray.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_gray.png deleted file mode 100644 index b1a0d908..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_light_gray.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_lime.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_lime.png deleted file mode 100644 index 25658cfc..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_lime.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_magenta.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_magenta.png deleted file mode 100644 index 1c9fb479..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_magenta.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_orange.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_orange.png deleted file mode 100644 index 50262140..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_orange.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_pink.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_pink.png deleted file mode 100644 index 7d5a5816..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_pink.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_purple.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_purple.png deleted file mode 100644 index 32d9e0e6..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_purple.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_red.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_red.png deleted file mode 100644 index b043cb1f..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_red.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_silver.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_silver.png deleted file mode 100644 index b1a0d908..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_silver.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_trader.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_trader.png deleted file mode 100644 index edf1840a..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_trader.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_white.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_white.png deleted file mode 100644 index dcd26338..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_white.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_yellow.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_yellow.png deleted file mode 100644 index 542c4660..00000000 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_decor_yellow.png and /dev/null differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_gray.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_gray.png index 7c75583d..b0830e08 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_gray.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_gray.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_white.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_white.png index 4fdfbb2c..85c291d7 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_white.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_llama_white.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mooshroom_brown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mooshroom_brown.png index 85b15e0e..115416a5 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mooshroom_brown.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mooshroom_brown.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mule.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mule.png index 8e0895bb..328018f5 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mule.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mule.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_brown.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_brown.png index c3d33fcd..fac0f56e 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_brown.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_brown.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_red.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_red.png index d4e4e653..8c22bd62 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_red.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_mushroom_red.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_blue.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_blue.png index 1c2cc079..9181de26 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_blue.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_blue.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_green.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_green.png index d2f220f9..152acb8f 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_green.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_green.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_red_blue.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_red_blue.png index c683f5cd..2f14ef1a 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_red_blue.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_red_blue.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_yellow_blue.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_yellow_blue.png index f8ebe470..f35adfd0 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_yellow_blue.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_parrot_yellow_blue.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep.png index b7b66a48..13496a3c 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep_fur.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep_fur.png index 0f3d9785..fa447031 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep_fur.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_sheep_fur.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_slime.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_slime.png index 5d82943d..82ed0871 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_slime.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_slime.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cat.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cat.png index 1b904e5f..123ffc33 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cat.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cat.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cave_spider.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cave_spider.png index a7f1354d..d5f453de 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cave_spider.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_cave_spider.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_dragon.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_dragon.png index 228461b8..7f755824 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_dragon.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_dragon.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_enderman.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_enderman.png index 79eaa871..da9ad355 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_enderman.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_enderman.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_endermite.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_endermite.png index df5a1b28..8e0fdba9 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_endermite.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_endermite.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_evoker.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_evoker.png index b6a4353f..01908a55 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_evoker.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_evoker.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_ghast.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_ghast.png index d139df50..ed3370de 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_ghast.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_ghast.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_guardian_elder.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_guardian_elder.png index 0b9ce9d7..a524502b 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_guardian_elder.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_guardian_elder.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_skeleton.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_skeleton.png index 266c8520..0f11de7c 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_skeleton.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_skeleton.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_zombie.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_zombie.png index 959a1fb7..9c7db224 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_zombie.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_horse_zombie.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_illusioner.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_illusioner.png index 4e798121..953e90f4 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_illusioner.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_illusioner.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_magmacube.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_magmacube.png index 37d2bb6d..5d6d58d3 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_magmacube.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_magmacube.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_parrot.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_parrot.png index b70b6143..a9a2895f 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_parrot.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_parrot.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_skeleton.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_skeleton.png index 45073760..ad6d9f22 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_skeleton.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_skeleton.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_slime.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_slime.png index 2a5a24e8..6f2e3970 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_slime.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_slime.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_spider.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_spider.png index 9ce57ce9..f89a6ade 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_spider.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_spider.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_squid.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_squid.png index 43a1d4e1..73e475f4 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_squid.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_squid.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vex.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vex.png index 3d3488eb..8d01c05c 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vex.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vex.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_villager.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_villager.png index 21e7994f..6b0d0c08 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_villager.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_villager.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vindicator.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vindicator.png index d7926703..a8b208c8 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vindicator.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_vindicator.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_zombie.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_zombie.png index 224f898b..3d16dbb9 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_zombie.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_spawn_icon_zombie.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray.png index 4e98d526..21f15614 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray_overlay.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray_overlay.png index 5434e2b1..ab00032b 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray_overlay.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_stray_overlay.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_trading_formspec_bg.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_trading_formspec_bg.png index 16cc72a1..029c686c 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_trading_formspec_bg.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_trading_formspec_bg.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_vindicator.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_vindicator.png index 21ab622c..512eae60 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_vindicator.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_vindicator.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_witch.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_witch.png index 30fb7f8f..acdf2ff9 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_witch.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_witch.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither.png index 4422fcfd..d0b299ee 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither.png differ diff --git a/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither_skeleton.png b/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither_skeleton.png index ebde0d96..d0d6afe7 100644 Binary files a/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither_skeleton.png and b/mods/ENTITIES/mobs_mc/textures/mobs_mc_wither_skeleton.png differ diff --git a/mods/ENTITIES/mobs_mc/vex.lua b/mods/ENTITIES/mobs_mc/vex.lua index 4c648577..938e2198 100644 --- a/mods/ENTITIES/mobs_mc/vex.lua +++ b/mods/ENTITIES/mobs_mc/vex.lua @@ -11,7 +11,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:vex", { type = "monster", - spawn_class = "hostile", pathfinding = 1, passive = false, attack_type = "dogfight", @@ -86,8 +85,14 @@ mobs:register_mob("mobs_mc:vex", { end end, fly = true, + fly_in = {"air"}, }) -- spawn eggs mobs:register_egg("mobs_mc:vex", S("Vex"), "mobs_mc_spawn_icon_vex.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Vex loaded") +end diff --git a/mods/ENTITIES/mobs_mc/villager.lua b/mods/ENTITIES/mobs_mc/villager.lua index 9788d58c..fe1ff526 100644 --- a/mods/ENTITIES/mobs_mc/villager.lua +++ b/mods/ENTITIES/mobs_mc/villager.lua @@ -21,7 +21,6 @@ local S = minetest.get_translator("mobs_mc") local N = function(s) return s end -local F = minetest.formspec_escape -- playername-indexed table containing the previously used tradenum local player_tradenum = {} @@ -204,25 +203,25 @@ local professions = { trades = { { { { "mcl_core:coal_lump", 16, 24 }, E1 }, - { { "mcl_core:emerald", 4, 6 }, { "mcl_armor:helmet_iron", 1, 1 } }, + { { "mcl_core:emerald", 4, 6 }, { "3d_armor:helmet_iron", 1, 1 } }, }, { { { "mcl_core:iron_ingot", 7, 9 }, E1 }, - { { "mcl_core:emerald", 10, 14 }, { "mcl_armor:chestplate_iron", 1, 1 } }, + { { "mcl_core:emerald", 10, 14 }, { "3d_armor:chestplate_iron", 1, 1 } }, }, { { { "mcl_core:diamond", 3, 4 }, E1 }, -- TODO: enchant - { { "mcl_core:emerald", 16, 19 }, { "mcl_armor:chestplate_diamond", 1, 1 } }, + { { "mcl_core:emerald", 16, 19 }, { "3d_armor:chestplate_diamond", 1, 1 } }, }, { - { { "mcl_core:emerald", 5, 7 }, { "mcl_armor:boots_chain", 1, 1 } }, - { { "mcl_core:emerald", 9, 11 }, { "mcl_armor:leggings_chain", 1, 1 } }, - { { "mcl_core:emerald", 5, 7 }, { "mcl_armor:helmet_chain", 1, 1 } }, - { { "mcl_core:emerald", 11, 15 }, { "mcl_armor:chestplate_chain", 1, 1 } }, + { { "mcl_core:emerald", 5, 7 }, { "3d_armor:boots_chain", 1, 1 } }, + { { "mcl_core:emerald", 9, 11 }, { "3d_armor:leggings_chain", 1, 1 } }, + { { "mcl_core:emerald", 5, 7 }, { "3d_armor:helmet_chain", 1, 1 } }, + { { "mcl_core:emerald", 11, 15 }, { "3d_armor:chestplate_chain", 1, 1 } }, }, }, }, @@ -232,12 +231,12 @@ local professions = { trades = { { { { "mcl_mobitems:leather", 9, 12 }, E1 }, - { { "mcl_core:emerald", 2, 4 }, { "mcl_armor:leggings_leather", 2, 4 } }, + { { "mcl_core:emerald", 2, 4 }, { "3d_armor:leggings_leather", 2, 4 } }, }, { -- TODO: enchant - { { "mcl_core:emerald", 7, 12 }, { "mcl_armor:chestplate_leather", 1, 1 } }, + { { "mcl_core:emerald", 7, 12 }, { "3d_armor:chestplate_leather", 1, 1 } }, }, { @@ -475,7 +474,7 @@ local function show_trade_formspec(playername, trader, tradenum) "image[4.3,1.1;1,1;mobs_mc_trading_formspec_disabled.png]" end local tradeinv_name = "mobs_mc:trade_"..playername - local tradeinv = F("detached:"..tradeinv_name) + local tradeinv = minetest.formspec_escape("detached:"..tradeinv_name) local b_prev, b_next = "", "" if #trades > 1 then @@ -487,41 +486,24 @@ local function show_trade_formspec(playername, trader, tradenum) end end - local inv = minetest.get_inventory({type="detached", name="mobs_mc:trade_"..playername}) - if not inv then - return - end - local wanted1 = inv:get_stack("wanted", 1) - local wanted2 = inv:get_stack("wanted", 2) - local offered = inv:get_stack("offered", 1) - - local w2_formspec = "" - if not wanted2:is_empty() then - w2_formspec = "item_image[3,1;1,1;"..wanted2:to_string().."]" - .."tooltip[3,1;0.8,0.8;"..F(wanted2:get_description()).."]" - end - local formspec = "size[9,8.75]" .."background[-0.19,-0.25;9.41,9.49;mobs_mc_trading_formspec_bg.png]" ..disabled_img - .."label[4,0;"..F(minetest.colorize("#313131", S(profession))).."]" + ..mcl_vars.inventory_header + .."label[4,0;"..minetest.formspec_escape(minetest.colorize("#313131", S(profession))).."]" .."list[current_player;main;0,4.5;9,3;9]" .."list[current_player;main;0,7.74;9,1;]" ..b_prev..b_next - .."["..tradeinv..";wanted;2,1;2,1;]" - .."item_image[2,1;1,1;"..wanted1:to_string().."]" - .."tooltip[2,1;0.8,0.8;"..F(wanted1:get_description()).."]" - ..w2_formspec - .."item_image[5.76,1;1,1;"..offered:to_string().."]" - .."tooltip[5.76,1;0.8,0.8;"..F(offered:get_description()).."]" + .."list["..tradeinv..";wanted;2,1;2,1;]" + .."list["..tradeinv..";offered;5.76,1;1,1;]" .."list["..tradeinv..";input;2,2.5;2,1;]" .."list["..tradeinv..";output;5.76,2.55;1,1;]" .."listring["..tradeinv..";output]" .."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}) minetest.show_formspec(playername, tradeinv_name, formspec) end @@ -583,13 +565,13 @@ local update_offer = function(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}) 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}) end return false end @@ -627,9 +609,6 @@ local return_fields = function(player) local name = player:get_player_name() local inv_t = minetest.get_inventory({type="detached", name = "mobs_mc:trade_"..name}) local inv_p = player:get_inventory() - if not inv_t or not inv_p then - return - end for i=1, inv_t:get_size("input") do local stack = inv_t:get_stack("input", i) return_item(stack, player, player:get_pos(), inv_p) @@ -666,9 +645,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end local tradenum = player_tradenum[name] + dir local inv = minetest.get_inventory({type="detached", name="mobs_mc:trade_"..name}) - if not inv then - return - end set_trade(trader, player, inv, tradenum) update_offer(inv, player, false) show_trade_formspec(name, trader, player_tradenum[name]) @@ -784,7 +760,7 @@ 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) + minetest.sound_play("mobs_mc_villager_accept", {to_player = player:get_player_name()}) end update_offer(inv, player, true) end, @@ -890,9 +866,9 @@ local trade_inventory = { update_offer(inv, player, false) end if accept then - minetest.sound_play("mobs_mc_villager_accept", {to_player = name}, true) + minetest.sound_play("mobs_mc_villager_accept", {to_player = name}) else - minetest.sound_play("mobs_mc_villager_deny", {to_player = name}, true) + minetest.sound_play("mobs_mc_villager_deny", {to_player = name}) end end, } @@ -917,7 +893,6 @@ end) mobs:register_mob("mobs_mc:villager", { type = "npc", - spawn_class = "passive", hp_min = 20, hp_max = 20, collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3}, @@ -992,9 +967,6 @@ mobs:register_mob("mobs_mc:villager", { player_trading_with[name] = self local inv = minetest.get_inventory({type="detached", name="mobs_mc:trade_"..name}) - if not inv then - return - end set_trade(self, clicker, inv, 1) @@ -1060,5 +1032,12 @@ mobs:register_mob("mobs_mc:villager", { mobs:spawn_specific("mobs_mc:villager", mobs_mc.spawn.village, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 8000, 4, mobs_mc.spawn_height.water+1, mobs_mc.spawn_height.overworld_max) +-- compatibility +mobs:alias_mob("mobs:villager", "mobs_mc:villager") + -- spawn eggs mobs:register_egg("mobs_mc:villager", S("Villager"), "mobs_mc_spawn_icon_villager.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC mobs loaded") +end diff --git a/mods/ENTITIES/mobs_mc/villager_evoker.lua b/mods/ENTITIES/mobs_mc/villager_evoker.lua index 3b9b1578..7bb48e72 100644 --- a/mods/ENTITIES/mobs_mc/villager_evoker.lua +++ b/mods/ENTITIES/mobs_mc/villager_evoker.lua @@ -13,7 +13,6 @@ local pr = PseudoRandom(os.time()*666) mobs:register_mob("mobs_mc:evoker", { type = "monster", - spawn_class = "hostile", physical = true, pathfinding = 1, hp_min = 24, @@ -81,3 +80,8 @@ mobs:register_mob("mobs_mc:evoker", { -- spawn eggs mobs:register_egg("mobs_mc:evoker", S("Evoker"), "mobs_mc_spawn_icon_evoker.png", 0) + + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Evoker loaded") +end diff --git a/mods/ENTITIES/mobs_mc/villager_illusioner.lua b/mods/ENTITIES/mobs_mc/villager_illusioner.lua index 0e41f4e9..9c0429ec 100644 --- a/mods/ENTITIES/mobs_mc/villager_illusioner.lua +++ b/mods/ENTITIES/mobs_mc/villager_illusioner.lua @@ -8,7 +8,6 @@ local mod_bows = minetest.get_modpath("mcl_bows") ~= nil mobs:register_mob("mobs_mc:illusioner", { type = "monster", - spawn_class = "hostile", attack_type = "shoot", shoot_interval = 2.5, shoot_offset = 1.5, @@ -59,3 +58,7 @@ mobs:register_mob("mobs_mc:illusioner", { }) mobs:register_egg("mobs_mc:illusioner", S("Illusioner"), "mobs_mc_spawn_icon_illusioner.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Illusioner loaded") +end diff --git a/mods/ENTITIES/mobs_mc/villager_vindicator.lua b/mods/ENTITIES/mobs_mc/villager_vindicator.lua index d7d6f273..a228aa56 100644 --- a/mods/ENTITIES/mobs_mc/villager_vindicator.lua +++ b/mods/ENTITIES/mobs_mc/villager_vindicator.lua @@ -12,7 +12,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:vindicator", { type = "monster", - spawn_class = "hostile", physical = false, pathfinding = 1, hp_min = 24, @@ -69,3 +68,7 @@ mobs:register_mob("mobs_mc:vindicator", { -- spawn eggs mobs:register_egg("mobs_mc:vindicator", S("Vindicator"), "mobs_mc_spawn_icon_vindicator.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC vindicator loaded") +end diff --git a/mods/ENTITIES/mobs_mc/villager_zombie.lua b/mods/ENTITIES/mobs_mc/villager_zombie.lua index 1e874803..bc974277 100644 --- a/mods/ENTITIES/mobs_mc/villager_zombie.lua +++ b/mods/ENTITIES/mobs_mc/villager_zombie.lua @@ -14,7 +14,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:villager_zombie", { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, breath_max = -1, @@ -83,3 +82,7 @@ mobs:spawn_specific("mobs_mc:villager_zombie", mobs_mc.spawn.village, {"air"}, 0 -- spawn eggs mobs:register_egg("mobs_mc:villager_zombie", S("Zombie Villager"), "mobs_mc_spawn_icon_zombie_villager.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC mobs Zombie Villager loaded") +end diff --git a/mods/ENTITIES/mobs_mc/witch.lua b/mods/ENTITIES/mobs_mc/witch.lua index fcc05627..db183e67 100644 --- a/mods/ENTITIES/mobs_mc/witch.lua +++ b/mods/ENTITIES/mobs_mc/witch.lua @@ -14,7 +14,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:witch", { type = "monster", - spawn_class = "hostile", hp_min = 26, hp_max = 26, collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3}, @@ -32,7 +31,7 @@ mobs:register_mob("mobs_mc:witch", { pathfinding = 1, group_attack = true, attack_type = "dogshoot", - arrow = "mobs_mc:potion_arrow", + arrow = "mobs:potion_arrow", shoot_interval = 2.5, shoot_offset = 1, dogshoot_switch = 1, @@ -69,8 +68,8 @@ mobs:register_mob("mobs_mc:witch", { }) --- potion projectile (EXPERIMENTAL) -mobs:register_arrow("mobs_mc:potion_arrow", { +-- fireball (weapon) +mobs:register_arrow(":mobs:potion_arrow", { visual = "sprite", visual_size = {x = 0.5, y = 0.5}, --textures = {"vessels_glass_bottle.png"}, --TODO fix to else if default @@ -94,7 +93,7 @@ mobs:register_arrow("mobs_mc:potion_arrow", { -- node hit, bursts into flame hit_node = function(self, pos, node) - --TODO + --mobs:explosion(pos, 1, 1, 0) end }) @@ -102,4 +101,8 @@ mobs:register_arrow("mobs_mc:potion_arrow", { --mobs:spawn_specific("mobs_mc:witch", mobs_mc.spawn.jungle, {"air"}, 0, minetest.LIGHT_MAX-6, 12, 20000, 2, mobs_mc.spawn_height.water-6, mobs_mc.spawn_height.overworld_max) -- spawn eggs -mobs:register_egg("mobs_mc:witch", S("Witch"), "mobs_mc_spawn_icon_witch.png", 0, true) +mobs:register_egg("mobs_mc:witch", S("Witch"), "mobs_mc_spawn_icon_witch.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC mobs loaded") +end diff --git a/mods/ENTITIES/mobs_mc/wither.lua b/mods/ENTITIES/mobs_mc/wither.lua index ebbbf92f..871496d0 100644 --- a/mods/ENTITIES/mobs_mc/wither.lua +++ b/mods/ENTITIES/mobs_mc/wither.lua @@ -11,7 +11,6 @@ local S = minetest.get_translator("mobs_mc") mobs:register_mob("mobs_mc:wither", { type = "monster", - spawn_class = "hostile", hp_max = 300, hp_min = 300, armor = 80, @@ -28,6 +27,7 @@ mobs:register_mob("mobs_mc:wither", { fear_height = 4, walk_velocity = 2, run_velocity = 4, + stepheight = 1.2, sounds = { shoot_attack = "mobs_mc_ender_dragon_shoot", attack = "mobs_mc_ender_dragon_attack", @@ -36,6 +36,7 @@ mobs:register_mob("mobs_mc:wither", { }, jump = true, jump_height = 10, + jump_chance = 98, fly = true, dogshoot_switch = 1, dogshoot_count_max =1, @@ -49,9 +50,10 @@ mobs:register_mob("mobs_mc:wither", { lava_damage = 0, fire_damage = 0, attack_type = "dogshoot", - explosion_strength = 8, + explosion_radius = 3, + explosion_fire = false, dogshoot_stop = true, - arrow = "mobs_mc:wither_skull", + arrow = "mobs_mc:fireball", reach = 5, shoot_interval = 0.5, shoot_offset = -1, @@ -65,37 +67,87 @@ mobs:register_mob("mobs_mc:wither", { local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false -mobs:register_arrow("mobs_mc:wither_skull", { +mobs:register_arrow("mobs_mc:roar_of_the_dragon", { + visual = "sprite", + visual_size = {x = 1, y = 1}, + textures = {"blank.png"}, + velocity = 10, + + on_step = function(self, dtime) + + local pos = self.object:get_pos() + + local n = minetest.get_node(pos).name + + if self.timer == 0 then + self.timer = os.time() + end + + if os.time() - self.timer > 8 or minetest.is_protected(pos, "") then + self.object:remove() + end + + local objects = minetest.get_objects_inside_radius(pos, 1) + for _,obj in ipairs(objects) do + local name = self.name + if name~="mobs_mc:roar_of_the_dragon" and name ~= "mobs_mc:wither" then + obj:set_hp(obj:get_hp()-5) + if (obj:get_hp() <= 0) then + if (not obj:is_player()) and name ~= self.object:get_luaentity().name then + obj:remove() + end + end + end + end + + if mobs_griefing then + minetest.set_node(pos, {name="air"}) + if math.random(1,2)==1 then + local dx = math.random(-1,1) + local dy = math.random(-1,1) + local dz = math.random(-1,1) + local p = {x=pos.x+dx, y=pos.y+dy, z=pos.z+dz} + minetest.set_node(p, {name="air"}) + end + end + end +}) +--GOOD LUCK LOL! +-- fireball (weapon) +mobs:register_arrow(":mobs_mc:fireball", { visual = "sprite", visual_size = {x = 0.75, y = 0.75}, -- TODO: 3D projectile, replace tetxture textures = {"mobs_mc_TEMP_wither_projectile.png"}, velocity = 6, - -- direct hit + -- direct hit, no fire... just plenty of pain hit_player = function(self, player) + minetest.sound_play("tnt_explode", {pos = player:get_pos(), gain = 1.5, max_hear_distance = 16}) player:punch(self.object, 1.0, { full_punch_interval = 0.5, damage_groups = {fleshy = 8}, }, nil) - mobs:boom(self, self.object:get_pos(), 1) + end, hit_mob = function(self, mob) + minetest.sound_play("tnt_explode", {pos = mob:get_pos(), gain = 1.5,max_hear_distance = 16}) mob:punch(self.object, 1.0, { full_punch_interval = 0.5, damage_groups = {fleshy = 8}, }, nil) - mobs:boom(self, self.object:get_pos(), 1) + end, - -- node hit, explode + -- node hit, bursts into flame hit_node = function(self, pos, node) - mobs:boom(self, pos, 1) + -- FIXME: Deprecated, switch to mobs:boom instead + mobs:explosion(pos, 3, 0, 1) end }) --- TODO: Add blue wither skull - --Spawn egg -mobs:register_egg("mobs_mc:wither", S("Wither"), "mobs_mc_spawn_icon_wither.png", 0, true) +mobs:register_egg("mobs_mc:wither", S("Wither"), "mobs_mc_spawn_icon_wither.png", 0) +--Compatibility +mobs:alias_mob("nssm:mese_dragon", "mobs_mc:wither") diff --git a/mods/ENTITIES/mobs_mc/wolf.lua b/mods/ENTITIES/mobs_mc/wolf.lua index 54bb0d41..e8e5de1f 100644 --- a/mods/ENTITIES/mobs_mc/wolf.lua +++ b/mods/ENTITIES/mobs_mc/wolf.lua @@ -20,7 +20,6 @@ end -- Wolf local wolf = { type = "animal", - spawn_class = "passive", can_despawn = true, hp_min = 8, hp_max = 8, @@ -41,6 +40,7 @@ local wolf = { walk_chance = default_walk_chance, walk_velocity = 2, run_velocity = 3, + stepheight = 1.1, damage = 4, reach = 2, attack_type = "dogfight", @@ -204,6 +204,16 @@ end mobs:register_mob("mobs_mc:dog", dog) -- Spawn -mobs:spawn_specific("mobs_mc:wolf", mobs_mc.spawn.wolf, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 9000, 7, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) +mobs:spawn_specific("mobs_mc:wolf", mobs_mc.spawn.wolf, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 9000, 20, mobs_mc.spawn_height.water+3, mobs_mc.spawn_height.overworld_max) + +-- Compatibility +mobs:alias_mob("mobs:wolf", "mobs_mc:wolf") +mobs:alias_mob("mobs:dog", "mobs_mc:dog") +mobs:alias_mob("esmobs:wolf", "mobs_mc:wolf") +mobs:alias_mob("esmobs:dog", "mobs_mc:dog") mobs:register_egg("mobs_mc:wolf", S("Wolf"), "mobs_mc_spawn_icon_wolf.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Wolf loaded") +end diff --git a/mods/ENTITIES/mobs_mc/zombie.lua b/mods/ENTITIES/mobs_mc/zombie.lua index 552369b8..d7548988 100644 --- a/mods/ENTITIES/mobs_mc/zombie.lua +++ b/mods/ENTITIES/mobs_mc/zombie.lua @@ -40,7 +40,6 @@ table.insert(drops_zombie, { local zombie = { type = "monster", - spawn_class = "hostile", hp_min = 20, hp_max = 20, breath_max = -1, @@ -125,6 +124,13 @@ mobs:spawn_specific("mobs_mc:baby_zombie", mobs_mc.spawn.solid, {"air"}, 0, 7, 3 mobs:spawn_specific("mobs_mc:husk", mobs_mc.spawn.desert, {"air"}, 0, 7, 30, 6500, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) mobs:spawn_specific("mobs_mc:baby_husk", mobs_mc.spawn.desert, {"air"}, 0, 7, 30, 65000, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +-- Compatibility +mobs:alias_mob("mobs:zombie", "mobs_mc:zombie") + -- Spawn eggs mobs:register_egg("mobs_mc:husk", S("Husk"), "mobs_mc_spawn_icon_husk.png", 0) mobs:register_egg("mobs_mc:zombie", S("Zombie"), "mobs_mc_spawn_icon_zombie.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Zombie loaded") +end diff --git a/mods/ENTITIES/mobs_mc/zombiepig.lua b/mods/ENTITIES/mobs_mc/zombiepig.lua index bdf97e05..77bd0e19 100644 --- a/mods/ENTITIES/mobs_mc/zombiepig.lua +++ b/mods/ENTITIES/mobs_mc/zombiepig.lua @@ -14,7 +14,6 @@ local pigman = { -- type="animal", passive=false: This combination is needed for a neutral mob which becomes hostile, if attacked type = "animal", passive = false, - spawn_class = "passive", hp_min = 20, hp_max = 20, breath_max = -1, @@ -109,5 +108,12 @@ mobs:spawn_specific("mobs_mc:baby_pigman", mobs_mc.spawn.solid, {"air"}, 0, mine -- Spawning in Nether portals in the Overworld mobs:spawn_specific("mobs_mc:pigman", mobs_mc.spawn.nether_portal, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 500, 4, mobs_mc.spawn_height.overworld_min, mobs_mc.spawn_height.overworld_max) +-- compatibility +mobs:alias_mob("mobs:pigman", "mobs_mc:pigman") + -- spawn eggs mobs:register_egg("mobs_mc:pigman", S("Zombie Pigman"), "mobs_mc_spawn_icon_zombie_pigman.png", 0) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "MC Pigmen loaded") +end diff --git a/mods/ENTITIES/mobs_mc_gameconfig/init.lua b/mods/ENTITIES/mobs_mc_gameconfig/init.lua index 80485d95..f1f185b7 100644 --- a/mods/ENTITIES/mobs_mc_gameconfig/init.lua +++ b/mods/ENTITIES/mobs_mc_gameconfig/init.lua @@ -85,7 +85,6 @@ mobs_mc.override.items = { nether_brick_block = "mcl_nether:nether_brick", netherrack = "mcl_nether:netherrack", nether_star = "mcl_mobitems:nether_star", - nether_portal = "mcl_portals:portal", mycelium = "mcl_core:mycelium", carrot = "mcl_farming:carrot_item", golden_carrot = "mcl_farming:carrot_item_gold", @@ -158,6 +157,7 @@ mobs_mc.override.replace = { -- Sheep eat grass sheep = { { "mcl_core:dirt_with_grass", "mcl_core:dirt", -1 }, + { "mcl_core:dirt_with_dry_grass", "mcl_core:dirt", -1 }, { "mcl_flowers:tallgrass", "air", 0 }, }, -- Silverfish populate stone, etc. with monster eggs @@ -177,11 +177,7 @@ mobs_mc.override.enderman_takable = { "group:enderman_takable", } mobs_mc.override.enderman_replace_on_take = { - -- Turn covered dirt blocks to normal dirt. - -- This is a workaround because the dirt with grass texture fails when held by the enderman - -- (because of the node coloring). - -- FIXME: Remove these lines as soon we support rendering dirt with grass - ["mcl_core:dirt_with_grass"] = "mcl_core:dirt", + ["mcl_core:dirt_with_dry_grass"] = "mcl_core:dirt_with_grass", } mobs_mc.override.misc = { totem_fail_nodes = { "mcl_core:void", "mcl_core:realm_barrier" }, @@ -208,17 +204,17 @@ mobs_mc.override.enderman_block_texture_overrides = { mobs_mc.override.spawn = { solid = { "group:solid", }, -- spawn on "solid" nodes grassland = { "mcl_core:dirt_with_grass" }, - savanna = { "mcl_core:dirt_with_grass" }, - grassland_savanna = { "mcl_core:dirt_with_grass" }, + savanna = { "mcl_core:dirt_with_dry_grass" }, + grassland_savanna = { "mcl_core:dirt_with_grass", "mcl_core:dirt_with_dry_grass" }, desert = { "mcl_core:sand", "mcl_core:sandstone" }, jungle = { "mcl_core:jungletree", "mcl_core:jungleleaves", "mcl_flowers:fern", "mcl_core:vine" }, - snow = { "mcl_core:snow", "mcl_core:snowblock", "mcl_core:dirt_with_grass_snow" }, + snow = { "mcl_core:snow", "mcl_core:snowblock", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow" }, -- End stone added for shulkers because End cities don't generate yet end_city = { "mcl_end:end_stone", "mcl_end:purpur_block" }, + nether = { "mcl_nether:netherrack", "mcl_nether:quartz_ore" }, -- Netherrack added because there are no Nether fortresses yet. TODO: Remove netherrac from list as soon they're available nether_fortress = { "mcl_nether:nether_brick", "mcl_nether:netherrack" }, - nether_portal = { mobs_mc.override.items.nether_portal }, - wolf = { mobs_mc.override.items.grass_block, "mcl_core:dirt", "mcl_core:dirt_with_grass_snow", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol" }, + wolf = { mobs_mc.override.items.grass_block, "mcl_core:dirt", "mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_dry_grass_snow", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol" }, } -- This table contains important spawn height references for the mob spawn height. diff --git a/mods/ENTITIES/mobs_mc_gameconfig/textures/mobs_mc_gameconfig_enderman_cactus_background.png b/mods/ENTITIES/mobs_mc_gameconfig/textures/mobs_mc_gameconfig_enderman_cactus_background.png index 6ec1170e..e2f7ad9a 100644 Binary files a/mods/ENTITIES/mobs_mc_gameconfig/textures/mobs_mc_gameconfig_enderman_cactus_background.png and b/mods/ENTITIES/mobs_mc_gameconfig/textures/mobs_mc_gameconfig_enderman_cactus_background.png differ diff --git a/mods/ENVIRONMENT/lightning/init.lua b/mods/ENVIRONMENT/lightning/init.lua index ae7c7700..bf077105 100644 --- a/mods/ENVIRONMENT/lightning/init.lua +++ b/mods/ENVIRONMENT/lightning/init.lua @@ -120,7 +120,7 @@ lightning.strike = function(pos) glow = minetest.LIGHT_MAX, }) - minetest.sound_play({ pos = pos, name = "lightning_thunder", gain = 10, max_hear_distance = 500 }, true) + minetest.sound_play({ pos = pos, name = "lightning_thunder", gain = 10, max_hear_distance = 500 }) -- damage nearby objects, transform mobs local objs = minetest.get_objects_inside_radius(pos2, 3.5) @@ -132,7 +132,7 @@ lightning.strike = function(pos) if minetest.get_modpath("mcl_death_messages") then mcl_death_messages.player_damage(obj, S("@1 was struck by lightning.", obj:get_player_name())) end - obj:set_hp(obj:get_hp()-5, { type = "punch", from = "mod" }) + obj:set_hp(obj:get_hp()-5) -- Mobs elseif lua and lua._cmi_is_mob then -- pig → zombie pigman (no damage) @@ -164,7 +164,7 @@ lightning.strike = function(pos) -- Other mobs: Just damage else - obj:set_hp(obj:get_hp()-5, { type = "punch", from = "mod" }) + obj:set_hp(obj:get_hp()-5, "lightning") end end end diff --git a/mods/ENVIRONMENT/lightning/locale/lightning.es.tr b/mods/ENVIRONMENT/lightning/locale/lightning.es.tr deleted file mode 100644 index 5d207a5c..00000000 --- a/mods/ENVIRONMENT/lightning/locale/lightning.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: lightning -@1 was struck by lightning.=@ 1 fue alcanzado por un rayo. -Let lightning strike at the specified position or yourself=Deje que un rayo golpee en la posición especificada o sobre usted mismo. -No position specified and unknown player=Ninguna posición especificada y jugador desconocido diff --git a/mods/ENVIRONMENT/lightning/locale/lightning.fr.tr b/mods/ENVIRONMENT/lightning/locale/lightning.fr.tr deleted file mode 100644 index 18c61d51..00000000 --- a/mods/ENVIRONMENT/lightning/locale/lightning.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# 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 -No position specified and unknown player=Aucune position spécifiée et joueur inconnu diff --git a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_1.png b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_1.png index 5f6c6086..37af59e0 100644 Binary files a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_1.png and b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_1.png differ diff --git a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_2.png b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_2.png index cb6cc837..7bab36b7 100644 Binary files a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_2.png and b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_2.png differ diff --git a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_3.png b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_3.png index 17e1d34e..f090529e 100644 Binary files a/mods/ENVIRONMENT/lightning/textures/lightning_lightning_3.png and b/mods/ENVIRONMENT/lightning/textures/lightning_lightning_3.png differ diff --git a/mods/ENVIRONMENT/mcl_moon/API.md b/mods/ENVIRONMENT/mcl_moon/API.md deleted file mode 100644 index 553df0de..00000000 --- a/mods/ENVIRONMENT/mcl_moon/API.md +++ /dev/null @@ -1,15 +0,0 @@ -# `mcl_moon` API -This API has one function: - -## `mcl_moon.get_moon_phase()` - -Returns current moon phase (0-7). - -* 0 = Full Moon -* 1 = Waning Gibbous -* 2 = Last Quarter -* 3 = Waning Crescent -* 4 = New Moon -* 5 = Waxing Crescent -* 6 = First Quarter -* 7 = Waxing Gibbous diff --git a/mods/ENVIRONMENT/mcl_moon/init.lua b/mods/ENVIRONMENT/mcl_moon/init.lua deleted file mode 100644 index 4ee2623a..00000000 --- a/mods/ENVIRONMENT/mcl_moon/init.lua +++ /dev/null @@ -1,64 +0,0 @@ -local MOON_PHASES = 8 -local MOON_PHASES_HALF = MOON_PHASES / 2 -local SHEET_W = 4 -local SHEET_H = 2 - --- Randomize initial moon phase, based on map seed -local phase_offset -local mg_seed = minetest.get_mapgen_setting("seed") -local rand = PseudoRandom(mg_seed) -local phase_offset = rand:next(0, MOON_PHASES - 1) -rand = nil - -minetest.log("info", "[mcl_moon] Moon phase offset of this world: "..phase_offset) - -mcl_moon = {} -mcl_moon.MOON_PHASES = MOON_PHASES - -mcl_moon.get_moon_phase = function() - local after_midday = 0 - -- Moon phase changes after midday - local tod = minetest.get_timeofday() - if tod > 0.5 then - after_midday = 1 - end - return (minetest.get_day_count() + phase_offset + after_midday) % MOON_PHASES -end - -local get_moon_texture = function() - local phase = mcl_moon.get_moon_phase() - local x = phase % MOON_PHASES_HALF - local y - if phase >= MOON_PHASES_HALF then - y = 1 - else - y = 0 - end - return "mcl_moon_moon_phases.png^[sheet:"..SHEET_W.."x"..SHEET_H..":"..x..","..y -end - -local timer = 0 -local last_reported_phase = nil -minetest.register_globalstep(function(dtime) - timer = timer + dtime - if timer < 8 then - return - end - timer = 0 - local phase = mcl_moon.get_moon_phase() - -- No-op when moon phase didn't change yet - if last_reported_phase == phase then - return - end - minetest.log("info", "[mcl_moon] New moon phase: "..phase) - last_reported_phase = phase - local moon_arg = {texture = get_moon_texture()} - local players = minetest.get_connected_players() - for p=1, #players do - players[p]:set_moon(moon_arg) - end -end) - -minetest.register_on_joinplayer(function(player) - player:set_moon({texture = get_moon_texture(), scale=3.75}) -end) diff --git a/mods/ENVIRONMENT/mcl_moon/mod.conf b/mods/ENVIRONMENT/mcl_moon/mod.conf deleted file mode 100644 index 9ff8c04b..00000000 --- a/mods/ENVIRONMENT/mcl_moon/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = mcl_moon -description = Adds moon phases to the game diff --git a/mods/ENVIRONMENT/mcl_moon/textures/mcl_moon_moon_phases.png b/mods/ENVIRONMENT/mcl_moon/textures/mcl_moon_moon_phases.png deleted file mode 100644 index d2ee963a..00000000 Binary files a/mods/ENVIRONMENT/mcl_moon/textures/mcl_moon_moon_phases.png and /dev/null differ diff --git a/mods/ENVIRONMENT/mcl_void_damage/init.lua b/mods/ENVIRONMENT/mcl_void_damage/init.lua index f4824414..5490f500 100644 --- a/mods/ENVIRONMENT/mcl_void_damage/init.lua +++ b/mods/ENVIRONMENT/mcl_void_damage/init.lua @@ -1,79 +1,42 @@ local S = minetest.get_translator("mcl_void_damage") -local enable_damage = minetest.settings:get_bool("enable_damage") local voidtimer = 0 -local VOID_DAMAGE_FREQ = 0.5 -local VOID_DAMAGE = 4 --- Remove entities that fall too deep into the void -minetest.register_on_mods_loaded(function() - -- We do this by overwriting on_step of all entities - for entitystring, def in pairs(minetest.registered_entities) do - local on_step_old = def.on_step - if not on_step_old then - on_step_old = function() end - end - local on_step = function(self, dtime) - on_step_old(self, dtime) - local obj = self.object - local pos = obj:get_pos() - -- Old on_step function might have deleted object, - -- so we delete it - if not pos then - return - end - - if not self._void_timer then - self._void_timer = 0 - end - self._void_timer = self._void_timer + dtime - if self._void_timer <= VOID_DAMAGE_FREQ then - return - end - self._void_timer = 0 - - local pos = obj:get_pos() - local void, void_deadly = mcl_worlds.is_in_void(pos) - if void_deadly then - local ent = obj:get_luaentity() - obj:remove() - return - end - end - def.on_step = on_step - minetest.register_entity(":"..entitystring, def) - end -end) - --- Hurt players or teleport them back to spawn if they are too deep in the void minetest.register_globalstep(function(dtime) voidtimer = voidtimer + dtime - if voidtimer > VOID_DAMAGE_FREQ then + if voidtimer > 0.5 then voidtimer = 0 + local objs = minetest.object_refs local enable_damage = minetest.settings:get_bool("enable_damage") - local players = minetest.get_connected_players() - for p=1, #players do - local player = players[p] - local pos = player:get_pos() + for id, obj in pairs(objs) do + local pos = obj:get_pos() local void, void_deadly = mcl_worlds.is_in_void(pos) if void_deadly then - local immortal_val = player:get_armor_groups().immortal + local is_player = obj:is_player() + local ent = obj:get_luaentity() + local immortal_val = obj:get_armor_groups().immortal local is_immortal = false if immortal_val and immortal_val > 0 then is_immortal = true end if is_immortal or not enable_damage then - -- If damage is disabled, we can't kill players. - -- So we just teleport the player back to spawn. - local spawn = mcl_spawn.get_spawn_pos(player) - player:set_pos(spawn) - mcl_worlds.dimension_change(player, mcl_worlds.pos_to_dimension(spawn)) - minetest.chat_send_player(player:get_player_name(), S("The void is off-limits to you!")) + if is_player then + -- If damage is disabled, we can't kill players. + -- So we just teleport the player back to spawn. + local spawn = mcl_spawn.get_spawn_pos(obj) + obj:set_pos(spawn) + mcl_worlds.dimension_change(obj, mcl_worlds.pos_to_dimension(spawn)) + minetest.chat_send_player(obj:get_player_name(), S("The void is off-limits to you!")) + else + obj:remove() + end elseif enable_damage and not is_immortal then -- Damage enabled, not immortal: Deal void damage (4 HP / 0.5 seconds) - if player:get_hp() > 0 then - mcl_death_messages.player_damage(player, S("@1 fell into the endless void.", player:get_player_name())) - player:set_hp(player:get_hp() - VOID_DAMAGE) + if obj:get_hp() > 0 then + if is_player then + mcl_death_messages.player_damage(obj, S("@1 fell into the endless void.", obj:get_player_name())) + end + obj:set_hp(obj:get_hp() - 4) end end end diff --git a/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.es.tr b/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.es.tr deleted file mode 100644 index 73d7d065..00000000 --- a/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_void_damage -The void is off-limits to you!=¡El vacío está fuera de tus límites! -@1 fell into the endless void.=@1 cayó en el vacío infinito. diff --git a/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.fr.tr b/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.fr.tr deleted file mode 100644 index 515d1c99..00000000 --- a/mods/ENVIRONMENT/mcl_void_damage/locale/mcl_void_damage.fr.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_void_damage -The void is off-limits to you!=Le vide vous est interdit! -@1 fell into the endless void.=@1 est tombé dans le vide sans fin. diff --git a/mods/ENVIRONMENT/mcl_weather/README.md b/mods/ENVIRONMENT/mcl_weather/README.md index 08f748df..837a13d3 100644 --- a/mods/ENVIRONMENT/mcl_weather/README.md +++ b/mods/ENVIRONMENT/mcl_weather/README.md @@ -1,6 +1,6 @@ `mcl_weather` ======================= -Weather mod for MineClone 2. Forked from the `weather_pack` mod by xeranas. +Weather mod for MineClone 2. Forked from `weather_pack`. Weathers included ----------------------- diff --git a/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.es.tr b/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.es.tr deleted file mode 100644 index 396b77f0..00000000 --- a/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_weather -Gives ability to control weather=Da la capacidad de controlar el clima -Changes the weather to the specified parameter.=Cambia el clima al parámetro especificado. -Error: No weather specified.=Error: no se especificó el clima. -Error: Invalid parameters.=Error: parámetros no válidos. -Error: Duration can't be less than 1 second.=Error: la duración no puede ser inferior a 1 segundo. -Error: Invalid weather specified. Use “clear”, “rain”, “snow” or “thunder”.=Error: tiempo especificado no válido. Utilice "clear", "rain", "snow" o "thunder". -Toggles between clear weather and weather with downfall (randomly rain, thunderstorm or snow)=Alterna entre clima despejado y clima con caída (lluvia al azar, tormenta o nieve) diff --git a/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.fr.tr b/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.fr.tr deleted file mode 100644 index 6fd0b4b5..00000000 --- a/mods/ENVIRONMENT/mcl_weather/locale/mcl_weather.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_weather -Gives ability to control weather=Donne la capacité de contrôler la météo -Changes the weather to the specified parameter.=Modifie la météo au paramètre spécifié. -Error: No weather specified.=Erreur: Aucune météo spécifiée. -Error: Invalid parameters.=Erreur: Paramètres non valides. -Error: Duration can't be less than 1 second.=Erreur: La durée ne peut pas être inférieure à 1 seconde. -Error: Invalid weather specified. Use “clear”, “rain”, “snow” or “thunder”.=Erreur: Météo non valide spécifiée. Utilisez "clear" (clair), "rain" (pluie), "snow" (neige) ou "thunder" (tonnerre). -Toggles between clear weather and weather with downfall (randomly rain, thunderstorm or snow)=Bascule entre temps clair et temps avec chute (au hasard entre pluie, orage ou neige) diff --git a/mods/ENVIRONMENT/mcl_weather/rain.lua b/mods/ENVIRONMENT/mcl_weather/rain.lua index 0dde0d2d..76e38608 100644 --- a/mods/ENVIRONMENT/mcl_weather/rain.lua +++ b/mods/ENVIRONMENT/mcl_weather/rain.lua @@ -20,7 +20,7 @@ mcl_weather.rain = { mcl_weather.rain.sound_handler = function(player) return minetest.sound_play("weather_rain", { - to_player = player:get_player_name(), + to_player = player, loop = true, }) end @@ -55,7 +55,7 @@ mcl_weather.rain.add_rain_particles = function(player) pos = {x=random_pos_x, y=random_pos_y, z=random_pos_z}, velocity = {x=0, y=-10, z=0}, acceleration = {x=0, y=-30, z=0}, - expirationtime = 1.0, + expirationtime = 0.2, size = math.random(0.5, 3), collisiondetection = true, collision_removal = true, @@ -96,6 +96,7 @@ end mcl_weather.rain.remove_player = function(player) local player_meta = mcl_weather.players[player:get_player_name()] if player_meta ~= nil and player_meta.origin_sky ~= nil then + player:set_sky(player_meta.origin_sky[1], player_meta.origin_sky[2], player_meta.origin_sky[3], true) player:set_clouds({color="#FFF0F0E5"}) mcl_weather.players[player:get_player_name()] = nil end @@ -204,22 +205,10 @@ if mcl_weather.allow_abm then interval = 2.0, chance = 2, action = function(pos, node, active_object_count, active_object_count_wider) - -- Fire is extinguished if in rain or one of 4 neighbors is in rain if mcl_weather.rain.raining and mcl_weather.rain.extinguish_fire then - local around = { - { x = 0, y = 0, z = 0 }, - { x = -1, y = 0, z = 0 }, - { x = 1, y = 0, z = 0 }, - { x = 0, y = 0, z = -1 }, - { x = 0, y = 0, z = 1 }, - } - for a=1, #around do - local apos = vector.add(pos, around[a]) - if mcl_weather.is_outdoor(apos) then - minetest.remove_node(pos) - minetest.sound_play("fire_extinguish_flame", {pos = pos, max_hear_distance = 8, gain = 0.1}, true) - return - end + if mcl_weather.is_outdoor(pos) then + minetest.remove_node(pos) + minetest.sound_play("fire_extinguish_flame", {pos = pos, max_hear_distance = 8, gain = 0.1}) end end end, diff --git a/mods/ENVIRONMENT/mcl_weather/skycolor.lua b/mods/ENVIRONMENT/mcl_weather/skycolor.lua index d32c0280..196bd79f 100644 --- a/mods/ENVIRONMENT/mcl_weather/skycolor.lua +++ b/mods/ENVIRONMENT/mcl_weather/skycolor.lua @@ -18,6 +18,21 @@ mcl_weather.skycolor = { -- number of colors while constructing gradient of user given colors max_val = 1000, + -- Enables smooth transition between existing sky color and target. + smooth_transitions = true, + + -- Transition between current sky color and new user given. + transition_in_progress = false, + + -- Transition colors are generated automaticly during initialization. + transition_colors = {}, + + -- Time where transition between current color and user given will be done + transition_time = 15, + + -- Tracks how much time passed during transition + transition_timer = 0, + -- Table for tracking layer order layer_names = {}, @@ -25,6 +40,9 @@ mcl_weather.skycolor = { add_layer = function(layer_name, layer_color, instant_update) mcl_weather.skycolor.colors[layer_name] = layer_color table.insert(mcl_weather.skycolor.layer_names, layer_name) + if (instant_update ~= true) then + mcl_weather.skycolor.init_transition() + end mcl_weather.skycolor.force_update = true end, @@ -53,47 +71,18 @@ mcl_weather.skycolor = { update_sky_color = function(players) -- Override day/night ratio as well players = mcl_weather.skycolor.utils.get_players(players) + local color = mcl_weather.skycolor.current_sky_layer_color() for _, player in ipairs(players) do local pos = player:get_pos() local dim = mcl_worlds.pos_to_dimension(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, - }) - player:set_sun({visible = true, sunrise_visible = true}) - player:set_moon({visible = true}) - player:set_stars({visible = true}) + if (color == nil) then + -- No sky layers + player:set_sky(nil, "regular") player:override_day_night_ratio(nil) else -- 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) - local night_color = mcl_weather.skycolor.get_sky_layer_color(0) - 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}) + player:set_sky(color, "plain", nil, true) local lf = mcl_weather.get_current_light_factor() if mcl_weather.skycolor.current_layer_name() == "lightning" then @@ -104,7 +93,9 @@ mcl_weather.skycolor = { if light > 1 then light = 1 - (light - 1) end + light = (light * lf) + 0.15 + player:override_day_night_ratio(light) else player:override_day_night_ratio(nil) @@ -112,48 +103,73 @@ mcl_weather.skycolor = { end elseif dim == "end" then local t = "mcl_playerplus_end_sky.png" - player:set_sky({ type = "skybox", - base_color = "#000000", - textures = {t,t,t,t,t,t}, - clouds = false, - }) - player:set_sun({visible = false , sunrise_visible = false}) - player:set_moon({visible = false}) - player:set_stars({visible = false}) + player:set_sky("#000000", "skybox", {t,t,t,t,t,t}, false) player:override_day_night_ratio(0.5) elseif dim == "nether" then - player:set_sky({ type = "plain", - base_color = "#300808", - clouds = false, - }) - player:set_sun({visible = false , sunrise_visible = false}) - player:set_moon({visible = false}) - player:set_stars({visible = false}) + player:set_sky("#300808", "plain", nil, false) player:override_day_night_ratio(nil) elseif dim == "void" then - player:set_sky({ type = "plain", - base_color = "#000000", - clouds = false, - }) - player:set_sun({visible = false, sunrise_visible = false}) - player:set_moon({visible = false}) - player:set_stars({visible = false}) + player:set_sky("#000000", "plain", nil, false) end end end, -- Returns current layer color in {r, g, b} format - get_sky_layer_color = function(timeofday) + current_sky_layer_color = function() if #mcl_weather.skycolor.layer_names == 0 then return nil end -- min timeofday value 0; max timeofday value 1. So sky color gradient range will be between 0 and 1 * mcl_weather.skycolor.max_val. + local timeofday = minetest.get_timeofday() local rounded_time = math.floor(timeofday * mcl_weather.skycolor.max_val) local color = mcl_weather.skycolor.utils.convert_to_rgb(mcl_weather.skycolor.min_val, mcl_weather.skycolor.max_val, rounded_time, mcl_weather.skycolor.retrieve_layer()) return color end, + -- Initialy used only on + update_transition_sky_color = function() + local multiplier = 100 + local rounded_time = math.floor(mcl_weather.skycolor.transition_timer * multiplier) + if rounded_time >= mcl_weather.skycolor.transition_time * multiplier then + mcl_weather.skycolor.stop_transition() + return + end + + local color = mcl_weather.skycolor.utils.convert_to_rgb(0, mcl_weather.skycolor.transition_time * multiplier, rounded_time, mcl_weather.skycolor.transition_colors) + + local players = mcl_weather.skycolor.utils.get_players(nil) + for _, player in ipairs(players) do + local pos = player:get_pos() + local dim = mcl_worlds.pos_to_dimension(pos) + if dim == "overworld" then + player:set_sky(color, "plain", nil, true) + end + end + end, + + init_transition = function() + -- sadly default sky returns unpredictible colors so transition mode becomes usable only for user defined color layers + -- Here '2' means that one color layer existed before new added and transition is posible. + if #mcl_weather.skycolor.layer_names < 2 then + return + end + + local transition_start_color = mcl_weather.skycolor.utils.get_current_bg_color() + if (transition_start_color == nil) then + return + end + local transition_end_color = mcl_weather.skycolor.current_sky_layer_color() + mcl_weather.skycolor.transition_colors = {transition_start_color, transition_end_color} + mcl_weather.skycolor.transition_in_progress = true + end, + + stop_transition = function() + mcl_weather.skycolor.transition_in_progress = false + mcl_weather.skycolor.transition_colors = {} + mcl_weather.skycolor.transition_timer = 0 + end, + utils = { convert_to_rgb = function(minval, maxval, current_val, colors) local max_index = #colors - 1 @@ -192,6 +208,12 @@ minetest.register_globalstep(function(dtime) return end + if mcl_weather.skycolor.smooth_transitions and mcl_weather.skycolor.transition_in_progress then + mcl_weather.skycolor.transition_timer = mcl_weather.skycolor.transition_timer + dtime + mcl_weather.skycolor.update_transition_sky_color() + return + end + if mcl_weather.skycolor.force_update then mcl_weather.skycolor.update_sky_color() mcl_weather.skycolor.force_update = false diff --git a/mods/ENVIRONMENT/mcl_weather/snow.lua b/mods/ENVIRONMENT/mcl_weather/snow.lua index 7adfd0d5..c1812a1b 100644 --- a/mods/ENVIRONMENT/mcl_weather/snow.lua +++ b/mods/ENVIRONMENT/mcl_weather/snow.lua @@ -13,14 +13,13 @@ mcl_weather.snow.add_snow_particles = function(player) mcl_weather.rain.last_rp_count = mcl_weather.rain.last_rp_count + 1 minetest.add_particle({ pos = {x=random_pos_x, y=random_pos_y, z=random_pos_z}, - velocity = {x = math.random(-100,100)*0.001, y = math.random(-300,-100)*0.004, z = math.random(-100,100)*0.001}, - acceleration = {x = 0, y=0, z = 0}, - expirationtime = 8.0, - size = 1, + velocity = {x = math.random(-1,-0.5), y = math.random(-2,-1), z = math.random(-1,-0.5)}, + acceleration = {x = math.random(-1,-0.5), y=-0.5, z = math.random(-1,-0.5)}, + expirationtime = 2.0, + size = math.random(0.5, 2), collisiondetection = true, collision_removal = true, - object_collision = false, - vertical = false, + vertical = true, texture = mcl_weather.snow.get_texture(), playername = player:get_player_name() }) @@ -50,7 +49,14 @@ end -- Simple random texture getter mcl_weather.snow.get_texture = function() - return "weather_pack_snow_snowflake"..math.random(1,2)..".png" + local texture_name + local random_number = math.random() + if random_number > 0.5 then + texture_name = "weather_pack_snow_snowflake1.png" + else + texture_name = "weather_pack_snow_snowflake2.png" + end + return texture_name; end local timer = 0 diff --git a/mods/ENVIRONMENT/mcl_weather/weather_core.lua b/mods/ENVIRONMENT/mcl_weather/weather_core.lua index fb90aa74..29da968f 100644 --- a/mods/ENVIRONMENT/mcl_weather/weather_core.lua +++ b/mods/ENVIRONMENT/mcl_weather/weather_core.lua @@ -117,7 +117,7 @@ mcl_weather.get_random_pos_by_player_look_dir = function(player) end end - random_pos_y = math.random() + math.random(player_pos.y + 10, player_pos.y + 15) + random_pos_y = math.random() + math.random(player_pos.y + 1, player_pos.y + 3) return random_pos_x, random_pos_y, random_pos_z end diff --git a/mods/HELP/doc/doc/README.md b/mods/HELP/doc/doc/README.md index 72d2b85f..f95b5f89 100644 --- a/mods/HELP/doc/doc/README.md +++ b/mods/HELP/doc/doc/README.md @@ -4,7 +4,7 @@ can access help pages about various things and the modder can add those pages. The mod itself does not provide any help texts, just the framework. It is the heart of the Help modpack, on which the other Help mods depend. -Current version: 1.2.1 +Current version: 1.1.1 ## For players ### Accessing the help @@ -50,8 +50,3 @@ For custom entities, you may also want to add support for `doc_identifier`. ## License of everything MIT License - -## Translation credits -French: Karamel -German: Wuzzy -Portuguese: BrunoMine diff --git a/mods/HELP/doc/doc/init.lua b/mods/HELP/doc/doc/init.lua index 360cc149..dcb4c785 100644 --- a/mods/HELP/doc/doc/init.lua +++ b/mods/HELP/doc/doc/init.lua @@ -17,7 +17,7 @@ doc = {} -- Version number (follows the SemVer specification 2.0.0) doc.VERSION = {} doc.VERSION.MAJOR = 1 -doc.VERSION.MINOR = 2 +doc.VERSION.MINOR = 0 doc.VERSION.PATCH = 1 doc.VERSION.STRING = doc.VERSION.MAJOR.."."..doc.VERSION.MINOR.."."..doc.VERSION.PATCH @@ -191,7 +191,7 @@ function doc.mark_entry_as_revealed(playername, category_id, entry_id) local last_sound = doc.data.players[playername].last_reveal_sound if last_sound == nil or os.difftime(os.time(), last_sound) >= 1 then -- Play notification sound - minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername }, true) + minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername }) doc.data.players[playername].last_reveal_sound = os.time() end end @@ -224,7 +224,7 @@ function doc.mark_all_entries_as_revealed(playername) msg = S("All help entries revealed!") -- Play notification sound (ignore sound limit intentionally) - minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername }, true) + minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername }) doc.data.players[playername].last_reveal_sound = os.time() else msg = S("All help entries are already revealed.") @@ -657,8 +657,7 @@ end) function doc.formspec_core(tab) if tab == nil then tab = 1 else tab = tostring(tab) end - return "size["..doc.FORMSPEC.WIDTH..","..doc.FORMSPEC.HEIGHT.."]".. - "tabheader[0,0;doc_header;".. + return "size["..doc.FORMSPEC.WIDTH..","..doc.FORMSPEC.HEIGHT.."]tabheader[0,0;doc_header;".. minetest.formspec_escape(S("Category list")) .. "," .. minetest.formspec_escape(S("Entry list")) .. "," .. minetest.formspec_escape(S("Entry")) .. ";" @@ -939,9 +938,7 @@ function doc.formspec_entry(category_id, entry_id, playername) if ename == nil or ename == "" then ename = S("Nameless entry (@1)", entry_id) end - - formstring = "style_type[textarea;textcolor=#FFFFFF]" - formstring = formstring .. "label[0,0;"..minetest.formspec_escape(S("Help > @1 > @2", category.def.name, ename)).."]" + formstring = "label[0,0;"..minetest.formspec_escape(S("Help > @1 > @2", category.def.name, ename)).."]" formstring = formstring .. category.def.build_formspec(entry.data, playername) formstring = formstring .. doc.formspec_entry_navigation(category_id, entry_id) end diff --git a/mods/HELP/doc/doc/locale/doc.fr.tr b/mods/HELP/doc/doc/locale/doc.fr.tr deleted file mode 100644 index f7f33b0f..00000000 --- a/mods/HELP/doc/doc/locale/doc.fr.tr +++ /dev/null @@ -1,52 +0,0 @@ -# textdomain:doc -<=< ->=> -Access to the requested entry has been denied; this entry is secret. You may unlock access by progressing in the game. Figure out on your own how to unlock this entry.=L'accès à cette page a été refusé; cette page est secrète. Vous pouvez débloquer l'accès en progressant dans le jeu. Trouvez comment débloquer cette page. -All entries read.=Toutes les pages sont lues. -All help entries revealed!=Toutes les pages d'aide ont été découvertes ! -All help entries are already revealed.=Toutes les pages d'aide sont déjà découvertes. -Allows you to reveal all hidden help entries with /help_reveal=Vous permet de découvrir toutes les pages d'aide cachées avec /help_reveal -Category list=Liste des catégories -Currently all entries in this category are hidden from you.=Toutes les pages de cette catégories vous sont cachées. -Unlock new entries by progressing in the game.=Débloquez de nouvelles pages en progressant dans le jeu. -Help=Aide -Entry=Page -Entry list=Liste des pages -Error: Access denied.=Erreur : Accès refusé. -Error: No help available.=Erreur : Aucune aide disponible. -# Affichage dans un bouton court -Go to category list=Voir les catégories -Go to entry list=Voir les pages -Help > @1=Aide > @1 -Help > @1 > @2=Aide > @1 > @2 -Help > @1 > (No Entry)=Aide > @1 > (Aucune page) -Help > (No Category)=Aide > (Aucune catégorie) -Hidden entries: @1=Pages cachées : @1 -Nameless entry (@1)=Pages sans nom (@1) -New entries: @1=Nouvelles pages : @1 -New help entry unlocked: @1 > @2=Nouvelles pages d'aide débloquées : @1 -No categories have been registered, but they are required to provide help.=Aucune catégorie n'a été enregistrée, mais elles sont nécessaires pour fournir l'aide. -The Documentation System [doc] does not come with help contents on its own, it needs additional mods to add help content. Please make sure such mods are enabled on for this world, and try again.=Le Système de Documentation [doc] n'est fourni avec aucun contenu d'aide, il a besoin d'autres mods pour ajouter le contenu de l'aide. Vérifiez que de tels mods sont activés pour ce monde, et réessayez. -Number of entries: @1=Nombre de pages : @1 -OK=OK -Open a window providing help entries about Minetest and more=Ouvrire une fenêtre contenant les pages d'aides à propos de Minetest. -Please select a category you wish to learn more about:=Veuillez choisir une catégorie pour laquelle vous souhaitez en savoir plus : -Recommended mods: doc_basics, doc_items, doc_identifier, doc_encyclopedia.=Mods recommandés : doc_basics, doc_items, doc_identifier, doc_encyclopedia. -Reveal all hidden help entries to you=Révéler toutes les pages d'aide cachées pour vous. -Show entry=Voir la page -Show category=Voir la catégorie -Show next entry=Voir la page suivante -Show previous entry=Voir la page précédente -This category does not have any entries.=Cette catégorie ne contient aucune page. -This category has the following entries:=Cette catégorie contient les pages suivantes : -This category is empty.=Cette catégorie est vide. -This is the help.=Ceci est l'aide. -You haven't chosen a category yet. Please choose one in the category list first.=Vous n'avez pas encore choisi de catégorie. Veulliez d'abord en choisir une dans la liste. -You haven't chosen an entry yet. Please choose one in the entry list first.=Vous n'avez pas encore choisi de page. Veuillez d'abord en choisir une dans la liste. -Collection of help texts=Collection des textes d'aide -Notify me when new help is available=Recevoir une notification quand une nouvelle page d'aide est disponible -Play notification sound when new help is available=Jouer un son de notification lorsqu'une nouvelle page d'aide est disponible -Show previous image=Voir l'image précédente -Show previous gallery page=Voir la page précédente de la galerie -Show next image=Voir l'image suivante -Show next gallery page=Voir la page suivante de la galerie diff --git a/mods/HELP/doc/doc/locale/template.txt b/mods/HELP/doc/doc/locale/template.txt index 517c4286..fdeecfdc 100644 --- a/mods/HELP/doc/doc/locale/template.txt +++ b/mods/HELP/doc/doc/locale/template.txt @@ -7,7 +7,7 @@ All help entries revealed!= All help entries are already revealed.= Allows you to reveal all hidden help entries with /help_reveal= Category list= -Currently all entries in this category are hidden from you.= +Currently all entries in this category are hidden from you. Unlock new entries by progressing in the game.= Help= Entry= diff --git a/mods/HELP/doc/doc_identifier/init.lua b/mods/HELP/doc/doc_identifier/init.lua index 2e041ae2..2713d389 100644 --- a/mods/HELP/doc/doc_identifier/init.lua +++ b/mods/HELP/doc/doc_identifier/init.lua @@ -161,7 +161,6 @@ end minetest.register_tool("doc_identifier:identifier_solid", { description = S("Lookup Tool"), - _tt_help = S("Show help for pointed thing"), _doc_items_longdesc = S("This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used."), _doc_items_usagehelp = S("Punch any block, item or other thing about you wish to learn more about. This will open up the appropriate help entry. The tool comes in two modes which are changed by using. In liquid mode, this tool points to liquids as well while in solid mode this is not the case."), _doc_items_hidden = false, diff --git a/mods/HELP/doc/doc_identifier/locale/doc_identifier.de.tr b/mods/HELP/doc/doc_identifier/locale/doc_identifier.de.tr index 26fa3552..beba2e75 100644 --- a/mods/HELP/doc/doc_identifier/locale/doc_identifier.de.tr +++ b/mods/HELP/doc/doc_identifier/locale/doc_identifier.de.tr @@ -15,4 +15,3 @@ Punch any block, item or other thing about you wish to learn more about. This wi This block cannot be identified because the world has not materialized at this point yet. Try again in a few seconds.=Dieser Block kann nicht identifiziert werden, weil sich die Welt an dieser Stelle noch nicht materialisiert hat. Versuchen Sie es in ein paar Sekunden erneut. This is a player.=Dies ist ein Spieler. This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used.=Dieser nützliche kleine Helfer kann benutzt werden, um schnell etwas über die nähere Umgebung zu erfahren. Er identifiziert und analysiert Blöcke, Gegenstände und andere Dinge und zeigt ausführliche Informationen über all das, worauf man ihn anwendet. -Show help for pointed thing=Hilfe für gezeigtes Ding anzeigen diff --git a/mods/HELP/doc/doc_identifier/locale/doc_identifier.es.tr b/mods/HELP/doc/doc_identifier/locale/doc_identifier.es.tr deleted file mode 100644 index 66c272f7..00000000 --- a/mods/HELP/doc/doc_identifier/locale/doc_identifier.es.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain:doc_identifier -Error: This node, item or object is undefined. This is always an error.=Error: este nodo, elemento u objeto no está definido. Esto siempre es un error. -This can happen for the following reasons:=Esto puede suceder por los siguientes motivos: -• The mod which is required for it is not enabled=• El mod que se requiere para ello no está habilitado -• The author of the game or a mod has made a mistake=• El autor del juego o un mod ha cometido un error -It appears to originate from the mod “@1”, which is enabled.=Parece originarse del mod "@1", que está habilitado. -It appears to originate from the mod “@1”, which is not enabled!=¡Parece originarse del mod "@1", que no está habilitado! -Its identifier is “@1”.=Su identificador es "@1“. -Lookup Tool=Herramienta lupa -No help entry for this block could be found.=No se encontró ninguna entrada de ayuda para este bloque. -No help entry for this item could be found.=No se pudo encontrar ninguna entrada de ayuda para este artículo. -No help entry for this object could be found.=No se pudo encontrar ninguna entrada de ayuda para este objeto. -OK=Aceptar -Punch any block, item or other thing about you wish to learn more about. This will open up the appropriate help entry. The tool comes in two modes which are changed by using. In liquid mode, this tool points to liquids as well while in solid mode this is not the case.=Perfore cualquier bloque, elemento u otra cosa sobre la que desee obtener más información. Esto abrirá la entrada de ayuda apropiada. La herramienta viene en dos modos que se cambian mediante el uso. En modo líquido, esta herramienta también apunta a líquidos, mientras que en modo sólido este no es el caso. -This block cannot be identified because the world has not materialized at this point yet. Try again in a few seconds.=Este bloque no se puede identificar porque el mundo aún no se ha materializado en este momento. Inténtalo de nuevo en unos segundos. -This is a player.=Este es un jugador. -This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used.=Este útil pequeño ayudante se puede utilizar para aprender rápidamente sobre el entorno más cercano. Identifica y analiza bloques, elementos y otras cosas y muestra información extensa sobre la cosa en la que se utiliza. diff --git a/mods/HELP/doc/doc_identifier/locale/doc_identifier.fr.tr b/mods/HELP/doc/doc_identifier/locale/doc_identifier.fr.tr deleted file mode 100644 index 2b1f3729..00000000 --- a/mods/HELP/doc/doc_identifier/locale/doc_identifier.fr.tr +++ /dev/null @@ -1,18 +0,0 @@ -# textdomain:doc_identifier -Error: This node, item or object is undefined. This is always an error.=Erreur: ce nœud, élément ou objet n'est pas défini. C'est toujours une erreur. -This can happen for the following reasons:=Cela peut se produire pour les raisons suivantes: -• The mod which is required for it is not enabled=• Le mod qui lui est nécessaire n'est pas activé -• The author of the game or a mod has made a mistake=• L'auteur du jeu ou d'un mod a fait une erreur -It appears to originate from the mod “@1”, which is enabled.=Cela semble provenir du mod “@1”, qui est activé. -It appears to originate from the mod “@1”, which is not enabled!=Cela semble provenir du mod “@1”, qui n'est pas activé!. -Its identifier is “@1”.=Son identifiant est “@1” -Lookup Tool=Outil de recherche -No help entry for this block could be found.=Aucune entrée d'aide pour ce bloc n'a pu être trouvée. -No help entry for this item could be found.=Aucune entrée d'aide pour cet élément n'a pu être trouvée. -No help entry for this object could be found.=Aucune entrée d'aide pour cet objet n'a pu être trouvée. -OK=OK -Punch any block, item or other thing about you wish to learn more about. This will open up the appropriate help entry. The tool comes in two modes which are changed by using. In liquid mode, this tool points to liquids as well while in solid mode this is not the case.=Frappez n'importe quel bloc, élément ou autre chose sur lequel vous souhaitez en savoir plus. Cela ouvrira l'entrée d'aide appropriée. L'outil est disponible en deux modes qui changent suivant l'usage. En mode liquide, cet outil pointe également sur les liquides tandis qu'en mode solide, ce n'est pas le cas. -This block cannot be identified because the world has not materialized at this point yet. Try again in a few seconds.=Ce bloc ne peut pas être identifié car le monde ne s'est pas encore matérialisé à ce stade. Réessayez dans quelques secondes. -This is a player.=Ceci est un joueur. -This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used.=Ce pratique petit assistant peut être utilisé pour en savoir plus rapidement sur son environnement proche. Il identifie et analyse les blocs, articles et autres choses et il affiche des informations détaillées sur la chose sur laquelle il est utilisé. -Show help for pointed thing=Affiche l'aide des choses pointées diff --git a/mods/HELP/doc/doc_identifier/locale/template.txt b/mods/HELP/doc/doc_identifier/locale/template.txt index 104f0ea1..a35201af 100644 --- a/mods/HELP/doc/doc_identifier/locale/template.txt +++ b/mods/HELP/doc/doc_identifier/locale/template.txt @@ -15,4 +15,3 @@ Punch any block, item or other thing about you wish to learn more about. This wi This block cannot be identified because the world has not materialized at this point yet. Try again in a few seconds.= This is a player.= This useful little helper can be used to quickly learn more about about one's closer environment. It identifies and analyzes blocks, items and other things and it shows extensive information about the thing on which it is used.= -Show help for pointed thing= diff --git a/mods/HELP/doc/doc_items/API.md b/mods/HELP/doc/doc_items/API.md index ca795956..f8d3b87c 100644 --- a/mods/HELP/doc/doc_items/API.md +++ b/mods/HELP/doc/doc_items/API.md @@ -42,7 +42,7 @@ easy and quick manipulation of the item help entries. All fields are optional. * `_doc_items_hidden`: Whether entry is hidden (default: `false` for air and hand, `true` for everything else) * `_doc_items_create_entry`: Whether to create an entry for this item (default: `true`) * `_doc_items_entry_name`: The title of the entry. By default, this is the same as the `description` field - of the item (discarding text after the first newline). This field is required if the `description` is empty + of the item. This field is required if the `description` is empty * `_doc_items_durability`: This field is for describing how long a tool can be used before it breaks. Choose one data type: * It it is a `number`: Fixed number of uses before it breaks * If it is a `string`: Free-form text which explains how the durability works. Try to keep it short and only use it if the other types won't work diff --git a/mods/HELP/doc/doc_items/README.md b/mods/HELP/doc/doc_items/README.md index f361adb1..c3e6f67c 100644 --- a/mods/HELP/doc/doc_items/README.md +++ b/mods/HELP/doc/doc_items/README.md @@ -1,4 +1,4 @@ -# Item Help [`doc_items`] (Version 1.2.0) +# Item Help [`doc_items`] (Version 1.1.2) ## Description Automatically generated help texts of blocks, tools, weapons, crafting items and other items. @@ -66,8 +66,3 @@ Read `API.md` to learn more. ## License Everything in this mod is licensed under the MIT License. - -## Translation credits -French: Karamel -German: Wuzzy -Portuguese: BrunoMine diff --git a/mods/HELP/doc/doc_items/init.lua b/mods/HELP/doc/doc_items/init.lua index b0be3e12..7ad8d58b 100644 --- a/mods/HELP/doc/doc_items/init.lua +++ b/mods/HELP/doc/doc_items/init.lua @@ -14,8 +14,16 @@ doc.sub.items.temp.eat_bad = S("Hold it in your hand, then leftclick to eat it. doc.sub.items.temp.rotate_node = S("This block's rotation is affected by the way you place it: Place it on the floor or ceiling for a vertical orientation; place it at the side for a horizontal orientation. Sneaking while placing it leads to a perpendicular orientation instead.") doc.sub.items.settings = {} -doc.sub.items.settings.friendly_group_names = minetest.settings:get_bool("doc_items_friendly_group_names", false) -doc.sub.items.settings.itemstring = minetest.settings:get_bool("doc_items_show_itemstrings", false) +doc.sub.items.settings.friendly_group_names = false +local setting = minetest.settings:get_bool("doc_items_friendly_group_names") +if setting ~= nil then + doc.sub.items.settings.friendly_group_names = setting +end +doc.sub.items.settings.itemstring = false +setting = minetest.settings:get_bool("doc_items_show_itemstrings") +if setting ~= nil then + doc.sub.items.settings.itemstring = setting +end -- Local stuff local groupdefs = {} @@ -65,14 +73,10 @@ local groups_to_string = function(grouptable, filter) end end --- Removes all text after the first newline (including the newline) +-- Replaces all newlines with spaces local scrub_newlines = function(text) - local spl = string.split(text, "\n") - if spl and #spl > 0 then - return spl[1] - else - return text - end + local new, x = string.gsub(text, "\n", " ") + return new end --[[ Append a newline to text, unless it already ends with a newline. ]] diff --git a/mods/HELP/doc/doc_items/locale/doc_items.de.tr b/mods/HELP/doc/doc_items/locale/doc_items.de.tr index 90747c38..b4a53a8a 100644 --- a/mods/HELP/doc/doc_items/locale/doc_items.de.tr +++ b/mods/HELP/doc/doc_items/locale/doc_items.de.tr @@ -140,4 +140,3 @@ Mining durability:=Grabehaltbarkeit: • @1, level @2: Unlimited=• @1, Stufe @2: Unbegrenzt This block's rotation is affected by the way you place it: Place it on the floor or ceiling for a vertical orientation; place it at the side for a horizontal orientation. Sneaking while placing it leads to a perpendicular orientation instead.=Die Rotation dieses Blocks hängt davon ab, wie sie ihn platzieren: Platzieren Sie ihn auf den Boden oder an die Decke, um ihn vertikal aufzustellen; platzieren Sie in an der Seite für eine horizontale Ausrichtung. Wenn Sie während des Bauens schleichen, wird der Block stattdessen senkrecht zur üblichen Ausrichtung rotiert. Toughness level: @1=Härtegrad: @1 -This block is slippery.=Dieser Block ist rutschig. diff --git a/mods/HELP/doc/doc_items/locale/doc_items.fr.tr b/mods/HELP/doc/doc_items/locale/doc_items.fr.tr deleted file mode 100644 index 5d655404..00000000 --- a/mods/HELP/doc/doc_items/locale/doc_items.fr.tr +++ /dev/null @@ -1,143 +0,0 @@ -# textdomain:doc_items -Using it as fuel turns it into: @1.=L'utiliser comme combustible le transforme en : @1. -@1 seconds=@1 secondes -# Item count times item name -%@1×@2=%@1×@ -# Itemname (25%) -@1 (@2%)=@1 (@2%) -# Itemname (<0.5%) -@1 (<0.5%)=@1 (<0.5%) -# Itemname (ca. 25%) -@1 (ca. @2%)=@1 (ca. @2%) -# List separator (e.g. “one, two, three”) -, =, -# Final list separator (e.g. “One, two and three”) - and = et -1 second=1 seconde -A transparent block, basically empty space. It is usually left behind after digging something.=Un bloc transparent, tout simplement un espace vide. Il apparaît généralement après avoir creusé quelque chose. -Air=Air -Blocks=Blocs -Building another block at this block will place it inside and replace it.=Construire un autre bloc sur ce bloc le placera à l'intérieur et le remplacera. -Building this block is completely silent.=Construire ce bloc est complètement silentieux -Collidable: @1=Percutable : @1 -Description: @1=Description : @1 -Falling blocks can go through this block; they destroy it when doing so.=Les blocs en chute peuvent traverser ce bloc; ils le détruisent en faisant cela. -Full punch interval: @1 s=Intervalle de frappe : @1 -Hand=Main -Hold it in your hand, then leftclick to eat it.=Tenez-le en main, puis cliquez-gauche pour le manger. -Hold it in your hand, then leftclick to eat it. But why would you want to do this?=Tenez-le en main, puis cliquez-gauche pour le manger. Mais pourquoi feriez-vous cela ? -Item reference of all wieldable tools and weapons=L'index des outils et armes manipulables -Item reference of blocks and other things which are capable of occupying space=L'index des blocs et autres choses qui peuvent occuper l'espace -Item reference of items which are neither blocks, tools or weapons (esp. crafting items)=L'index des choses qui ne sont ni des blocs, ni des outils ou armes (particulièrement les objets d'assemblage) -Liquids can flow into this block and destroy it.=Les liquides peuvent couler sur ce bloc et le détruire. -Maximum stack size: @1=Taille maximum de pile : @1 -Mining level: @1=Niveau de minage : @1 -Mining ratings:=Notes de minage : -• @1, rating @2: @3 s - @4 s=• @1, note @2 : @3s - @4s -• @1, rating @2: @3 s=• @1, note @2 : @3s -Mining times:=Temps de minage : -Mining this block is completely silent.=Miner ce bloc est complètement silencieux. -Miscellaneous items=Objets divers -No=Non -Pointable: No=Pointable : Non -Pointable: Only by special items=Pointable : Seulement avec des objets spéciaux -Pointable: Yes=Pointable : Oui -Punches with this block don't work as usual; melee combat and mining are either not possible or work differently.=Les frappes avec ce bloc ne fonctionnent pas de la manière usuelle ; le combat au corps à corps et le minage ne sont soit pas possible ou fonctionnent différemment. -Punches with this item don't work as usual; melee combat and mining are either not possible or work differently.=Les frappes avec cet objet ne fonctionnent pas de la manière usuelle ; le combat au corps à corps et le minage ne sont soit pas possible ou fonctionnent différemment. -Punches with this tool don't work as usual; melee combat and mining are either not possible or work differently.=Les frappes avec cet outil ne fonctionnent pas de la manière usuelle ; le combat au corps à corps et le minage ne sont soit pas possible ou fonctionnent différemment. -Range: @1=Portée : @1 -# Range: () -Range: @1 (@2)=Portée : @1 (@2) -Range: 4=Portée : 4 -# Rating used for digging times -Rating @1=Note @1 -# @1 is minimal rating, @2 is maximum rating -Rating @1-@2=Note @1-@2 -The fall damage on this block is increased by @1%.=Les domages de chute sur ce bloc sont augmentés de @1%. -The fall damage on this block is reduced by @1%.=Les domages de chute sur ce bloc sont réduits de @1%. -This block allows light to propagate with a small loss of brightness, and sunlight can even go through losslessly.=Ce bloc laisse passer la lumière avec une petite perte de luminosité, et la lumière du soleil peut la traverser sans perte. -This block allows light to propagate with a small loss of brightness.=Ce bloc laisse passer la lumière avec une petite perte de luminosité. -This block allows sunlight to propagate without loss in brightness.=The bloc laisse passer la lumière du soleil sans perte de luminosité. -This block belongs to the @1 group.=Ce bloc appartient au groupe @1. -This block belongs to these groups: @1.=Ce bloc appartient aux groupes : @1. -This block can be climbed.=Ce bloc peut être escaladé. -This block can be destroyed by any mining tool immediately.=Ce bloc peut être détruit pas n'importe quel outil de minage instantanément. -This block can be destroyed by any mining tool in half a second.=Ce bloc peut être détruit pas n'importe quel outil de minage en une demi-seconde. -This block can be mined by any mining tool immediately.=Ce bloc peut être miné avec n'importe quel outil de minage instantanément. -This block can be mined by any mining tool in half a second.=Ce bloc peut être miné avec n'importe quel outil de minage en une demi-seconde. -This block can be mined by mining tools which match any of the following mining ratings and its toughness level.=Ce bloc peut être miné avec les outils de minages qui ont les notes de minage et les niveaux de robustesse suivants : -This block can not be destroyed by ordinary mining tools.=Ce bloc ne peut pas être détruit avec les outils de minage ordinaires. -This block can not be mined by ordinary mining tools.=Ce bloc ne peut pas être miné avec les outils de minage ordinaires. -This block can serve as a smelting fuel with a burning time of @1.=Ce bloc peut servir de combustible pendant @1. -This block causes a damage of @1 hit point per second.=Ce bloc cause des domages de @1 point de vie par seconde. -This block causes a damage of @1 hit points per second.=Ce bloc cause des domages de @1 points de vie par seconde. -This block connects to blocks of the @1 group.=Ce bloc se connecte aux blocs du groupe @1. -This block connects to blocks of the following groups: @1.=Ce bloc se connecte aux blocs des groupes suivants : @1 -This block connects to these blocks: @1.=Ce bloc se connecte à ces blocs : @1 -This block connects to this block: @1.=Ce bloc se connecte à ce bloc : @1. -This block decreases your breath and causes a drowning damage of @1 hit point every 2 seconds.=Ce bloc réduit votre souffle et cause des domages de noyade de @1 point de vie toutes les 2 secondes. -This block decreases your breath and causes a drowning damage of @1 hit points every 2 seconds.=Ce bloc réduit votre souffle et cause des domages de noyade de @1 points de vie toutes les 2 secondes. -This block is a light source with a light level of @1.=Ce bloc est une source de lumière de niveau @1. -This block glows faintly with a light level of @1.=Ce bloc brille xxx avec une lumière de niveau @1. -This block is a building block for creating various buildings.=Ce bloc est un bloc de construction pour créer différentes bâtisses. -This block is a liquid with these properties:=Ce bloc est un liquide aux proprités suivantes : -This block is affected by gravity and can fall.=Ce bloc est affecté par la gravité et peut tomber. -This block is completely silent when mined or built.=Ce bloc ne fait pas de bruit lorsque l'on le mine ou le construit. -This block is completely silent when walked on, mined or built.=Ce bloc ne fait pas de bruit lorsque l'on marche dessus, le mine ou le construit. -This block is destroyed when a falling block ends up inside it.=Ce bloc est détruit lorsqu'un autre bloc tombe dessus. -This block negates all fall damage.=Ce bloc annule tous les domages de chute. -This block points to liquids.=Ce bloc peut pointer les liquides. -This block will drop as an item when a falling block ends up inside it.=Ce bloc se transformera en objet lorsqu'un autre bloc tombe dessus. -This block will drop as an item when it is not attached to a surrounding block.=Ce bloc se transformera en objet lorsqu'il n'est plus rattaché à un bloc alentour. -This block will drop as an item when no collidable block is below it.=Ce bloc se transformera en objet lorsqu'il n'y aura plus de bloc percutable en dessous. -This block will drop the following items when mined: @1.=Ce bloc donnera les objets suivant lorsque miné : @1. -This block will drop the following when mined: @1×@2.=Ce bloc donnera les objets suivant lorsque miné : @1×@2. -This block will drop the following when mined: @1.=Ce bloc donnera les objets suivant lorsque miné : @1. -This block will drop the following when mined: @1.=Ce bloc donnera les objets suivant lorsque miné : @1. -This block will make you bounce off with an elasticity of @1%.=Ce bloc vous fera rebondir avec une élasticité de @1%. -This block will randomly drop one of the following when mined: @1.=Ce bloc laissera tomber de manière aléatoire un des éléments suivants lorsque miné : @1. -This block will randomly drop up to @1 drops of the following possible drops when mined: @2.=Ce bloc laissera tomber de manière aléatoire jusqu'à @1 des éléments suivants lorque miné : -This block won't drop anything when mined.=Ce bloc ne donnera rien lorsque miné. -This is a decorational block.=C'est un bloc de décoration. -This is a melee weapon which deals damage by punching.=C'est une arme de mêlée qui inflige des dommages en frappant. -Maximum damage per hit:=Dommages maximaux par frappe : -This item belongs to the @1 group.=Cet objet appartient au groupe @1. -This item belongs to these groups: @1.=Cet objet appartient aux groupes suivants : @1 -This item can serve as a smelting fuel with a burning time of @1.=Cet objet peut servir de combustible pendant @1. -This item is primarily used for crafting other items.=Cet objet est principalement utilisé pour fabriquer d'autres objets. -This item points to liquids.=Cet objet peut pointer les liquides. -This tool belongs to the @1 group.=Cet outil appartient au groupe @1. -This tool belongs to these groups: @1.=Cet outil appartient aux groupes suivants : @1. -This tool can serve as a smelting fuel with a burning time of @1.=Cet outil peut servir de combustible pendant @1. -This tool is capable of mining.=Cet outil peut miner. -Maximum toughness levels:=Niveau de robustesse maximum : -This tool points to liquids.=Cet outil peut pointer les liquides. -Tools and weapons=Outils et armes -Unknown Node=Nœud inconnu -Usage help: @1=Aide d'utilisation : @1 -Walking on this block is completely silent.=Marcher sur ce bloc est silencieux. -Whenever you are not wielding any item, you use the hand which acts as a tool with its own capabilities. When you are wielding an item which is not a mining tool or a weapon it will behave as if it would be the hand.=Quand vous ne maniez aucun objet, vous utilisez la main qui se comporte comme un outil avec ses propres capacités. Lorsque vous maniez un objet qui n'est pas un outil ou une arme il se comportera comme si c'était la main. -Yes=Oui -You can not jump while standing on this block.=Vous ne pouvez pas sauter en étant sur ce bloc. -any level=Tous les niveaux -level 0=Niveau 0 -level 0-@1=Niveau 0-@1 -unknown=inconnu -Unknown item (@1)=Objet inconnu (@1) -• @1: @2=• @1 : @2 -• @1: @2 HP=• @1 : @2 PV -• @1: @2, @3=• @1 : @2, @3 -• Flowing range: @1=• Distance de flux : @1 -• No flowing=• Ne coule pas -• Not renewable=• Ne se renouvelle pas -• Renewable=• Renouvelable -• Viscosity: @1=• Viscosité : @1 -Itemstring: "@1"=Identifiant d'objet : "@1" -Durability: @1 uses=Durabilité : @1 utilisations -Durability: @1=Durabilité : @1 -Mining durability:=Durabilité de minage : -• @1, level @2: @3 uses=• @1, niveau @2 : @3 utilisations -• @1, level @2: Unlimited=• @1, niveau @2 : Illimité -This block's rotation is affected by the way you place it: Place it on the floor or ceiling for a vertical orientation; place it at the side for a horizontal orientation. Sneaking while placing it leads to a perpendicular orientation instead.=La manière dont vous placez ce bloc affecte sa rotation : placez-le au sol ou au plafond pour une orientation verticale ; placez-le sur un coté pour une orientation horizontale. Pour le placer de manière perpendiculaire, utilisez la touche déplacement discrêt en le plaçant. -Toughness level: @1=Niveau de robustesse : @1 -This block is slippery.=Ce bloc est glissant. diff --git a/mods/HELP/doc/doc_items/locale/template.txt b/mods/HELP/doc/doc_items/locale/template.txt index 484e40ec..68d2d0a7 100644 --- a/mods/HELP/doc/doc_items/locale/template.txt +++ b/mods/HELP/doc/doc_items/locale/template.txt @@ -140,4 +140,3 @@ Mining durability:= • @1, level @2: Unlimited= This block's rotation is affected by the way you place it: Place it on the floor or ceiling for a vertical orientation; place it at the side for a horizontal orientation. Sneaking while placing it leads to a perpendicular orientation instead.= Toughness level: @1= -This block is slippery.= diff --git a/mods/HELP/doc/doc_items/settingtypes.txt b/mods/HELP/doc/doc_items/settingtypes.txt index 43e66436..8b9d635e 100644 --- a/mods/HELP/doc/doc_items/settingtypes.txt +++ b/mods/HELP/doc/doc_items/settingtypes.txt @@ -13,4 +13,4 @@ doc_items_friendly_group_names (Show “friendly” group names) bool false #with the “give” or “debug” privilege. #The itemstring is useful to power users and programmers and #is used e.g. for the /give and /giveme commands. -doc_items_show_itemstrings (Always show itemstrings) bool false +doc_items_show_itemstrings (Show itemstrings) bool false diff --git a/mods/HELP/mcl_craftguide/init.lua b/mods/HELP/mcl_craftguide/init.lua index 5d9c2335..fab6aa53 100644 --- a/mods/HELP/mcl_craftguide/init.lua +++ b/mods/HELP/mcl_craftguide/init.lua @@ -413,7 +413,6 @@ local function get_tooltip(item, groups, cooktime, burntime) local gcol = "#FFAAFF" if #groups == 1 then local g = group_names[groups[1]] - local groupstr -- Treat the groups “compass” and “clock” as fake groups -- and just print the normal item name without special formatting if groups[1] == "compass" or groups[1] == "clock" then @@ -444,12 +443,12 @@ local function get_tooltip(item, groups, cooktime, burntime) tooltip = reg_items[item].description end - if not groups and cooktime then + if cooktime then tooltip = tooltip .. "\n" .. S("Cooking time: @1", colorize("yellow", cooktime)) end - if not groups and burntime then + if burntime then tooltip = tooltip .. "\n" .. S("Burning time: @1", colorize("yellow", burntime)) end @@ -636,7 +635,9 @@ local function make_formspec(name) if not sfinv_only then fs[#fs + 1] = fmt("size[%f,%f;]", data.iX - 0.35, iY + 4) - fs[#fs + 1] = "background9[1,1;1,1;mcl_base_textures_background9.png;true;7]" + fs[#fs + 1] = [[ + background[1,1;1,1;craftguide_bg.png;true] + ]] fs[#fs + 1] = fmt([[ tooltip[size_inc;%s] tooltip[size_dec;%s] ]], @@ -665,10 +666,11 @@ local function make_formspec(name) ESC(S("Previous page")), ESC(S("Next page"))) - fs[#fs + 1] = fmt("label[%f,%f;%s]", + fs[#fs + 1] = fmt("label[%f,%f;%s / %u]", sfinv_only and 6.3 or data.iX - 2.2, 0.22, - ESC(colorize("#383838", fmt("%s / %u", data.pagenum, data.pagemax)))) + colorize("yellow", data.pagenum), + data.pagemax) fs[#fs + 1] = fmt([[ image_button[%f,0.12;0.8,0.8;craftguide_prev_icon.png;prev;] @@ -863,7 +865,8 @@ local function get_init_items() local c = 0 for name, def in pairs(reg_items) do local is_fuel = cache_fuel(name) - if not (def.groups.not_in_craft_guide == 1) and + if not (def.groups.not_in_craft_guide == 1 or + def.groups.not_in_creative_inventory == 1) and def.description and def.description ~= "" and (cache_recipes(name) or is_fuel) then c = c + 1 diff --git a/mods/HELP/mcl_craftguide/locale/mcl_craftguide.de.tr b/mods/HELP/mcl_craftguide/locale/mcl_craftguide.de.tr index 5d8ea21b..02227194 100644 --- a/mods/HELP/mcl_craftguide/locale/mcl_craftguide.de.tr +++ b/mods/HELP/mcl_craftguide/locale/mcl_craftguide.de.tr @@ -1,5 +1,5 @@ # textdomain: mcl_craftguide -Any shulker box=Beliebige Schulkerkiste +Any shulker box=Beliebige Shulkerbox Any wool=Beliebige Wolle Any wood planks=Beliebige Holzplanken Any wood=Beliebiges Holz diff --git a/mods/HELP/mcl_craftguide/locale/mcl_craftguide.fr.tr b/mods/HELP/mcl_craftguide/locale/mcl_craftguide.fr.tr index 56d150d9..59800119 100644 --- a/mods/HELP/mcl_craftguide/locale/mcl_craftguide.fr.tr +++ b/mods/HELP/mcl_craftguide/locale/mcl_craftguide.fr.tr @@ -1,25 +1,25 @@ # textdomain: mcl_craftguide -Any shulker box=Toutes boîtes shulker -Any wool=Toutes laines -Any wood planks=Toutes planches de bois -Any wood=Tout bois -Any sand=Tout sable -Any normal sandstone=Tout grès normal -Any red sandstone=Tout grès rouge -Any carpet=Tout tapis -Any dye=Tout colorant -Any water bucket=Tout seau d'eau -Any flower=Toute fleur -Any mushroom=Tout Champignon -Any wooden slab=Toute dalle de bois -Any wooden stairs=Tout escalier de bois -Any coal=Tout charbon -Any kind of quartz block=Toute sorte de bloc de quartz -Any kind of purpur block=Toute sorte de bloc de purpur -Any stone bricks=Tout brique de pierre -Any stick=Tout bâton -Any item belonging to the @1 group=Tout élément appartenant au groupe @1 -Any item belonging to the groups: @1=Tout élément appartenant aux groupes: @1 +Any shulker box= +Any wool= +Any wood planks= +Any wood= +Any sand= +Any normal sandstone= +Any red sandstone= +Any carpet= +Any dye= +Any water bucket= +Any flower= +Any mushroom= +Any wooden slab= +Any wooden stairs= +Any coal= +Any kind of quartz block= +Any kind of purpur block= +Any stone bricks= +Any stick= +Any item belonging to the @1 group= +Any item belonging to the groups: @1= Search=Rechercher Reset=Réinitialiser Previous page=Page précédente diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_arrow.png b/mods/HELP/mcl_craftguide/textures/craftguide_arrow.png index c27a807c..0a3740d8 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_arrow.png and b/mods/HELP/mcl_craftguide/textures/craftguide_arrow.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_bg.png b/mods/HELP/mcl_craftguide/textures/craftguide_bg.png new file mode 100644 index 00000000..3b6c60da Binary files /dev/null and b/mods/HELP/mcl_craftguide/textures/craftguide_bg.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_clear_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_clear_icon.png index 12d88f55..9244264a 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_clear_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_clear_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_next_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_next_icon.png index 03f96091..82cf3d36 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_next_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_next_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_prev_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_prev_icon.png index 71509e71..b26cd157 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_prev_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_prev_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_search_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_search_icon.png index 9caa134c..aace8044 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_search_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_search_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_shapeless.png b/mods/HELP/mcl_craftguide/textures/craftguide_shapeless.png index 2b4edc4c..d954a9f7 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_shapeless.png and b/mods/HELP/mcl_craftguide/textures/craftguide_shapeless.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_zoomin_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_zoomin_icon.png index 2f9f6240..5b8ecc2c 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_zoomin_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_zoomin_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/craftguide_zoomout_icon.png b/mods/HELP/mcl_craftguide/textures/craftguide_zoomout_icon.png index 2815f939..7db747fd 100644 Binary files a/mods/HELP/mcl_craftguide/textures/craftguide_zoomout_icon.png and b/mods/HELP/mcl_craftguide/textures/craftguide_zoomout_icon.png differ diff --git a/mods/HELP/mcl_craftguide/textures/mcl_craftguide_fuel.png b/mods/HELP/mcl_craftguide/textures/mcl_craftguide_fuel.png index 2e3cc8f4..a5f57546 100644 Binary files a/mods/HELP/mcl_craftguide/textures/mcl_craftguide_fuel.png and b/mods/HELP/mcl_craftguide/textures/mcl_craftguide_fuel.png differ diff --git a/mods/HELP/mcl_doc/init.lua b/mods/HELP/mcl_doc/init.lua index 6f9b5a20..f5f2f88f 100644 --- a/mods/HELP/mcl_doc/init.lua +++ b/mods/HELP/mcl_doc/init.lua @@ -128,47 +128,6 @@ doc.sub.items.register_factoid(nil, "groups", function(itemstring, def) return s end) --- Armor -doc.sub.items.register_factoid(nil, "use", function(itemstring, def) - local def = minetest.registered_items[itemstring] - local s = "" - local head = minetest.get_item_group(itemstring, "armor_head") - local torso = minetest.get_item_group(itemstring, "armor_torso") - local legs = minetest.get_item_group(itemstring, "armor_legs") - local feet = minetest.get_item_group(itemstring, "armor_feet") - if head > 0 then - s = s .. S("It can be worn on the head.") - s = s .. "\n" - end - if torso > 0 then - s = s .. S("It can be worn on the torso.") - s = s .. "\n" - end - if legs > 0 then - s = s .. S("It can be worn on the legs.") - s = s .. "\n" - end - if feet > 0 then - s = s .. S("It can be worn on the feet.") - s = s .. "\n" - end - return s -end) -doc.sub.items.register_factoid(nil, "groups", function(itemstring, def) - local def = minetest.registered_items[itemstring] - local s = "" - local use = minetest.get_item_group(itemstring, "mcl_armor_uses") - local pts = minetest.get_item_group(itemstring, "mcl_armor_points") - if pts > 0 then - s = s .. S("Armor points: @1", pts) - s = s .. "\n" - end - if use > 0 then - s = s .. S("Armor durability: @1", use) - end - return s -end) - -- TODO: Move this info to the crafting guide doc.sub.items.register_factoid(nil, "groups", function(itemstring, def) if def._repair_material then @@ -308,114 +267,4 @@ doc.sub.items.register_factoid("nodes", "drops", function(itemstring, def) return "" end) --- Digging capabilities of tool -doc.sub.items.register_factoid("tools", "misc", function(itemstring, def) - if not def.tool_capabilities then - return "" - end - local groupcaps = def.tool_capabilities.groupcaps - if not groupcaps then - return "" - end - local formstring = "" - local capstr = "" - local caplines = 0 - for k,v in pairs(groupcaps) do - local speedstr = "" - local miningusesstr = "" - -- Mining capabilities - caplines = caplines + 1 - local maxlevel = v.maxlevel - if not maxlevel then - -- Default from tool.h - maxlevel = 1 - end - - -- Digging speed - local speed_class = def.groups and def.groups.dig_speed_class - if speed_class == 1 then - speedstr = S("Painfully slow") - elseif speed_class == 2 then - speedstr = S("Very slow") - elseif speed_class == 3 then - speedstr = S("Slow") - elseif speed_class == 4 then - speedstr = S("Fast") - elseif speed_class == 5 then - speedstr = S("Very fast") - elseif speed_class == 6 then - speedstr = S("Extremely fast") - elseif speed_class == 7 then - speedstr = S("Instantaneous") - end - - -- Number of mining uses - local base_uses = v.uses - if not base_uses then - -- Default from tool.h - base_uses = 20 - end - if def._doc_items_durability == nil and base_uses > 0 then - local real_uses = base_uses * math.pow(3, maxlevel) - if real_uses < 65535 then - miningusesstr = S("@1 uses", real_uses) - else - miningusesstr = S("Unlimited uses") - end - end - - if speedstr ~= "" then - capstr = capstr .. S("Mining speed: @1", speedstr) .. "\n" - end - if miningusesstr ~= "" then - capstr = capstr .. S("Mining durability: @1", miningusesstr) .. "\n" - end - - -- Only show one group at max - break - end - if caplines > 0 then - formstring = formstring .. S("This tool is capable of mining.") .. "\n" - -- Capabilities - formstring = formstring .. capstr - -- Max. drop level - local mdl = def.tool_capabilities.max_drop_level - if not def.tool_capabilities.max_drop_level then - mdl = 0 - end - formstring = formstring .. S("Block breaking strength: @1", mdl) .. "\n" - end - if caplines > 0 then - formstring = formstring .. "\n\n" - end - return formstring -end) - --- Melee damage -doc.sub.items.register_factoid("tools", "misc", function(itemstring, def) - local tool_capabilities = def.tool_capabilities - if not tool_capabilities then - return "" - end - - local formstring = "" - -- Weapon data - local damage_groups = tool_capabilities.damage_groups - if damage_groups ~= nil and damage_groups.fleshy ~= nil then - formstring = formstring .. S("This is a melee weapon which deals damage by punching.") .. "\n" - - -- Damage groups - local dmg = damage_groups.fleshy - formstring = formstring .. S("Maximum damage: @1 HP", dmg) .. "\n" - - -- Full punch interval - local punch = 1.0 - if tool_capabilities.full_punch_interval ~= nil then - punch = tool_capabilities.full_punch_interval - end - formstring = formstring .. S("Full punch interval: @1 s", string.format("%.1f", punch)) - formstring = formstring .. "\n" - end - return formstring -end) diff --git a/mods/HELP/mcl_doc/locale/mcl_doc.de.tr b/mods/HELP/mcl_doc/locale/mcl_doc.de.tr index e929f9ae..b9207b4a 100644 --- a/mods/HELP/mcl_doc/locale/mcl_doc.de.tr +++ b/mods/HELP/mcl_doc/locale/mcl_doc.de.tr @@ -55,25 +55,3 @@ This blocks drops the following when mined by shears: @1=Dieser Block wird folge • Shears=• Schere • Sword=• Schwert • Hand=• Hand -This is a melee weapon which deals damage by punching.=Dies ist eine Nahkampfwaffe, die Schaden durch Schläge verursacht. -Maximum damage: @1 HP=Maximalschaden: @1 HP -Full punch interval: @1 s=Ausholintervall: @1 s -This tool is capable of mining.=Dieses Werkzeug kann Blöcke abbauen. -Mining speed: @1=Grabegeschwindigkeit: @1 -Painfully slow=Furchtbar langsam -Very slow=Sehr langsam -Slow=Langsam -Fast=Schnell -Very fast=Sehr schnell -Extremely fast=Extrem schnell -Instantaneous=Unmittelbar -@1 uses=@1 Verwendungen -Unlimited uses=Unbegrenzte Verwendungen -Block breaking strength: @1=Blockbruchstärke: @1 -Mining durability: @1=Grabehaltbarkeit: @1 -Armor points: @1=Rüstungspunkte: @1 -Armor durability: @1=Rüstungshaltbarkeit: @1 -It can be worn on the head.=Es kann auf dem Kopf getragen werden. -It can be worn on the torso.=Es kann am Torso getragen werden. -It can be worn on the legs.=Es kann an den Beinen getragen werden. -It can be worn on the feet.=Es kann an den Füßen getragen werden. diff --git a/mods/HELP/mcl_doc/locale/mcl_doc.fr.tr b/mods/HELP/mcl_doc/locale/mcl_doc.fr.tr deleted file mode 100644 index 90e0c9b0..00000000 --- a/mods/HELP/mcl_doc/locale/mcl_doc.fr.tr +++ /dev/null @@ -1,79 +0,0 @@ -# textdomain: mcl_doc -Water can flow into this block and cause it to drop as an item.=L'eau peut s'écouler dans ce bloc et provoquer sa chute en tant qu'élément. -This block can be turned into dirt with a hoe.=Ce bloc peut être transformé en terre avec une houe. -This block can be turned into farmland with a hoe.=Ce bloc peut être transformé en terres agricoles avec une houe. -This block acts as a soil for all saplings.=Ce bloc agit comme un sol pour tous les pousses arbres. -This block acts as a soil for some saplings.=Ce bloc agit comme un sol pour certains pousses arbres. -Sugar canes will grow on this block.=Les cannes à sucre pousseront sur ce bloc. -Nether wart will grow on this block.=La verrue du Néant se développera sur ce bloc. -This block quickly decays when there is no wood block of any species within a distance of @1. When decaying, it disappears and may drop one of its regular drops. The block does not decay when the block has been placed by a player.=Ce bloc se désintègre rapidement lorsqu'il n'y a aucun bloc de bois de n'importe quel espèce à une distance de @1. En décomposition, il disparaît et peut lâcher un des ses objets habituels. Le bloc ne se désintègre pas lorsque le bloc a été placé par un joueur. -This block quickly decays and disappears when there is no wood block of any species within a distance of @1. The block does not decay when the block has been placed by a player.=Ce bloc se désintègre rapidement et disparaît lorsqu'il n'y a aucun bloc de bois de n'importe quel espèce à une distance de @1. Le bloc ne se désintègre pas lorsque le bloc a été placé par un joueur. -This plant can only grow on grass blocks and dirt. To survive, it needs to have an unobstructed view to the sky above or be exposed to a light level of 8 or higher.=Cette plante ne peut pousser que sur des blocs d'herbe et de terre. Pour survivre, il doit avoir une vue dégagée sur le ciel au-dessus ou être exposé à un niveau de lumière de 8 ou plus. -This plant can grow on grass blocks, podzol, dirt and coarse dirt. To survive, it needs to have an unobstructed view to the sky above or be exposed to a light level of 8 or higher.=Cette plante peut pousser sur des blocs d'herbe, du podzol, de la terre et de la terre grossière. Pour survivre, il doit avoir une vue dégagée sur le ciel au-dessus ou être exposé à un niveau de lumière de 8 ou plus. -This block is flammable.=Ce bloc est inflammable. -This block destroys any item it touches.=Ce bloc détruit tout élément qu'il touche. -To eat it, wield it, then rightclick.=Pour le manger, maniez-le, puis faites un clic droit. -You can eat this even when your hunger bar is full.=Vous pouvez le manger même lorsque votre barre de faim est pleine. -You cannot eat this when your hunger bar is full.=Vous ne pouvez pas manger cela lorsque votre barre de faim est pleine. -To drink it, wield it, then rightclick.=Pour le boire, maniez-le, puis faites un clic droit. -You cannot drink this when your hunger bar is full.=Vous ne pouvez pas boire cela lorsque votre barre de faim est pleine. -To consume it, wield it, then rightclick.=Pour le consommer, maniez-le, puis faites un clic droit. -You cannot consume this when your hunger bar is full.=Vous ne pouvez pas consommer cela lorsque votre barre de faim est pleine. -You have to wait for about 2 seconds before you can eat or drink again.=Vous devez attendre environ 2 secondes avant de pouvoir à nouveau manger ou boire. -Hunger points restored: @1=Points de faim restaurés: @1 -Saturation points restored: @1%.1f=Points de saturation restaurés: @1%.1f -This item can be repaired at an anvil with: @1.=Cet article peut être réparé sur une enclume avec: @1. -This item can be repaired at an anvil with any wooden planks.=Cet article peut être réparé sur une enclume avec n'importe quelle planche de bois. -This item can be repaired at an anvil with any item in the “@1” group.=Cet article peut être réparé sur une enclume avec n'importe quel article du groupe “@1”. -This item cannot be renamed at an anvil.=Cet objet ne peut pas être renommé sur une enclume. -This block crushes any block it falls into.=Ce bloc écrase tout bloc dans lequel il tombe. -When this block falls deeper than 1 block, it causes damage to any player it hits. The damage dealt is B×2−2 hit points with B @= number of blocks fallen. The damage can never be more than 40 HP.=Lorsque ce bloc tombe plus profondément que 1 bloc, il inflige des dégâts à tout joueur qu'il frappe. Les dégâts infligés sont B×2−2 points de vie avec B @= nombre de blocs tombés. Les dégâts ne peuvent jamais dépasser 40 PV. -Diamond Pickaxe=Pioche en Diamant -Iron Pickaxe=Pioche en Fer -Stone Pickaxe=Pioche en Pierre -Golden Pickaxe=Pioche en Or -Wooden Pickaxe=Pioche en Bois -Diamond Axe=Hache en Diamant -Iron Axe=Hache en Fer -Stone Axe=Hache en Pierre -Golden Axe=Hache en Or -Wooden Axe=Hache en Bois -Diamond Shovel=Pelle en Diamant -Iron Shovel=Pelle en Fer -Stone Shovel=Pelle en Pierre -Golden Shovel=Pelle en Or -Wooden Shovel=Pelle de Bois -This block can be mined by any tool instantly.=Ce bloc peut être miné par n'importe quel outil instantanément. -This block can be mined by:=Ce bloc peut être miné par: -Hardness: ∞=Dureté: ∞ -Hardness: @1=Dureté: @1 -This block will not be destroyed by TNT explosions.=Ce bloc ne sera pas détruit par les explosions de TNT. -This block drops itself when mined by shears.=Ce bloc se laisse tomber lorsqu'il est exploité par cisaille. -@1×@2=@1×@2 -This blocks drops the following when mined by shears: @1=Ce bloc laisse tomber les choses suivantes lorsqu'il est exploité par cisaille: -, =, -• Shears=• Cisailles -• Sword=• Epées -• Hand=• Mains -This is a melee weapon which deals damage by punching.=Il s'agit d'une arme de mêlée qui inflige des dégâts en frappant. -Maximum damage: @1 HP=Dégâts maximum: @1 -Full punch interval: @1 s=Interval de coup: @1 s -This tool is capable of mining.=Cet outil est capable d'exploiter. -Mining speed: @1=Vitesse de minage: @1 -Painfully slow=Péniblement lent -Very slow=Très lent -Slow=Lent -Fast=Rapide -Very fast=Très rapide -Extremely fast=Extrêmenent rapide -Instantaneous=Instantané -@1 uses=@1 utilisations -Unlimited uses=Utilisations illimitées -Block breaking strength: @1=Résistance de rupture de bloc: @1 -Mining durability: @1=Durabilité de minage: @1 -Armor points: @1=Point d'armure: @1 -Armor durability: @1=Durabilité de l'armure: @1 -It can be worn on the head.=Il peut être porté sur la tête. -It can be worn on the torso.=Il peut être porté au torse. -It can be worn on the legs.=Il peut être porté aux jambes. -It can be worn on the feet.=Il peut être porté aux pieds. diff --git a/mods/HELP/mcl_doc/locale/template.txt b/mods/HELP/mcl_doc/locale/template.txt index de652f05..542d2940 100644 --- a/mods/HELP/mcl_doc/locale/template.txt +++ b/mods/HELP/mcl_doc/locale/template.txt @@ -55,25 +55,3 @@ This blocks drops the following when mined by shears: @1= • Shears= • Sword= • Hand= -This is a melee weapon which deals damage by punching.= -Maximum damage: @1 HP= -Full punch interval: @1 s= -This tool is capable of mining.= -Mining speed: @1= -Painfully slow= -Very slow= -Slow= -Fast= -Very fast= -Extremely fast= -Instantaneous= -@1 uses= -Unlimited uses= -Block breaking strength: @1= -Mining durability: @1= -Armor points: @1= -Armor durability: @1= -It can be worn on the head.= -It can be worn on the torso.= -It can be worn on the legs.= -It can be worn on the feet.= diff --git a/mods/HELP/mcl_doc_basics/locale/mcl_doc_basics.fr.tr b/mods/HELP/mcl_doc_basics/locale/mcl_doc_basics.fr.tr deleted file mode 100644 index d6edcfb6..00000000 --- a/mods/HELP/mcl_doc_basics/locale/mcl_doc_basics.fr.tr +++ /dev/null @@ -1,511 +0,0 @@ -# textdomain: mcl_doc_basics -Basics=Les bases -Everything you need to know to get started with playing=Tout ce que vous devez savoir pour commencer à jouer -Advanced usage=Utilisation avancée -Advanced information which may be nice to know, but is not crucial to gameplay=Informations avancées qui peuvent être agréables à connaître, mais qui ne sont pas cruciales pour le gameplay -Quick start=Démarrage rapide -This is a very brief introduction to the basic gameplay:=Voici une très brève introduction au gameplay de base: -Basic controls:=Contrôles de base: -• Move mouse to look=• Déplacez la souris pour regarder -• [W], [A], [S] and [D] to move=• [W], [A], [S] and [D] to move -• [E] to sprint=• [E] pour sprinter -• [Space] to jump or move upwards=• [Espace] pour sauter ou se déplacer vers le haut -• [Shift] to sneak or move downwards=• [Shift] pour se faufiler ou se déplacer vers le bas -• Mouse wheel or [1]-[9] to select item=• Molette de la souris ou [1] - [9] pour sélectionner l'élément -• Left-click to mine blocks or attack=• Clic gauche pour miner des blocs ou attaquer -• Recover from swings to deal full damage=• Attendez les virages pour faire des dégâts complets -• Right-click to build blocks and use things=• Clic droit pour construire des blocs et utiliser des choses -• [I] for the inventory=• [I] pour l'inventaire -• First items in inventory appear in hotbar below=• Les premiers éléments de l'inventaire apparaissent dans la barre de raccourci ci-dessous -• Lowest row in inventory appears in hotbar below=• La ligne la plus basse de l'inventaire apparaît dans la barre d'outils ci-dessous -• [Esc] to close this window=• [Esc] pour fermer cette fenêtre -How to play:=Comment jouer: -• Punch a tree trunk until it breaks and collect wood=• Frappez un tronc d'arbre jusqu'à ce qu'il se brise et ramassez du bois -• Place the wood into the 2×2 grid (your “crafting grid”) in your inventory menu and craft 4 wood planks=• Placez le bois dans la grille 2×2 (votre "grille d'établi") dans votre menu d'inventaire et fabriquez 4 planches de bois -• Place them in a 2×2 shape in the crafting grid to craft a crafting table=• Placez-les dans une forme 2×2 dans la grille de fabrication pour créer un établi -• Place the crafting table on the ground=• Placez l'établi sur le sol -• Rightclick it for a 3×3 crafting grid=• Faites un clic droit dessus pour une grille de fabrication 3×3 -• Use the crafting guide (book icon) to learn all the possible crafting recipes=• Utilisez le guide d'artisanat (icône du livre) pour apprendre toutes les recettes de fabrication possibles -• Craft a wooden pickaxe so you can dig stone=• Fabriquez une pioche en bois pour creuser la pierre -• Different tools break different kinds of blocks. Try them out!=• Différents outils cassent différents types de blocs. Essayez-les! -• Read entries in this help to learn the rest=• Lisez les entrées de cette aide pour apprendre le reste -• Continue playing as you wish. There's no goal. Have fun!=• Continuez à jouer comme vous le souhaitez. Il n'y a aucun but. Amuser vous! -Minetest=Minetest -Minetest is a free software game engine for games based on voxel gameplay, inspired by InfiniMiner, Minecraft, and the like. Minetest was originally created by Perttu Ahola (alias “celeron55”).=Minetest est un moteur de jeu logiciel gratuit pour les jeux basés sur le gameplay voxel, inspiré d'InfiniMiner, Minecraft, etc. Minetest a été créé à l'origine par Perttu Ahola (alias «celeron55»). -The player is thrown into a huge world made out of cubes or blocks. These cubes usually make the landscape they blocks can be removed and placed almost entirely freely. Using the collected items, new tools and other items can be crafted. Games in Minetest can, however, be much more complex than this.=Le joueur est jeté dans un monde immense fait de cubes ou de blocs. Ces cubes font généralement le paysage qu'ils blocs peuvent être enlevés et placés presque entièrement librement. En utilisant les objets collectés, de nouveaux outils et autres objets peuvent être fabriqués. Les jeux dans Minetest peuvent cependant être beaucoup plus complexes que cela. -A core feature of Minetest is the built-in modding capability. Mods modify existing gameplay. They can be as simple as adding a few decorational blocks or be very complex by e.g. introducing completely new gameplay concepts, generating a completely different kind of world, and many other things.=Une caractéristique essentielle de Minetest est la capacité de modding intégrée. Les mods modifient le gameplay existant. Ils peuvent être aussi simples que l'ajout de quelques blocs décoratifs ou être très complexes par ex. introduisant des concepts de gameplay complètement nouveaux, générant un type de monde complètement différent, et bien d'autres choses. -Minetest can be played alone or online together with multiple players. Online play will work out of the box with any mods, with no need for additional software as they are entirely provided by the server.=Minetest peut être joué seul ou en ligne avec plusieurs joueurs. Le jeu en ligne fonctionnera immédiatement avec tous les mods, sans avoir besoin de logiciels supplémentaires car ils sont entièrement fournis par le serveur. -Minetest is usually bundled with a simple default game, named “Minetest Game” (shown in images 1 and 2). You probably already have it. Other games for Minetest can be downloaded from the official Minetest forums .=Minetest est généralement fourni avec un jeu par défaut simple, nommé «Minetest Game» (illustré dans les images 1 et 2). Vous l'avez probablement déjà. D'autres jeux pour Minetest peuvent être téléchargés à partir des forums officiels Minetest . -Minetest as well as Minetest Game are both unfinished at the moment, so please forgive us when not everything works out perfectly.=Minetest ainsi que Minetest Game sont tous deux inachevés pour le moment, alors veuillez nous pardonner quand tout ne fonctionne pas parfaitement. -Sneaking=Se faufiler -Sneaking makes you walk slower and prevents you from falling off the edge of a block.=Se faufiler vous fait marcher plus lentement et vous empêche de tomber du bord d'un bloc. -To sneak, hold down the sneak key (default: [Shift]). When you release it, you stop sneaking. Careful: When you release the sneak key at a ledge, you might fall!=Pour vous faufiler, maintenez enfoncée la touche furtive (par défaut: [Shift]). Lorsque vous le relâchez, vous arrêtez de vous faufiler. Attention: lorsque vous relâchez la touche furtive sur un rebord, vous risquez de tomber! -• Sneak: [Shift]=• Se faufiler: [Shift] -Sneaking only works when you stand on solid ground, are not in a liquid and don't climb.=Se faufiler ne fonctionne que lorsque vous vous tenez sur un sol solide, pas dans un liquide et ne grimpez pas. -If you jump while holding the sneak key, you also jump slightly higher than usual.=Si vous sautez tout en maintenant la touche furtive, vous sautez également légèrement plus haut que d'habitude. -Sneaking might be disabled by mods. In this case, you still walk slower by sneaking, but you will no longer be stopped at ledges.=Le faufilement peut être désactivé par les mods. Dans ce cas, vous marchez toujours plus lentement en vous faufilant, mais vous ne serez plus arrêté aux rebords. -Controls=Les contrôles -These are the default controls:=Ce sont les contrôles par défaut: -Basic movement:=Mouvement de base: -• Moving the mouse around: Look around=• Déplacer la souris: regardez autour -• W: Move forwards=• W: Avancer -• A: Move to the left=• A: Déplacer vers la gauche -• D: Move to the right=• D: Déplacer vers la droite -• S: Move backwards=• S: Reculer -• E: Sprint=• E: Courrir -While standing on solid ground:=En position debout sur un sol solide: -• Space: Jump=• Espace: Sauter -• Shift: Sneak=• Shift: Faufiler -While on a ladder, swimming in a liquid or fly mode is active=Sur une échelle, nager dans un liquide ou le mode voler est actif -• Space: Move up=• Espace: Monter -• Shift: Move down=• Shift: Descendre -Extended movement (requires privileges):=Déplacement étendu (nécessite des privilèges): -• J: Toggle fast mode, makes you run or fly fast (requires “fast” privilege)=• J: Basculer en mode rapide, vous permet de courir ou de voler rapidement (nécessite le privilège "fast") -• K: Toggle fly mode, makes you move freely in all directions (requires “fly” privilege)=• K: Basculer en mode vol, vous permet de vous déplacer librement dans toutes les directions (nécessite le privilège "fly") -• H: Toggle noclip mode, makes you go through walls in fly mode (requires “noclip” privilege)=• H: Bascule le mode noclip, vous fait passer à travers les murs en mode vol (nécessite le privilège "noclip") -• E: Move even faster when in fast mode=• E: Déplacez-vous encore plus rapidement en mode rapide -• E: Walk fast in fast mode=• E: Marchez vite en mode rapide -World interaction:=Interaction avec le monde: -• Left mouse button: Punch / mine blocks / take items=• Bouton gauche de la souris: Perforer / miner des blocs / prendre des objets -• Left mouse button: Punch / mine blocks=• Bouton gauche de la souris: Perforer / miner des blocs -• Right mouse button: Build or use pointed block=• Bouton droit de la souris: Créer ou utiliser un bloc pointu -• Shift+Right mouse button: Build=• Shift+Bouton droit de la souris: Construire -• Roll mouse wheel: Select next/previous item in hotbar=• Molette de la souris: Sélectionnez l'élément suivant / précédent dans la barre active -• Roll mouse wheel / B / N: Select next/previous item in hotbar=• Faites rouler la molette de la souris / B / N: Sélectionnez l'élément suivant / précédent dans la barre de raccourci -• 1-9: Select item in hotbar directly=• 1-9: sélectionnez directement l'élément dans la barre de raccourci -• Q: Drop item stack=• Q: Déposer la pile d'objets -• Shift+Q: Drop 1 item=• Shift+Q: Déposer 1 élément -• I: Show/hide inventory menu=• I: Afficher/masquer le menu d'inventaire -Inventory interaction:=Interaction d'inventaire: -See the entry “Basics > Inventory”.=Voir l'entrée «Bases> Inventaire». -Camera:=Caméra: -• Z: Zoom=• Z: Zoom -• F7: Toggle camera mode=• F7: Bascule le mode caméra -• F8: Toggle cinematic mode=• F8: Basculer le mode cinématique -Interface:=Interface: -• Esc: Open menu window (pauses in single-player mode) or close window=• Esc: Ouvrir la fenêtre du menu (fait une pause en mode solo) ou fermer la fenêtre -• F1: Show/hide HUD=• F1: Afficher/masquer le HUD -• F2: Show/hide chat=• F2: Afficher/masquer le chat -• F9: Toggle minimap=• F9: Basculer la mini-carte -• Shift+F9: Toggle minimap rotation mode=• Shift+F9: Bascule le mode de rotation de la mini-carte -• F10: Open/close console/chat log=• F10: Ouvrir/fermer la console/journal de chat -• F12: Take a screenshot=• F12: Prendre une capture d'écran -Server interaction:=Interaction avec le serveur: -• T: Open chat window (chat requires the “shout” privilege)=• T: Ouvrir la fenêtre de discussion (la discussion nécessite le privilège "shout") -• /: Start issuing a server command=• /: Lancer l'émission d'une commande serveur -Technical:=Technique: -• R: Toggle far view (disables all fog and allows viewing far away, can make game very slow)=• R: Basculer la vue éloignée (désactive tout le brouillard et permet une visualisation éloignée, peut rendre le jeu très lent) -• +: Increase minimal viewing distance=• +: Augmentez la distance de visionnement minimale -• -: Decrease minimal viewing distance=• -: Diminue la distance de visionnement minimale -• F3: Enable/disable fog=• F3: Activer/désactiver le brouillard -• F5: Enable/disable debug screen which also shows your coordinates=• F5: Activer / désactiver l'écran de débogage qui affiche également vos coordonnées -• F6: Only useful for developers. Enables/disables profiler=• F6: utile uniquement pour les développeurs. Active/désactive le profileur -• P: Only useful for developers. Writes current stack traces=• P: utile uniquement pour les développeurs. Écrit les traces de pile actuelles -Players=Joueurs -Players (actually: “player characters”) are the characters which users control.=Les joueurs (en fait: "personnages joueurs") sont les personnages que les utilisateurs contrôlent. -Players are living beings. They start with a number of health points (HP) and a number of breath points (BP).=Les joueurs sont des êtres vivants. Ils commencent par un certain nombre de points de vie (PV) et un certain nombre de points de respiration (BP). -Players are capable of walking, sneaking, jumping, climbing, swimming, diving, mining, building, fighting and using tools and blocks.=Les joueurs sont capables de marcher, se faufiler, sauter, grimper, nager, plonger, exploiter, construire, se battre et utiliser des outils et des blocs. -Players can take damage for a variety of reasons, here are some:=Les joueurs peuvent subir des dégâts pour diverses raisons, en voici quelques-unes: -• Taking fall damage=• Prendre des dégâts de chute -• Touching a block which causes direct damage=• Toucher un bloc qui cause des dommages directs -• Drowning=• Noyade -• Being attacked by another player=• Être attaqué par un autre joueur -• Being attacked by a computer enemy=• Être attaqué par un ennemi informatique -At a health of 0, the player dies. The player can just respawn in the world.=À une santé de 0, le joueur meurt. Le joueur peut simplement réapparaître dans le monde. -Other consequences of death depend on the game. The player could lose all items, or lose the round in a competitive game.=Les autres conséquences de la mort dépendent du jeu. Le joueur pourrait perdre tous les objets ou perdre la manche dans une partie compétitive. -Some blocks reduce breath. While being with the head in a block which causes drowning, the breath points are reduced by 1 for every 2 seconds. When all breath is gone, the player starts to suffer drowning damage. Breath is quickly restored in any other block.=Certains blocs réduisent la respiration. Tout en étant avec la tête dans un bloc qui provoque la noyade, les points de respiration sont réduits de 1 toutes les 2 secondes. Quand tout le souffle est parti, le joueur commence à subir des dégâts de noyade. Le souffle est rapidement rétabli dans tout autre bloc. -Damage can be disabled on any world. Without damage, players are immortal and health and breath are unimportant.=Les dégâts peuvent être désactivés sur n'importe quel monde. Sans dégâts, les joueurs sont immortels et la santé et le souffle sont sans importance. -In multi-player mode, the name of other players is written above their head.=En mode multi-joueurs, le nom des autres joueurs est écrit au-dessus de leur tête. -Items=Objects -Items are things you can carry along and store in inventories. They can be used for crafting, smelting, building, mining, and more. Types of items include blocks, tools, weapons and items only used for crafting.=Les objets sont des choses que vous pouvez emporter et stocker dans des inventaires. Ils peuvent être utilisés pour l'artisanat, la fusion, la construction, l'exploitation minière, etc. Les types d'objets comprennent des blocs, des outils, des armes et des objets uniquement utilisés pour l'artisanat. -An item stack is a collection of items of the same type which fits into a single item slot. Item stacks can be dropped on the ground. Items which drop into the same coordinates will form an item stack.=Une pile d'objets est une collection d'objets du même type qui tient dans un seul emplacement d'objet. Les piles d'objets peuvent être déposées au sol. Les objets qui tombent dans les mêmes coordonnées formeront une pile d'objets. -Items have several properties, including the following:=Les éléments ont plusieurs propriétés, notamment les suivantes: -• Maximum stack size: Number of items which fit on 1 item stack=• Taille maximale de la pile: Nombre d'articles pouvant tenir sur une pile d'articles -• Pointing range: How close things must be to be pointed while wielding this item=• Plage de pointage: A quelle distance les choses doivent être pointées lorsque vous maniez cet objet -• Group memberships: See “Basics > Groups”=• Appartenance à un groupe: Voir "Général> Groupes" -• May be used for crafting or cooking=• Peut être utilisé pour l'artisanat ou la cuisine -Dropped item stacks will be collected automatically when you stand close to them.=Les piles d'objets déposés seront collectées automatiquement lorsque vous vous tenez près d'eux. -Tools=Outils -Some items may serve as a tool when wielded. Any item which has some special use which can be directly used by its wielder is considered a tool.=Certains articles peuvent servir d'outil lorsqu'ils sont utilisés. Tout objet ayant une utilité particulière pouvant être directement utilisé par son porteur est considéré comme un outil. -When nothing is wielded, players use their hand which may act as tool and weapon.=Quand rien n'est manié, les joueurs utilisent leur main qui peut servir d'outil et d'arme. -A common subset of tools is mining tools. These are important to break all kinds of blocks. Weapons are a kind of tool. There are of course many other possible tools. Special actions of tools are usually done by left-click or right-click.=Un sous-ensemble d'outils sont les outils de minage. Ceux-ci sont importants pour casser toutes sortes de blocs. Les armes sont une sorte d'outil. Il existe bien sûr de nombreux autres outils possibles. Les actions spéciales des outils sont généralement effectuées par un clic gauche ou un clic droit. -Mining tools are important to break all kinds of blocks. Weapons are another kind of tool. There are some other more specialized tools. Special actions of tools are usually done by right-click.=Les outils miniers sont importants pour briser toutes sortes de blocs. Les armes sont un autre type d'outil. Il existe d'autres outils plus spécialisés. Les actions spéciales des outils sont généralement effectuées par un clic droit. -When nothing is wielded, players use their hand which may act as tool and weapon. The hand is capable of punching and deals minimum damage.=Quand rien n'est manié, les joueurs utilisent leur main qui peut servir d'outil et d'arme. La main est capable de poinçonner et inflige un minimum de dégâts. -Many tools will wear off when using them and may eventually get destroyed. The damage is displayed in a damage bar below the tool icon. If no damage bar is shown, the tool is in mint condition. Tools may be repairable by crafting, see “Basics > Crafting”.=De nombreux outils s'usent lors de leur utilisation et peuvent éventuellement être détruits. Les dégâts sont affichés dans une barre de dégâts sous l'icône de l'outil. Si aucune barre de dommage n'est affichée, l'outil est en parfait état. Les outils peuvent être réparables par artisanat, voir «Bases> Artisanat». -Weapons=Armes -Some items are usable as a melee weapon when wielded. Weapons share most of the properties of tools.=Certains objets sont utilisables comme arme de mêlée lorsqu'ils sont utilisés. Les armes partagent la plupart des propriétés des outils. -Melee weapons deal damage by punching players and other animate objects. There are two ways to attack:=Les armes de mêlée infligent des dégâts en frappant les joueurs et d'autres objets animés. Il y a deux façons d'attaquer: -• Single punch: Left-click once to deal a single punch=• Coup de poing unique: Cliquez une fois avec le bouton gauche pour traiter un coup de poing -• Quick punching: Hold down the left mouse button to deal quick repeated punches=• Poinçonnage rapide: Maintenez le bouton gauche de la souris enfoncé pour effectuer des coups de poing répétés rapidement -There are two core attributes of melee weapons:=Il y a deux attributs principaux des armes de mêlée: -• Maximum damage: Damage which is dealt after a hit when the weapon was fully recovered=• Dégâts maximum: Dégâts qui sont infligés après un coup lorsque l'arme a été complètement récupérée -• Full punch interval: Time it takes for fully recovering from a punch=• Intervalle de poinçonnage complet: temps nécessaire pour récupérer complètement d'un poinçon -A weapon only deals full damage when it has fully recovered from a previous punch. Otherwise, the weapon will deal only reduced damage. This means, quick punching is very fast, but also deals rather low damage. Note the full punch interval does not limit how fast you can attack.=Une arme n'inflige des dégâts complets que lorsqu'elle a complètement récupéré d'un coup de poing précédent. Sinon, l'arme n'infligera que des dégâts réduits. Cela signifie que le poinçonnage rapide est très rapide, mais inflige également des dégâts plutôt faibles. Notez que l'intervalle de punch complet ne limite pas la vitesse à laquelle vous pouvez attaquer. -There is a rule which sometimes makes attacks impossible: Players, animate objects and weapons belong to damage groups. A weapon only deals damage to those who share at least one damage group with it. So if you're using the wrong weapon, you might not deal any damage at all.=Il existe une règle qui rend parfois les attaques impossibles: les joueurs, les objets animés et les armes appartiennent à des groupes de dégâts. Une arme inflige uniquement des dégâts à ceux qui partagent au moins un groupe de dégâts avec elle. Donc, si vous utilisez la mauvaise arme, vous pourriez ne pas infliger de dégâts du tout. -Pointing=Pointage -“Pointing” means looking at something in range with the crosshair. Pointing is needed for interaction, like mining, punching, using, etc. Pointable things include blocks, players, computer enemies and objects.="Pointage" signifie regarder quelque chose à portée avec le réticule. Le pointage est nécessaire pour l'interaction, comme l'extraction, le poinçonnage, l'utilisation, etc. -To point something, it must be in the pointing range (also just called “range”) of your wielded item. There's a default range when you are not wielding anything. A pointed thing will be outlined or highlighted (depending on your settings). Pointing is not possible with the 3rd person front camera.=Pour pointer quelque chose, il doit se trouver dans la plage de pointage (également appelée simplement "plage") de votre objet brandi. Il y a une plage par défaut lorsque vous ne maniez rien. Une chose pointue sera soulignée ou mise en évidence (en fonction de vos paramètres). Le pointage n'est pas possible avec la caméra frontale à la 3ème personne. -A few things can not be pointed. Most blocks are pointable. A few blocks, like air, can never be pointed. Other blocks, like liquids can only be pointed by special items.=Certaines choses ne peuvent pas être signalées. La plupart des blocs sont pointables. Quelques blocs, comme l'air, ne peuvent jamais être pointés. D'autres blocs, comme les liquides, ne peuvent être pointés que par des objets spéciaux. -Camera=Caméra -There are 3 different views which determine the way you see the world. The modes are:=Il y a 3 vues différentes qui déterminent la façon dont vous voyez le monde. Les modes sont: -• 1: First-person view (default)=• 1: Vue à la première personne (par défaut) -• 2: Third-person view from behind=• 2: Vue à la troisième personne par derrière -• 3: Third-person view from the front=• 3: Vue à la troisième personne de face -You can change the camera mode by pressing [F7].=Vous pouvez changer le mode de l'appareil photo en appuyant sur [F7]. -You might be able to zoom with [Z] to zoom the view at the crosshair. This allows you to look further.=Vous pourrez peut-être zoomer avec [Z] pour zoomer la vue sur le réticule. Cela vous permet de regarder plus loin. -Zooming is a gameplay feature that might be enabled or disabled by the game. By default, zooming is enabled when in Creative Mode but disabled otherwise.=Le zoom est une fonctionnalité de gameplay qui peut être activée ou désactivée par le jeu. Par défaut, le zoom est activé en mode créatif mais désactivé dans le cas contraire. -There is also Cinematic Mode which can be toggled with [F8]. With Cinematic Mode enabled, the camera movements become more smooth. Some players don't like it, it is a matter of taste.=Il y a aussi le mode cinématique qui peut être basculé avec [F8]. Lorsque le mode cinématique est activé, les mouvements de la caméra deviennent plus fluides. Certains joueurs ne l'aiment pas, c'est une question de goût. -By holding down [Z], you can zoom the view at your crosshair. You need the “zoom” privilege to do this.=En maintenant [Z] enfoncé, vous pouvez agrandir la vue sur votre réticule. Vous avez besoin du privilège "zoom" pour ce faire. -• Switch camera mode: [F7]=• Changer le mode de l'appareil photo: [F7] -• Toggle Cinematic Mode: [F8]=• Basculer le mode cinématique: [F8] -• Zoom: [Z]=• Zoom: [Z] -Blocks=Blocs -The world of MineClone 2 is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.=Le monde de MineClone 2 est entièrement constitué de blocs (voxels, pour être précis). Les blocs peuvent être ajoutés ou supprimés avec les bons outils. -The world is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.=Le monde est entièrement fait de blocs (voxels, pour être précis). Les blocs peuvent être ajoutés ou supprimés avec les bons outils. -Blocks can have a wide range of different properties which determine mining times, behavior, looks, shape, and much more. Their properties include:=Les blocs peuvent avoir un large éventail de propriétés différentes qui déterminent les temps d'exploration, le comportement, l'apparence, la forme et bien plus encore. Leurs propriétés comprennent: -• Collidable: Collidable blocks can not be passed through; players can walk on them. Non-collidable blocks can be passed through freely=• Collidable: les blocs collidables ne peuvent pas être traversés; les joueurs peuvent marcher dessus. Les blocs non collidables peuvent passer librement -• Pointable: Pointable blocks show a wireframe or a halo box when pointed. But you will just point through non-pointable blocks. Liquids are usually non-pointable but they can be pointed at by some special tools=• Pointable: les blocs pointables affichent un filaire ou une boîte de halo lorsqu'ils sont pointés. Mais vous pointerez simplement à travers des blocs non pointables. Les liquides sont généralement non pointables mais ils peuvent être pointés par certains outils spéciaux -• Mining properties: By which tools it can be mined, how fast and how much it wears off tools=• Propriétés minières: par quels outils il peut être extrait, à quelle vitesse et combien il s'use -• Climbable: While you are at a climbable block, you won't fall and you can move up and down with the jump and sneak keys=• Grimpable: Pendant que vous êtes sur un bloc grimpable, vous ne tomberez pas et vous pouvez vous déplacer de haut en bas avec les touches de saut et de furtivité -• Drowning damage: See the entry “Basics > Player”=• Dommages liés à la noyade: voir l'entrée "Bases> Joueur" -• Liquids: See the entry “Basics > Liquids”=• Liquides: voir l'entrée "Bases> Liquides" -• Group memberships: Group memberships are used to determine mining properties, crafting, interactions between blocks and more=• Appartenances aux groupes: les appartenances aux groupes sont utilisées pour déterminer les propriétés minières, l'artisanat, les interactions entre les blocs, etc. -Mining=Exploitation minière -Mining (or digging) is the process of breaking blocks to remove them. To mine a block, point it and hold down the left mouse button until it breaks.=L'exploitation minière (ou creuser) est le processus de rupture des blocs pour les retirer. Pour extraire un bloc, pointez-le et maintenez enfoncé le bouton gauche de la souris jusqu'à ce qu'il se casse. -Blocks require a mining tool to be mined. Different blocks are mined by different mining tools, and some blocks can not be mined by any tool. Blocks vary in hardness and tools vary in strength. Mining tools will wear off over time. The mining time and the tool wear depend on the block and the mining tool. The fastest way to find out how efficient your mining tools are is by just trying them out on various blocks. Any items you gather by mining will drop on the ground, ready to be collected.=Les blocs nécessitent un outil de minage pour être minés. Différents blocs sont extraits par différents outils d'exploration de données, et certains blocs ne peuvent être extraits par aucun outil. Les blocs varient en dureté et les outils varient en résistance. Les outils miniers s'useront avec le temps. Le temps d'extraction et l'usure de l'outil dépendent du bloc et de l'outil d'extraction. Le moyen le plus rapide de découvrir l'efficacité de vos outils d'exploration est simplement de les essayer sur différents blocs. Tous les objets que vous récupérez par extraction tomberont au sol, prêts à être récupérés. -After mining, a block may leave a “drop” behind. This is a number of items you get after mining. Most commonly, you will get the block itself. There are other possibilities for a drop which depends on the block type. The following drops are possible:=Après l'extraction, un bloc peut laisser une «goutte» derrière. Il s'agit d'un certain nombre d'objets que vous obtenez après l'extraction. Le plus souvent, vous obtiendrez le bloc lui-même. Il existe d'autres possibilités de suppression qui dépendent du type de bloc. Les baisses suivantes sont possibles: -• Always drops itself (the usual case)=• Se laisse toujours tomber (le cas habituel) -• Always drops the same items=• Dépose toujours les mêmes articles -• Drops items based on probability=• Supprime les éléments en fonction de la probabilité -• Drops nothing=• Ne laisse tomber rien -Building=Construire -Almost all blocks can be built (or placed). Building is very simple and has no delay.=Presque tous les blocs peuvent être construits (ou placés). La construction est très simple et n'a pas de retard. -To build your wielded block, point at a block in the world and right-click. If this is not possible because the pointed block has a special right-click action, hold down the sneak key before right-clicking.=Pour construire votre bloc brandi, pointez sur un bloc dans le monde et faites un clic droit. Si cela n'est pas possible car le bloc pointé a une action spéciale de clic droit, maintenez la touche furtive avant de cliquer avec le bouton droit. -Blocks can almost always be built at pointable blocks. One exception are blocks attached to the floor; these can only be built on the floor.=Les blocs peuvent presque toujours être construits sur des blocs pointables. Une exception est les blocs attachés au sol; ceux-ci ne peuvent être construits que sur le sol. -Normally, blocks are built in front of the pointed side of the pointed block. A few blocks are different: When you try to build at them, they are replaced.=Normalement, les blocs sont construits devant le côté pointu du bloc pointu. Quelques blocs sont différents: lorsque vous essayez de les construire, ils sont remplacés. -Liquids=Liquides -Liquids are special dynamic blocks. Liquids like to spread and flow to their surrounding blocks. Players can swim and drown in them.=Les liquides sont des blocs dynamiques spéciaux. Les liquides aiment se propager et s'écouler vers leurs blocs environnants. Les joueurs peuvent nager et se noyer en eux. -Liquids usually come in two forms: In source form (S) and in flowing form (F).=Les liquides se présentent généralement sous deux formes: sous forme source (S) et sous forme fluide (F). -Liquid sources have the shape of a full cube. A liquid source will generate flowing liquids around it from time to time, and, if the liquid is renewable, it also generates liquid sources. A liquid source can sustain itself. As long it is left alone, a liquid source will normally keep its place and does not drain out.=Les sources liquides ont la forme d'un cube plein. Une source de liquide génère de temps à autre des liquides qui coulent autour d'elle et, si le liquide est renouvelable, elle génère également des sources de liquide. Une source liquide peut se maintenir. Tant qu'elle est laissée seule, une source liquide gardera normalement sa place et ne s'écoulera pas. -Flowing liquids take a sloped form. Flowing liquids spread around the world until they drain. A flowing liquid can not sustain itself and always comes from a liquid source, either directly or indirectly. Without a liquid source, a flowing liquid will eventually drain out and disappear.=Les liquides qui coulent prennent une forme inclinée. Les liquides qui coulent se répandent dans le monde jusqu'à ce qu'ils s'écoulent. Un liquide qui coule ne peut pas subvenir à ses besoins et provient toujours d'une source de liquide, directement ou indirectement. Sans source de liquide, un liquide qui s'écoule finira par s'écouler et disparaître. -All liquids share the following properties:=Tous les liquides partagent les propriétés suivantes: -• All properties of blocks (including drowning damage)=• Toutes les propriétés des blocs (y compris les dégâts de noyade) -• Renewability: Renewable liquids can create new sources=• Renouvelabilité: les liquides renouvelables peuvent créer de nouvelles sources -• Flowing range: How many flowing liquids are created at maximum per liquid source, it determines how far the liquid will spread. Possible are ranges from 0 to 8. At 0, no flowing liquids will be created. Image 5 shows a liquid of flowing range 2=• Plage d'écoulement: le nombre de liquides qui s'écoulent au maximum par source de liquide détermine la distance de propagation du liquide. Les plages possibles sont comprises entre 0 et 8. À 0, aucun liquide ne sera créé. L'image 5 montre un liquide de gamme fluide 2 -• Viscosity: How slow players move through it and how slow the liquid spreads=• Viscosité: la vitesse à laquelle les joueurs se déplacent et la vitesse de propagation du liquide -Renewable liquids create new liquid sources at open spaces (image 2). A new liquid source is created when:=Les liquides renouvelables créent de nouvelles sources de liquide dans les espaces ouverts (image 2). Une nouvelle source de liquide est créée lorsque: -• Two renewable liquid blocks of the same type touch each other diagonally=• Deux blocs liquides renouvelables du même type se touchent en diagonale -• These blocks are also on the same height=• Ces blocs sont également à la même hauteur -• One of the two “corners” is open space which allows liquids to flow in=• L'un des deux «coins» est un espace ouvert qui permet aux liquides de s'écouler -When those criteria are met, the open space is filled with a new liquid source of the same type (image 3).=Lorsque ces critères sont remplis, l'espace ouvert est rempli d'une nouvelle source de liquide du même type (image 3). -Swimming in a liquid is fairly straightforward: The usual direction keys for basic movement, the jump key for rising and the sneak key for sinking.=Nager dans un liquide est assez simple: les touches de direction habituelles pour les mouvements de base, la touche de saut pour la montée et la touche furtive pour le naufrage. -The physics for swimming and diving in a liquid are:=La physique pour nager et plonger dans un liquide est: -• The higher the viscosity, the slower you move=• Plus la viscosité est élevée, plus vous vous déplacez lentement -• If you rest, you'll slowly sink=• Si vous vous reposez, vous coulerez lentement -• There is no fall damage for falling into a liquid as such=• Il n'y a aucun dommage de chute pour tomber dans un liquide en tant que tel -• If you fall into a liquid, you will be slowed down on impact (but don't stop instantly). Your impact depth is determined by your speed and the liquid viscosity. For a safe high drop into a liquid, make sure there is enough liquid above the ground, otherwise you might hit the ground and take fall damage=• Si vous tombez dans un liquide, vous serez ralenti à l'impact (mais ne vous arrêtez pas instantanément). Votre profondeur d'impact est déterminée par votre vitesse et la viscosité du liquide. Pour une chute élevée et sûre dans un liquide, assurez-vous qu'il y a suffisamment de liquide au-dessus du sol, sinon vous pourriez toucher le sol et subir des dommages de chute -Liquids are often not pointable. But some special items are able to point all liquids.=Les liquides sont souvent inutiles. Mais certains objets spéciaux sont capables de pointer tous les liquides. -Crafting=Artisanat -Crafting is the task of combining several items to form a new item.=L'artisanat consiste à combiner plusieurs éléments pour former un nouvel élément. -To craft something, you need one or more items, a crafting grid (C) and a crafting recipe. A crafting grid is like a normal inventory which can also be used for crafting. Items need to be put in a certain pattern into the crafting grid. Next to the crafting grid is an output slot (O). Here the result will appear when you placed items correctly. This is just a preview, not the actual item. Crafting grids can come in different sizes which limits the possible recipes you can craft.=Pour fabriquer quelque chose, vous avez besoin d'un ou plusieurs objets, d'une grille de fabrication (C) et d'une recette de fabrication. Une grille d'artisanat est comme un inventaire normal qui peut également être utilisé pour l'artisanat. Les objets doivent être placés selon un certain modèle dans la grille de fabrication. À côté de la grille de fabrication se trouve un emplacement de sortie (O). Ici, le résultat apparaîtra lorsque vous aurez placé les objets correctement. Ceci n'est qu'un aperçu, pas l'élément réel. Les grilles de fabrication peuvent être de différentes tailles, ce qui limite les recettes possibles que vous pouvez créer. -To complete the craft, take the result item from the output slot, which will consume items from the crafting grid and creates a new item. It is not possible to place items into the output slot.=Pour terminer le métier, prenez l'objet résultant de l'emplacement de sortie, qui consommera des objets de la grille de fabrication et créera un nouvel objet. Il n'est pas possible de placer des éléments dans la fente de sortie. -A description on how to craft an item is called a “crafting recipe”. You need this knowledge to craft. There are multiple ways to learn crafting recipes. One way is by using a crafting guide, which contains a list of available crafting recipes. Some games provide crafting guides. There are also some mods which you can download online for installing a crafting guide. Another way is by reading the online manual of the game (if one is available).=Une description sur la façon de fabriquer un objet est appelée "recette d'artisanat". Vous avez besoin de ces connaissances pour créer. Il existe plusieurs façons d'apprendre des recettes d'artisanat. Une façon consiste à utiliser un guide d'artisanat, qui contient une liste des recettes d'artisanat disponibles. Certains jeux proposent des guides d'artisanat. Il existe également des mods que vous pouvez télécharger en ligne pour installer un guide d'artisanat. Une autre façon consiste à lire le manuel en ligne du jeu (s'il en existe un). -Crafting recipes consist of at least one input item and exactly one stack of output items. When performing a single craft, it will consume exactly one item from each stack of the crafting grid, unless the crafting recipe defines replacements.=Les recettes d'artisanat consistent en au moins un élément d'entrée et exactement une pile d'éléments de sortie. Lors de l'exécution d'un seul métier, il consommera exactement un objet de chaque pile de la grille de fabrication, à moins que la recette de fabrication ne définisse des remplacements. -There are multiple types of crafting recipes:=Il existe plusieurs types de recettes d'artisanat: -• Shaped (image 2): Items need to be placed in a particular shape=• En forme (image 2): Les articles doivent être placés dans une forme particulière -• Shapeless (images 3 and 4): Items need to be placed somewhere in input (both images show the same recipe)=• Sans forme (images 3 et 4): Les éléments doivent être placés quelque part dans l'entrée (les deux images montrent la même recette) -• Cooking: Explained in “Basics > Cooking”=• Cuisine: expliquée dans "Bases> Cuisine" -• Repairing (image 5): Place two damaged tools into the crafting grid anywhere to get a tool which is repaired by 5%=• Réparation (image 5): Placez deux outils endommagés dans la grille d'artisanat n'importe où pour obtenir un outil qui est réparé de 5% -In some crafting recipes, some input items do not need to be a concrete item, instead they need to be a member of a group (see “Basics > Groups”). These recipes offer a bit more freedom in the input items. Images 6-8 show the same group-based recipe. Here, 8 items of the “stone” group are required, which is true for all of the shown items.=Dans certaines recettes d'artisanat, certains éléments d'entrée n'ont pas besoin d'être un élément concret, ils doivent plutôt être membres d'un groupe (voir "Bases> Groupes"). Ces recettes offrent un peu plus de liberté dans les éléments d'entrée. Les images 6-8 montrent la même recette de groupe. Ici, 8 éléments du groupe "pierre" sont requis, ce qui est vrai pour tous les éléments affichés. -Rarely, crafting recipes have replacements. This means, whenever you perform a craft, some items in the crafting grid will not be consumed, but instead will be replaced by another item.=Rarement, les recettes d'artisanat ont des remplacements. Cela signifie que chaque fois que vous effectuez un métier, certains objets de la grille de fabrication ne seront pas consommés, mais seront remplacés à la place par un autre objet. -Cooking=Cuisine -Cooking (or smelting) is a form of crafting which does not involve a crafting grid. Cooking is done with a special block (like a furnace), an cookable item, a fuel item and time in order to yield a new item.=La cuisson (ou la fonte) est une forme d'artisanat qui n'implique pas de grille d'artisanat. La cuisson se fait avec un bloc spécial (comme un four), un article à cuire, un article à combustible et du temps afin de produire un nouvel article. -Each fuel item has a burning time. This is the time a single item of the fuel keeps a furnace burning.=Chaque élément combustible a une durée de combustion. C'est le moment où un seul élément du combustible continue de brûler un four. -Each cookable item requires time to be cooked. This time is specific to the item type and the item must be “on fire” for the whole cooking time to actually yield the result.=Chaque élément pouvant être cuit nécessite du temps pour être cuit. Cette durée est spécifique au type d'élément et l'élément doit être «en feu» pendant tout le temps de cuisson pour donner réellement le résultat. -Hotbar=Hotbar -At the bottom of the screen you see some squares. This is called the “hotbar”. The hotbar allows you to quickly access the first items from your player inventory.=Au bas de l'écran, vous voyez des carrés. C'est ce qu'on appelle la "hotbar". La barre d'accès vous permet d'accéder rapidement aux premiers éléments de votre inventaire de joueur. -You can change the selected item with the mouse wheel or the keyboard.=Vous pouvez modifier l'élément sélectionné avec la molette de la souris ou le clavier. -• Select previous item in hotbar: [Mouse wheel up] or [B]=• Sélectionnez l'élément précédent dans la hotbar: [Molette de la souris vers le haut] ou [B] -• Select next item in hotbar: [Mouse wheel down] or [N]=• Sélectionnez l'élément suivant dans la hotbar: [Molette de la souris vers le bas] ou [N] -• Select item in hotbar directly: [1]-[9]=• Sélectionnez l'élément dans la hotbar directement: [1]-[9] -The selected item is also your wielded item.=L'élément sélectionné est également votre élément brandi. -Minimap=Mini-carte -If you have a map item in any of your hotbar slots, you can use the minimap.=Si vous avez un élément de carte dans l'un de vos emplacements de hotbar vous pouvez utiliser la minicarte. -Press [F9] to make a minimap appear on the top right. The minimap helps you to find your way around the world. Press it again to select different minimap modes and zoom levels. The minimap also shows the positions of other players.=Appuyez sur [F9] pour faire apparaître une mini-carte en haut à droite. La mini-carte vous aide à trouver votre chemin dans le monde. Appuyez à nouveau pour sélectionner différents modes de minicarte et niveaux de zoom. La mini-carte montre également les positions des autres joueurs. -There are 2 minimap modes and 3 zoom levels.=Il existe 2 modes de minicarte et 3 niveaux de zoom. -Surface mode (image 1) is a top-down view of the world, roughly resembling the colors of the blocks this world is made of. It only shows the topmost blocks, everything below is hidden, like a satellite photo. Surface mode is useful if you got lost.=Le mode surface (image 1) est une vue de haut en bas du monde, ressemblant à peu près aux couleurs des blocs dont ce monde est fait. Il ne montre que les blocs les plus hauts, tout ce qui suit est caché, comme une photo satellite. Le mode Surface est utile si vous vous êtes perdu. -Radar mode (image 2) is more complicated. It displays the “denseness” of the area around you and changes with your height. Roughly, the more green an area is, the less “dense” it is. Black areas have many blocks. Use the radar to find caverns, hidden areas, walls and more. The rectangular shapes in image 2 clearly expose the position of a dungeon.=Le mode radar (image 2) est plus compliqué. Il affiche la «densité» de la zone autour de vous et change avec votre taille. En gros, plus une zone est verte, moins elle est «dense». Les zones noires ont de nombreux blocs. Utilisez le radar pour trouver des cavernes, des zones cachées, des murs et plus encore. Les formes rectangulaires de l'image 2 révèlent clairement la position d'un donjon. -There are also two different rotation modes. In “square mode”, the rotation of the minimap is fixed. If you press [Shift]+[F9] to switch to “circle mode”, the minimap will instead rotate with your looking direction, so “up” is always your looking direction.=Il existe également deux modes de rotation différents. En "mode carré", la rotation de la minicarte est fixe. Si vous appuyez sur [Shift] + [F9] pour passer en "mode cercle", la minicarte tournera à la place avec votre direction de recherche, donc "haut" est toujours votre direction de recherche. -In some games, the minimap may be disabled.=Dans certains jeux, la minicarte peut être désactivée. -• Toggle minimap mode: [F9]=• Basculer le mode mini-carte: [F9] -• Toggle minimap rotation mode: [Shift]+[F9]=• Basculer le mode de rotation de la mini-carte: [Shift]+[F9] -Inventory=Inventaire -Inventories are used to store item stacks. There are other uses, such as crafting. An inventory consists of a rectangular grid of item slots. Each item slot can either be empty or hold one item stack. Item stacks can be moved freely between most slots.=Les stocks sont utilisés pour stocker des piles d'articles. Il existe d'autres utilisations, telles que l'artisanat. Un inventaire se compose d'une grille rectangulaire d'emplacements d'objets. Chaque emplacement d'objet peut être vide ou contenir une pile d'objets. Les piles d'objets peuvent être déplacées librement entre la plupart des emplacements. -You have your own inventory which is called your “player inventory”, you can open it with the inventory key (default: [I]). The first inventory slots are also used as slots in your hotbar.=Vous avez votre propre inventaire qui s'appelle votre "inventaire de joueur", vous pouvez l'ouvrir avec la clé d'inventaire (par défaut: [I]). Les premiers emplacements d'inventaire sont également utilisés comme emplacements dans votre hotbar. -Blocks can also have their own inventory, e.g. chests and furnaces.=Les blocs peuvent également avoir leur propre inventaire, par exemple coffres et fours. -Inventory controls:=Contrôles d'inventaire: -Taking: You can take items from an occupied slot if the cursor holds nothing.=Prendre: vous pouvez prendre des objets dans un emplacement occupé si le curseur ne contient rien. -• Left click: take entire item stack=• Clic gauche: Prendre toute la pile d'objets -• Right click: take half from the item stack (rounded up)=• Clic droit: Prendre la moitié de la pile d'objets (arrondi vers le haut) -• Middle click: take 10 items from the item stack=• Clic du milieu: Prenez 10 objets de la pile d'objets -• Mouse wheel down: take 1 item from the item stack=• Molette de la souris vers le bas: Prenez 1 objet de la pile d'objets -Putting: You can put items onto a slot if the cursor holds 1 or more items and the slot is either empty or contains an item stack of the same item type.=Placer: Vous pouvez placer des objets dans un emplacement si le curseur contient un ou plusieurs objets et que l'emplacement est vide ou contient une pile d'objets du même type d'objet. -• Left click: put entire item stack=• Clic gauche: Mettre toute la pile d'objets -• Right click: put 1 item of the item stack=• Clic droit: Mettre 1 élément de la pile d'objets -• Right click or mouse wheel up: put 1 item of the item stack=• Clic droit ou roulette de la souris vers le haut: Placez 1 article dans la pile d'objets -• Middle click: put 10 items of the item stack=• Clic du milieu: Mettez 10 objets dans la pile d'objets -Exchanging: You can exchange items if the cursor holds 1 or more items and the destination slot is occupied by a different item type.=Échange: vous pouvez échanger des objets si le curseur contient un ou plusieurs objets et que l'emplacement de destination est occupé par un type d'objet différent. -• Click: exchange item stacks=• Cliquez: Echangez les piles d'articles -Throwing away: If you hold an item stack and click with it somewhere outside the menu, the item stack gets thrown away into the environment.=Jeter: Si vous maintenez une pile d'objets et cliquez avec elle quelque part en dehors du menu, la pile d'objets est jetée dans l'environnement. -Quick transfer: You can quickly transfer an item stack to/from the player inventory to/from another item's inventory slot like a furnace, chest, or any other item with an inventory slot when that item's inventory is accessed. The target inventory is generally the most relevant inventory in this context.=Transfert rapide: vous pouvez rapidement transférer une pile d'objets vers / depuis l'inventaire du joueur vers / depuis l'emplacement d'inventaire d'un autre objet comme un four, un coffre ou tout autre élément avec un emplacement d'inventaire lorsque l'inventaire de cet article est accessible. L'inventaire cible est généralement l'inventaire le plus pertinent dans ce contexte. -• Sneak+Left click: Automatically transfer item stack=• Faufiler+clic gauche: transférer automatiquement la pile d'objets -Online help=Aide en ligne -You may want to check out these online resources related to MineClone 2.=Vous voudrez peut-être consulter ces ressources en ligne liées à MineClone 2. -MineClone 2 download and forum discussion: =Téléchargement de MineClone 2 et discussion sur le forum: -Here you find the most recent version of MineClone 2 and can discuss it.=Vous trouverez ici la version la plus récente de MineClone 2 et pouvez en discuter. -Bug tracker: =Suivi des bogues: -Report bugs here.=Signalez les bugs ici. -Minetest links:=Liens Minetest: -You may want to check out these online resources related to Minetest:=Vous voudrez peut-être consulter ces ressources en ligne liées à Minetest: -Official homepage of Minetest: =Page d'accueil officielle de Minetest: -The main place to find the most recent version of Minetest, the engine used by MineClone 2.=L'endroit principal pour trouver la version la plus récente de Minetest, le moteur utilisé par MineClone 2. -The main place to find the most recent version of Minetest.=L'endroit principal pour trouver la version la plus récente de Minetest. -Community wiki: =Wiki de la communauté: -A community-based documentation website for Minetest. Anyone with an account can edit it! It also features a documentation of Minetest Game.=Un site Web de documentation communautaire pour Minetest. N'importe qui avec un compte peut le modifier! C'est aussi une documentation pour Minetest. -Minetest forums: =Forums de minetest: -A web-based discussion platform where you can discuss everything related to Minetest. This is also a place where player-made mods and games are published and discussed. The discussions are mainly in English, but there is also space for discussion in other languages.=Une plate-forme de discussion en ligne où vous pouvez discuter de tout ce qui concerne Minetest. C'est également un endroit où les mods et les jeux créés par les joueurs sont publiés et discutés. Les discussions se déroulent principalement en anglais, mais il existe également un espace de discussion dans d'autres langues. -Chat: =Chat: -A generic Internet Relay Chat channel for everything related to Minetest where people can meet to discuss in real-time. If you do not understand IRC, see the Community Wiki for help.=Un canal de discussion générique pour tout ce qui concerne le Minetest où les gens peuvent se rencontrer pour discuter en temps réel. Si vous ne comprenez pas IRC, consultez le wiki de la communauté pour obtenir de l'aide. -Groups=Groupes -Items, players and objects (animate and inanimate) can be members of any number of groups. Groups serve multiple purposes:=Les objets, les joueurs et les objets (animés et inanimés) peuvent être membres de plusieurs de groupes. Les groupes ont plusieurs objectifs: -• Crafting recipes: Slots in a crafting recipe may not require a specific item, but instead an item which is a member of a particular group, or multiple groups=• Recettes d'artisanat: Les emplacements d'une recette d'artisanat peuvent ne pas nécessiter un élément spécifique, mais plutôt un élément qui est membre d'un groupe particulier ou de plusieurs groupes. -• Digging times: Diggable blocks belong to groups which are used to determine digging times. Mining tools are capable of digging blocks belonging to certain groups=• Temps de creusement: Les blocs pouvant être creusés appartiennent à des groupes qui sont utilisés pour déterminer les temps de creusement. Les outils miniers sont capables de creuser des blocs appartenant à certains groupes -• Block behavior: Blocks may show a special behaviour and interact with other blocks when they belong to a particular group=• Comportement des blocs: Les blocs peuvent présenter un comportement spécial et interagir avec d'autres blocs lorsqu'ils appartiennent à un groupe particulier -• Damage and armor: Objects and players have armor groups, weapons have damage groups. These groups determine damage. See also: “Basics > Weapons”=• Dommages et armures: Les objets et les joueurs ont des groupes d'armures, les armes ont des groupes de dégâts. Ces groupes déterminent les dommages. Voir aussi: "Bases> Armes" -• Other uses=• Autres utilisations -In the item help, many important groups are usually mentioned and explained.=Dans l'aide aux objets, de nombreux groupes importants sont généralement mentionnés et expliqués. -Glossary=Glossaire -This is a list of commonly used terms:=Voici une liste de termes couramment utilisés: -Controls:=Les contrôles: -• Wielding: Holding an item in hand=• Maniement: Tenir un objet en main -• Pointing: Looking with the crosshair at something in range=• Pointage: Regarder avec le réticule quelque chose à portée -• Dropping: Throwing an item or item stack to the ground=• Lâcher: Jeter un objet ou une pile d'objets au sol -• Punching: Attacking with left-click, is also used on blocks=• Frapper: Attaque avec clic gauche, est également utilisé sur les blocs -• Sneaking: Walking slowly while (usually) avoiding to fall over edges=• Se faufiler: Marcher lentement tout en évitant (généralement) de tomber sur les bords -• Climbing: Moving up or down a climbable block=• Escalade: Monter ou descendre un bloc grimpable -Blocks:=Blocs: -• Block: Cubes that the worlds are made of=• Bloc: Cubes dont les mondes sont faits -• Mining/digging: Using a mining tool to break a block=• Exploration/minage: Utilisation d'un outil d'exploration pour casser un bloc -• Building/placing: Putting a block somewhere=• Construction/Placement: Placer un bloc quelque part -• Drop: Items you get after mining a block=• Drop: Les objets que vous obtenez après avoir extrait un bloc -• Using a block: Right-clicking a block to access its special function=• Utilisation d'un bloc: Clic droit sur un bloc pour accéder à sa fonction spéciale -Items:=Objects: -• Item: A single thing that players can possess=• Objet: Une seule chose que les joueurs peuvent posséder -• Item stack: A collection of items of the same kind=• Pile d'objets: Une collection d'objets du même type -• Maximum stack size: Maximum amount of items in an item stack=• Taille maximale de la pile: Quantité maximale d'éléments dans une pile d'éléments -• Slot / inventory slot: Can hold one item stack=• Emplacement/Emplacement d'inventaire: Peut contenir une pile d'objets -• Inventory: Provides several inventory slots for storage=• Inventaire: Fournit plusieurs emplacements d'inventaire pour le stockage -• Player inventory: The main inventory of a player=• Inventaire des joueurs: L'inventaire principal d'un joueur -• Tool: An item which you can use to do special things with when wielding=• Outil: Un élément que vous pouvez utiliser pour faire des choses spéciales avec lors du soudage -• Range: How far away things can be to be pointed by an item=• Plage: A quelle distance les objets peuvent être pointés par un élément -• Mining tool: A tool which allows to break blocks=• Outil minier: Un outil qui permet de casser des blocs -• Craftitem: An item which is (primarily or only) used for crafting=• Composant: Un objet qui est (principalement ou uniquement) utilisé pour l'artisanat -Gameplay:=Gameplay: -• “heart”: A single health symbol, indicates 2 HP=• "coeur": Un seul symbole de santé, indique 2 PV -• “bubble”: A single breath symbol, indicates 1 BP=• "bulle": Un symbole de respiration unique, indique 1 BP -• HP: Hit point (equals half 1 “heart”)=• VP: point de vie (équivaut à un demi-«coeur») -• BP: Breath point, indicates breath when diving=• BP: Point de respiration, indique la respiration lors de la plongée -• Mob: Computer-controlled enemy=• Mob: Ennemi contrôlé par ordinateur -• Crafting: Combining multiple items to create new ones=• Artisanat: Combiner plusieurs objets pour en créer de nouveaux -• Crafting guide: A helper which shows available crafting recipes=• Guide d'artisanat: Un assistant qui montre les recettes d'artisanat disponibles -• Spawning: Appearing in the world=• Reproduction: Apparaissant dans le monde -• Respawning: Appearing again in the world after death=• Réapparition: Réapparaître dans le monde après la mort -• Group: Puts similar things together, often affects gameplay=• Groupe: Rassemble des choses similaires, affecte souvent le gameplay -• noclip: Allows to fly through walls=• noclip: Permet de voler à travers les murs -Interface=Interface -• Hotbar: Inventory slots at the bottom=• Hotbar: Emplacements d'inventaire en bas -• Statbar: Indicator made out of half-symbols, used for health and breath=• Statbar: Indicateur composé de demi-symboles, utilisé pour la santé et la respiration -• Minimap: The map or radar at the top right=• Mini-carte: La carte ou le radar en haut à droite -• Crosshair: Seen in the middle, used to point at things=• Réticule: Vu au milieu, utilisé pour pointer les choses -Online multiplayer:=Multijoueur en ligne: -• PvP: Player vs Player. If active, players can deal damage to each other=• PvP: Joueur contre Joueur. S'ils sont actifs, les joueurs peuvent s'infliger mutuellement des dégâts -• Griefing: Destroying the buildings of other players against their will=• Deuil: Détruire les bâtiments des autres joueurs contre leur gré -• Protection: Mechanism to own areas of the world, which only allows the owners to modify blocks inside=• Protection: Mécanisme pour posséder des zones du monde, qui permet uniquement aux propriétaires de modifier les blocs à l'intérieur -Technical terms:=Termes techniques: -• Minetest: This game engine=• Minetest: Ce moteur de jeu -• MineClone 2: What you play right now=• MineClone 2: Ce que vous jouez en ce moment -• Minetest Game: A game for Minetest by the Minetest developers=• Minetest Game: Un jeu pour Minetest par les développeurs de Minetest -• Game: A complete playing experience to be used in Minetest; such as a game or sandbox or similar=• Jeu: Une expérience de jeu complète à utiliser dans Minetest; comme un jeu ou un bac à sable ou similaire -• Mod: A single subsystem which adds or modifies functionality; is the basic building block of games and can be used to further enhance or modify them=• Mod: un sous-système unique qui ajoute ou modifie des fonctionnalités; est le bloc de construction de base des jeux et peut être utilisé pour les améliorer ou les modifier davantage -• Privilege: Allows a player to do something=• Privilège: Permet à un joueur de faire quelque chose -• Node: Other word for “block”=• Noeud: Autre mot pour "bloc" -Settings=Réglages -There is a large variety of settings to configure Minetest. Pretty much every aspect can be changed that way.=Il existe une grande variété de paramètres pour configurer Minetest. Presque tous les aspects peuvent être modifiés de cette façon. -These are a few of the most important gameplay settings:=Voici quelques-uns des paramètres de jeu les plus importants: -• Damage enabled (enable_damage): Enables the health and breath attributes for all players. If disabled, players are immortal=• Dommage activé (enable_damage): Active les attributs de santé et de souffle pour tous les joueurs. Si désactivé, les joueurs sont immortels -• Creative Mode (creative_mode): Enables sandbox-style gameplay focusing on creativity rather than a challenging gameplay. The meaning depends on the game; usual changes are: Reduced dig times, easy access to almost all items, tools never wear off, etc.=• Mode créatif (creative_mode): permet un gameplay de style sandbox en se concentrant sur la créativité plutôt que sur un gameplay difficile. Le sens dépend du jeu; les changements habituels sont: temps de fouille réduits, accès facile à presque tous les articles, les outils ne s'usent jamais, etc. -• PvP (enable_pvp): Short for “Player vs Player”. If enabled, players can deal damage to each other=• PvP (enable_pvp): Abréviation de «Player vs Player». Si activé, les joueurs peuvent s'infliger mutuellement des dégâts -For a full list of all available settings, use the “All Settings” dialog in the main menu.=Pour une liste complète de tous les paramètres disponibles, utilisez la boîte de dialogue "Tous les Paramètres" dans le menu principal. -Movement modes=Modes de mouvement -You can enable some special movement modes that change how you move.=Vous pouvez activer certains modes de déplacement spéciaux qui modifient votre façon de vous déplacer. -Pitch movement mode:=Mode de mouvement de tangage: -• Description: If this mode is activated, the movement keys will move you relative to your current view pitch (vertical look angle) when you're in a liquid or in fly mode.=• Description: Si ce mode est activé, les touches de déplacement vous déplaceront par rapport à votre hauteur de vue actuelle (angle de vue vertical) lorsque vous êtes en mode liquide ou en mode vol. -• Default key: [L]=• Touche par défaut: [L] -• No privilege required=• Aucun privilège requis -Fast mode:=Mode Rapide: -• Description: Allows you to move much faster. Hold down the the “Use” key [E] to move faster. In the client configuration, you can further customize fast mode.=• Description: vous permet de vous déplacer beaucoup plus rapidement. Maintenez la touche "Utiliser" [E] enfoncée pour vous déplacer plus rapidement. Dans la configuration du client, vous pouvez personnaliser davantage le mode rapide. -• Default key: [J]=• Touche par défaut: [J] -• Required privilege: fast=• Privilège requis: fast -Fly mode:=Mode Vol: -• Description: Gravity doesn't affect you and you can move freely in all directions. Use the jump key to rise and the sneak key to sink.=• Description: La gravité ne vous affecte pas et vous pouvez vous déplacer librement dans toutes les directions. Utilisez la touche de saut pour monter et la touche de sneak pour descendre. -• Default key: [K]=• Touche par défaut: [K] -• Required privilege: fly=• Privilège requis: fly -Noclip mode:=Mode Noclip: -• Description: Allows you to move through walls. Only works when fly mode is enabled, too.=• Description: vous permet de vous déplacer à travers les murs. Fonctionne uniquement lorsque le mode avion est également activé. -• Default key: [H]=• Touche par défaut: [H] -• Required privilege: noclip=• Privilège requis: noclip -Console=Console -With [F10] you can open and close the console. The main use of the console is to show the chat log and enter chat messages or server commands.=Avec [F10], vous pouvez ouvrir et fermer la console. L'utilisation principale de la console est d'afficher le journal de discussion et d'entrer des messages de discussion ou des commandes de serveur. -Using the chat or server command key also opens the console, but it is smaller and will be closed after you sent a message.=L'utilisation de la touche de commande chat ou serveur ouvre également la console, mais elle est plus petite et sera fermée après l'envoi d'un message. -Use the chat to communicate with other players. This requires you to have the “shout” privilege.=Utilisez le chat pour communiquer avec d'autres joueurs. Cela vous oblige à avoir le privilège "shout". -Just type in the message and hit [Enter]. Public chat messages can not begin with “/”.=Tapez simplement le message et appuyez sur [Entrée]. Les messages de discussion publique ne peuvent pas commencer par "/". -You can send private messages: Say “/msg ” in chat to send “” which can only be seen by .=Vous pouvez envoyer des messages privés: Dites "/msg " dans le chat pour envoyer "" qui ne peut être vu que par . -There are some special controls for the console:=Il existe des commandes spéciales pour la console: -• [F10] Open/close console=• [F10]: Ouvrir/fermer la console -• [Enter]: Send message or command=• [Entrée]: Envoyer un message ou une commande -• [Tab]: Try to auto-complete a partially-entered player name=• [Tab]: Essayez de compléter automatiquement un nom de joueur partiellement entré -• [Ctrl]+[Left]: Move cursor to the beginning of the previous word=• [Ctrl]+[Gauche]: Déplacer le curseur au début du mot précédent -• [Ctrl]+[Right]: Move cursor to the beginning of the next word=• [Ctrl]+[Droite]: Déplacez le curseur au début du mot suivant -• [Ctrl]+[Backspace]: Delete previous word=• [Ctrl]+[Retour arrière]: Supprimer le mot précédent -• [Ctrl]+[Delete]: Delete next word=• [Ctrl]+[Supprimer]: Supprimer le mot suivant -• [Ctrl]+[U]: Delete all text before the cursor=• [Ctrl]+[U]: Supprimer tout le texte avant le curseur -• [Ctrl]+[K]: Delete all text after the cursor=• [Ctrl]+[K]: Supprimer tout le texte après le curseur -• [Page up]: Scroll up=• [Page précédente]: Faites défiler vers le haut -• [Page down]: Scroll down=• [Page suivante]: Faites défiler vers le bas -There is also an input history. Minetest saves your previous console inputs which you can quickly access later:=Il existe également un historique des entrées. Minetest enregistre vos entrées de console précédentes auxquelles vous pouvez accéder rapidement plus tard: -• [Up]: Go to previous entry in history=• [Haut]: Aller à l'entrée précédente de l'historique -• [Down]: Go to next entry in history=• [Bas]: Passer à la prochaine entrée de l'historique -Server commands=Commandes serveur -Server commands (also called “chat commands”) are little helpers for advanced users. You don't need to use these commands when playing. But they might come in handy to perform some more technical tasks. Server commands work both in multi-player and single-player mode.=Les commandes serveur (également appelées "commandes de chat") sont de petites aides pour les utilisateurs avancés. Vous n'avez pas besoin d'utiliser ces commandes lors du jeu. Mais elles pourraient être utiles pour effectuer des tâches plus techniques. Les commandes du serveur fonctionnent à la fois en mode multi-joueurs et solo. -Server commands can be entered by players using the chat to perform a special server action. There are a few commands which can be issued by everyone, but some commands only work if you have certain privileges granted on the server. There is a small set of basic commands which are always available, other commands can be added by mods.=Les commandes du serveur peuvent être saisies par les joueurs utilisant le chat pour effectuer une action spéciale du serveur. Il y a quelques commandes qui peuvent être émises par tout le monde, mais certaines commandes ne fonctionnent que si vous avez certains privilèges accordés sur le serveur. Il y a un petit ensemble de commandes de base qui sont toujours disponibles, d'autres commandes peuvent être ajoutées par des mods. -To issue a command, simply type it like a chat message or press Minetest's command key (default: [/]). All commands have to begin with “/”, for example “/mods”. The Minetest command key does the same as the chat key, except that the slash is already entered.=Pour lancer une commande, tapez-la simplement comme un message de discussion ou appuyez sur la touche de commande de Minetest (par défaut: [/]). Toutes les commandes doivent commencer par "/", par exemple "/mods". La touche de commande Minetest fait la même chose que la touche de conversation, sauf que la barre oblique est déjà entrée. -Commands may or may not give a response in the chat log, but errors will generally be shown in the chat. Try it for yourselves: Close this window and type in the “/mods” command. This will give you the list of available mods on this server.=Les commandes peuvent ou non donner une réponse dans le journal de discussion, mais les erreurs seront généralement affichées dans la discussion. Essayez-le par vous-même: Fermez cette fenêtre et tapez la commande "/mods". Cela vous donnera la liste des mods disponibles sur ce serveur. -“/help all” is a very important command: You get a list of all available commands on the server, a short explanation and the allowed parameters. This command is also important because the available commands often differ per server.="/Help all" est une commande très importante: vous obtenez une liste de toutes les commandes disponibles sur le serveur, une brève explication et les paramètres autorisés. Cette commande est également importante car les commandes disponibles diffèrent souvent selon le serveur. -Commands are followed by zero or more parameters.=Les commandes sont suivies de zéro ou plusieurs paramètres. -In the command reference, you see some placeholders which you need to replace with an actual value. Here's an explanation:=Dans la référence de commande, vous voyez des espaces réservés que vous devez remplacer par une valeur réelle. Voici une explication: -• Text in greater-than and lower-than signs (e.g. “”): Placeholder for a parameter=• Texte en signes supérieur à et inférieur à (par exemple «»): Espace réservé pour un paramètre -• Anything in square brackets (e.g. “[text]”) is optional and can be omitted=• Tout ce qui est entre crochets (par exemple «[texte]») est facultatif et peut être omis -• Pipe or slash (e.g. “text1 | text2 | text3”): Alternation. One of multiple texts must be used (e.g. “text2”)=• Tuyau ou barre oblique (par exemple, «texte1 | texte2 | texte3»): Alternance. L'un des multiples textes doit être utilisé (par exemple, "texte2") -• Parenthesis: (e.g. “(word1 word2) | word3”): Groups multiple words together, used for alternations=• Parenthèses: (par exemple «(mot1 mot2) | mot3»): Regroupe plusieurs mots, utilisés pour les alternances -• Everything else is to be read as literal text=• Tout le reste doit être lu comme un texte littéral -Here are some examples to illustrate the command syntax:=Voici quelques exemples pour illustrer la syntaxe de commande: -• /mods: No parameters. Just enter “/mods”=• /mods: aucun paramètre. Entrez simplement "/mods" -• /me : 1 parameter. You have to enter “/me ” followed by any text, e.g. “/me orders pizza”=• /me : 1 paramètre. Vous devez saisir "/me" suivi de tout texte, par ex. "/me order pizza" -• /give : Two parameters. Example: “/give Player default:apple”=• /give : Deux paramètres. Exemple: "/give Player default:apple" -• /help [all|privs|]: Valid inputs are “/help”, “/help all”, “/help privs”, or “/help ” followed by a command name, like “/help time”=• /help [all | privs | ]: Les entrées valides sont "/help", "/help all", "/help privs" ou "/help" suivi d'un nom de commande, comme "/help time" -• /spawnentity [,,]: Valid inputs include “/spawnentity boats:boat” and “/spawnentity boats:boat 0,0,0”=• /spawnentity [,,]: Les entrées valides sont “/spawnentity boats:boat” et “/spawnentity boats:boat 0,0,0” -Some final remarks:=Quelques remarques finales: -• For /give and /giveme, you need an itemstring. This is an internally used unique item identifier which you may find in the item help if you have the “give” or “debug” privilege=• Pour /give et /giveme, vous avez besoin d'une chaîne d'objet. Il s'agit d'un identifiant d'élément unique utilisé en interne que vous pouvez trouver dans l'aide de l'élément si vous disposez du privilège "give" ou "debug". -• For /spawnentity you need an entity name, which is another identifier=• Pour /spawnentity, vous avez besoin d'un nom d'entité, qui est un autre identifiant -Privileges=Privilèges -Each player has a set of privileges, which differs from server to server. Your privileges determine what you can and can't do. Privileges can be granted and revoked from other players by any player who has the privilege called “privs”.=Chaque joueur dispose d'un ensemble de privilèges, qui diffèrent d'un serveur à l'autre. Vos privilèges déterminent ce que vous pouvez et ne pouvez pas faire. Les privilèges peuvent être accordés et révoqués aux autres joueurs par n'importe quel joueur qui a le privilège appelé "privs". -On a multiplayer server with the default configuration, new players start with the privileges called “interact” and “shout”. The “interact” privilege is required for the most basic gameplay actions such as building, mining, using, etc. The “shout” privilege allows to chat.=Sur un serveur multijoueur avec la configuration par défaut, les nouveaux joueurs commencent avec les privilèges appelés "interact" et "shout". Le privilège "interact" est requis pour les actions de jeu les plus élémentaires telles que la construction, l'extraction, l'utilisation, etc. Le privilège "shout" permet de discuter. -There is a small set of core privileges which you'll find on every server, other privileges might be added by mods.=Il existe un petit ensemble de privilèges de base que vous trouverez sur chaque serveur, d'autres privilèges peuvent être ajoutés par les mods. -To view your own privileges, issue the server command “/privs”.=Pour afficher vos propres privilèges, exécutez la commande serveur "/privs". -Here are a few basic privilege-related commands:=Voici quelques commandes de base liées aux privilèges: -• /privs: Lists your privileges=• /privs: Répertorie vos privilèges -• /privs : Lists the privileges of =• /privs : Répertorie les privilèges de -• /help privs: Shows a list and description about all privileges=• /help privs: Affiche une liste et une description de tous les privilèges -Players with the “privs” privilege can modify privileges at will:=Les joueurs avec le privilège "privs" peuvent modifier les privilèges à volonté: -• /grant : Grant to =• /grant : Accordez à -• /revoke : Revoke from =• /revoke : Révoquer de -In single-player mode, you can use “/grantme all” to unlock all abilities.=En mode solo, vous pouvez utiliser "/grantme all" pour débloquer toutes les capacités. -Light=Lumière -As the world is entirely block-based, so is the light in the world. Each block has its own brightness. The brightness of a block is expressed in a “light level” which ranges from 0 (total darkness) to 15 (as bright as the sun).=Comme le monde est entièrement basé sur des blocs, la lumière du monde l'est également. Chaque bloc a sa propre luminosité. La luminosité d'un bloc s'exprime dans un "niveau de lumière" qui varie de 0 (obscurité totale) à 15 (aussi lumineux que le soleil). -There are two types of light: Sunlight and artificial light.=Il existe deux types de lumière: La lumière du soleil et la lumière artificielle. -Artificial light is emitted by luminous blocks. Artificial light has a light level from 1-14.=La lumière artificielle est émise par des blocs lumineux. La lumière artificielle a un niveau de lumière de 1 à 14. -Sunlight is the brightest light and always goes perfectly straight down from the sky at each time of the day. At night, the sunlight will become moonlight instead, which still provides a small amount of light. The light level of sunlight is 15.=La lumière du soleil est la lumière la plus brillante et descend toujours parfaitement directement du ciel à chaque heure de la journée. La nuit, la lumière du soleil deviendra le clair de lune à la place, qui fournit toujours une petite quantité de lumière. Le niveau de lumière solaire est de 15. -Blocks have 3 levels of transparency:=Les blocs ont 3 niveaux de transparence: -• Transparent: Sunlight goes through limitless, artificial light goes through with losses=• Transparent: La lumière du soleil passe sans limite, la lumière artificielle passe avec des pertes -• Semi-transparent: Sunlight and artificial light go through with losses=• Semi-transparent: La lumière du soleil et la lumière artificielle subissent des pertes -• Opaque: No light passes through=• Opaque: Aucune lumière ne passe -Artificial light will lose one level of brightness for each transparent or semi-transparent block it passes through, until only darkness remains (image 1).=La lumière artificielle perdra un niveau de luminosité pour chaque bloc transparent ou semi-transparent qu'elle traverse, jusqu'à ce qu'il ne reste que l'obscurité (image 1). -Sunlight will preserve its brightness as long it only passes fully transparent blocks. When it passes through a semi-transparent block, it turns to artificial light. Image 2 shows the difference.=La lumière du soleil conservera sa luminosité tant qu'elle ne passera que par des blocs entièrement transparents. Lorsqu'il passe à travers un bloc semi-transparent, il se transforme en lumière artificielle. L'image 2 montre la différence. -Note that “transparency” here only means that the block is able to carry brightness from its neighboring blocks. It is possible for a block to be transparent to light but you can't see trough the other side.=Notez que la "transparence" ici signifie uniquement que le bloc est capable de transporter la luminosité de ses blocs voisins. Il est possible qu'un bloc soit transparent à la lumière mais vous ne pouvez pas voir à travers l'autre côté. -Coordinates=Coordonnées -The world is a large cube. And because of this, a position in the world can be easily expressed with Cartesian coordinates. That is, for each position in the world, there are 3 values X, Y and Z.=Le monde est un grand cube. Et pour cette raison, une position dans le monde peut être facilement exprimée avec des coordonnées cartésiennes. Autrement dit, pour chaque position dans le monde, il existe 3 valeurs X, Y et Z. -Like this: (5, 45, -12)=Comme ceci: (5, 45, -12) -This refers to the position where X@=5, Y@=45 and Z@=-12. The 3 letters are called “axes”: Y is for the height. X and Z are for the horizontal position.=Cela fait référence à la position où X@=5, Y@=45 et Z@=-12. Les 3 lettres sont appelées "axes": Y est pour la hauteur. X et Z sont pour la position horizontale. -The values for X, Y and Z work like this:=Les valeurs pour X, Y et Z fonctionnent comme ceci: -• If you go up, Y increases=• Si vous montez, Y augmente -• If you go down, Y decreases=• Si vous descendez, Y diminue -• If you follow the sun, X increases=• Si vous suivez le soleil, X augmente -• If you go to the reverse direction, X decreases=• Si vous allez dans le sens inverse, X diminue -• Follow the sun, then go right: Z increases=• Suivez le soleil, puis allez à droite: Z augmente -• Follow the sun, then go left: Z decreases=• Suivez le soleil, puis allez à gauche: Z diminue -• The side length of a full cube is 1=• La longueur latérale d'un cube complet est de 1 -You can view your current position in the debug screen (open with [F5]).=Vous pouvez afficher votre position actuelle dans l'écran de débogage (ouvrir avec [F5]). - -# MCL2 extensions -Creative Mode=Mode Creatif -Enabling Creative Mode in MineClone 2 applies the following changes:=L'activation du mode créatif dans MineClone 2 applique les modifications suivantes: -• You keep the things you've placed=• Vous gardez les choses que vous avez placées -• Creative inventory is available to obtain most items easily=• Un inventaire créatif est disponible pour obtenir facilement la plupart des objets -• Hand breaks all default blocks instantly=• La main brise instantanément tous les blocs par défaut -• Greatly increased hand pointing range=• Plage de pointage de la main considérablement augmentée -• Mined blocks don't drop items=• Les blocs extraits ne déposent pas d'objets -• Items don't get used up=• Les articles ne s'épuisent pas -• Tools don't wear off=• Les outils ne s'usent pas -• You can eat food whenever you want=• Vous pouvez manger de la nourriture quand vous le souhaitez -• You can always use the minimap (including radar mode)=• Vous pouvez toujours utiliser la minicarte (y compris le mode radar) -Damage is not affected by Creative Mode, it needs to be disabled separately.=Les dommages ne sont pas affectés par le mode créatif, ils doivent être désactivés séparément. -Mobs=Mobs -Mobs are the living beings in the world. This includes animals and monsters.=Les mobs sont les êtres vivants du monde. Cela inclut les animaux et les monstres. -Mobs appear randomly throughout the world. This is called “spawning”. Each mob kind appears on particular block types at a given light level. The height also plays a role. Peaceful mobs tend to spawn at daylight while hostile ones prefer darkness. Most mobs can spawn on any solid block but some mobs only spawn on particular blocks (like grass blocks).=Les mobs apparaissent de manière aléatoire à travers le monde. C'est ce qu'on appelle l'"apparition". Chaque type de mob apparaît sur des types de blocs particuliers à un niveau de lumière donné. La hauteur joue également un rôle. Les mobs pacifiques ont tendance à apparaître à la lumière du jour tandis que les hostiles préfèrent l'obscurité. La plupart des mobs peuvent apparaître sur n'importe quel bloc solide, mais certains n'apparaissent que sur des blocs particuliers (comme les blocs d'herbe). -Like players, mobs have hit points and sometimes armor points, too (which means you need better weapons to deal any damage at all). Also like players, hostile mobs can attack directly or at a distance. Mobs may drop random items after they die.=Comme les joueurs, les monstres ont aussi des points de vie et parfois des points d'armure (ce qui signifie que vous avez besoin de meilleures armes pour infliger des dégâts). Comme les joueurs, les monstres hostiles peuvent attaquer directement ou à distance. Les mobs peuvent déposer des objets aléatoires après leur mort. -Most animals roam the world aimlessly while most hostile mobs hunt players. Animals can be fed, tamed and bred.=La plupart des animaux parcourent le monde sans but tandis que la plupart des monstres hostiles chassent les joueurs. Les animaux peuvent être nourris, apprivoisés et élevés. -Animals=Animaux -Animals are peaceful beings which roam the world aimlessly. You can feed, tame and breed them.=Les animaux sont des êtres pacifiques qui parcourent le monde sans but. Vous pouvez les nourrir, les apprivoiser et les élever. -Feeding:=Alimentation: -Each animal has its own taste for food and doesn't just accept any food. To feed, hold an item in your hand and rightclick the animal.=Chaque animal a son propre goût pour la nourriture et n'accepte pas n'importe quelle nourriture. Pour vous nourrir, tenez un objet dans votre main et faites un clic droit sur l'animal. -Animals are attraced to the food they like and follow you as long you hold the food item in hand.=Les animaux sont attirés par la nourriture qu'ils aiment et vous suivent aussi longtemps que vous tenez l'aliment en main. -Feeding an animal has three uses: Taming, healing and breeding.=Nourrir un animal a trois usages: Apprivoiser, guérir et se reproduire. -Feeding heals animals instantly, depending on the quality of the food item.=Nourrir les animaux guérit instantanément, selon la qualité de l'aliment. -Taming:=Apprivoisement: -A few animals can be tamed. You can generally do more things with tamed animals and use other items on them. For example, tame horses can be saddled and tame wolves fight on your side.=Quelques animaux peuvent être apprivoisés. Vous pouvez généralement faire plus de choses avec des animaux apprivoisés et utiliser d'autres objets dessus. Par exemple, les chevaux apprivoisés peuvent être sellés et les loups apprivoisés se battent à vos côtés. -Breeding:=Reproduction: -When you have fed an animal up to its maximum health, then feed it again, you will activate “Love Mode” and many hearts appear around the animal.=Lorsque vous avez nourri un animal à sa santé maximale, puis le nourrir à nouveau, vous activerez le "Mode Amour" et de nombreux coeurs apparaissent autour de l'animal. -Two animals of the same species will start to breed if they are in Love Mode and close to each other. Soon a baby animal will pop up.=Deux animaux de la même espèce commenceront à se reproduire s'ils sont en mode Amour et proches l'un de l'autre. Bientôt, un bébé animal apparaîtra. -Baby animals:=Bébés animaux: -Baby animals are just like their adult couterparts, but they can't be tamed or bred and don't drop anything when they die. They grow to adults after a short time. When fed, they grow to adults faster.=Les bébés animaux sont comme leurs homologues adultes, mais ils ne peuvent pas être apprivoisés ou élevés et ne laissent rien tomber lorsqu'ils meurent. Ils deviennent adultes après peu de temps. Une fois nourris, ils deviennent plus vite adultes. -Hunger=Faim -Hunger affects your health and your ability to sprint. Hunger is not in effect when damage is disabled.=La faim affecte votre santé et votre capacité à sprinter. La faim n'est pas active lorsque les dégâts sont désactivés. -Core hunger rules:=Règles fondamentales de la faim: -• You start with 20/20 hunger points (more points @= less hungry)=• Vous commencez avec 20/20 points de faim (plus de points @= moins faim) -• Actions like combat, jumping, sprinting, etc. decrease hunger points=• Des actions comme le combat, le saut, le sprint, etc. diminuent les points de faim -• Food restores hunger points=• La nourriture rétablit les points de faim -• If your hunger bar decreases, you're hungry=• Si votre barre de la faim diminue, vous avez faim -• At 18-20 hunger points, you regenerate 1 HP every 4 seconds=• À 18-20 points de faim, vous régénérez 1 PV toutes les 4 secondes -• At 6 hunger points or less, you can't sprint=• À 6 points de faim ou moins, vous ne pouvez pas sprinter -• At 0 hunger points, you lose 1 HP every 4 seconds (down to 1 HP)=• À 0 point de faim, vous perdez 1 PV toutes les 4 secondes (jusqu'à 1 PV) -• Poisonous food decreases your health=• La nourriture toxique diminue votre santé -Details:=Détails: -You have 0-20 hunger points, indicated by 20 drumstick half-icons above the hotbar. You also have an invisible attribute: Saturation.=Vous avez 0-20 points de faim, indiqués par 20 demi-icônes de pilon de Poulet au-dessus de la hotbar. Vous avez également un attribut invisible: La saturation. -Hunger points reflect how full you are while saturation points reflect how long it takes until you're hungry again.=Les points de faim reflètent à quel point vous êtes plein tandis que les points de saturation reflètent le temps qu'il vous faut avant d'avoir à nouveau faim. -Each food item increases both your hunger level as well your saturation.=Chaque aliment augmente à la fois votre niveau de faim et votre saturation. -Food with a high saturation boost has the advantage that it will take longer until you get hungry again.=Les aliments avec une augmentation de saturation élevée ont l'avantage de prendre plus de temps jusqu'à ce que vous ayez de nouveau faim. -A few food items might induce food poisoning by chance. When you're poisoned, the health and hunger symbols turn sickly green. Food poisoning drains your health by 1 HP per second, down to 1 HP. Food poisoning also drains your saturation. Food poisoning goes away after a while or when you drink milk.=Quelques denrées alimentaires peuvent provoquer une intoxication alimentaire par hasard. Lorsque vous êtes empoisonné, les symboles de santé et de faim virent au vert maladif. L'intoxication alimentaire draine votre santé de 1 PV par seconde, jusqu'à 1 PV. L'intoxication alimentaire draine également votre saturation. L'intoxication alimentaire disparaît après un certain temps ou lorsque vous buvez du lait. -You start with 5 saturation points. The maximum saturation is equal to your current hunger level. So with 20 hunger points your maximum saturation is 20. What this means is that food items which restore many saturation points are more effective the more hunger points you have. This is because at low hunger levels, a lot of the saturation boost will be lost due to the low saturation cap.=Vous commencez avec 5 points de saturation. La saturation maximale est égale à votre niveau de faim actuel. Ainsi, avec 20 points de faim, votre saturation maximale est de 20. Ce que cela signifie, c'est que les aliments qui rétablissent de nombreux points de saturation sont plus efficaces avec plus de points de faim. En effet, à de faibles niveaux de faim, une grande partie de l'augmentation de la saturation sera perdue en raison du plafond de saturation faible. -If your saturation reaches 0, you're hungry and start to lose hunger points. Whenever you see the hunger bar decrease, it is a good time to eat.=Si votre saturation atteint 0, vous avez faim et commencez à perdre des points de faim. Chaque fois que vous voyez la barre de la faim diminuer, c'est le bon moment pour manger. -Saturation decreases by doing things which exhaust you (highest exhaustion first):=La saturation diminue en faisant des choses qui vous épuisent (épuisement le plus élevé en premier): -• Regenerating 1 HP=• Régénérant 1 PV -• Suffering food poisoning=• Souffrance d'intoxication alimentaire -• Sprint-jumping=• Saut de sprint -• Sprinting=• Piquer un Sprint -• Attacking=• Combattre -• Taking damage=• Prendre des dégâts -• Swimming=• Nager -• Jumping=• Sauter -• Mining a block=• Miner un bloc -Other actions, like walking, do not exaust you.=D'autres actions, comme la marche, ne vous épuisent pas. -If you have a map item in any of your hotbar slots, you can use the minimap.=Si vous avez un élément de carte dans l'un de vos emplacements de la hotbar, vous pouvez utiliser la minicarte. diff --git a/mods/HELP/mcl_doc_basics/locale/template.txt b/mods/HELP/mcl_doc_basics/locale/template.txt index 5abc582e..4056de57 100644 --- a/mods/HELP/mcl_doc_basics/locale/template.txt +++ b/mods/HELP/mcl_doc_basics/locale/template.txt @@ -16,7 +16,6 @@ Basic controls:= • Recover from swings to deal full damage= • Right-click to build blocks and use things= • [I] for the inventory= -• First items in inventory appear in hotbar below= • Lowest row in inventory appears in hotbar below= • [Esc] to close this window= How to play:= @@ -33,7 +32,7 @@ How to play:= Minetest= Minetest is a free software game engine for games based on voxel gameplay, inspired by InfiniMiner, Minecraft, and the like. Minetest was originally created by Perttu Ahola (alias “celeron55”).= The player is thrown into a huge world made out of cubes or blocks. These cubes usually make the landscape they blocks can be removed and placed almost entirely freely. Using the collected items, new tools and other items can be crafted. Games in Minetest can, however, be much more complex than this.= -A core feature of Minetest is the built-in modding capability. Mods modify existing gameplay. They can be as simple as adding a few decorational blocks or be very complex by e.g. introducing completely new gameplay concepts, generating a completely different kind of world, and many other things.= +A core feature of Minetest is the built-in modding capability. Mods modify existing gameplay. They can be as simple as adding a few decorative blocks or be very complex by e.g. introducing completely new gameplay concepts, generating a completely different kind of world, and many other things.= Minetest can be played alone or online together with multiple players. Online play will work out of the box with any mods, with no need for additional software as they are entirely provided by the server.= Minetest is usually bundled with a simple default game, named “Minetest Game” (shown in images 1 and 2). You probably already have it. Other games for Minetest can be downloaded from the official Minetest forums .= Minetest as well as Minetest Game are both unfinished at the moment, so please forgive us when not everything works out perfectly.= @@ -64,14 +63,11 @@ Extended movement (requires privileges):= • K: Toggle fly mode, makes you move freely in all directions (requires “fly” privilege)= • H: Toggle noclip mode, makes you go through walls in fly mode (requires “noclip” privilege)= • E: Move even faster when in fast mode= -• E: Walk fast in fast mode= World interaction:= • Left mouse button: Punch / mine blocks / take items= -• Left mouse button: Punch / mine blocks= • Right mouse button: Build or use pointed block= • Shift+Right mouse button: Build= • Roll mouse wheel: Select next/previous item in hotbar= -• Roll mouse wheel / B / N: Select next/previous item in hotbar= • 1-9: Select item in hotbar directly= • Q: Drop item stack= • Shift+Q: Drop 1 item= @@ -79,20 +75,20 @@ World interaction:= Inventory interaction:= See the entry “Basics > Inventory”.= Camera:= -• Z: Zoom= +• Z: Zoom (requires “zoom” privilege)= • F7: Toggle camera mode= • F8: Toggle cinematic mode= Interface:= • Esc: Open menu window (pauses in single-player mode) or close window= • F1: Show/hide HUD= • F2: Show/hide chat= -• F9: Toggle minimap= +• F9: Toggle minimap (only works if have a map)= • Shift+F9: Toggle minimap rotation mode= • F10: Open/close console/chat log= • F12: Take a screenshot= Server interaction:= • T: Open chat window (chat requires the “shout” privilege)= -• /: Start issuing a server command= +• /: Start issuing a server command)= Technical:= • R: Toggle far view (disables all fog and allows viewing far away, can make game very slow)= • +: Increase minimal viewing distance= @@ -103,16 +99,9 @@ Technical:= • P: Only useful for developers. Writes current stack traces= Players= Players (actually: “player characters”) are the characters which users control.= -Players are living beings. They start with a number of health points (HP) and a number of breath points (BP).= +Players are living beings which occupy a space of about 1×2×1 cubes. They start with 20 health points (HP) and 10 breath points (BP).= Players are capable of walking, sneaking, jumping, climbing, swimming, diving, mining, building, fighting and using tools and blocks.= -Players can take damage for a variety of reasons, here are some:= -• Taking fall damage= -• Touching a block which causes direct damage= -• Drowning= -• Being attacked by another player= -• Being attacked by a computer enemy= -At a health of 0, the player dies. The player can just respawn in the world.= -Other consequences of death depend on the game. The player could lose all items, or lose the round in a competitive game.= +At a health of 0, the player dies and loses all items in the inventory. The player can just respawn in the world.= Some blocks reduce breath. While being with the head in a block which causes drowning, the breath points are reduced by 1 for every 2 seconds. When all breath is gone, the player starts to suffer drowning damage. Breath is quickly restored in any other block.= Damage can be disabled on any world. Without damage, players are immortal and health and breath are unimportant.= In multi-player mode, the name of other players is written above their head.= @@ -120,15 +109,8 @@ Items= Items are things you can carry along and store in inventories. They can be used for crafting, smelting, building, mining, and more. Types of items include blocks, tools, weapons and items only used for crafting.= An item stack is a collection of items of the same type which fits into a single item slot. Item stacks can be dropped on the ground. Items which drop into the same coordinates will form an item stack.= Dropped item stacks will be collected automatically when you stand close to them.= -Items have several properties, including the following:= -• Maximum stack size: Number of items which fit on 1 item stack= -• Pointing range: How close things must be to be pointed while wielding this item= -• Group memberships: See “Basics > Groups”= -• May be used for crafting or cooking= Tools= Some items may serve as a tool when wielded. Any item which has some special use which can be directly used by its wielder is considered a tool.= -A common subset of tools is mining tools. These are important to break all kinds of blocks. Weapons are a kind of tool. There are of course many other possible tools. Special actions of tools are usually done by left-click or right-click.= -When nothing is wielded, players use their hand which may act as tool and weapon.= Mining tools are important to break all kinds of blocks. Weapons are another kind of tool. There are some other more specialized tools. Special actions of tools are usually done by right-click.= When nothing is wielded, players use their hand which may act as tool and weapon. The hand is capable of punching and deals minimum damage.= Many tools will wear off when using them and may eventually get destroyed. The damage is displayed in a damage bar below the tool icon. If no damage bar is shown, the tool is in mint condition. Tools may be repairable by crafting, see “Basics > Crafting”.= @@ -138,7 +120,7 @@ Melee weapons deal damage by punching players and other animate objects. There a • Single punch: Left-click once to deal a single punch= • Quick punching: Hold down the left mouse button to deal quick repeated punches= There are two core attributes of melee weapons:= -• Maximum damage: Damage which is dealt after a hit when the weapon was fully recovered= +• Maximum damage: Damage which is dealt after a hit when the weapon was fully recovered)= • Full punch interval: Time it takes for fully recovering from a punch= A weapon only deals full damage when it has fully recovered from a previous punch. Otherwise, the weapon will deal only reduced damage. This means, quick punching is very fast, but also deals rather low damage. Note the full punch interval does not limit how fast you can attack.= There is a rule which sometimes makes attacks impossible: Players, animate objects and weapons belong to damage groups. A weapon only deals damage to those who share at least one damage group with it. So if you're using the wrong weapon, you might not deal any damage at all.= @@ -147,13 +129,7 @@ Pointing= To point something, it must be in the pointing range (also just called “range”) of your wielded item. There's a default range when you are not wielding anything. A pointed thing will be outlined or highlighted (depending on your settings). Pointing is not possible with the 3rd person front camera.= A few things can not be pointed. Most blocks are pointable. A few blocks, like air, can never be pointed. Other blocks, like liquids can only be pointed by special items.= Camera= -There are 3 different views which determine the way you see the world. The modes are:= -• 1: First-person view (default)= -• 2: Third-person view from behind= -• 3: Third-person view from the front= You can change the camera mode by pressing [F7].= -You might be able to zoom with [Z] to zoom the view at the crosshair. This allows you to look further.= -Zooming is a gameplay feature that might be enabled or disabled by the game. By default, zooming is enabled when in Creative Mode but disabled otherwise.= There is also Cinematic Mode which can be toggled with [F8]. With Cinematic Mode enabled, the camera movements become more smooth. Some players don't like it, it is a matter of taste.= By holding down [Z], you can zoom the view at your crosshair. You need the “zoom” privilege to do this.= • Switch camera mode: [F7]= @@ -161,7 +137,6 @@ By holding down [Z], you can zoom the view at your crosshair. You need the “zo • Zoom: [Z]= Blocks= The world of MineClone 2 is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.= -The world is made entirely out of blocks (voxels, to be precise). Blocks can be added or removed with the correct tools.= Blocks can have a wide range of different properties which determine mining times, behavior, looks, shape, and much more. Their properties include:= • Collidable: Collidable blocks can not be passed through; players can walk on them. Non-collidable blocks can be passed through freely= • Pointable: Pointable blocks show a wireframe or a halo box when pointed. But you will just point through non-pointable blocks. Liquids are usually non-pointable but they can be pointed at by some special tools= @@ -186,17 +161,13 @@ Normally, blocks are built in front of the pointed side of the pointed block. A Liquids= Liquids are special dynamic blocks. Liquids like to spread and flow to their surrounding blocks. Players can swim and drown in them.= Liquids usually come in two forms: In source form (S) and in flowing form (F).= -Liquid sources have the shape of a full cube. A liquid source will generate flowing liquids around it from time to time, and, if the liquid is renewable, it also generates liquid sources. A liquid source can sustain itself. As long it is left alone, a liquid source will normally keep its place and does not drain out.= +Liquid sources have the shape of a full cube. A liquid source will generate flowing liquids around it from time to time, and, if the liquid is renewable, it also generates liquid sources. A liquid source can sustain itself. A long it is left alone, a liquid source will normally keep its place and does not drain out.= Flowing liquids take a sloped form. Flowing liquids spread around the world until they drain. A flowing liquid can not sustain itself and always comes from a liquid source, either directly or indirectly. Without a liquid source, a flowing liquid will eventually drain out and disappear.= All liquids share the following properties:= -• All properties of blocks (including drowning damage)= +• All properties of blocks (including drowning damage= • Renewability: Renewable liquids can create new sources= • Flowing range: How many flowing liquids are created at maximum per liquid source, it determines how far the liquid will spread. Possible are ranges from 0 to 8. At 0, no flowing liquids will be created. Image 5 shows a liquid of flowing range 2= • Viscosity: How slow players move through it and how slow the liquid spreads= -Renewable liquids create new liquid sources at open spaces (image 2). A new liquid source is created when:= -• Two renewable liquid blocks of the same type touch each other diagonally= -• These blocks are also on the same height= -• One of the two “corners” is open space which allows liquids to flow in= When those criteria are met, the open space is filled with a new liquid source of the same type (image 3).= Swimming in a liquid is fairly straightforward: The usual direction keys for basic movement, the jump key for rising and the sneak key for sinking.= The physics for swimming and diving in a liquid are:= @@ -209,37 +180,31 @@ Crafting= Crafting is the task of combining several items to form a new item.= To craft something, you need one or more items, a crafting grid (C) and a crafting recipe. A crafting grid is like a normal inventory which can also be used for crafting. Items need to be put in a certain pattern into the crafting grid. Next to the crafting grid is an output slot (O). Here the result will appear when you placed items correctly. This is just a preview, not the actual item. Crafting grids can come in different sizes which limits the possible recipes you can craft.= To complete the craft, take the result item from the output slot, which will consume items from the crafting grid and creates a new item. It is not possible to place items into the output slot.= -A description on how to craft an item is called a “crafting recipe”. You need this knowledge to craft. There are multiple ways to learn crafting recipes. One way is by using a crafting guide, which contains a list of available crafting recipes. Some games provide crafting guides. There are also some mods which you can download online for installing a crafting guide. Another way is by reading the online manual of the game (if one is available).= +A description on how to craft an item is called a “crafting recipe”. These crafting recipes can be found in the crafting guide which you can access from the inventory menu.= Crafting recipes consist of at least one input item and exactly one stack of output items. When performing a single craft, it will consume exactly one item from each stack of the crafting grid, unless the crafting recipe defines replacements.= -There are multiple types of crafting recipes:= -• Shaped (image 2): Items need to be placed in a particular shape= -• Shapeless (images 3 and 4): Items need to be placed somewhere in input (both images show the same recipe)= -• Cooking: Explained in “Basics > Cooking”= -• Repairing (image 5): Place two damaged tools into the crafting grid anywhere to get a tool which is repaired by 5%= In some crafting recipes, some input items do not need to be a concrete item, instead they need to be a member of a group (see “Basics > Groups”). These recipes offer a bit more freedom in the input items. Images 6-8 show the same group-based recipe. Here, 8 items of the “stone” group are required, which is true for all of the shown items.= Rarely, crafting recipes have replacements. This means, whenever you perform a craft, some items in the crafting grid will not be consumed, but instead will be replaced by another item.= Cooking= -Cooking (or smelting) is a form of crafting which does not involve a crafting grid. Cooking is done with a special block (like a furnace), an cookable item, a fuel item and time in order to yield a new item.= +Cooking (or smelting) is a form of crafting which does not involve a crafting grid. Cooking is done with a furnace, an cookable item, a fuel item and time in order to yield a new item.= Each fuel item has a burning time. This is the time a single item of the fuel keeps a furnace burning.= Each cookable item requires time to be cooked. This time is specific to the item type and the item must be “on fire” for the whole cooking time to actually yield the result.= Hotbar= -At the bottom of the screen you see some squares. This is called the “hotbar”. The hotbar allows you to quickly access the first items from your player inventory.= -You can change the selected item with the mouse wheel or the keyboard.= -• Select previous item in hotbar: [Mouse wheel up] or [B]= -• Select next item in hotbar: [Mouse wheel down] or [N]= -• Select item in hotbar directly: [1]-[9]= +At the bottom of the screen you see some squares. This is called the “hotbar”. The hotbar allows you to quickly access the lowest row of items in the player inventory.= +You can change the selected item with the mouse wheel or the number keys.= +• Select previous item in hotbar: [Mouse wheel up]= +• Select next item in hotbar: [Mouse wheel down]= +• Select item in hotbar directly: [0]-[9]= The selected item is also your wielded item.= Minimap= If you have a map item in any of your hotbar slots, you can use the minimap.= Press [F9] to make a minimap appear on the top right. The minimap helps you to find your way around the world. Press it again to select different minimap modes and zoom levels. The minimap also shows the positions of other players.= There are 2 minimap modes and 3 zoom levels.= Surface mode (image 1) is a top-down view of the world, roughly resembling the colors of the blocks this world is made of. It only shows the topmost blocks, everything below is hidden, like a satellite photo. Surface mode is useful if you got lost.= -Radar mode (image 2) is more complicated. It displays the “denseness” of the area around you and changes with your height. Roughly, the more green an area is, the less “dense” it is. Black areas have many blocks. Use the radar to find caverns, hidden areas, walls and more. The rectangular shapes in image 2 clearly expose the position of a dungeon.= +Radar mode (image 2) is more complicated. It displays the “denseness” of the area around you and changes with your height. Roughly, the more green an area is, the less “dense” it is. Black areas have many blocks. Use the radar to find caverns, hidden areas, walls and more. The rectangular shapes in image 2 clearly expose the position of a dungeon. Radar mode is only available in Creative Mode= There are also two different rotation modes. In “square mode”, the rotation of the minimap is fixed. If you press [Shift]+[F9] to switch to “circle mode”, the minimap will instead rotate with your looking direction, so “up” is always your looking direction.= -In some games, the minimap may be disabled.= +In other games, the minimap may be disabled.= • Toggle minimap mode: [F9]= • Toggle minimap rotation mode: [Shift]+[F9]= -Inventory= Inventories are used to store item stacks. There are other uses, such as crafting. An inventory consists of a rectangular grid of item slots. Each item slot can either be empty or hold one item stack. Item stacks can be moved freely between most slots.= You have your own inventory which is called your “player inventory”, you can open it with the inventory key (default: [I]). The first inventory slots are also used as slots in your hotbar.= Blocks can also have their own inventory, e.g. chests and furnaces.= @@ -248,11 +213,9 @@ Taking: You can take items from an occupied slot if the cursor holds nothing.= • Left click: take entire item stack= • Right click: take half from the item stack (rounded up)= • Middle click: take 10 items from the item stack= -• Mouse wheel down: take 1 item from the item stack= Putting: You can put items onto a slot if the cursor holds 1 or more items and the slot is either empty or contains an item stack of the same item type.= • Left click: put entire item stack= • Right click: put 1 item of the item stack= -• Right click or mouse wheel up: put 1 item of the item stack= • Middle click: put 10 items of the item stack= Exchanging: You can exchange items if the cursor holds 1 or more items and the destination slot is occupied by a different item type.= • Click: exchange item stacks= @@ -266,13 +229,11 @@ Here you find the most recent version of MineClone 2 and can discuss it.= Bug tracker: = Report bugs here.= Minetest links:= -You may want to check out these online resources related to Minetest:= -Official homepage of Minetest: = +Official homepage of Minetest: = The main place to find the most recent version of Minetest, the engine used by MineClone 2.= -The main place to find the most recent version of Minetest.= -Community wiki: = -A community-based documentation website for Minetest. Anyone with an account can edit it! It also features a documentation of Minetest Game.= -Minetest forums: = +Community wiki: = +A community-based documentation website for Minetest. Anyone with an account can edit it.= +Minetest forums: = A web-based discussion platform where you can discuss everything related to Minetest. This is also a place where player-made mods and games are published and discussed. The discussions are mainly in English, but there is also space for discussion in other languages.= Chat: = A generic Internet Relay Chat channel for everything related to Minetest where people can meet to discuss in real-time. If you do not understand IRC, see the Community Wiki for help.= @@ -313,7 +274,7 @@ Items:= Gameplay:= • “heart”: A single health symbol, indicates 2 HP= • “bubble”: A single breath symbol, indicates 1 BP= -• HP: Hit point (equals half 1 “heart”)= +• HP: Hit point (equals a half “heart”)= • BP: Breath point, indicates breath when diving= • Mob: Computer-controlled enemy= • Crafting: Combining multiple items to create new ones= @@ -343,15 +304,11 @@ Settings= There is a large variety of settings to configure Minetest. Pretty much every aspect can be changed that way.= These are a few of the most important gameplay settings:= • Damage enabled (enable_damage): Enables the health and breath attributes for all players. If disabled, players are immortal= -• Creative Mode (creative_mode): Enables sandbox-style gameplay focusing on creativity rather than a challenging gameplay. The meaning depends on the game; usual changes are: Reduced dig times, easy access to almost all items, tools never wear off, etc.= +• Creative Mode (creative_mode): Enables sandbox-style gameplay focusing on creativity rather than a challenging gameplay. Changes include: Instant digging, easy access to almost all items, tools never wear off, etc.= • PvP (enable_pvp): Short for “Player vs Player”. If enabled, players can deal damage to each other= -For a full list of all available settings, use the “All Settings” dialog in the main menu.= +For a full list of all available settings, use the “Advanced settings” dialog in the main menu.= Movement modes= -You can enable some special movement modes that change how you move.= -Pitch movement mode:= -• Description: If this mode is activated, the movement keys will move you relative to your current view pitch (vertical look angle) when you're in a liquid or in fly mode.= -• Default key: [L]= -• No privilege required= +If you have the required privileges, you can use up to three special movement modes. Using these may be considered cheating.= Fast mode:= • Description: Allows you to move much faster. Hold down the the “Use” key [E] to move faster. In the client configuration, you can further customize fast mode.= • Default key: [J]= @@ -419,12 +376,12 @@ Here are a few basic privilege-related commands:= Players with the “privs” privilege can modify privileges at will:= • /grant : Grant to = • /revoke : Revoke from = -In single-player mode, you can use “/grantme all” to unlock all abilities.= +In single-player mode, you can use “/grant singleplayer all” to unlock all abilities (which is often considered cheating).= Light= As the world is entirely block-based, so is the light in the world. Each block has its own brightness. The brightness of a block is expressed in a “light level” which ranges from 0 (total darkness) to 15 (as bright as the sun).= There are two types of light: Sunlight and artificial light.= Artificial light is emitted by luminous blocks. Artificial light has a light level from 1-14.= -Sunlight is the brightest light and always goes perfectly straight down from the sky at each time of the day. At night, the sunlight will become moonlight instead, which still provides a small amount of light. The light level of sunlight is 15.= +Sunlight is the brightest light and always goes perfectly straight down from the sky at each time of the day. blocks. At night, the sunlight will become moonlight instead, which still provides a small amount of light. The light level of sunlight is 15.= Blocks have 3 levels of transparency:= • Transparent: Sunlight goes through limitless, artificial light goes through with losses= • Semi-transparent: Sunlight and artificial light go through with losses= @@ -444,7 +401,7 @@ The values for X, Y and Z work like this:= • Follow the sun, then go right: Z increases= • Follow the sun, then go left: Z decreases= • The side length of a full cube is 1= -You can view your current position in the debug screen (open with [F5]).= +You can view your current position in the debug screen (open with [F5]). This is considered cheating in some games.= # MCL2 extensions Creative Mode= diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_build.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_build.png index 0d071ddc..3f89001f 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_build.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_build.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_behind.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_behind.png index 72e05b82..2f17e475 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_behind.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_behind.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_ego.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_ego.png index 5484190d..98b533d2 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_ego.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_ego.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_front.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_front.png index a6cba11f..71adb89f 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_front.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_camera_front.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_grid.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_grid.png index b504c87c..bff1f91b 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_grid.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_grid.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_1.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_1.png index 4e95e1c9..878bc681 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_1.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_1.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_2.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_2.png index 299a5bac..eb23f5e0 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_2.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_2.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_3.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_3.png index c127f51c..149dc61d 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_3.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_groups_3.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_repair.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_repair.png index 7586c19a..fa21ddf9 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_repair.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_repair.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shaped.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shaped.png index cd93754b..a5e2f8e7 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shaped.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shaped.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_1.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_1.png index b206b6cd..68fb5811 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_1.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_1.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_2.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_2.png index f7895380..77a45691 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_2.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_craft_shapeless_2.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_carbone_ng.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_carbone_ng.png index aa4fdec0..7ac6178f 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_carbone_ng.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_carbone_ng.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_hades.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_hades.png index 90b5477f..debc08f8 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_hades.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_hades.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_lott.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_lott.png index 0ae9c11c..db27d0ac 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_lott.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_lott.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_moontest.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_moontest.png index 6c4728d3..47ea2192 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_moontest.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_moontest.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_1.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_1.png index 7272de5e..d85d1cce 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_1.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_1.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_2.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_2.png index c565d1b7..1ab57ba3 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_2.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_mtg_2.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_outback.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_outback.png index c8c29d31..540f4bbe 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_outback.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_outback.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_pixture.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_pixture.png index 3b586b9b..ead1a160 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_pixture.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_pixture.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_xtraores_xtension.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_xtraores_xtension.png index e757dd3d..7b195750 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_xtraores_xtension.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_gameplay_xtraores_xtension.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar.png index 95863969..406f94db 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar_relations.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar_relations.png index dc46cad7..4286d274 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar_relations.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_hotbar_relations.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory.png index 1fca40cb..d23632f9 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory_detail.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory_detail.png index 95522ef9..631daa6e 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory_detail.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_inventory_detail.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_items_dropped.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_items_dropped.png index 9ebb142c..4cbe82db 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_items_dropped.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_items_dropped.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_light_test.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_light_test.png index 7e09a4c1..49f15036 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_light_test.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_light_test.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_light_torch.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_light_torch.png index a35ee4d3..d64fdedd 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_light_torch.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_light_torch.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_nonrenewable.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_nonrenewable.png index 5501ce79..a0d238ac 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_nonrenewable.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_nonrenewable.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_range.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_range.png index 92eb9db0..622e98de 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_range.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_range.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_1.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_1.png index bada9c77..ffb23fd1 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_1.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_1.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_2.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_2.png index 1a0ec43e..0eb44c54 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_2.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_renewable_2.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_types.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_types.png index 196371c3..ac72b0cf 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_types.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_liquids_types.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_map.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_map.png index 3b504f3d..b574f8b0 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_map.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_map.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_radar.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_radar.png index 0bfda651..a743d6d9 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_radar.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_radar.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_round.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_round.png index 65e82a8f..083903d3 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_round.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_minimap_round.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_nodes.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_nodes.png index 0ae1c2f7..9f436ca3 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_nodes.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_nodes.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_flat.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_flat.png index e4fc875a..868cdb64 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_flat.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_flat.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_lott.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_lott.png index a576d5a4..7427f2a7 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_lott.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_lott.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_sam.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_sam.png index 93bc6d8b..afcd3111 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_players_sam.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_players_sam.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_pointing.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_pointing.png index 9c1929ae..23b0dff1 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_pointing.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_pointing.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_sneak.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_sneak.png index bdebec20..00325a2a 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_sneak.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_sneak.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_tools.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_tools.png index 1c16628e..9bd63934 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_tools.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_tools.png differ diff --git a/mods/HELP/mcl_doc_basics/textures/doc_basics_tools_mining.png b/mods/HELP/mcl_doc_basics/textures/doc_basics_tools_mining.png index aa3613f3..8655c5e2 100644 Binary files a/mods/HELP/mcl_doc_basics/textures/doc_basics_tools_mining.png and b/mods/HELP/mcl_doc_basics/textures/doc_basics_tools_mining.png differ diff --git a/mods/HELP/mcl_tt/depends.txt b/mods/HELP/mcl_tt/depends.txt deleted file mode 100644 index c49c556e..00000000 --- a/mods/HELP/mcl_tt/depends.txt +++ /dev/null @@ -1 +0,0 @@ -tt diff --git a/mods/HELP/mcl_tt/init.lua b/mods/HELP/mcl_tt/init.lua deleted file mode 100644 index 569dbe68..00000000 --- a/mods/HELP/mcl_tt/init.lua +++ /dev/null @@ -1,103 +0,0 @@ -local S = minetest.get_translator("mcl_tt") - --- Armor -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - local s = "" - local head = minetest.get_item_group(itemstring, "armor_head") - local torso = minetest.get_item_group(itemstring, "armor_torso") - local legs = minetest.get_item_group(itemstring, "armor_legs") - local feet = minetest.get_item_group(itemstring, "armor_feet") - if head > 0 then - s = s .. S("Head armor") - end - if torso > 0 then - s = s .. S("Torso armor") - end - if legs > 0 then - s = s .. S("Legs armor") - end - if feet > 0 then - s = s .. S("Feet armor") - end - if s == "" then - s = nil - end - return s -end) -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - local s = "" - local use = minetest.get_item_group(itemstring, "mcl_armor_uses") - local pts = minetest.get_item_group(itemstring, "mcl_armor_points") - if pts > 0 then - s = s .. S("Armor points: @1", pts) - s = s .. "\n" - end - if use > 0 then - s = s .. S("Armor durability: @1", use) - end - if s == "" then - s = nil - end - return s -end) --- Horse armor -tt.register_snippet(function(itemstring) - local armor_g = minetest.get_item_group(itemstring, "horse_armor") - if armor_g and armor_g > 0 then - return S("Protection: @1%", 100 - armor_g) - end -end) - -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - local s = "" - if def.groups.eatable and def.groups.eatable > 0 then - s = s .. S("Hunger points: +@1", def.groups.eatable) - end - if def._mcl_saturation and def._mcl_saturation > 0 then - if s ~= "" then - s = s .. "\n" - end - s = s .. S("Saturation points: +@1", string.format("%.1f", def._mcl_saturation)) - end - if s == "" then - s = nil - end - return s -end) - -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - if minetest.get_item_group(itemstring, "crush_after_fall") == 1 then - return S("Deals damage when falling"), "#FFFF00" - end -end) - -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - if def.groups.place_flowerlike == 1 then - return S("Grows on grass blocks or dirt") - elseif def.groups.place_flowerlike == 2 then - return S("Grows on grass blocks, podzol, dirt or coarse dirt") - end -end) - -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - if def.groups.flammable then - return S("Flammable") - end -end) - -tt.register_snippet(function(itemstring) - if itemstring == "mcl_heads:zombie" then - return S("Zombie view range: -50%") - elseif itemstring == "mcl_heads:skeleton" then - return S("Skeleton view range: -50%") - elseif itemstring == "mcl_heads:creeper" then - return S("Creeper view range: -50%") - end -end) - diff --git a/mods/HELP/mcl_tt/locale/mcl_tt.de.tr b/mods/HELP/mcl_tt/locale/mcl_tt.de.tr deleted file mode 100644 index f793e59a..00000000 --- a/mods/HELP/mcl_tt/locale/mcl_tt.de.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_tt -Head armor=Kopfrüstung -Torso armor=Torsorüstung -Legs armor=Beinrüstung -Feet armor=Fußrüstung -Armor points: @1=Rüstungspunkte: @1 -Armor durability: @1=Rüstungshaltbarkeit: @1 -Protection: @1%=Schutz: @1% -Hunger points: +@1=Hungerpunkte: +@1 -Saturation points: +@1=Sättigungspunkte: +@1 -Deals damage when falling=Macht Schaden beim Fallen -Grows on grass blocks or dirt=Wächst auf Grasblöcken oder Erde -Grows on grass blocks, podzol, dirt or coarse dirt=Wächst auf Grasblöcken, Podsol, Erde oder grober Erde -Flammable=Entzündlich -Zombie view range: -50%=Zombiesichtweite: -50% -Skeleton view range: -50%=Skelettsichtweite: -50% -Creeper view range: -50%=Creepersichtweite: -50% diff --git a/mods/HELP/mcl_tt/locale/mcl_tt.fr.tr b/mods/HELP/mcl_tt/locale/mcl_tt.fr.tr deleted file mode 100644 index e3a9ec0b..00000000 --- a/mods/HELP/mcl_tt/locale/mcl_tt.fr.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_tt -Head armor=Armure de tête -Torso armor=Armure de torse -Legs armor=Armure de jambes -Feet armor=Armure de pieds -Armor points: @1=Points d'armure: @1 -Armor durability: @1=Durabilité d'armure: @1 -Protection: @1%=Protection: @1% -Hunger points: +@1=Points de faim: +@1 -Saturation points: +@1=Points de saturation: +@1 -Deals damage when falling=Inflige des dégâts en tombant -Grows on grass blocks or dirt=Pousse sur des blocs d'herbe ou de terre -Grows on grass blocks, podzol, dirt or coarse dirt=Pousse sur les blocs de gazon, le podzol, la terre ou la terre grossière -Flammable=Inflammable -Zombie view range: -50%=Distance de vue de Zombie: -50% -Skeleton view range: -50%=Distance de vue de Squelette: -50% -Creeper view range: -50%=Distance de vue de Creeper: -50% diff --git a/mods/HELP/mcl_tt/locale/template.txt b/mods/HELP/mcl_tt/locale/template.txt deleted file mode 100644 index 357830bc..00000000 --- a/mods/HELP/mcl_tt/locale/template.txt +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_tt -Head armor= -Torso armor= -Legs armor= -Feet armor= -Armor points: @1= -Armor durability: @1= -Protection: @1%= -Hunger points: +@1= -Saturation points: +@1= -Deals damage when falling= -Grows on grass blocks or dirt= -Grows on grass blocks, podzol, dirt or coarse dirt= -Flammable= -Zombie view range: -50%= -Skeleton view range: -50%= -Creeper view range: -50%= diff --git a/mods/HELP/tt/API.md b/mods/HELP/tt/API.md deleted file mode 100644 index 0f24e472..00000000 --- a/mods/HELP/tt/API.md +++ /dev/null @@ -1,33 +0,0 @@ -# Tooltip API -This API explains how to handle the extended item tooltips (`description` field). - -## Fields - -Add these to the item definition. - -* `_tt_ignore`: If `true`, the `description` of this item won't be altered at all -* `_tt_help`: Custom help text -* `_tt_food`: If `true`, item is a food item that can be consumed by the player -* `_tt_food_hp`: Health increase (in HP) for player when consuming food item - -Once this mod had overwritten the `description` field of an item was overwritten, it will save the original (unaltered) `description` in the `_tt_original_description` field. - -## `tt.register_snippet(func)` - -Register a custom snippet function. -`func` is a function of the form `func(itemstring)`. -It will be called for (nearly) every itemstring. - -Returns: Two values, the first one is required. -1st return value: A string you want to append to this item or `nil` if nothing shall be appended. -2nd return value: If nil, `tt` will take of the text color. If a ColorString in `"#RRGGBB"` format, entire text is colorized in this color. Return `false` to force `tt` to not apply text any colorization (useful if you want to call `minetest.colorize` yourself. - -Example: - -``` -tt.register_snippet(function(itemstring) - if minetest.get_item_group(itemstring, "magic") == 1 then - return "This item is magic" - end -end) -``` diff --git a/mods/HELP/tt/README.md b/mods/HELP/tt/README.md deleted file mode 100644 index ca76902e..00000000 --- a/mods/HELP/tt/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Extended Tooltip (`tt`) -This mod extends the tooltip of items to add more informative texts. - -It displays the following useful information: -* Weapon damage and speed -* Tool properties -* Noteworthy block properties -* Food satiation -* Custom help text (added by mods) - -## License -MIT License. diff --git a/mods/HELP/tt/init.lua b/mods/HELP/tt/init.lua deleted file mode 100644 index 1e639bae..00000000 --- a/mods/HELP/tt/init.lua +++ /dev/null @@ -1,55 +0,0 @@ -local S = minetest.get_translator("tt") - -tt = {} -tt.COLOR_DEFAULT = "#d0ffd0" -tt.COLOR_DANGER = "#ffff00" -tt.COLOR_GOOD = "#00ff00" - --- API -tt.registered_snippets = {} - -tt.register_snippet = function(func) - table.insert(tt.registered_snippets, func) -end - --- Register core snippets - -dofile(minetest.get_modpath(minetest.get_current_modname()).."/snippets_core.lua") -dofile(minetest.get_modpath(minetest.get_current_modname()).."/snippets_builtin.lua") - --- Apply item description updates - -local function append_snippets() - for itemstring, def in pairs(minetest.registered_items) do - if itemstring ~= "" and itemstring ~= "air" and itemstring ~= "ignore" and itemstring ~= "unknown" and def ~= nil and def.description ~= nil and def.description ~= "" and def._tt_ignore ~= true then - local desc = def.description - local orig_desc = desc - local first = true - -- Apply snippets - for s=1, #tt.registered_snippets do - local str, snippet_color = tt.registered_snippets[s](itemstring) - if snippet_color == nil then - snippet_color = tt.COLOR_DEFAULT - elseif snippet_color == false then - snippet_color = false - end - if str then - if first then - first = false - end - desc = desc .. "\n" - if snippet_color then - desc = desc .. minetest.colorize(snippet_color, str) - else - desc = desc .. str - end - end - end - if desc ~= def.description then - minetest.override_item(itemstring, { description = desc, _tt_original_description = orig_desc }) - end - end - end -end - -minetest.register_on_mods_loaded(append_snippets) diff --git a/mods/HELP/tt/locale/template.txt b/mods/HELP/tt/locale/template.txt deleted file mode 100644 index b5f11762..00000000 --- a/mods/HELP/tt/locale/template.txt +++ /dev/null @@ -1,31 +0,0 @@ -# textdomain:tt -Damage: @1= -Damage (@1): @2= -Healing: @1= -Healing (@1): @2= -Full punch interval: @1s= -Contact damage: @1 per second= -Contact healing: @1 per second= -Drowning damage: @1= -Bouncy (@1%)= -Luminance: @1= -Slippery= -Climbable= -Climbable (only downwards)= -No jumping= -No swimming upwards= -No rising= -Fall damage: @1%= -Fall damage: +@1%= -No fall damage= -Mining speed: @1= -Very fast= -Extremely fast= -Fast= -Slow= -Very slow= -Painfully slow= -Mining durability: @1= -Block breaking strength: @1= -@1 uses= -Unlimited uses= diff --git a/mods/HELP/tt/locale/tt.de.tr b/mods/HELP/tt/locale/tt.de.tr deleted file mode 100644 index 508787de..00000000 --- a/mods/HELP/tt/locale/tt.de.tr +++ /dev/null @@ -1,31 +0,0 @@ -# textdomain:tt -Damage: @1=Schaden: @1 -Damage (@1): @2=Schaden (@1): @2 -Healing: @1=Heilung: @1 -Healing (@1): @2=Heilung (@1): @2 -Full punch interval: @1s=Zeit zum Ausholen: @1s -Contact damage: @1 per second=Kontaktschaden: @1 pro Sekunde -Contact healing: @1 per second=Kontaktheilung: @1 pro Sekunde -Drowning damage: @1=Ertrinkensschaden: @1 -Bouncy (@1%)=Sprunghaft (@1%) -Luminance: @1=Lichtstärke: @1 -Slippery=Rutschig -Climbable=Erkletterbar -Climbable (only downwards)=Erkletterbar (nur nach unten) -No jumping=Kein Springen -No swimming upwards=Kein nach oben schwimmen -No rising=Kein Aufsteigen -Fall damage: @1%=Fallschaden: @1% -Fall damage: +@1%=Fallschaden: +@1% -No fall damage=Kein Fallschaden -Mining speed: @1=Grabegeschwindigkeit: @1 -Very fast=Sehr schnell -Extremely fast=Extrem schnell -Fast=Schnell -Slow=Langsam -Very slow=Sehr langsam -Painfully slow=Furchtbar langsam -Mining durability: @1=Grabehaltbarkeit: @1 -Block breaking strength: @1=Blockbruchstärke: @1 -@1 uses=@1 Verwendungen -Unlimited uses=Unbegrenzte Verwendungen diff --git a/mods/HELP/tt/locale/tt.fr.tr b/mods/HELP/tt/locale/tt.fr.tr deleted file mode 100644 index 70bc43ff..00000000 --- a/mods/HELP/tt/locale/tt.fr.tr +++ /dev/null @@ -1,31 +0,0 @@ -# textdomain:tt -Damage: @1=Dégâts: @1 -Damage (@1): @2=Dégâts (@1): @2 -Healing: @1=Guérison: @1 -Healing (@1): @2=Guérison (@1): @2 -Full punch interval: @1s=Intervalle de coup: @1s -Contact damage: @1 per second=Dégâts de contact: @1 par seconde -Contact healing: @1 per second=Guérison de contact: @1 par seconde -Drowning damage: @1=Dégâts de noyade: @1 -Bouncy (@1%)=Rebondissant (@1%) -Luminance: @1=Luminance: @1 -Slippery=Glissant -Climbable=Grimpable -Climbable (only downwards)=Grimpable (uniquement vers le bas) -No jumping=Ne pas sauter -No swimming upwards=Ne pas nager vers le haut -No rising=Pas de montée -Fall damage: @1%=Dégâts de chute: @1% -Fall damage: +@1%=Dégâts de chute: +@1% -No fall damage=Pas de dégâts de chute -Mining speed: @1=Vitesse de minage: @1 -Very fast=Très rapide -Extremely fast=Extremement rapide -Fast=Rapide -Slow=Lent -Very slow=Très lent -Painfully slow=Péniblement lent -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 diff --git a/mods/HELP/tt/mod.conf b/mods/HELP/tt/mod.conf deleted file mode 100644 index aee1572f..00000000 --- a/mods/HELP/tt/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = tt -description = Appends a helpful tooltip to the item description diff --git a/mods/HELP/tt/snippets_builtin.lua b/mods/HELP/tt/snippets_builtin.lua deleted file mode 100644 index b61cc7cc..00000000 --- a/mods/HELP/tt/snippets_builtin.lua +++ /dev/null @@ -1,250 +0,0 @@ -local S = minetest.get_translator("tt") - -local function get_min_digtime(caps) - local mintime - local unique = true - local maxlevel = caps.maxlevel - if not maxlevel then - maxlevel = 1 - end - if maxlevel > 1 then - unique = false - end - if caps.times then - for r=1,3 do - local time = caps.times[r] - if time and maxlevel > 1 then - time = time / maxlevel - end - if time and ((not mintime) or (time < mintime)) then - if mintime and (time < mintime) then - unique = false - end - mintime = time - end - end - end - return mintime, unique -end - -local function newline(str) - if str ~= "" then - str = str .. "\n" - end - return str -end - --- Digging capabilities of tool -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - if not def.tool_capabilities then - return - end - local groupcaps = def.tool_capabilities.groupcaps - if not groupcaps then - return - end - local minestring = "" - local capstr = "" - local caplines = 0 - for k,v in pairs(groupcaps) do - local speedstr = "" - local miningusesstr = "" - -- Mining capabilities - caplines = caplines + 1 - local maxlevel = v.maxlevel - if not maxlevel then - -- Default from tool.h - maxlevel = 1 - end - - -- Digging speed - local speed_class = def.groups and def.groups.dig_speed_class - if speed_class == 1 then - speedstr = S("Painfully slow") - elseif speed_class == 2 then - speedstr = S("Very slow") - elseif speed_class == 3 then - speedstr = S("Slow") - elseif speed_class == 4 then - speedstr = S("Fast") - elseif speed_class == 5 then - speedstr = S("Very fast") - elseif speed_class == 6 then - speedstr = S("Extremely fast") - elseif speed_class == 7 then - speedstr = S("Instantaneous") - end - - -- Number of mining uses - local base_uses = v.uses - if not base_uses then - -- Default from tool.h - base_uses = 20 - end - if def._doc_items_durability == nil and base_uses > 0 then - local real_uses = base_uses * math.pow(3, maxlevel) - if real_uses < 65535 then - miningusesstr = S("@1 uses", real_uses) - else - miningusesstr = S("Unlimited uses") - end - end - - if speedstr ~= "" then - capstr = capstr .. S("Mining speed: @1", speedstr) .. "\n" - end - if miningusesstr ~= "" then - capstr = capstr .. S("Mining durability: @1", miningusesstr) .. "\n" - end - - -- Only show one group at max - break - end - if caplines > 0 then - -- Capabilities - minestring = minestring .. capstr - -- Max. drop level - local mdl = def.tool_capabilities.max_drop_level - if not def.tool_capabilities.max_drop_level then - mdl = 0 - end - minestring = minestring .. S("Block breaking strength: @1", mdl) - end - - local weaponstring = "" - -- Weapon stats - if def.tool_capabilities.damage_groups then - for group, damage in pairs(def.tool_capabilities.damage_groups) do - local msg - if group == "fleshy" then - if damage >= 0 then - msg = S("Damage: @1", damage) - else - msg = S("Healing: @1", math.abs(damage)) - end - end - weaponstring = newline(weaponstring) - weaponstring = weaponstring .. msg - end - local full_punch_interval = def.tool_capabilities.full_punch_interval - if not full_punch_interval then - full_punch_interval = 1 - end - weaponstring = newline(weaponstring) - weaponstring = weaponstring .. S("Full punch interval: @1s", string.format("%.2f", full_punch_interval)) - end - - local ret - if minetest.get_item_group(itemstring, "weapon") == 1 then - ret = weaponstring - ret = newline(ret) - ret = ret .. minestring - else - ret = minestring - ret = newline(ret) - ret = ret .. weaponstring - end - - if ret == "" then - ret = nil - end - return ret -end) - --- Weapon stats -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] -end) - --- Food -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - local desc - if def._tt_food then - desc = S("Food item") - if def._tt_food_hp then - local msg = S("+@1 food points", def._tt_food_hp) - desc = desc .. "\n" .. msg - end - end - return desc -end) - --- Node info -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - local desc = "" - - -- Health-related node facts - if def.damage_per_second then - if def.damage_per_second > 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DANGER, S("Contact damage: @1 per second", def.damage_per_second)) - elseif def.damage_per_second < 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_GOOD, S("Contact healing: @1 per second", math.abs(def.damage_per_second))) - end - end - if def.drowning and def.drowning ~= 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DANGER, S("Drowning damage: @1", def.drowning)) - end - local tmp = minetest.get_item_group(itemstring, "fall_damage_add_percent") - if tmp > 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DANGER, S("Fall damage: +@1%", tmp)) - elseif tmp == -100 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_GOOD, S("No fall damage")) - elseif tmp < 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Fall damage: @1%", tmp)) - end - - -- Movement-related node facts - if minetest.get_item_group(itemstring, "disable_jump") == 1 and not def.climbable then - if def.liquidtype == "none" then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("No jumping")) - elseif minetest.get_item_group(itemstring, "fake_liquid") == 0 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("No swimming upwards")) - else - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("No rising")) - end - end - if def.climbable then - if minetest.get_item_group(itemstring, "disable_jump") == 1 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Climbable (only downwards)")) - else - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Climbable")) - end - end - if minetest.get_item_group(itemstring, "slippery") >= 1 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Slippery")) - end - local tmp = minetest.get_item_group(itemstring, "bouncy") - if tmp >= 1 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Bouncy (@1%)", tmp)) - end - - -- Node appearance - tmp = def.light_source - if tmp and tmp >= 1 then - desc = newline(desc) - desc = desc .. minetest.colorize(tt.COLOR_DEFAULT, S("Luminance: @1", tmp)) - end - - - if desc == "" then - desc = nil - end - return desc, false -end) - diff --git a/mods/HELP/tt/snippets_core.lua b/mods/HELP/tt/snippets_core.lua deleted file mode 100644 index cc67a10c..00000000 --- a/mods/HELP/tt/snippets_core.lua +++ /dev/null @@ -1,11 +0,0 @@ --- CORE SNIPPETS -- - --- Custom text (_tt_help) -tt.register_snippet(function(itemstring) - local def = minetest.registered_items[itemstring] - if def._tt_help then - return def._tt_help - end -end) - - diff --git a/mods/HUD/awards/api.lua b/mods/HUD/awards/api.lua index 325c3516..b25a2aaa 100644 --- a/mods/HUD/awards/api.lua +++ b/mods/HUD/awards/api.lua @@ -178,11 +178,6 @@ function awards.clear_player(name) awards.players[name] = {} end --- Returns true if award exists, false otherwise -function awards.exists(award) - return awards.def[award] ~= nil -end - -- This function is called whenever a target condition is met. -- It checks if a player already has that achievement, and if they do not, -- it gives it to them @@ -264,7 +259,7 @@ function awards.unlock(name, award) -- Enforce sound delay to prevent sound spamming local lastsound = awards.players[name].lastsound if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then - minetest.sound_play(sound, {to_player=name}, true) + minetest.sound_play(sound, {to_player=name}) awards.players[name].lastsound = os.time() end end @@ -297,8 +292,7 @@ function awards.unlock(name, award) text = background, position = {x = 0.5, y = 0}, offset = {x = 0, y = 138}, - alignment = {x = 0, y = -1}, - z_index = 101, + alignment = {x = 0, y = -1} }) local hud_announce if awdef.secret == true then @@ -314,8 +308,7 @@ function awards.unlock(name, award) text = hud_announce, position = {x = 0.5, y = 0}, offset = {x = 0, y = 40}, - alignment = {x = 0, y = -1}, - z_index = 102, + alignment = {x = 0, y = -1} }) local three = player:hud_add({ hud_elem_type = "text", @@ -325,8 +318,7 @@ function awards.unlock(name, award) text = title, position = {x = 0.5, y = 0}, offset = {x = 30, y = 100}, - alignment = {x = 0, y = -1}, - z_index = 102, + alignment = {x = 0, y = -1} }) --[[ We use a statbar instead of image here because statbar allows us to scale the image properly. Note that number is 2, thus leading to a single full image. @@ -342,7 +334,6 @@ function awards.unlock(name, award) offset = {x = -110, y = 62}, alignment = {x = 0, y = 0}, direction = 0, - z_index = 102, }) minetest.after(3, function(name) local player = minetest.get_player_by_name(name) @@ -419,10 +410,8 @@ function awards.getFormspec(name, to, sid) if perc > 1 then perc = 1 end - formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.3;awards_progress_gray.png;false]" - if perc > 0 then - formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.3;awards_progress_green.png;false]" - end + formspec = formspec .. "background[0,4.80;" .. barwidth ..",0.25;awards_progress_gray.png;false]" + formspec = formspec .. "background[0,4.80;" .. (barwidth * perc) ..",0.25;awards_progress_green.png;false]" if label then formspec = formspec .. "label[1.75,4.63;" .. minetest.formspec_escape(label) .. "]" end @@ -434,8 +423,7 @@ function awards.getFormspec(name, to, sid) end -- Create list box - formspec = formspec .. - "textlist[4.75,0;6,5;awards;" + formspec = formspec .. "textlist[4.75,0;6,5;awards;" local first = true for _,award in pairs(listofawards) do local def = awards.def[award.name] @@ -480,7 +468,7 @@ function awards.show_to(name, to, sid, text) minetest.chat_send_player(to, S("You have not gotten any awards.")) return end - minetest.chat_send_player(to, S("@1’s awards:", name)) + minetest.chat_send_player(to, S("@1’s awards:"), name) for _, str in pairs(awards.players[name].unlocked) do local def = awards.def[str] diff --git a/mods/HUD/awards/chat_commands.lua b/mods/HUD/awards/chat_commands.lua index 88e799df..6571267d 100644 --- a/mods/HUD/awards/chat_commands.lua +++ b/mods/HUD/awards/chat_commands.lua @@ -38,50 +38,31 @@ minetest.register_chatcommand("awards", { end }) -minetest.register_privilege("achievements", { - description = S("Can give achievements to any player"), - give_to_singleplayer = false, - give_to_admin = false, -}) - -minetest.register_chatcommand("achievement", { - params = S("(grant ( | all)) | list"), - privs = { achievements = true }, - description = S("Give achievement to player or list all achievements"), +minetest.register_chatcommand("awd", { + params = S(""), + description = S("Show details of an achievement"), func = function(name, param) - if param == "list" then - local list = {} - for k,_ in pairs(awards.def) do - table.insert(list, k) - end - table.sort(list) - for a=1, #list do - minetest.chat_send_player(name, S("@1 (@2)", awards.def[list[a]].title, list[a])) - end - return true - end - local keyword, playername, achievement = string.match(param, "([^ ]+) (.+) (.+)") - if not keyword or not playername or not achievement then - return false, S("Invalid syntax.") - end - if keyword ~= "grant" then - return false, S("Invalid action.") - end - local player = minetest.get_player_by_name(playername) - if not player then - return false, S("Player is not online.") - end - if achievement == "all" then - for k,_ in pairs(awards.def) do - awards.unlock(playername, k) - end - return true, S("Done.") - elseif awards.exists(achievement) then - awards.unlock(playername, achievement) - return true, S("Done.") + local def = awards.def[param] + if def then + minetest.chat_send_player(name, string.format(S("%s: %s"), def.title, def.description)) else - return false, S("Achievement “@1” does not exist.", achievement) + minetest.chat_send_player(name, S("Achievement not found.")) end end }) +minetest.register_chatcommand("awpl", { + privs = { + server = true + }, + params = S(""), + description = S("Get the achievements statistics for the given player or yourself"), + func = function(name, param) + if not param or param == "" then + param = name + end + minetest.chat_send_player(name, param) + local player = awards.player(param) + minetest.chat_send_player(name, dump(player)) + end +}) diff --git a/mods/HUD/awards/locale/awards.de.tr b/mods/HUD/awards/locale/awards.de.tr index 2fb04c4c..49663d11 100644 --- a/mods/HUD/awards/locale/awards.de.tr +++ b/mods/HUD/awards/locale/awards.de.tr @@ -49,12 +49,3 @@ Place @1 block(s).=Platzieren Sie @1 Blöcke. Dig @1 block(s).=Bauen Sie @1 Blöcke ab. Eat @1 item(s).=Essen Sie @1 Dinge. Craft @1 item(s).=Fertigen Sie @1 Gegenstände. -Can give achievements to any player=Kann Spielern Auszeichnungen vergeben -(grant ( | all)) | list=(grant ( | all)) | list -Give achievement to player or list all achievements=Auszeichnung an Spieler vergeben oder alle Auszeichnungen auflisten -@1 (@2)=@1 (@2) -Invalid syntax.=Ungültige Syntax. -Invalid action.=Ungültige Aktion. -Player is not online.=Spieler ist nicht online. -Done.=Fertig. -Achievement “@1” does not exist.=Auszeichnung »@1« existiert nicht. diff --git a/mods/HUD/awards/locale/awards.es.tr b/mods/HUD/awards/locale/awards.es.tr deleted file mode 100644 index 15e8c467..00000000 --- a/mods/HUD/awards/locale/awards.es.tr +++ /dev/null @@ -1,51 +0,0 @@ -# textdomain:awards -@1: @2=@1: @2 -@1 (got)=@1 (Completado) -@1’s awards:=Premios de @1: -(Secret Award)=(Premio secreto) -Achievement gotten!=¡Logro conseguido! -Achievement gotten:=Logro conseguido: -Achievement gotten: @1=Logro conseguido: @1 -Secret achievement gotten!=¡Logro secreto conseguido! -Secret achievement gotten:=Logro secreto conseguido: -Secret achievement gotten: @1=Logro secreto conseguido: @1 -Get this achievement to find out what it is.=Obtén este logro para descubrir de qué se trata. -You have not gotten any awards.=No has recibido ningún premio. -You've disabled awards. Type /awards enable to reenable.=Has desactivado los premios. Introduce /awards enable para habilitarlos. -= -= -Achievement not found.=Logro no encontrado. -All your awards and statistics have been cleared. You can now start again.=Todos sus premios y estadísticas han sido borrados. Ahora puede comenzar de nuevo. -Get the achievements statistics for the given player or yourself=Obtén las estadísticas de logros para el jugador dado o para ti mismo -List awards in chat (deprecated)=Lista de premios en el chat (en desuso) -Show, clear, disable or enable your achievements=Muestra, borra, deshabilita o habilita tus logros -You have disabled your achievements.=Has deshabilitado tus logros. -You have enabled your achievements.=Has habilitado tus logros. -[c|clear|disable|enable]=[c|clear|disable|enable] -Awards=Premios -@1/@2 crafted=@1/@2 fabricado(s) -@1/@2 deaths=@1/@2 muertes -@1/@2 dug=@1/@2 excavado -@1/@2 game joins=@1/@2 inicios de sesión -@1/@2 lines of chat=@1/@2 líneas de chat -@1/@2 placed=@1/@2 metido -Die @1 times.=Muere @1 veces. -Die.=Muere. -Craft: @1×@2=Artista: @1×@2 -Craft: @1=Artista: @1 -Mine a block: @1=Mina un bloque: @1 -Mine blocks: @1×@2=Bloques de minas: @1×@2 -Place a block: @1=Coloca un bloque: @1 -Place blocks: @1×@2=Colocar bloques: @1×@2 -Join the game.=Unirse al juego. -Join the game @1 times.=Unirse al juego @1 veces. -Show details of an achievement=Mostrar detalles de un logro -OK=Aceptar -Error: No awards available.=Error: No hay premios disponibles. -Eat: @1×@2=Comer: @1×@2 -Eat: @1=Comer: @1 -@1/@2 eaten=@1/@2 comido -Place @1 block(s).=Posiciona @1 bloque(s). -Dig @1 block(s).=Cava @1 bloque(s). -Eat @1 item(s).=Come @1 alimento(s). -Craft @1 item(s).=Crea @1 artículo(s). diff --git a/mods/HUD/awards/locale/awards.fr.tr b/mods/HUD/awards/locale/awards.fr.tr deleted file mode 100644 index 0c2925db..00000000 --- a/mods/HUD/awards/locale/awards.fr.tr +++ /dev/null @@ -1,61 +0,0 @@ -# textdomain:awards -@1/@2 chat messages=@1/@2 chat messages -@1/@2 crafted=@1/@2 fabrication -@1/@2 deaths=@1/@2 Mort -@1/@2 dug=@1/@2 creusé -@1/@2 game joins=@1/@2 sessions -@1/@2 placed=@1/@2 mis -@1 (got)=@1 (obtenu) -@1: @1=@1: @1 -@1’s awards:=Récompenses de @1: -(Secret Award)=(Récompense Secrètte) -= -= -A Cat in a Pop-Tart?!=A Cat in a Pop-Tart?! -Achievement gotten!=Succès obtenue! -Achievement gotten:=Succès obtenue: -Achievement gotten: @1=Succès obtenue: @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 -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 -Join the game @1 times.=Rejoignez le jeu @1 fois. -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 -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. -Write @1 chat messages.=Écrivez @1 messages de chat. -Write something in chat.=Écrivez quelque chose dans le chat. -You have disabled your achievements.=Vous avez désactivé vos succès. -You have enabled your achievements.=Vous avez activé vos succès. -You have not gotten any awards.=Vous n'avez reçu aucun prix. -You've disabled awards. Type /awards enable to reenable.=Vous avez désactivé les récompenses. Type /awards enable pour les activer. -[c|clear|disable|enable]=[c|clear|disable|enable] -OK=OK -Error: No awards available.=Erreur: aucune récompense disponible. -Eat: @1×@2=Manger: @1×@2 -Eat: @1=Manger: @1 -@1/@2 eaten=@1/@2 mangé -Place @1 block(s).=Placer @1 bloc(s). -Dig @1 block(s).=Creuser @1 bloc(s). -Eat @1 item(s).=Manger @1 aliment(s). -Craft @1 item(s).=Fabriquer @1 objet(s). -Can give achievements to any player=Peut donner des succès à n'importe quel joueur -(grant ( | all)) | list=(grant ( | all)) | list -Give achievement to player or list all achievements=Donner un succès a un joueur ou répertorier toutes les succès -@1 (@2)=@1 (@2) -Invalid syntax.=Syntaxe invalide. -Invalid action.=Action invalide. -Player is not online.=Le joueur n'est pas en ligne. -Done.=Terminé. -Achievement “@1” does not exist.=La réalisation «@1» n'existe pas. diff --git a/mods/HUD/awards/locale/template.txt b/mods/HUD/awards/locale/template.txt index 529d524c..bcfb67ac 100644 --- a/mods/HUD/awards/locale/template.txt +++ b/mods/HUD/awards/locale/template.txt @@ -50,12 +50,3 @@ Place @1 block(s).= Dig @1 block(s).= Eat @1 item(s).= Craft @1 item(s).= -Can give achievements to any player= -(grant ( | all)) | list= -Give achievement to player or list all achievements= -@1 (@2)= -Invalid syntax.= -Invalid action.= -Player is not online.= -Done.= -Achievement “@1” does not exist.= diff --git a/mods/HUD/awards/readme.md b/mods/HUD/awards/readme.md index 70c650c8..83235130 100644 --- a/mods/HUD/awards/readme.md +++ b/mods/HUD/awards/readme.md @@ -11,7 +11,7 @@ old fork in Carbone, under same license. # Basic API * awards.register_achievement(name, def) - * name: Unique identifier for achievement. You can use anything except "all" + * name * desciption * sound [optional] - set a custom sound (SimpleSoundSpec) or `false` to play no sound. If not specified, a default sound is played @@ -59,8 +59,6 @@ old fork in Carbone, under same license. * awards.unlock(name, award) * gives an award to a player * name is the player name -* awards.exists(award) - * returns true if award exists, false otherwise # Included in the Mod diff --git a/mods/HUD/awards/textures/awards_bg_default.png b/mods/HUD/awards/textures/awards_bg_default.png index b7ba7f42..86130d01 100644 Binary files a/mods/HUD/awards/textures/awards_bg_default.png and b/mods/HUD/awards/textures/awards_bg_default.png differ diff --git a/mods/HUD/awards/textures/awards_bg_mining.png b/mods/HUD/awards/textures/awards_bg_mining.png index 022e64f2..a6987794 100644 Binary files a/mods/HUD/awards/textures/awards_bg_mining.png and b/mods/HUD/awards/textures/awards_bg_mining.png differ diff --git a/mods/HUD/awards/textures/awards_firefighter.png b/mods/HUD/awards/textures/awards_firefighter.png new file mode 100644 index 00000000..7c2236bb Binary files /dev/null and b/mods/HUD/awards/textures/awards_firefighter.png differ diff --git a/mods/HUD/awards/textures/awards_house.png b/mods/HUD/awards/textures/awards_house.png new file mode 100644 index 00000000..e23e30d4 Binary files /dev/null and b/mods/HUD/awards/textures/awards_house.png differ diff --git a/mods/HUD/awards/textures/awards_level1.png b/mods/HUD/awards/textures/awards_level1.png new file mode 100644 index 00000000..8f628f33 Binary files /dev/null and b/mods/HUD/awards/textures/awards_level1.png differ diff --git a/mods/HUD/awards/textures/awards_level2.png b/mods/HUD/awards/textures/awards_level2.png new file mode 100644 index 00000000..9f9564fa Binary files /dev/null and b/mods/HUD/awards/textures/awards_level2.png differ diff --git a/mods/HUD/awards/textures/awards_level3.png b/mods/HUD/awards/textures/awards_level3.png new file mode 100644 index 00000000..8931454a Binary files /dev/null and b/mods/HUD/awards/textures/awards_level3.png differ diff --git a/mods/HUD/awards/textures/awards_level4.png b/mods/HUD/awards/textures/awards_level4.png new file mode 100644 index 00000000..68e393f0 Binary files /dev/null and b/mods/HUD/awards/textures/awards_level4.png differ diff --git a/mods/HUD/awards/textures/awards_level5.png b/mods/HUD/awards/textures/awards_level5.png new file mode 100644 index 00000000..d0a05bcc Binary files /dev/null and b/mods/HUD/awards/textures/awards_level5.png differ diff --git a/mods/HUD/awards/textures/awards_level6.png b/mods/HUD/awards/textures/awards_level6.png new file mode 100644 index 00000000..5c6482fd Binary files /dev/null and b/mods/HUD/awards/textures/awards_level6.png differ diff --git a/mods/HUD/awards/textures/awards_level7.png b/mods/HUD/awards/textures/awards_level7.png new file mode 100644 index 00000000..5e318d81 Binary files /dev/null and b/mods/HUD/awards/textures/awards_level7.png differ diff --git a/mods/HUD/awards/textures/awards_mese.png b/mods/HUD/awards/textures/awards_mese.png new file mode 100644 index 00000000..3fc800ec Binary files /dev/null and b/mods/HUD/awards/textures/awards_mese.png differ diff --git a/mods/HUD/awards/textures/awards_miniminer.png b/mods/HUD/awards/textures/awards_miniminer.png new file mode 100644 index 00000000..45c72384 Binary files /dev/null and b/mods/HUD/awards/textures/awards_miniminer.png differ diff --git a/mods/HUD/awards/textures/awards_novicebuilder.png b/mods/HUD/awards/textures/awards_novicebuilder.png new file mode 100644 index 00000000..f24d843c Binary files /dev/null and b/mods/HUD/awards/textures/awards_novicebuilder.png differ diff --git a/mods/HUD/awards/textures/awards_progress_gray.png b/mods/HUD/awards/textures/awards_progress_gray.png index ea60ae17..a5fc6cb3 100644 Binary files a/mods/HUD/awards/textures/awards_progress_gray.png and b/mods/HUD/awards/textures/awards_progress_gray.png differ diff --git a/mods/HUD/awards/textures/awards_progress_green.png b/mods/HUD/awards/textures/awards_progress_green.png index 5f2bb3d2..54b4e5d5 100644 Binary files a/mods/HUD/awards/textures/awards_progress_green.png and b/mods/HUD/awards/textures/awards_progress_green.png differ diff --git a/mods/HUD/awards/textures/awards_template.png b/mods/HUD/awards/textures/awards_template.png index e918be62..b2904548 100644 Binary files a/mods/HUD/awards/textures/awards_template.png and b/mods/HUD/awards/textures/awards_template.png differ diff --git a/mods/HUD/awards/textures/awards_ui_bags.png b/mods/HUD/awards/textures/awards_ui_bags.png new file mode 100644 index 00000000..4d6eb571 Binary files /dev/null and b/mods/HUD/awards/textures/awards_ui_bags.png differ diff --git a/mods/HUD/awards/textures/awards_ui_icon.png b/mods/HUD/awards/textures/awards_ui_icon.png index 34bb7c44..239ad71e 100644 Binary files a/mods/HUD/awards/textures/awards_ui_icon.png and b/mods/HUD/awards/textures/awards_ui_icon.png differ diff --git a/mods/HUD/awards/textures/awards_unknown.png b/mods/HUD/awards/textures/awards_unknown.png index e918be62..b2904548 100644 Binary files a/mods/HUD/awards/textures/awards_unknown.png and b/mods/HUD/awards/textures/awards_unknown.png differ diff --git a/mods/HUD/hbarmor/README.md b/mods/HUD/hbarmor/README.md new file mode 100644 index 00000000..c410a9b6 --- /dev/null +++ b/mods/HUD/hbarmor/README.md @@ -0,0 +1,42 @@ +# HUD bar for `3d_armor` [`hbarmor`] + +* Version: 0.4.0 + +## Description +This mod adds a simple HUD bar which displays the current damage +of the player's armor (from the 3D Armor [`3d_armor`] mod) as a percentage (rounded). + +100% armor means the armor is in perfect shape. 0% means the armor is almost destroyed +or non-existant. Note that to reach 100%, the player must wear at least 4 different +pieces of armor in perfect shape. + +The armor bar also does not tell anything about the armor's strength, +only how worn out it already is. + +By default, the armor bar is hidden if the player wears no armor. + +## Dependencies +* HUD bars [`hudbars`], major version 1 +* 3D Armor [`3d_armor`] (tested with Minetest 0.4.14) + +## Licensing +This mod is entirly free softare. + +### Source code + +* License: MIT License (see below) +* Authors: Wuzzy, forked from the mod “Better HUD (and hunger)” [`hud`] by BlockMen (2013-2014) + +### Textures + +* `hbarmor_icon.png`—Stu ([CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)), modified by BlockMen +* `hbarmor_bgicon.png`—Stu (CC BY-SA 3.0), modified by BlockMen +* `hbarmor_bar.png`—Wuzzy (MIT License) + +Everything else is under the MIT License: +© Copyright BlockMen (2013-2014) + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the MIT License. +See for more details. diff --git a/mods/HUD/hbarmor/depends.txt b/mods/HUD/hbarmor/depends.txt new file mode 100644 index 00000000..32c22245 --- /dev/null +++ b/mods/HUD/hbarmor/depends.txt @@ -0,0 +1,3 @@ +hudbars +3d_armor +intllib? diff --git a/mods/HUD/mcl_hbarmor/description.txt b/mods/HUD/hbarmor/description.txt similarity index 100% rename from mods/HUD/mcl_hbarmor/description.txt rename to mods/HUD/hbarmor/description.txt diff --git a/mods/HUD/mcl_hbarmor/init.lua b/mods/HUD/hbarmor/init.lua similarity index 54% rename from mods/HUD/mcl_hbarmor/init.lua rename to mods/HUD/hbarmor/init.lua index 57978359..21193f91 100644 --- a/mods/HUD/mcl_hbarmor/init.lua +++ b/mods/HUD/hbarmor/init.lua @@ -1,32 +1,43 @@ -local S = minetest.get_translator("mcl_hbarmor") - -if (not armor) or (not armor.def) then - minetest.log("error", "[mcl_hbarmor] Outdated mcl_armor version. Please update your version of mcl_armor!") +local S +if (minetest.get_modpath("intllib")) then + S = intllib.Getter() +else + S = function ( s ) return s end end -local mcl_hbarmor = {} +if (not armor) or (not armor.def) then + minetest.log("error", "[hbarmor] Outdated 3d_armor version. Please update your version of 3d_armor!") +end + +local hbarmor = {} -- HUD statbar values -mcl_hbarmor.armor = {} +hbarmor.armor = {} -- Stores if player's HUD bar has been initialized so far. -mcl_hbarmor.player_active = {} +hbarmor.player_active = {} -- Time difference in seconds between updates to the HUD armor bar. -- Increase this number for slow servers. -mcl_hbarmor.tick = 0.1 +hbarmor.tick = 0.1 -- If true, the armor bar is hidden when the player does not wear any armor -mcl_hbarmor.autohide = true +hbarmor.autohide = true -set = minetest.settings:get("mcl_hbarmor_tick") +--load custom settings +local set = minetest.settings:get_bool("hbarmor_autohide") +if set ~= nil then + hbarmor.autohide = set +end + +set = minetest.settings:get("hbarmor_tick") if tonumber(set) ~= nil then - mcl_hbarmor.tick = tonumber(set) + hbarmor.tick = tonumber(set) end local must_hide = function(playername, arm) - return arm == 0 + return ((not armor.def[playername].count or armor.def[playername].count == 0) and arm == 0) end local arm_printable = function(arm) @@ -37,17 +48,14 @@ local function custom_hud(player) local name = player:get_player_name() if minetest.settings:get_bool("enable_damage") then - local ret = mcl_hbarmor.get_armor(player) + local ret = hbarmor.get_armor(player) if ret == false then - minetest.log("error", "[mcl_hbarmor] Call to mcl_hbarmor.get_armor in custom_hud returned with false!") - return - end - local arm = tonumber(mcl_hbarmor.armor[name]) - if not arm then - arm = 0 + minetest.log("error", "[hbarmor] Call to hbarmor.get_armor in custom_hud returned with false!") end + local arm = tonumber(hbarmor.armor[name]) + if not arm then arm = 0 end local hide - if mcl_hbarmor.autohide then + if hbarmor.autohide then hide = must_hide(name, arm) else hide = false @@ -57,36 +65,47 @@ local function custom_hud(player) end --register and define armor HUD bar -hb.register_hudbar("armor", 0xFFFFFF, S("Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 20, mcl_hbarmor.autohide) +hb.register_hudbar("armor", 0xFFFFFF, S("Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, S("%s: %d%%")) -function mcl_hbarmor.get_armor(player) +function hbarmor.get_armor(player) if not player or not armor.def then return false end local name = player:get_player_name() - local pts = armor:get_armor_points(player) - if not pts then - return false + local def = armor.def[name] or nil + if def and def.state and def.count then + hbarmor.set_armor(name, def.state, def.count) else - mcl_hbarmor.set_armor(name, pts) + return false end return true end -function mcl_hbarmor.set_armor(player_name, pts) - mcl_hbarmor.armor[player_name] = math.max(0, math.min(20, pts)) +function hbarmor.set_armor(player_name, ges_state, items) + local max_items = 4 + if items == 5 then + max_items = items + end + local max = max_items * 65535 + local lvl = max - ges_state + lvl = lvl/max + if ges_state == 0 and items == 0 then + lvl = 0 + end + + hbarmor.armor[player_name] = math.max(0, math.min(lvl* (items * (100 / max_items)), 100)) end -- update hud elemtens if value has changed local function update_hud(player) local name = player:get_player_name() --armor - local arm = tonumber(mcl_hbarmor.armor[name]) + local arm = tonumber(hbarmor.armor[name]) if not arm then arm = 0 - mcl_hbarmor.armor[name] = 0 + hbarmor.armor[name] = 0 end - if mcl_hbarmor.autohide then + if hbarmor.autohide then -- hide armor bar completely when there is none if must_hide(name, arm) then hb.hide_hudbar(player, "armor") @@ -102,12 +121,12 @@ end minetest.register_on_joinplayer(function(player) local name = player:get_player_name() custom_hud(player) - mcl_hbarmor.player_active[name] = true + hbarmor.player_active[name] = true end) minetest.register_on_leaveplayer(function(player) local name = player:get_player_name() - mcl_hbarmor.player_active[name] = false + hbarmor.player_active[name] = false end) local main_timer = 0 @@ -115,15 +134,15 @@ local timer = 0 minetest.register_globalstep(function(dtime) main_timer = main_timer + dtime timer = timer + dtime - if main_timer > mcl_hbarmor.tick or timer > 4 then + if main_timer > hbarmor.tick or timer > 4 then if minetest.settings:get_bool("enable_damage") then - if main_timer > mcl_hbarmor.tick then main_timer = 0 end + if main_timer > hbarmor.tick then main_timer = 0 end for _,player in ipairs(minetest.get_connected_players()) do local name = player:get_player_name() - if mcl_hbarmor.player_active[name] == true then - local ret = mcl_hbarmor.get_armor(player) + if hbarmor.player_active[name] == true then + local ret = hbarmor.get_armor(player) if ret == false then - minetest.log("error", "[mcl_hbarmor] Call to mcl_hbarmor.get_armor in globalstep returned with false!") + minetest.log("error", "[hbarmor] Call to hbarmor.get_armor in globalstep returned with false!") end -- update all hud elements update_hud(player) diff --git a/mods/HUD/hbarmor/locale/hbarmor.de.tr b/mods/HUD/hbarmor/locale/hbarmor.de.tr new file mode 100644 index 00000000..d1be8698 --- /dev/null +++ b/mods/HUD/hbarmor/locale/hbarmor.de.tr @@ -0,0 +1,2 @@ +Armor=Panzerung +%s: %d%%=%s: %d%% diff --git a/mods/HUD/hbarmor/locale/hbarmor.it.tr b/mods/HUD/hbarmor/locale/hbarmor.it.tr new file mode 100644 index 00000000..f9c8f99e --- /dev/null +++ b/mods/HUD/hbarmor/locale/hbarmor.it.tr @@ -0,0 +1,4 @@ +Armor=Armatura + +# Format string for displaying the armor. E.g. "Armor: 100%" +%s: %d%%=%s: %d%% diff --git a/mods/HUD/hbarmor/locale/template.txt b/mods/HUD/hbarmor/locale/template.txt new file mode 100644 index 00000000..09bc54ce --- /dev/null +++ b/mods/HUD/hbarmor/locale/template.txt @@ -0,0 +1,4 @@ +Armor= + +# Format string for displaying the armor. E.g. "Armor: 100%" +%s: %d%%= diff --git a/mods/HUD/hbarmor/mod.conf b/mods/HUD/hbarmor/mod.conf new file mode 100644 index 00000000..47352c19 --- /dev/null +++ b/mods/HUD/hbarmor/mod.conf @@ -0,0 +1 @@ +name = hbarmor diff --git a/mods/HUD/hbarmor/screenshot.png b/mods/HUD/hbarmor/screenshot.png new file mode 100644 index 00000000..907cf900 Binary files /dev/null and b/mods/HUD/hbarmor/screenshot.png differ diff --git a/mods/HUD/hbarmor/settingtypes.txt b/mods/HUD/hbarmor/settingtypes.txt new file mode 100644 index 00000000..067d5045 --- /dev/null +++ b/mods/HUD/hbarmor/settingtypes.txt @@ -0,0 +1,7 @@ +#If true, automatically hides the armor HUD bar when the player wears no +#armor. Otherwise, the armor bar shows “0%”. +hbarmor_autohide (Automatically hide armor HUD bar) bool true + +#Time difference in seconds between updates to the armor HUD bar. +#Increase this number for slow servers. +hbarmor_tick (Armor HUD bar update frequency) float 0.1 0.0 4.0 diff --git a/mods/HUD/mcl_hbarmor/textures/hbarmor_bar.png b/mods/HUD/hbarmor/textures/hbarmor_bar.png similarity index 100% rename from mods/HUD/mcl_hbarmor/textures/hbarmor_bar.png rename to mods/HUD/hbarmor/textures/hbarmor_bar.png diff --git a/mods/HUD/hbarmor/textures/hbarmor_bgicon.png b/mods/HUD/hbarmor/textures/hbarmor_bgicon.png new file mode 100644 index 00000000..86e68e40 Binary files /dev/null and b/mods/HUD/hbarmor/textures/hbarmor_bgicon.png differ diff --git a/mods/HUD/hbarmor/textures/hbarmor_icon.png b/mods/HUD/hbarmor/textures/hbarmor_icon.png new file mode 100644 index 00000000..e0066a38 Binary files /dev/null and b/mods/HUD/hbarmor/textures/hbarmor_icon.png differ diff --git a/mods/HUD/hudbars/API.md b/mods/HUD/hudbars/API.md index ca6144ad..a53344cc 100644 --- a/mods/HUD/hudbars/API.md +++ b/mods/HUD/hudbars/API.md @@ -45,7 +45,7 @@ a vertical gradient. ### Icon A 16×16 image shown left of the HUD bar. This is optional. -### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config)` +### `hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string)` This function registers a new custom HUD bar definition to the HUD bars mod, so it can be later used to be displayed, changed, hidden and unhidden on a per-player basis. Note this does not yet display the HUD bar. @@ -66,21 +66,7 @@ for more information. * `default_start_value`: If this HUD bar is added to a player, and no initial value is specified, this value will be used as initial current value * `default_max_value`: If this HUD bar is added to a player, and no initial maximum value is specified, this value will be used as initial maximum value * `default_start_hidden`: The HUD bar will be initially start hidden by default when added to a player. Use `hb.unhide_hudbar` to unhide it. -* `format_string`: Optional; You can specify an alternative format string to use for the final text on the HUD bar. The default format string is “`@1: @2/@3`” (The “@” numbers are placeholders that have a meaning in this order: @1 = Label, @2 = current value, @3 = maximum value). Do *not* use minetest.translator on this string, the string will be translated by `hudbars`, but you still must put this string into the translation catalogue file. -* `format_string_config`: Required if `format_string` is set. This allows to change which parameters to use in the format string. It's a table with these fields: - * `textdomain`: Text domain of the format string, used by `minetest.translate` - * `order`: Table that contains the order of the placeholders. It's also possible to remove placeholders. Default order: `{ "label", "value", "max_value" }` - * `format_value`: Format string to apply when displaying `value`. Syntax is same as in `string.format`. Default: `"%d"` - * `format_max_value`: Same as `format_value` but is applied to `max_value` - -#### Example -Example (mostly) from `hbarmor` mod: - -``` -hb.register_hudbar("armor", 0xFFFFFF, minetest.translator("hbarmor", "Armor"), { icon = "hbarmor_icon.png", bgicon = "hbarmor_bgicon.png", bar = "hbarmor_bar.png" }, 0, 100, hbarmor.autohide, N("@1: @2%"), { order = { "label", "value" }, textdomain = "hbarmor" } ) -``` - -Displays an armor HUD bar with a label of the form „Armor: 53%“. (`N` is a dummy function that returns its argument, used to make the string visible for translator scripts.) +* `format_string`: This is optional; You can specify an alternative format string display the final text on the HUD bar. The default format string is “`%s: %d/%d`” (in this order: Label, current value, maximum value). See also the Lua documentation of `string.format`. #### Return value Always `nil`. diff --git a/mods/HUD/hudbars/README.md b/mods/HUD/hudbars/README.md index afe7f448..a3a1a96c 100644 --- a/mods/HUD/hudbars/README.md +++ b/mods/HUD/hudbars/README.md @@ -11,7 +11,7 @@ this mod will place them accordingly. position should be displayed correctly on every screen size. ## Current version -The current version is 2.1.0. +The current version is 1.10.0. This software uses [semantic versioning](http://semver.org), as defined by version 2.0.0 of the SemVer standard. @@ -37,8 +37,6 @@ Translations: * Turkish: admicos * Dutch: kingoscargames * Italian: Hamlet -* Malay: muhdnurhidayat -* Russian: Imk This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it diff --git a/mods/HUD/hudbars/changelog.txt b/mods/HUD/hudbars/changelog.txt new file mode 100644 index 00000000..e2e6b560 --- /dev/null +++ b/mods/HUD/hudbars/changelog.txt @@ -0,0 +1,92 @@ +Note: This software uses semantic versioning, +as of version 2.0.0 of the standard . + +0.1.0 +----- +- Initial release, forked from mod “Better HUD” [hud]. + +0.2.0 +----- +- Add API documentation + +0.3.0 +----- +- Rename main table from “hud” to “hb” (affects function names!) +- Arguments 3-4 of hb.change_hudbar can be nil for values which should not change +- Add proper function hb.init_hudbar, replaces odd call to hud.hudtables[identifier].add_all +- Update API documentation and fix mistakes +- Use “hudbars.conf” instead of “hud.conf” + +0.4.0 +----- +- New function: hb.get_hudbar_state to get information about the state of an active HUD bar, such as values, whether it is hidden, etc. +- hb.change_hudbar has been optimized to call hud_change fewer times, which is hopefully good for networking +- Rename hb.register_hudbar parameter “start_hide” to “start_hidden” +- start_hidden parameter now finally works +- Do not affect other HUD flags (crosshair, wielditem, etc.) when starting mod +- Show error message when trying to call hb.init_hudbar or hb.change_hudbar with bad values +- Update documentation +- Lots of refactoring +- Health and breath bar now use API + +1.0.0 +----- +- Add new parameter start_hidden to hb.init_hudbar, specified whether HUD bar is hidden on start +- Copy-editing of API.md and README.txt +- Internal: Fix add_all weirdness + +1.0.1 +----- +- Fix race condition causing crash at start of server + +1.0.2 +----- +- Fix other HUD elements disappearing for rejoining players +- Remove pointless delays for initializing the HUD for new or rejoining players + +1.0.3 +----- +- Adjust default HUD bars position for Minetest 0.4.12 + +1.1.0 +----- +- Add boolean minetest.conf setting support (hudbars_autohide_breathbar) to control whether the breath bar is automatically hidden when full (default: yes) + +1.2.0 +----- +- New setting: hudbars_sorting. You can now manually sort all the HUD bars. Useful if you don't like automatic order +- New setting: hudbars_bar_type. You now can change the appearance of the HUD bars. +- New HUD bar types, slightly experimental: Classic statbars and modern [hud]-style statbars +- New experimental/unfinished setting: hudbars_alignment_pattern: You can now make the HUD bars stack vertically instead of the current zig-zag pattern. Note you probably need to change source code to productively use this feature +- Various position-related HUD bar settings (see README.txt) +- Remove hudbars.conf support and hudbars.conf.example (was never officially supported anyways) + +1.2.1 +----- +- Fix crash when enable_damage is changed in mid-game + +1.3.0 +----- +- Make all settings avaialbe in Minetest's advanced settings menu +- Fix HUD bars overlap when both hudbars_tick and hudbars_vmargin were set +- Use Markdown syntax in readme file +- Fix some factual mistakes in readme file +- Add metadata: mod.conf, description.txt, screenshot.png + +1.4.0 +----- +- Allow to change HUD bar images and label after it has been registered +- Minor API.md correction + +1.4.1 +----- +- Fix bug in hb.change_hudbar being a no-op if new_value and new_max value are nil + +1.5.0 +----- +- Portuguese translation by BrunoMine + +1.5.1 +----- +- Fix critical bug: Mod does not work with both intllib and mod security enabled +- Update screenshot to use new 3:2 aspect ratio diff --git a/mods/HUD/hudbars/default_settings.lua b/mods/HUD/hudbars/default_settings.lua index 0bd267d0..91d3c67e 100644 --- a/mods/HUD/hudbars/default_settings.lua +++ b/mods/HUD/hudbars/default_settings.lua @@ -1,4 +1,5 @@ -- (Hardcoded) default settings +-- Some of these settings have been modified for MCL2. hb.settings.max_bar_length = 160 hb.settings.statbar_length = 20 @@ -52,3 +53,4 @@ else hb.settings.sorting_reverse[tonumber(v)] = k end end + diff --git a/mods/HUD/hudbars/depends.txt b/mods/HUD/hudbars/depends.txt new file mode 100644 index 00000000..77e8d97c --- /dev/null +++ b/mods/HUD/hudbars/depends.txt @@ -0,0 +1 @@ +intllib? diff --git a/mods/HUD/hudbars/description.txt b/mods/HUD/hudbars/description.txt new file mode 100644 index 00000000..9e10e894 --- /dev/null +++ b/mods/HUD/hudbars/description.txt @@ -0,0 +1 @@ +Replaces the health and breath symbols in the HUD by “progress bars” and shows exact values. Other mods can add more progress bars for custom player stats. diff --git a/mods/HUD/hudbars/init.lua b/mods/HUD/hudbars/init.lua index 9c7708bd..fc43f85b 100644 --- a/mods/HUD/hudbars/init.lua +++ b/mods/HUD/hudbars/init.lua @@ -1,5 +1,13 @@ -local S = minetest.get_translator("hudbars") -local N = function(s) return s end +local S +if minetest.global_exists("intllib") then + if intllib.make_gettext_pair then + S = intllib.make_gettext_pair() + else + S = intllib.Getter() + end +else + S = function ( s ) return s end +end hb = {} @@ -51,35 +59,6 @@ local function player_exists(player) return player ~= nil and player:is_player() end -local function make_label(format_string, format_string_config, label, start_value, max_value) - local params = {} - local order = format_string_config.order - for o=1, #order do - if order[o] == "label" then - table.insert(params, label) - elseif order[o] == "value" then - if format_string_config.format_value then - table.insert(params, string.format(format_string_config.format_value, start_value)) - else - table.insert(params, start_value) - end - elseif order[o] == "max_value" then - if format_string_config.format_max_value then - table.insert(params, string.format(format_string_config.format_max_value, max_value)) - else - table.insert(params, max_value) - end - end - end - local ret - if format_string_config.textdomain then - ret = minetest.translate(format_string_config.textdomain, format_string, unpack(params)) - else - ret = S(format_string, unpack(params)) - end - return ret -end - -- Table which contains all players with active default HUD bars (only for internal use) hb.players = {} @@ -119,7 +98,7 @@ function hb.get_hudbar_position_index(identifier) end end -function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string, format_string_config) +function hb.register_hudbar(identifier, text_color, label, textures, default_start_value, default_start_max, default_start_hidden, format_string) minetest.log("action", "hb.register_hudbar: "..tostring(identifier)) local hudtable = {} local pos, offset @@ -153,19 +132,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta end end if format_string == nil then - format_string = N("@1: @2/@3") - end - if format_string_config == nil then - format_string_config = {} - end - if format_string_config.order == nil then - format_string_config.order = { "label", "value", "max_value" } - end - if format_string_config.format_value == nil then - format_string_config.format_value = "%d" - end - if format_string_config.format_max_value == nil then - format_string_config.format_max_value = "%d" + format_string = S("%s: %d/%d") end hudtable.add_all = function(player, hudtable, start_value, start_max, start_hidden) @@ -190,7 +157,7 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta iconscale = { x=1, y=1 } barnumber = hb.value_to_barlength(start_value, start_max) bgiconnumber = hb.settings.statbar_length - text = make_label(format_string, format_string_config, label, start_value, start_max) + text = string.format(format_string, label, start_value, start_max) end if hb.settings.bar_type == "progress_bar" then ids.bg = player:hud_add({ @@ -200,7 +167,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta text = "hudbars_bar_background.png", alignment = {x=1,y=1}, offset = { x = offset.x - 1, y = offset.y - 1 }, - z_index = 0, }) if textures.icon ~= nil then ids.icon = player:hud_add({ @@ -210,7 +176,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta text = textures.icon, alignment = {x=-1,y=1}, offset = { x = offset.x - 3, y = offset.y }, - z_index = 1, }) end elseif hb.settings.bar_type == "statbar_modern" then @@ -224,19 +189,12 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta offset = { x = offset.x, y = offset.y }, direction = 0, size = {x=24, y=24}, - z_index = 0, }) end end local bar_image, bar_size if hb.settings.bar_type == "progress_bar" then bar_image = textures.bar - -- NOTE: Intentionally set to nil. For some reason, on some systems, - -- the progress bar is displaced when the bar_size is set explicitly here. - -- On the other hand, setting this to nil is deprecated in MT 5.0.0 due to - -- a debug log warning, but nothing is explained in lua_api.txt. - -- This section is a potential bug magnet, please watch with care! - -- The size of the bar image is expected to be exactly 2×16 pixels. bar_size = nil elseif hb.settings.bar_type == "statbar_classic" or hb.settings.bar_type == "statbar_modern" then bar_image = textures.icon @@ -251,7 +209,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta offset = offset, direction = 0, size = bar_size, - z_index = 1, }) if hb.settings.bar_type == "progress_bar" then ids.text = player:hud_add({ @@ -262,7 +219,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta number = text_color, direction = 0, offset = { x = offset.x + 2, y = offset.y - 1}, - z_index = 2, }) end -- Do not forget to update hb.get_hudbar_state if you add new fields to the state table @@ -291,7 +247,6 @@ function hb.register_hudbar(identifier, text_color, label, textures, default_sta hudtable.identifier = identifier hudtable.format_string = format_string - hudtable.format_string_config = format_string_config hudtable.label = label hudtable.hudids = {} hudtable.hudstate = {} @@ -352,7 +307,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon end if new_label ~= nil then hudtable.label = new_label - local new_text = make_label(hudtable.format_string, hudtable.format_string_config, new_label, hudtable.hudstate[name].value, hudtable.hudstate[name].max) + local new_text = string.format(hudtable.format_string, new_label, hudtable.hudstate[name].value, hudtable.hudstate[name].max) player:hud_change(hudtable.hudids[name].text, "text", new_text) end if new_text_color ~= nil then @@ -396,7 +351,7 @@ function hb.change_hudbar(player, identifier, new_value, new_max_value, new_icon end if hb.settings.bar_type == "progress_bar" then - local new_text = make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, new_value, new_max_value) + local new_text = string.format(hudtable.format_string, hudtable.label, new_value, new_max_value) if new_text ~= hudtable.hudstate[name].text then player:hud_change(hudtable.hudids[name].text, "text", new_text) hudtable.hudstate[name].text = new_text @@ -412,17 +367,19 @@ function hb.hide_hudbar(player, identifier) local name = player:get_player_name() local hudtable = hb.get_hudtable(identifier) if hudtable == nil then return false end - if hb.settings.bar_type == "progress_bar" then - if hudtable.hudids[name].icon ~= nil then - player:hud_change(hudtable.hudids[name].icon, "scale", {x=0,y=0}) + if(hudtable.hudstate[name].hidden == false) then + if hb.settings.bar_type == "progress_bar" then + if hudtable.hudids[name].icon ~= nil then + player:hud_change(hudtable.hudids[name].icon, "scale", {x=0,y=0}) + end + player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0}) + player:hud_change(hudtable.hudids[name].text, "text", "") + elseif hb.settings.bar_type == "statbar_modern" then + player:hud_change(hudtable.hudids[name].bg, "number", 0) end - player:hud_change(hudtable.hudids[name].bg, "scale", {x=0,y=0}) - player:hud_change(hudtable.hudids[name].text, "text", "") - elseif hb.settings.bar_type == "statbar_modern" then - player:hud_change(hudtable.hudids[name].bg, "number", 0) + player:hud_change(hudtable.hudids[name].bar, "number", 0) + hudtable.hudstate[name].hidden = true end - player:hud_change(hudtable.hudids[name].bar, "number", 0) - hudtable.hudstate[name].hidden = true return true end @@ -431,21 +388,23 @@ function hb.unhide_hudbar(player, identifier) local name = player:get_player_name() local hudtable = hb.get_hudtable(identifier) if hudtable == nil then return false end - local value = hudtable.hudstate[name].value - local max = hudtable.hudstate[name].max - if hb.settings.bar_type == "progress_bar" then - if hudtable.hudids[name].icon ~= nil then - player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1}) + if(hudtable.hudstate[name].hidden) then + local value = hudtable.hudstate[name].value + local max = hudtable.hudstate[name].max + if hb.settings.bar_type == "progress_bar" then + if hudtable.hudids[name].icon ~= nil then + player:hud_change(hudtable.hudids[name].icon, "scale", {x=1,y=1}) + end + if hudtable.hudstate[name].max ~= 0 then + player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1}) + end + player:hud_change(hudtable.hudids[name].text, "text", tostring(string.format(hudtable.format_string, hudtable.label, value, max))) + elseif hb.settings.bar_type == "statbar_modern" then + player:hud_change(hudtable.hudids[name].bg, "number", hb.settings.statbar_length) end - if hudtable.hudstate[name].max ~= 0 then - player:hud_change(hudtable.hudids[name].bg, "scale", {x=1,y=1}) - end - player:hud_change(hudtable.hudids[name].text, "text", make_label(hudtable.format_string, hudtable.format_string_config, hudtable.label, value, max)) - elseif hb.settings.bar_type == "statbar_modern" then - player:hud_change(hudtable.hudids[name].bg, "number", hb.settings.statbar_length) + player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max)) + hudtable.hudstate[name].hidden = false end - player:hud_change(hudtable.hudids[name].bar, "number", hb.value_to_barlength(value, max)) - hudtable.hudstate[name].hidden = false return true end @@ -493,20 +452,16 @@ local function custom_hud(player) else hide = true end - local hp = player:get_hp() - local hp_max = player:get_properties().hp_max - hb.init_hudbar(player, "health", math.min(hp, hp_max), hp_max, hide) + hb.init_hudbar(player, "health", player:get_hp(), nil, hide) local breath = player:get_breath() - local breath_max = player:get_properties().breath_max local hide_breath - if breath >= breath_max and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end - hb.init_hudbar(player, "breath", math.min(breath, breath_max-1), breath_max-1, hide_breath or hide) + if breath == 11 and hb.settings.autohide_breath == true then hide_breath = true else hide_breath = false end + hb.init_hudbar(player, "breath", math.min(breath, 10), nil, hide_breath or hide) end end local function update_health(player) - local hp_max = player:get_properties().hp_max - hb.change_hudbar(player, "health", player:get_hp(), hp_max) + hb.change_hudbar(player, "health", player:get_hp()) end -- update built-in HUD bars @@ -517,14 +472,13 @@ local function update_hud(player) hb.unhide_hudbar(player, "health") end --air - local breath_max = player:get_properties().breath_max local breath = player:get_breath() - if breath >= breath_max and hb.settings.autohide_breath == true then + if breath == 11 and hb.settings.autohide_breath == true then hb.hide_hudbar(player, "breath") else hb.unhide_hudbar(player, "breath") - hb.change_hudbar(player, "breath", math.min(breath, breath_max-1), breath_max-1) + hb.change_hudbar(player, "breath", math.min(breath, 10)) end --health update_health(player) diff --git a/mods/HUD/hudbars/locale/de.txt b/mods/HUD/hudbars/locale/de.txt new file mode 100644 index 00000000..578764ea --- /dev/null +++ b/mods/HUD/hudbars/locale/de.txt @@ -0,0 +1,3 @@ +Health = Leben +Breath = Atem +%s: %d/%d = %s: %d/%d diff --git a/mods/HUD/hudbars/locale/hudbars.de.tr b/mods/HUD/hudbars/locale/hudbars.de.tr deleted file mode 100644 index 3d1e697c..00000000 --- a/mods/HUD/hudbars/locale/hudbars.de.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: hudbars -Health=Leben -Breath=Atem -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.es.tr b/mods/HUD/hudbars/locale/hudbars.es.tr deleted file mode 100644 index bbf02795..00000000 --- a/mods/HUD/hudbars/locale/hudbars.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: hudbars -Health=Salud -Breath=Aliento -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.ms.tr b/mods/HUD/hudbars/locale/hudbars.ms.tr deleted file mode 100644 index eb811ab6..00000000 --- a/mods/HUD/hudbars/locale/hudbars.ms.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: hudbars -Health=Kesihatan -Breath=Nafas -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.nl.tr b/mods/HUD/hudbars/locale/hudbars.nl.tr deleted file mode 100644 index b9c4a417..00000000 --- a/mods/HUD/hudbars/locale/hudbars.nl.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: hudbars -Health=Gezondheid -Breath=Adem - -# Default format string for progress bar-style HUD bars, e.g. “Health 5/20” -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.ru.tr b/mods/HUD/hudbars/locale/hudbars.ru.tr deleted file mode 100644 index 2d278e33..00000000 --- a/mods/HUD/hudbars/locale/hudbars.ru.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: hudbars -Health=HP -Breath=дыхание -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.tr.tr b/mods/HUD/hudbars/locale/hudbars.tr.tr deleted file mode 100644 index 6a2ce0b5..00000000 --- a/mods/HUD/hudbars/locale/hudbars.tr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: hudbars -Health=Can -Breath=Nefes -@1: @2/@3=@1: @2/@3 diff --git a/mods/HUD/hudbars/locale/hudbars.fr.tr b/mods/HUD/hudbars/locale/it.txt similarity index 53% rename from mods/HUD/hudbars/locale/hudbars.fr.tr rename to mods/HUD/hudbars/locale/it.txt index b31b7b0c..40558ac3 100644 --- a/mods/HUD/hudbars/locale/hudbars.fr.tr +++ b/mods/HUD/hudbars/locale/it.txt @@ -1,6 +1,5 @@ -# textdomain: hudbars -Health=Santé -Breath=Breath +Health = Salute +Breath = Ossigeno # Default format string for progress bar-style HUD bars, e.g. “Health 5/20” -@1: @2/@3=@1: @2/@3 +%s: %d/%d diff --git a/mods/HUD/hudbars/locale/hudbars.it.tr b/mods/HUD/hudbars/locale/nl.txt similarity index 52% rename from mods/HUD/hudbars/locale/hudbars.it.tr rename to mods/HUD/hudbars/locale/nl.txt index 3ada5b66..33e161e0 100644 --- a/mods/HUD/hudbars/locale/hudbars.it.tr +++ b/mods/HUD/hudbars/locale/nl.txt @@ -1,6 +1,5 @@ -# textdomain: hudbars -Health=Salute -Breath=Ossigeno +Health = Gezondheid +Breath = Adem # Default format string for progress bar-style HUD bars, e.g. “Health 5/20” -@1: @2/@3=@1: @2/@3 +%s: %d/%d diff --git a/mods/HUD/hudbars/locale/hudbars.pt.tr b/mods/HUD/hudbars/locale/pt.txt similarity index 59% rename from mods/HUD/hudbars/locale/hudbars.pt.tr rename to mods/HUD/hudbars/locale/pt.txt index a818f092..2de62650 100644 --- a/mods/HUD/hudbars/locale/hudbars.pt.tr +++ b/mods/HUD/hudbars/locale/pt.txt @@ -1,6 +1,5 @@ -# textdomain: hudbars -Health=Saude -Breath=Folego +Health = Saude +Breath = Folego # Formato de string padrão para progresso bar-style de barras do HUD, por exemplo “Saude 5/20” -@1: @2/@3=@1: @2/@3 +%s: %d/%d diff --git a/mods/HUD/hudbars/locale/template.txt b/mods/HUD/hudbars/locale/template.txt index 37b05591..0a26b8fe 100644 --- a/mods/HUD/hudbars/locale/template.txt +++ b/mods/HUD/hudbars/locale/template.txt @@ -1,6 +1,5 @@ -# textdomain: hudbars -Health= -Breath= +Health +Breath # Default format string for progress bar-style HUD bars, e.g. “Health 5/20” -@1: @2/@3= +%s: %d/%d diff --git a/mods/HUD/hudbars/locale/tr.txt b/mods/HUD/hudbars/locale/tr.txt new file mode 100644 index 00000000..b49c7a06 --- /dev/null +++ b/mods/HUD/hudbars/locale/tr.txt @@ -0,0 +1,3 @@ +Health = Can +Breath = Nefes +%s: %d/%d = %s: %d/%d diff --git a/mods/HUD/hudbars/mod.conf b/mods/HUD/hudbars/mod.conf index 5fa238a8..add28e65 100644 --- a/mods/HUD/hudbars/mod.conf +++ b/mods/HUD/hudbars/mod.conf @@ -1,2 +1 @@ name = hudbars -description = Replaces the health and breath symbols in the HUD by “progress bars” and shows exact values. Other mods can add more progress bars for custom player stats. diff --git a/mods/HUD/hudbars/settingtypes.txt b/mods/HUD/hudbars/settingtypes.txt index 3e4390e2..77c1dd09 100644 --- a/mods/HUD/hudbars/settingtypes.txt +++ b/mods/HUD/hudbars/settingtypes.txt @@ -110,7 +110,7 @@ hudbars_start_statbar_offset_right_x (Right HUD statbar x offset) int 25 hudbars_start_statbar_offset_right_y (Right HUD statbar y offset) int -90 # The vertical distance between two HUD bars, in pixels. -hudbars_vmargin (Vertical distance between HUD bars) int 24 0 +hudbars_vmargin (Vertical distance between HUD bars) int 28 0 [Performance] # The of seconds which need to pass before the server updates the default HUD bars diff --git a/mods/HUD/hudbars/textures/hudbars_bar_background.png b/mods/HUD/hudbars/textures/hudbars_bar_background.png index 9a9513b0..cbc6c3f5 100644 Binary files a/mods/HUD/hudbars/textures/hudbars_bar_background.png and b/mods/HUD/hudbars/textures/hudbars_bar_background.png differ diff --git a/mods/HUD/hudbars/textures/hudbars_bgicon_health.png b/mods/HUD/hudbars/textures/hudbars_bgicon_health.png index ebda3703..aa4a6123 100644 Binary files a/mods/HUD/hudbars/textures/hudbars_bgicon_health.png and b/mods/HUD/hudbars/textures/hudbars_bgicon_health.png differ diff --git a/mods/HUD/hudbars/textures/hudbars_icon_breath.png b/mods/HUD/hudbars/textures/hudbars_icon_breath.png index cbbb6705..f1d714fe 100644 Binary files a/mods/HUD/hudbars/textures/hudbars_icon_breath.png and b/mods/HUD/hudbars/textures/hudbars_icon_breath.png differ diff --git a/mods/HUD/hudbars/textures/hudbars_icon_health.png b/mods/HUD/hudbars/textures/hudbars_icon_health.png index 7f1b66df..d0e30410 100644 Binary files a/mods/HUD/hudbars/textures/hudbars_icon_health.png and b/mods/HUD/hudbars/textures/hudbars_icon_health.png differ diff --git a/mods/HUD/mcl_achievements/locale/mcl_achievements.es.tr b/mods/HUD/mcl_achievements/locale/mcl_achievements.es.tr deleted file mode 100644 index 2044e826..00000000 --- a/mods/HUD/mcl_achievements/locale/mcl_achievements.es.tr +++ /dev/null @@ -1,49 +0,0 @@ -# textdomain:mcl_achievements -Aquire Hardware=Obteniendo un lingote -Bake Bread=Horneando pan -Benchmarking=Crea tu mesa de trabajo -Cow Tipper=Consiguiendo cuero -Craft a bookshelf.=Crea una estantería. -Craft a cake using wheat, sugar, milk and an egg.=Crea una tarta con trigo, azúcar, leche y un huevo. -Craft a crafting table from 4 wooden planks.=Crea una mesa de trabajo con 4 tablas de madera procesada. -Craft a stone pickaxe using sticks and cobblestone.=Crea un pico de piedra con palos y rocas. -Craft a wooden sword using wooden planks and sticks on a crafting table.=Haz una espada de madera con tablas de madera y palos en una mesa de trabajo. -DIAMONDS!=¡Diamantes! -Delicious Fish=Delicioso pescado -Dispense With This=Prescinda de esto -Eat a cooked porkchop.=Come una chuleta de cerdo cocinado. -Eat a cooked rabbit.=Come un conejo cocinado. -Get really desperate and eat rotten flesh.=Desesperate y come carne podrida. -Getting Wood=Obtén madera -Getting an Upgrade=Obteniendo una mejora -Hit a skeleton, wither skeleton or stray by bow and arrow from a distance of at least 20 meters.=Golpear un esqueleto, Wither o desviarle con arco y flecha desde una distancia de al menos 20 metros. -Hot Topic=Tema candente -Into Fire=En el fuego -Into the Nether=En el abismo -Iron Belly=Vientre de hierro -Librarian=Bibliotecario -Mine emerald ore.=Mina de esmeralda. -On A Rail=Viajando en un carril -Pick up a blaze rod from the floor.=Recoge una barra de fuego del suelo. -Pick up a diamond from the floor.=Recoge un diamante del suelo. -Pick up a wood item from the ground.@nHint: Punch a tree trunk until it pops out as an item.=Recoge un elemento de madera del suelo. @nSugerencia: Golpee el tronco de un árbol hasta que salga como un elemento. -Pick up leather from the floor.@nHint: Cows and some other animals have a chance to drop leather, when killed.=Recoja el cuero del suelo. @nSugerencia: Las vacas y algunos otros animales tienen la oportunidad de soltar el cuero cuando mueren. -Place a dispenser.=Coloca un dispensador. -Place a flower pot.=Coloca una maceta. -Pork Chop=Chuleta de cerdo -Pot Planter=Jardinero -Rabbit Season=Temporada del conejo -Sniper Duel=Duelo de arqueros -Take a cooked fish from a furnace.@nHint: Use a fishing rod to catch a fish and cook it in a furnace.=Tome un pescado cocido de un horno. @nSugerencia: Use una caña de pescar para atrapar un pez y cocínelo en un horno. -Take an iron ingot from a furnace's output slot.@nHint: To smelt an iron ingot, put a fuel (like coal) and iron ore into a furnace.=Obtén un lingote de hierro de un horno. @nSugerencia: Para fundir un lingote de hierro, coloque un combustible (como carbón) y mineral de hierro en un horno. -The Haggler=El regateador -The Lie=El cocinero -Time to Farm!=¡Hora de cultivar! -Time to Mine!=¡Hora de minar! -Time to Strike!=¡Hora de atacar! -Travel by minecart for at least 1000 meters from your starting point in a single ride.=Viaje en un carro minero durante al menos 1000 metros desde su punto de partida en un solo viaje. -Use 8 cobblestones to craft a furnace.=Usa 8 rocas para crear un horno. -Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Usa una mesa de trabajo para hacer una azada de madera con tablas de madera procesada y palos de madera. -Use a crafting table to craft a wooden pickaxe from wooden planks and sticks.=Usa una mesa de trabajo para hacer un pico de madera con tablas de madera procesada y palos de madera. -Use obsidian and a fire starter to construct a Nether portal.=Usa obsidiana y un iniciador de fuego para construir un portal abisal. -Use wheat to craft a bread.=Usa trigo para elaborar pan. diff --git a/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr b/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr deleted file mode 100644 index ae4941d2..00000000 --- a/mods/HUD/mcl_achievements/locale/mcl_achievements.fr.tr +++ /dev/null @@ -1,49 +0,0 @@ -# textdomain:mcl_achievements -Aquire Hardware=Acquérir du matériel -Bake Bread=Faire du pain -Benchmarking=Fabriquer -Cow Tipper=Chevaucher une vache -Craft a bookshelf.=Fabriquez une Bibliothèque. -Craft a cake using wheat, sugar, milk and an egg.=Fabriquez un gâteau avec du blé, du sucre, du lait et un œuf. -Craft a crafting table from 4 wooden planks.=Fabriquez un établi à partir de 4 planches de bois. -Craft a stone pickaxe using sticks and cobblestone.=Fabriquez une pioche en pierre à l'aide de bâtons et de pierre. -Craft a wooden sword using wooden planks and sticks on a crafting table.=Fabriquez une épée en bois à l'aide de planches et de bâtons en bois sur un établi. -DIAMONDS!=DIAMANTS! -Delicious Fish=Délicieux Poisson -Dispense With This=Dispenser de ça -Eat a cooked porkchop.=Mangez du porc cuit. -Eat a cooked rabbit.=Mangez du lapin cuit. -Get really desperate and eat rotten flesh.=Soyez vraiment désespéré et mangez de la chair pourrie. -Getting Wood=Obtenir du bois -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 -Iron Belly=Ventre de fer -Librarian=Bibliothécaire -Mine emerald ore.=Mine de minerai d'émeraude. -On A Rail=Sur un rail -Pick up a blaze rod from the floor.=Ramassez une tige de feu sur le sol. -Pick up a diamond from the floor.=Ramassez un diamant sur le sol. -Pick up a wood item from the ground.@nHint: Punch a tree trunk until it pops out as an item.=Ramassez un objet en bois du sol.@nConseil: Frappez un tronc d'arbre jusqu'à ce qu'il ressorte comme un objet. -Pick up leather from the floor.@nHint: Cows and some other animals have a chance to drop leather, when killed.=Ramassez le cuir du sol.@nConseil: Les vaches et certains autres animaux ont une chance de laisser tomber le cuir lorsqu'ils sont tués. -Place a dispenser.=Placez un distributeur. -Place a flower pot.=Placez un pot de fleurs. -Pork Chop=Côtelette de porc -Pot Planter=Jardinière en pot -Rabbit Season=Saison du lapin -Sniper Duel=Duel de sniper -Take a cooked fish from a furnace.@nHint: Use a fishing rod to catch a fish and cook it in a furnace.=Prenez un poisson cuit d'un four.@nConseil: Utilisez une canne à pêche pour attraper un poisson et faites-le cuire dans un four. -Take an iron ingot from a furnace's output slot.@nHint: To smelt an iron ingot, put a fuel (like coal) and iron ore into a furnace.=Prenez un lingot de fer dans la fente de sortie d'un four.@nConseil: Pour faire fondre un lingot de fer, mettez du combustible (comme du charbon) et du minerai de fer dans un four. -The Haggler=Le marchand -The Lie=Le mensonge -Time to Farm!=C'est l'heure du fermier! -Time to Mine!=C'est l'heure de miner! -Time to Strike!=C'est l'heure de combattre! -Travel by minecart for at least 1000 meters from your starting point in a single ride.=Voyagez en wagonnet sur au moins 1000 mètres de votre point de départ en une seule fois. -Use 8 cobblestones to craft a furnace.=Utilise 8 pierres pour fabriquer un four. -Use a crafting table to craft a wooden hoe from wooden planks and sticks.=Utilisez un établi pour fabriquer une houe en bois à partir de planches et de bâtons en bois. -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. diff --git a/mods/HUD/mcl_achievements/textures/mcl_achievements_button.png b/mods/HUD/mcl_achievements/textures/mcl_achievements_button.png index fd9d0bd1..cef7e59c 100644 Binary files a/mods/HUD/mcl_achievements/textures/mcl_achievements_button.png and b/mods/HUD/mcl_achievements/textures/mcl_achievements_button.png differ diff --git a/mods/HUD/mcl_base_textures/textures/bubble.png b/mods/HUD/mcl_base_textures/textures/bubble.png index cbbb6705..f1d714fe 100644 Binary files a/mods/HUD/mcl_base_textures/textures/bubble.png and b/mods/HUD/mcl_base_textures/textures/bubble.png differ diff --git a/mods/HUD/mcl_base_textures/textures/crack_anylength.png b/mods/HUD/mcl_base_textures/textures/crack_anylength.png index 5f79448b..7fe8721d 100644 Binary files a/mods/HUD/mcl_base_textures/textures/crack_anylength.png and b/mods/HUD/mcl_base_textures/textures/crack_anylength.png differ diff --git a/mods/HUD/mcl_base_textures/textures/crosshair.png b/mods/HUD/mcl_base_textures/textures/crosshair.png index a3d7579b..8e94dcc6 100644 Binary files a/mods/HUD/mcl_base_textures/textures/crosshair.png and b/mods/HUD/mcl_base_textures/textures/crosshair.png differ diff --git a/mods/HUD/mcl_base_textures/textures/heart.png b/mods/HUD/mcl_base_textures/textures/heart.png index 7f1b66df..d0e30410 100644 Binary files a/mods/HUD/mcl_base_textures/textures/heart.png and b/mods/HUD/mcl_base_textures/textures/heart.png differ diff --git a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background.png b/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background.png deleted file mode 100644 index e5d693e7..00000000 Binary files a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background.png and /dev/null differ diff --git a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background9.png b/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background9.png deleted file mode 100644 index e5d693e7..00000000 Binary files a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_background9.png and /dev/null differ diff --git a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9.png b/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9.png deleted file mode 100644 index aab16013..00000000 Binary files a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9.png and /dev/null differ diff --git a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9_pressed.png b/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9_pressed.png deleted file mode 100644 index aeaea13a..00000000 Binary files a/mods/HUD/mcl_base_textures/textures/mcl_base_textures_button9_pressed.png and /dev/null differ diff --git a/mods/HUD/mcl_base_textures/textures/smoke_puff.png b/mods/HUD/mcl_base_textures/textures/smoke_puff.png deleted file mode 100644 index b1be8d4e..00000000 Binary files a/mods/HUD/mcl_base_textures/textures/smoke_puff.png and /dev/null differ diff --git a/mods/HUD/mcl_death_messages/init.lua b/mods/HUD/mcl_death_messages/init.lua index dfc5191a..b212e36d 100644 --- a/mods/HUD/mcl_death_messages/init.lua +++ b/mods/HUD/mcl_death_messages/init.lua @@ -32,9 +32,6 @@ local msgs = { ["murder"] = { N("@1 was killed by @2."), }, - ["murder_any"] = { - N("@1 was killed."), - }, ["mob_kill"] = { N("@1 was killed by a mob."), }, @@ -71,7 +68,7 @@ local mobkills = { ["mobs_mc:wolf"] = N("@1 was killed by a wolf."), ["mobs_mc:cat"] = N("@1 was killed by a cat."), ["mobs_mc:ocelot"] = N("@1 was killed by an ocelot."), - ["mobs_mc:enderdragon"] = N("@1 was killed by an ender dragon."), + ["mobs_mc:ender_dragon"] = N("@1 was killed by an ender dragon."), ["mobs_mc:wither"] = N("@1 was killed by a wither."), ["mobs_mc:enderman"] = N("@1 was killed by an enderman."), ["mobs_mc:endermite"] = N("@1 was killed by an endermite."), @@ -130,10 +127,7 @@ minetest.register_on_dieplayer(function(player, reason) return end local msg - if last_damages[name] then - -- custom message - msg = last_damages[name].message - elseif reason.type == "node_damage" then + if reason.type == "node_damage" then local pos = player:get_pos() -- Check multiple nodes because players occupy multiple nodes -- (we add one additional node because the check may fail if the player was @@ -174,12 +168,9 @@ minetest.register_on_dieplayer(function(player, reason) -- Punches local hitter = reason.object local hittername, hittertype, hittersubtype, shooter - -- Custom message - if last_damages[name] then - msg = last_damages[name].message -- Unknown hitter - elseif hitter == nil then - msg = dmsg("murder_any", name) + if hitter == nil then + msg = dmsg("murder_any") -- Player elseif hitter:is_player() then hittername = hitter:get_player_name() @@ -207,13 +198,12 @@ minetest.register_on_dieplayer(function(player, reason) if hitter:get_luaentity()._shooter then shooter = hitter:get_luaentity()._shooter end - local is_mob = false - local s_ent = shooter and shooter:get_luaentity() + local s_ent = shooter:get_luaentity() if shooter == nil then msg = dmsg("arrow", name) elseif shooter:is_player() then msg = dmsg("arrow_name", name, shooter:get_player_name()) - elseif s_ent and s_ent._cmi_is_mob then + elseif s_ent._cmi_is_mob then if s_ent.nametag ~= "" then msg = dmsg("arrow_name", name, shooter:get_player_name()) elseif s_ent.name == "mobs_mc:skeleton" then @@ -266,8 +256,8 @@ local start_damage_reset_countdown = function (player, sequence_number) end, player:get_player_name(), sequence_number) end --- Send a custom death mesage when damaging a player via set_hp or punch. --- To be called directly BEFORE damaging a player via set_hp or punch. +-- Send a custom death mesage when damaging a player via set_hp. +-- To be called directly BEFORE damaging a player via set_hp. -- The next time the player dies due to a set_hp, the message will be shown. -- The player must die via set_hp within 0.1 seconds, otherwise the message will be discarded. function mcl_death_messages.player_damage(player, message) diff --git a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.de.tr b/mods/HUD/mcl_death_messages/locale/mcl_death_messages.de.tr index b9ef6680..a37f556d 100644 --- a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.de.tr +++ b/mods/HUD/mcl_death_messages/locale/mcl_death_messages.de.tr @@ -10,7 +10,6 @@ @1 drowned.=@1 ertrank. @1 ran out of oxygen.=@1 ging die Luft aus. @1 was killed by @2.=@1 wurde von @2 getötet. -@1 was killed.=@1 wurde getötet. @1 was killed by a mob.=@1 wurde von einem Mob getötet. @1 was burned to death by a blaze's fireball.=@1 wurde von einem Feuerball einer Lohe zu Tode verbrannt. @1 was killed by a fireball from a blaze.=@1 wurde von einem Feuerball einer Lohe getötet. diff --git a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.es.tr b/mods/HUD/mcl_death_messages/locale/mcl_death_messages.es.tr deleted file mode 100644 index 6ed106db..00000000 --- a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.es.tr +++ /dev/null @@ -1,57 +0,0 @@ -# textdomain: mcl_death_messages -@1 was fatally hit by an arrow.=@1 fue golpeado muy duro por una flecha. -@1 has been killed by an arrow.=@1 ha sido asesinado por una flecha. -@1 was shot by an arrow from @2.=@1 fue disparado por una flecha de @2. -@1 was shot by an arrow from a skeleton.=@1 fue disparado por una flecha de un esqueleto. -@1 was shot by an arrow from a stray.=@1 fue disparado por una flecha de un extraviado. -@1 was shot by an arrow from an illusioner.=@1 fue disparado por una flecha de un ilusionista. -@1 was shot by an arrow.=@1 fue disparado por una flecha. -@1 forgot to breathe.=@1 olvidó respirar. -@1 drowned.=@1 ahogado. -@1 ran out of oxygen.=@1 se quedó sin oxígeno. -@1 was killed by @2.=@1 fue matado por @2. -@1 was killed by a mob.=@1 fue asesinado por un animal. -@1 was burned to death by a blaze's fireball.=@1 fue quemado hasta la muerte por la bola de fuego de un incendio. -@1 was killed by a fireball from a blaze.=@1 fue asesinado por una bola de fuego de un incendio. -@1 was burned by a fire charge.=@1 fue quemado por una carga de fuego. -A ghast scared @1 to death.=Se ha asustado @1 hasta morir. -@1 has been fireballed by a ghast.=@1 ha sido disparado por un fantasma. -@1 fell from a high cliff.=@1 cayó de un acantilado. -@1 took fatal fall damage.=@1 se hizo daño crítico por una caída. -@1 fell victim to gravity.=@1 cayó víctima de la gravedad. -@1 died.=@1 murió. -@1 was killed by a zombie.=@1 fue asesinado por un zombie. -@1 was killed by a baby zombie.=@1 fue asesinado por un bebé zombie. -@1 was killed by a blaze.=@1 fue asesinado por una llamarada. -@1 was killed by a slime.=@1 fue asesinado por un Slime. -@1 was killed by a witch.=@1 fue asesinado por una bruja. -@1 was killed by a magma cube.=@1 fue asesinado por un cubo de lava. -@1 was killed by a wolf.=@1 fue asesinado por un lobo. -@1 was killed by a cat.=@1 fue asesinado por un gato. -@1 was killed by an ocelot.=@1 fue asesinado por un ocelote. -@1 was killed by an ender dragon.=@1 fue asesinado por un dragón ender. -@1 was killed by a wither.=@1 fue asesinado por un Wither. -@1 was killed by an enderman.=@1 fue asesinado por un Enderman. -@1 was killed by an endermite.=@1 fue asesinado por un Endermite. -@1 was killed by a ghast.=@1 fue asesinado por un Ghast. -@1 was killed by an elder guardian.=@1 fue asesinado por un gran guardián. -@1 was killed by a guardian.=@1 fue asesinado por un guardián. -@1 was killed by an iron golem.=@1 fue asesinado por un golem de hierro. -@1 was killed by a polar_bear.=@1 fue asesinado por un oso polar. -@1 was killed by a killer bunny.=@1 fue asesinado por un conejo asesino. -@1 was killed by a shulker.=@1 fue asesinado por un shulker. -@1 was killed by a silverfish.=@1 fue asesinado por un pez plateado. -@1 was killed by a skeleton.=@1 fue asesinado por un esqueleto. -@1 was killed by a stray.=@1 fue asesinado por un extraviado. -@1 was killed by a slime.=@1 fue asesinado por un limo. -@1 was killed by a spider.=@1 fue asesinado por una araña. -@1 was killed by a cave spider.=@1 fue asesinado por una araña de cueva. -@1 was killed by a vex.=@1 fue asesinado por un vex. -@1 was killed by an evoker.=@1 fue asesinado por un mago. -@1 was killed by an illusioner.=@1 fue asesinado por un ilusionista. -@1 was killed by a vindicator.=@1 fue asesinado por un vindicador. -@1 was killed by a zombie villager.=@1 fue asesinado por un aldeano zombie. -@1 was killed by a husk.=@1 fue asesinado por un husk. -@1 was killed by a baby husk.=@1 fue asesinado por un bebé husk. -@1 was killed by a zombie pigman.=@1 fue asesinado por un cerdo zombie. -@1 was killed by a baby zombie pigman.=@1 fue asesinado por un bebé cerdo zombie. diff --git a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.fr.tr b/mods/HUD/mcl_death_messages/locale/mcl_death_messages.fr.tr deleted file mode 100644 index 6d0a5115..00000000 --- a/mods/HUD/mcl_death_messages/locale/mcl_death_messages.fr.tr +++ /dev/null @@ -1,58 +0,0 @@ -# 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 diff --git a/mods/HUD/mcl_death_messages/locale/template.txt b/mods/HUD/mcl_death_messages/locale/template.txt index db074f75..fc83e296 100644 --- a/mods/HUD/mcl_death_messages/locale/template.txt +++ b/mods/HUD/mcl_death_messages/locale/template.txt @@ -10,7 +10,6 @@ @1 drowned.= @1 ran out of oxygen.= @1 was killed by @2.= -@1 was killed.= @1 was killed by a mob.= @1 was burned to death by a blaze's fireball.= @1 was killed by a fireball from a blaze.= diff --git a/mods/HUD/mcl_formspec/init.lua b/mods/HUD/mcl_formspec/init.lua deleted file mode 100644 index 7013fc0e..00000000 --- a/mods/HUD/mcl_formspec/init.lua +++ /dev/null @@ -1,11 +0,0 @@ -mcl_formspec = {} - -function mcl_formspec.get_itemslot_bg(x, y, w, h) - local out = "" - for i = 0, w - 1, 1 do - for j = 0, h - 1, 1 do - out = out .."image["..x+i..","..y+j..";1,1;mcl_formspec_itemslot.png]" - end - end - return out -end diff --git a/mods/HUD/mcl_formspec/mod.conf b/mods/HUD/mcl_formspec/mod.conf deleted file mode 100644 index 9d614403..00000000 --- a/mods/HUD/mcl_formspec/mod.conf +++ /dev/null @@ -1 +0,0 @@ -description = Helper mod to simplify creation of formspecs a little bit diff --git a/mods/HUD/mcl_formspec/textures/mcl_formspec_itemslot.png b/mods/HUD/mcl_formspec/textures/mcl_formspec_itemslot.png deleted file mode 100644 index 42f265e7..00000000 Binary files a/mods/HUD/mcl_formspec/textures/mcl_formspec_itemslot.png and /dev/null differ diff --git a/mods/HUD/mcl_formspec_prepend/init.lua b/mods/HUD/mcl_formspec_prepend/init.lua index 2230a983..0eb97de6 100644 --- a/mods/HUD/mcl_formspec_prepend/init.lua +++ b/mods/HUD/mcl_formspec_prepend/init.lua @@ -1,3 +1,3 @@ minetest.register_on_joinplayer(function(player) - player:set_formspec_prepend(mcl_vars.gui_nonbg .. mcl_vars.gui_bg_color .. mcl_vars.gui_bg_img) + player:set_formspec_prepend(mcl_vars.gui_nonbg) end) diff --git a/mods/HUD/mcl_hbarmor/README.md b/mods/HUD/mcl_hbarmor/README.md deleted file mode 100644 index 0eccd691..00000000 --- a/mods/HUD/mcl_hbarmor/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# MineClone 2 HUD bar for `mcl_armor` [`mcl_hbarmor`] - -## Description -This mod adds a simple HUD bar which displays the player's armor points. -The players has 0-20 armor points. - -The armor bar is hidden if the player wears no armor. - -## Licensing -This mod is entirly free softare. - -### Source code -License: MIT License (see below) - -### Textures - -See MineClone 2 license. - -### MIT License -Everything else is under the MIT License: -© Copyright BlockMen (2013-2014) - -This program is free software. It comes without any warranty, to -the extent permitted by applicable law. You can redistribute it -and/or modify it under the terms of the MIT License. -See for more details. diff --git a/mods/HUD/mcl_hbarmor/locale/hbarmor.de.tr b/mods/HUD/mcl_hbarmor/locale/hbarmor.de.tr deleted file mode 100644 index e7aa7d78..00000000 --- a/mods/HUD/mcl_hbarmor/locale/hbarmor.de.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:hbarmor -Armor=Panzerung diff --git a/mods/HUD/mcl_hbarmor/locale/hbarmor.es.tr b/mods/HUD/mcl_hbarmor/locale/hbarmor.es.tr deleted file mode 100644 index f9529b48..00000000 --- a/mods/HUD/mcl_hbarmor/locale/hbarmor.es.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:hbarmor -Armor=Armadura diff --git a/mods/HUD/mcl_hbarmor/locale/hbarmor.fr.tr b/mods/HUD/mcl_hbarmor/locale/hbarmor.fr.tr deleted file mode 100644 index c5addfa5..00000000 --- a/mods/HUD/mcl_hbarmor/locale/hbarmor.fr.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:hbarmor -Armor=Armure diff --git a/mods/HUD/mcl_hbarmor/locale/hbarmor.it.tr b/mods/HUD/mcl_hbarmor/locale/hbarmor.it.tr deleted file mode 100644 index f02b5c43..00000000 --- a/mods/HUD/mcl_hbarmor/locale/hbarmor.it.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:hbarmor -Armor=Armatura diff --git a/mods/HUD/mcl_hbarmor/locale/template.txt b/mods/HUD/mcl_hbarmor/locale/template.txt deleted file mode 100644 index 80e7a09e..00000000 --- a/mods/HUD/mcl_hbarmor/locale/template.txt +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:hbarmor -Armor= diff --git a/mods/HUD/mcl_hbarmor/mod.conf b/mods/HUD/mcl_hbarmor/mod.conf deleted file mode 100644 index de5a2f20..00000000 --- a/mods/HUD/mcl_hbarmor/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -name = mcl_hbarmor -depends = hudbars, mcl_armor diff --git a/mods/HUD/mcl_hbarmor/settingtypes.txt b/mods/HUD/mcl_hbarmor/settingtypes.txt deleted file mode 100644 index cfd875df..00000000 --- a/mods/HUD/mcl_hbarmor/settingtypes.txt +++ /dev/null @@ -1,3 +0,0 @@ -#Time difference in seconds between updates to the armor HUD bar. -#Increase this number for slow servers. -hbarmor_tick (Armor HUD bar update frequency) float 0.1 0.0 4.0 diff --git a/mods/HUD/mcl_hbarmor/textures/hbarmor_bgicon.png b/mods/HUD/mcl_hbarmor/textures/hbarmor_bgicon.png deleted file mode 100644 index 54a22d07..00000000 Binary files a/mods/HUD/mcl_hbarmor/textures/hbarmor_bgicon.png and /dev/null differ diff --git a/mods/HUD/mcl_hbarmor/textures/hbarmor_icon.png b/mods/HUD/mcl_hbarmor/textures/hbarmor_icon.png deleted file mode 100644 index 1efe919c..00000000 Binary files a/mods/HUD/mcl_hbarmor/textures/hbarmor_icon.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/creative.lua b/mods/HUD/mcl_inventory/creative.lua index 0b5f52b6..bcca4772 100644 --- a/mods/HUD/mcl_inventory/creative.lua +++ b/mods/HUD/mcl_inventory/creative.lua @@ -7,7 +7,7 @@ local players = {} -- Containing all the items for each Creative Mode tab local inventory_lists = {} -local show_armor = minetest.get_modpath("mcl_armor") ~= nil +local show_armor = minetest.get_modpath("3d_armor") ~= nil local mod_player = minetest.get_modpath("mcl_player") ~= nil -- TODO: Brewing is disabled. Add brewing (uncommented code) when it is implemented properly @@ -209,13 +209,13 @@ hoch["rail"] = "" hoch["misc"] = "" hoch["nix"] = "" hoch["default"] = "" -hoch["food"] = "_down" -hoch["tools"] = "_down" -hoch["combat"] = "_down" -hoch["mobs"] = "_down" ---hoch["brew"] = "_down" -- TODO: add brew -hoch["matr"] = "_down" -hoch["inv"] = "_down" +hoch["food"] = "^[transformfy" +hoch["tools"] = "^[transformfy" +hoch["combat"] = "^[transformfy" +hoch["mobs"] = "^[transformfy" +--hoch["brew"] = "^[transformfy" -- TODO: add brew +hoch["matr"] = "^[transformfy" +hoch["inv"] = "^[transformfy" filtername = {} filtername["blocks"] = S("Building Blocks") @@ -269,6 +269,10 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz end end local pagemax = math.max(1, math.floor((inv_size-1) / (9*5) + 1)) + local slider_height + local arrow_height = 0.85 + slider_height = (6.2-arrow_height*2) / pagemax + local slider_pos = (slider_height*(pagenum-1)*0.8713125)+2.23 local name = "nix" local formspec = "" local main_list @@ -325,16 +329,11 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz -- Survival inventory slots main_list = "list[current_player;main;0,3.75;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,3.75,9,3).. -- armor "list[detached:"..playername.."_armor;armor;2.5,1.3;1,1;1]".. "list[detached:"..playername.."_armor;armor;2.5,2.75;1,1;2]".. "list[detached:"..playername.."_armor;armor;5.5,1.3;1,1;3]".. "list[detached:"..playername.."_armor;armor;5.5,2.75;1,1;4]".. - mcl_formspec.get_itemslot_bg(2.5,1.3,1,1).. - mcl_formspec.get_itemslot_bg(2.5,2.75,1,1).. - mcl_formspec.get_itemslot_bg(5.5,1.3,1,1).. - mcl_formspec.get_itemslot_bg(5.5,2.75,1,1).. armor_slot_imgs.. -- player preview player_preview.. @@ -349,7 +348,6 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz "tooltip[__mcl_skins;"..F(S("Select player skin")).."]".. -- achievements button "image_button[9,4;1,1;mcl_achievements_button.png;__mcl_achievements;]".. - --"style_type[image_button;border=;bgimg=;bgimg_pressed=]".. "tooltip[__mcl_achievements;"..F(S("Achievements")).."]" -- For shortcuts @@ -358,12 +356,12 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz "listring[current_player;main]" else -- Creative inventory slots - main_list = "list[detached:creative_"..playername..";main;0,1.75;9,5;"..tostring(start_i).."]".. - mcl_formspec.get_itemslot_bg(0,1.75,9,5).. - -- Page buttons - "label[9.0,5.5;"..F(S("@1/@2", pagenum, pagemax)).."]".. - "image_button[9.0,6.0;0.7,0.7;crafting_creative_prev.png;creative_prev;]".. - "image_button[9.5,6.0;0.7,0.7;crafting_creative_next.png;creative_next;]" + main_list = "list[detached:creative_"..playername..";main;0,1.75;9,5;"..tostring(start_i).."]" .. + -- ... and scroll bar + "image[9.033,2.230;0.78,4.525;mcl_inventory_slider_bg.png]".. + "image[9.033," .. tostring(slider_pos) .. ";0.78,"..tostring(slider_height) .. ";mcl_inventory_slider.png]".. + "image_button[9.015,1.77;0.85,0.6;crafting_creative_up.png;creative_prev;]".. + "image_button[9.015,6.15;0.85,0.6;crafting_creative_down.png;creative_next;]" end local tab_icon = { @@ -384,14 +382,13 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz local function tab(current_tab, this_tab) local bg_img if current_tab == this_tab then - bg_img = "crafting_creative_active"..hoch[this_tab]..".png" + bg_img = "crafting_creative_active.png" else - bg_img = "crafting_creative_inactive"..hoch[this_tab]..".png" + bg_img = "crafting_creative_inactive.png" end return - "style["..this_tab..";border=false;bgimg=;bgimg_pressed=]".. "item_image_button[" .. boffset[this_tab] ..";1,1;"..tab_icon[this_tab]..";"..this_tab..";]".. - "image[" .. offset[this_tab] .. ";1.5,1.44;" .. bg_img .. "]" .. + "image[" .. offset[this_tab] .. ";1.5,1.44;" .. bg_img .. hoch[this_tab].. "]" .. "image[" .. boffset[this_tab] .. ";1,1;crafting_creative_marker.png]" end local caption = "" @@ -400,8 +397,7 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz end formspec = "size[10,9.3]".. - "no_prepend[]".. - mcl_vars.gui_nonbg..mcl_vars.gui_bg_color.. + mcl_vars.inventory_header.. "background[-0.19,-0.25;10.5,9.87;"..inv_bg.."]".. "label[-5,-5;"..name.."]".. tab(name, "blocks") .. @@ -418,7 +414,6 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz "tooltip[nix;"..F(filtername["nix"]).."]".. caption.. "list[current_player;main;0,7;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7,9,1).. main_list.. tab(name, "food") .. "tooltip[food;"..F(filtername["food"]).."]".. @@ -436,7 +431,6 @@ mcl_inventory.set_creative_formspec = function(player, start_i, pagenum, inv_siz tab(name, "inv") .. "tooltip[inv;"..F(filtername["inv"]).."]".. "list[detached:trash;main;9,7;1,1;]".. - mcl_formspec.get_itemslot_bg(9,7,1,1).. "image[9,7;1,1;crafting_creative_trash.png]".. listrings diff --git a/mods/HUD/mcl_inventory/depends.txt b/mods/HUD/mcl_inventory/depends.txt index fb454b7d..46d93c42 100644 --- a/mods/HUD/mcl_inventory/depends.txt +++ b/mods/HUD/mcl_inventory/depends.txt @@ -1,5 +1,4 @@ mcl_init -mcl_formspec mcl_player? _mcl_autogroup? -mcl_armor? +3d_armor? diff --git a/mods/HUD/mcl_inventory/init.lua b/mods/HUD/mcl_inventory/init.lua index e6a1f146..03227e85 100644 --- a/mods/HUD/mcl_inventory/init.lua +++ b/mods/HUD/mcl_inventory/init.lua @@ -3,7 +3,7 @@ local F = minetest.formspec_escape mcl_inventory = {} -local show_armor = minetest.get_modpath("mcl_armor") ~= nil +local show_armor = minetest.get_modpath("3d_armor") ~= nil local mod_player = minetest.get_modpath("mcl_player") ~= nil local mod_craftguide = minetest.get_modpath("mcl_craftguide") ~= nil @@ -90,16 +90,13 @@ local function set_inventory(player, armor_change_only) local form = "size[9,8.75]".. "background[-0.19,-0.25;9.41,9.49;crafting_formspec_bg.png]".. + mcl_vars.inventory_header.. player_preview.. --armor "list[detached:"..player_name.."_armor;armor;0,0;1,1;1]".. "list[detached:"..player_name.."_armor;armor;0,1;1,1;2]".. "list[detached:"..player_name.."_armor;armor;0,2;1,1;3]".. "list[detached:"..player_name.."_armor;armor;0,3;1,1;4]".. - mcl_formspec.get_itemslot_bg(0,0,1,1).. - mcl_formspec.get_itemslot_bg(0,1,1,1).. - mcl_formspec.get_itemslot_bg(0,2,1,1).. - mcl_formspec.get_itemslot_bg(0,3,1,1).. armor_slot_imgs.. -- craft and inventory "label[0,4;"..F(minetest.colorize("#313131", S("Inventory"))).."]".. @@ -108,10 +105,6 @@ local function set_inventory(player, armor_change_only) "label[4,0.5;"..F(minetest.colorize("#313131", S("Crafting"))).."]".. "list[current_player;craft;4,1;2,2]".. "list[current_player;craftpreview;7,1.5;1,1;]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. - mcl_formspec.get_itemslot_bg(4,1,2,2).. - mcl_formspec.get_itemslot_bg(7,1.5,1,1).. -- crafting guide button "image_button[4.5,3;1,1;craftguide_book.png;__mcl_craftguide;]".. "tooltip[__mcl_craftguide;"..F(S("Recipe book")).."]".. diff --git a/mods/HUD/mcl_inventory/locale/mcl_inventory.de.tr b/mods/HUD/mcl_inventory/locale/mcl_inventory.de.tr index a2aa355d..2917e162 100644 --- a/mods/HUD/mcl_inventory/locale/mcl_inventory.de.tr +++ b/mods/HUD/mcl_inventory/locale/mcl_inventory.de.tr @@ -17,4 +17,3 @@ Materials=Materialien Survival Inventory=Überlebensinventar Crafting=Fertigen Inventory=Inventar -@1/@2=@1/@2 diff --git a/mods/HUD/mcl_inventory/locale/mcl_inventory.es.tr b/mods/HUD/mcl_inventory/locale/mcl_inventory.es.tr deleted file mode 100644 index b8160256..00000000 --- a/mods/HUD/mcl_inventory/locale/mcl_inventory.es.tr +++ /dev/null @@ -1,19 +0,0 @@ -# textdomain: mcl_inventory -Recipe book=Libro de recetas -Help=Ayuda -Select player skin=Seleccionar skin -Achievements=Logros -Building Blocks=Bloques de construcción -Decoration Blocks=Bloques de decoración -Redstone=Redstone -Transportation=Transporte -Miscellaneous=Variado -Search Items=Buscar artículos -Foodstuffs=Productos alimenticios -Tools=Herramientas -Combat=Combate -Mobs=Mobs -Materials=Materiales -Survival Inventory=Inventario de supervivencia -Crafting=Elaboración -Inventory=Inventario diff --git a/mods/HUD/mcl_inventory/locale/mcl_inventory.fr.tr b/mods/HUD/mcl_inventory/locale/mcl_inventory.fr.tr deleted file mode 100644 index e15a422a..00000000 --- a/mods/HUD/mcl_inventory/locale/mcl_inventory.fr.tr +++ /dev/null @@ -1,20 +0,0 @@ -# textdomain: mcl_inventory -Recipe book=Livre de recettes -Help=Aide -Select player skin=Sélectionnez l'apparence du joueur -Achievements=Accomplissements -Building Blocks=Blocs de Construction -Decoration Blocks=Blocs de Décoration -Redstone=Redstone -Transportation=Transport -Miscellaneous=Divers -Search Items=Rechercher des objets -Foodstuffs=Denrées alimentaires -Tools=Outils -Combat=Combat -Mobs=Mobs -Materials=Matériaux -Survival Inventory=Inventaire de survie -Crafting=Artisanat -Inventory=Inventaire -@1/@2=@1/@2 diff --git a/mods/HUD/mcl_inventory/locale/template.txt b/mods/HUD/mcl_inventory/locale/template.txt index 649f3958..e0b729e0 100644 --- a/mods/HUD/mcl_inventory/locale/template.txt +++ b/mods/HUD/mcl_inventory/locale/template.txt @@ -17,4 +17,3 @@ Materials= Survival Inventory= Crafting= Inventory= -@1/@2= diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_active.png b/mods/HUD/mcl_inventory/textures/crafting_creative_active.png index a1dcc713..230bde3d 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_active.png and b/mods/HUD/mcl_inventory/textures/crafting_creative_active.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_active_down.png b/mods/HUD/mcl_inventory/textures/crafting_creative_active_down.png deleted file mode 100644 index f24d0472..00000000 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_active_down.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_down.png b/mods/HUD/mcl_inventory/textures/crafting_creative_down.png new file mode 100644 index 00000000..4f100aae Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/crafting_creative_down.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_inactive.png b/mods/HUD/mcl_inventory/textures/crafting_creative_inactive.png index cf2ebe83..94cb4369 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_inactive.png and b/mods/HUD/mcl_inventory/textures/crafting_creative_inactive.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_inactive_down.png b/mods/HUD/mcl_inventory/textures/crafting_creative_inactive_down.png deleted file mode 100644 index c117b5dc..00000000 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_inactive_down.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_next.png b/mods/HUD/mcl_inventory/textures/crafting_creative_next.png deleted file mode 100644 index 9a0a3fd6..00000000 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_next.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_prev.png b/mods/HUD/mcl_inventory/textures/crafting_creative_prev.png deleted file mode 100644 index 5deba802..00000000 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_prev.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_trash.png b/mods/HUD/mcl_inventory/textures/crafting_creative_trash.png index ec567d74..d2bdfb5c 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_creative_trash.png and b/mods/HUD/mcl_inventory/textures/crafting_creative_trash.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_creative_up.png b/mods/HUD/mcl_inventory/textures/crafting_creative_up.png new file mode 100644 index 00000000..ec5b2cac Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/crafting_creative_up.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_formspec_bg.png b/mods/HUD/mcl_inventory/textures/crafting_formspec_bg.png index a6a02de2..8e655023 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_formspec_bg.png and b/mods/HUD/mcl_inventory/textures/crafting_formspec_bg.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_formspec_bg2.png b/mods/HUD/mcl_inventory/textures/crafting_formspec_bg2.png new file mode 100644 index 00000000..fc70195b Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/crafting_formspec_bg2.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_inventory_9_slots.png b/mods/HUD/mcl_inventory/textures/crafting_inventory_9_slots.png new file mode 100644 index 00000000..145a1918 Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/crafting_inventory_9_slots.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_inventory_creative.png b/mods/HUD/mcl_inventory/textures/crafting_inventory_creative.png index 3e575d66..3ef4d3a7 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_inventory_creative.png and b/mods/HUD/mcl_inventory/textures/crafting_inventory_creative.png differ diff --git a/mods/HUD/mcl_inventory/textures/crafting_inventory_creative_survival.png b/mods/HUD/mcl_inventory/textures/crafting_inventory_creative_survival.png index fe525814..e95ee6c8 100644 Binary files a/mods/HUD/mcl_inventory/textures/crafting_inventory_creative_survival.png and b/mods/HUD/mcl_inventory/textures/crafting_inventory_creative_survival.png differ diff --git a/mods/HUD/mcl_inventory/textures/mcl_inventory_button9.png b/mods/HUD/mcl_inventory/textures/mcl_inventory_button9.png deleted file mode 100644 index aab16013..00000000 Binary files a/mods/HUD/mcl_inventory/textures/mcl_inventory_button9.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/mcl_inventory_button9_pressed.png b/mods/HUD/mcl_inventory/textures/mcl_inventory_button9_pressed.png deleted file mode 100644 index aeaea13a..00000000 Binary files a/mods/HUD/mcl_inventory/textures/mcl_inventory_button9_pressed.png and /dev/null differ diff --git a/mods/HUD/mcl_inventory/textures/mcl_inventory_hotbar.png b/mods/HUD/mcl_inventory/textures/mcl_inventory_hotbar.png index 058f5da3..d3dd364d 100644 Binary files a/mods/HUD/mcl_inventory/textures/mcl_inventory_hotbar.png and b/mods/HUD/mcl_inventory/textures/mcl_inventory_hotbar.png differ diff --git a/mods/HUD/mcl_inventory/textures/mcl_inventory_slider.png b/mods/HUD/mcl_inventory/textures/mcl_inventory_slider.png new file mode 100644 index 00000000..9808b373 Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/mcl_inventory_slider.png differ diff --git a/mods/HUD/mcl_inventory/textures/mcl_inventory_slider_bg.png b/mods/HUD/mcl_inventory/textures/mcl_inventory_slider_bg.png new file mode 100644 index 00000000..32e6c8ea Binary files /dev/null and b/mods/HUD/mcl_inventory/textures/mcl_inventory_slider_bg.png differ diff --git a/mods/HUD/show_wielded_item/init.lua b/mods/HUD/show_wielded_item/init.lua index 46a7e0c0..addd92e0 100644 --- a/mods/HUD/show_wielded_item/init.lua +++ b/mods/HUD/show_wielded_item/init.lua @@ -42,7 +42,6 @@ local function set_hud(player) alignment = {x=0, y=0}, number = 0xFFFFFF , text = "", - z_index = 100, }) end diff --git a/mods/ITEMS/REDSTONE/mcl_comparators/init.lua b/mods/ITEMS/REDSTONE/mcl_comparators/init.lua index 48bd18bf..f85586b5 100644 --- a/mods/ITEMS/REDSTONE/mcl_comparators/init.lua +++ b/mods/ITEMS/REDSTONE/mcl_comparators/init.lua @@ -287,18 +287,16 @@ for _, state in pairs{mesecon.state.on, mesecon.state.off} do nodedef.groups = table.copy(nodedef.groups) nodedef.groups.not_in_creative_inventory = 1 local extra_desc = {} - if mode == "sub" or state == mesecon.state.on then + if mode == "sub" then + table.insert(extra_desc, "Subtract") nodedef.inventory_image = nil end - local desc = nodedef.description - if mode ~= "sub" and state == mesecon.state.on then - desc = S("Redstone Comparator (Powered)") - elseif mode == "sub" and state ~= mesecon.state.on then - desc = S("Redstone Comparator (Subtract)") - elseif mode == "sub" and state == mesecon.state.on then - desc = S("Redstone Comparator (Subtract, Powered)") + if state == mesecon.state.on then + table.insert(extra_desc, "Powered") + nodedef.inventory_image = nil end - nodedef.description = desc + nodedef.description = nodedef.description.. + " ("..table.concat(extra_desc, ", ")..")" end minetest.register_node(nodename, nodedef) diff --git a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.de.tr b/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.de.tr index d9f6eb46..dbbd51a2 100644 --- a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.de.tr +++ b/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.de.tr @@ -7,6 +7,3 @@ The side inputs are only powered by normal redstone power. The redstone comparat Transmission mode:@nThe front torch is unlit and lowered. The output is powered if, and only if the main input is powered. The two side inputs are ignored.=Übertragungsmodus:@nDie vordere Fackel ist eingefahren und leuchtet nicht auf. Die Ausgabe gibt ein Signal, wenn, nur nur wenn der Haupteingang bestromt wird. Die zwei Seiteneingänge werden ignoriert. Subtraction mode:@nThe front torch is lit. The output is powered if, and only if the main input is powered and none of the side inputs is powered.=Subtraktionsmodus:@nDie vordere Fackel leuchtet auf. Die Ausgabe gibt ein Signal wenn, nur nur wenn der Haupteingang versorgt wird und keiner der Seiteneingänge bestromt ist. Redstone Comparator=Redstonekomparator -Redstone Comparator (Subtract)=Redstonekomparator (subtrahieren) -Redstone Comparator (Powered)=Redstonekomparator (bestromt) -Redstone Comparator (Subtract, Powered)=Redstonekomparator (subtrahieren, bestromt) diff --git a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.es.tr b/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.es.tr deleted file mode 100644 index 581c0ab1..00000000 --- a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.es.tr +++ /dev/null @@ -1,12 +0,0 @@ -# textdomain: mcl_comparators -Redstone comparators are multi-purpose redstone components.=Los comparadores de Redstone son componentes multipropósito de redstone. -They can transmit a redstone signal, detect whether a block contains any items and compare multiple signals.=Pueden transmitir una señal de redstone, detectar si un bloque contiene algún elemento y comparar múltiples señales. -A redstone comparator has 1 main input, 2 side inputs and 1 output. The output is in arrow direction, the main input is in the opposite direction. The other 2 sides are the side inputs.=Un comparador redstone tiene 1 entrada principal, 2 entradas laterales y 1 salida. La salida está en la dirección de la flecha, la entrada principal está en la dirección opuesta. Los otros 2 lados son las entradas laterales. -The main input can powered in 2 ways: First, it can be powered directly by redstone power like any other component. Second, it is powered if, and only if a container (like a chest) is placed in front of it and the container contains at least one item.=La entrada principal puede alimentarse de 2 maneras: en primer lugar, puede alimentarse directamente mediante redstone como cualquier otro componente. En segundo lugar, se alimenta si, y solo si se coloca un contenedor (como un cofre) frente a él y el contenedor contiene al menos un elemento. -The side inputs are only powered by normal redstone power. The redstone comparator can operate in two modes: Transmission mode and subtraction mode. It starts in transmission mode and the mode can be changed by using the block.=Las entradas laterales solo están alimentadas por la alimentación normal de redstone. El comparador de redstone puede funcionar en dos modos: modo de transmisión y modo de resta. Comienza en modo de transmisión y el modo se puede cambiar usando el bloque. -Transmission mode:@nThe front torch is unlit and lowered. The output is powered if, and only if the main input is powered. The two side inputs are ignored.=Modo de transmisión: @nLa antorcha delantera está apagada y baja. La salida se alimenta solo si se alimenta la entrada principal. Las dos entradas laterales se ignoran. -Subtraction mode:@nThe front torch is lit. The output is powered if, and only if the main input is powered and none of the side inputs is powered.=Modo de resta: @nLa antorcha delantera está encendida. La salida se alimenta si, y solo si la entrada principal está alimentada y ninguna de las entradas laterales está alimentada. -Redstone Comparator=Comparador de redstone -Redstone Comparator (Subtract)=Comparador de redstone (Negativo) -Redstone Comparator (Powered)=Comparador de redstone (Motorizado) -Redstone Comparator (Subtract, Powered)=Redstonekomparator (Negativo, Motorizado) diff --git a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.fr.tr b/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.fr.tr deleted file mode 100644 index 38a03d31..00000000 --- a/mods/ITEMS/REDSTONE/mcl_comparators/locale/mcl_comparators.fr.tr +++ /dev/null @@ -1,12 +0,0 @@ -# textdomain: mcl_comparators -Redstone comparators are multi-purpose redstone components.=Les comparateurs Redstone sont des composants Redstone polyvalents. -They can transmit a redstone signal, detect whether a block contains any items and compare multiple signals.=Ils peuvent transmettre un signal redstone, détecter si un bloc contient des éléments et comparer plusieurs signaux. -A redstone comparator has 1 main input, 2 side inputs and 1 output. The output is in arrow direction, the main input is in the opposite direction. The other 2 sides are the side inputs.=Un comparateur redstone a 1 entrée principale, 2 entrées latérales et 1 sortie. La sortie est dans le sens de la flèche, l'entrée principale est dans le sens opposé. Les 2 autres côtés sont les entrées latérales. -The main input can powered in 2 ways: First, it can be powered directly by redstone power like any other component. Second, it is powered if, and only if a container (like a chest) is placed in front of it and the container contains at least one item.=L'entrée principale peut être alimentée de 2 manières: Premièrement, elle peut être alimentée directement par une alimentation redstone comme n'importe quel autre composant. Deuxièmement, il est alimenté si et seulement si un conteneur (comme un coffre) est placé devant lui et que le conteneur contient au moins un article. -The side inputs are only powered by normal redstone power. The redstone comparator can operate in two modes: Transmission mode and subtraction mode. It starts in transmission mode and the mode can be changed by using the block.=Les entrées latérales sont uniquement alimentées par une alimentation Redstone normale. Le comparateur redstone peut fonctionner en deux modes: le mode de transmission et le mode de soustraction. Il démarre en mode transmission et le mode peut être changé en utilisant le bloc. -Transmission mode:@nThe front torch is unlit and lowered. The output is powered if, and only if the main input is powered. The two side inputs are ignored.=Mode de transmission: @nLa torche avant est éteinte et abaissée. La sortie est alimentée si et seulement si l'entrée principale est alimentée. Les deux entrées latérales sont ignorées. -Subtraction mode:@nThe front torch is lit. The output is powered if, and only if the main input is powered and none of the side inputs is powered.=Mode de soustraction: @nLa torche avant est allumée. La sortie est alimentée si et seulement si l'entrée principale est alimentée et qu'aucune des entrées latérales n'est alimentée. -Redstone Comparator=Comparateur Redstone -Redstone Comparator (Subtract)=Comparateur Redstone (Soustraction) -Redstone Comparator (Powered)=Comparateur Redstone (Alimenté) -Redstone Comparator (Subtract, Powered)=Comparateur Redstone (Soustraction, Alimenté) diff --git a/mods/ITEMS/REDSTONE/mcl_comparators/locale/template.txt b/mods/ITEMS/REDSTONE/mcl_comparators/locale/template.txt index d22d0176..0f7cb9ab 100644 --- a/mods/ITEMS/REDSTONE/mcl_comparators/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mcl_comparators/locale/template.txt @@ -7,6 +7,3 @@ The side inputs are only powered by normal redstone power. The redstone comparat Transmission mode:@nThe front torch is unlit and lowered. The output is powered if, and only if the main input is powered. The two side inputs are ignored.= Subtraction mode:@nThe front torch is lit. The output is powered if, and only if the main input is powered and none of the side inputs is powered.= Redstone Comparator= -Redstone Comparator (Subtract)= -Redstone Comparator (Powered)= -Redstone Comparator (Subtract, Powered)= diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/depends.txt b/mods/ITEMS/REDSTONE/mcl_dispensers/depends.txt index 7b51f67c..c17d2db0 100644 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/depends.txt +++ b/mods/ITEMS/REDSTONE/mcl_dispensers/depends.txt @@ -1,12 +1,11 @@ mcl_init -mcl_formspec mesecons mcl_sounds mcl_tnt mcl_worlds mcl_core mcl_nether -mcl_armor_stand -mcl_armor +3d_armor_stand +3d_armor doc? screwdriver? diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/init.lua b/mods/ITEMS/REDSTONE/mcl_dispensers/init.lua index b6d0d2ef..30d70406 100644 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/init.lua +++ b/mods/ITEMS/REDSTONE/mcl_dispensers/init.lua @@ -13,14 +13,13 @@ local S = minetest.get_translator("mcl_dispensers") local setup_dispenser = function(pos) -- Set formspec and inventory local form = "size[9,8.75]".. + "background[-0.19,-0.25;9.41,9.49;crafting_inventory_9_slots.png]".. + mcl_vars.inventory_header.. "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "label[3,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Dispenser"))).."]".. "list[current_name;main;3,0.5;3,3;]".. - mcl_formspec.get_itemslot_bg(3,0.5,3,3).. "listring[current_name;main]".. "listring[current_player;main]" local meta = minetest.get_meta(pos) @@ -94,7 +93,7 @@ local dispenserdef = { end meta:from_table(meta2:to_table()) end, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, mesecons = {effector = { -- Dispense random item when triggered @@ -157,9 +156,9 @@ local dispenserdef = { local dropnode_below = minetest.get_node(droppos_below) -- Put armor on player or armor stand local standpos - if dropnode.name == "mcl_armor_stand:armor_stand" then + if dropnode.name == "3d_armor_stand:armor_stand" then standpos = droppos - elseif dropnode_below.name == "mcl_armor_stand:armor_stand" then + elseif dropnode_below.name == "3d_armor_stand:armor_stand" then standpos = droppos_below end if standpos then @@ -167,10 +166,9 @@ local dispenserdef = { local dropinv = dropmeta:get_inventory() if dropinv:room_for_item(armor_type, dropitem) then dropinv:add_item(armor_type, dropitem) - minetest.registered_nodes["mcl_armor_stand:armor_stand"].on_metadata_inventory_put(standpos) + minetest.registered_nodes["3d_armor_stand:armor_stand"].on_metadata_inventory_put(standpos) stack:take_item() inv:set_stack("main", stack_id, stack) - armor:play_equip_sound(dropitem, nil, standpos) armor_dispensed = true end else @@ -204,7 +202,6 @@ local dispenserdef = { pinv:set_stack("armor", armor_slot, dropitem) armor:set_player_armor(player) armor:update_inventory(player) - armor:play_equip_sound(dropitem, player) stack:take_item() inv:set_stack("main", stack_id, stack) @@ -284,7 +281,6 @@ local dispenserdef = { local horizontal_def = table.copy(dispenserdef) horizontal_def.description = S("Dispenser") -horizontal_def._tt_help = S("9 inventory slots").."\n"..S("Launches item when powered by redstone power") horizontal_def._doc_items_longdesc = S("A dispenser is a block which acts as a redstone component which, when powered with redstone power, dispenses an item. It has a container with 9 inventory slots.") horizontal_def._doc_items_usagehelp = S("Place the dispenser in one of 6 possible directions. The “hole” is where items will fly out of the dispenser. Use the dispenser to access its inventory. Insert the items you wish to dispense. Supply the dispenser with redstone energy once to dispense a random item.").."\n\n".. @@ -361,10 +357,9 @@ if minetest.get_modpath("doc") then doc.add_entry_alias("nodes", "mcl_dispensers:dispenser", "nodes", "mcl_dispensers:dispenser_up") end --- Legacy minetest.register_lbm({ - label = "Update dispenser formspecs (0.60.0)", - name = "mcl_dispensers:update_formspecs_0_60_0", + label = "Update dispenser formspecs (0.51.0)", + name = "mcl_dispensers:update_formspecs_0_51_0", nodenames = { "mcl_dispensers:dispenser", "mcl_dispensers:dispenser_down", "mcl_dispensers:dispenser_up" }, action = function(pos, node) setup_dispenser(pos) diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.de.tr b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.de.tr index 129350e5..1fd2959d 100644 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.de.tr +++ b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.de.tr @@ -21,5 +21,3 @@ The dispenser will do different things, depending on the dispensed item:=Der Wer Downwards-Facing Dispenser=Nach unten zeigender Werfer Upwards-Facing Dispenser=Nach oben zeigender Werfer Inventory=Inventar -9 inventory slots=9 Inventarplätze -Launches item when powered by redstone power=Wirft Gegenstand aus, wenn mit Redstoneenergie versorgt diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.es.tr b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.es.tr deleted file mode 100644 index cf695307..00000000 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.es.tr +++ /dev/null @@ -1,22 +0,0 @@ -# textdomain: mcl_dispensers -Dispenser=Dispensador -A dispenser is a block which acts as a redstone component which, when powered with redstone power, dispenses an item. It has a container with 9 inventory slots.=Un dispensador es un bloque que actúa como un componente de redstone que, cuando se alimenta con energía de redstone, dispensa un artículo. Tiene un contenedor con 9 ranuras de inventario. -Place the dispenser in one of 6 possible directions. The “hole” is where items will fly out of the dispenser. Use the dispenser to access its inventory. Insert the items you wish to dispense. Supply the dispenser with redstone energy once to dispense a random item.=Coloque el dispensador en una de las 6 direcciones posibles. El "agujero" es donde los artículos saldrán volando del dispensador. Use el dispensador para acceder a su inventario. Inserte los artículos que desea dispensar. Proporcione al dispensador energía de redstone una vez para dispensar un elemento aleatorio: -• Arrows: Are launched=• Flechas: Se lanzan -• Eggs and snowballs: Are thrown=• Huevos y bolas de nieve: Son lanzados -• Fire charges: Are fired in a straight line=• Cargas de fuego: Se disparan en línea recta -• Armor: Will be equipped to players and armor stands=• Armadura: Estará equipada para jugadores y armaduras -• Boats: Are placed on water or are dropped=• Barcas: Se colocan en el agua o se dejan caer -• Minecart: Are placed on rails or are dropped=• Carro de minas: Se colocan sobre rieles o se dejan caer = -• Bone meal: Is applied on the block it is facing=• Harina de hueso: Se aplica en el bloque que está enfrentando -• Empty buckets: Are used to collect a liquid source=• Cubos vacíos: Se utilizan para recolectar una fuente líquida -• Filled buckets: Are used to place a liquid source=• Cubos llenos: Se utilizan para colocar una fuente de líquido -• Heads, pumpkins: Equipped to players and armor stands, or placed as a block=• Cabezas, calabazas: Equipadas para jugadores y armaduras, o colocadas como un bloque -• Shulker boxes: Are placed as a block=• Cajas de Shulker: Se colocan como un bloque -• TNT: Is placed and ignited=• TNT: Se coloca y se enciende -• Flint and steel: Is used to ignite a fire in air and to ignite TNT=• Mechero: Se usa para encender un fuego en el aire y para encender TNT -• Spawn eggs: Will summon the mob they contain=• Huevos de desove: Convocarán al animal que contienen -• Other items: Are simply dropped=• Otros artículos: Simplemente se dejan caer -Downwards-Facing Dispenser=Dispensador orientado hacia abajo -Upwards-Facing Dispenser=Dispensador orientado hacia arriba -Inventory=Inventario diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.fr.tr b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.fr.tr deleted file mode 100644 index 622d0a70..00000000 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/mcl_dispensers.fr.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_dispensers -Dispenser=Dispenser -A dispenser is a block which acts as a redstone component which, when powered with redstone power, dispenses an item. It has a container with 9 inventory slots.=Un distributeur est un bloc qui agit comme un composant redstone qui, lorsqu'il est alimenté avec une puissance redstone, distribue un article. Il a un conteneur avec 9 emplacements d'inventaire. -Place the dispenser in one of 6 possible directions. The “hole” is where items will fly out of the dispenser. Use the dispenser to access its inventory. Insert the items you wish to dispense. Supply the dispenser with redstone energy once to dispense a random item.=Placez le distributeur dans l'une des 6 directions possibles. Le "trou" est l'endroit où les articles sortiront du distributeur. Utilisez le distributeur pour accéder à son inventaire. Insérez les articles que vous souhaitez distribuer. Fournissez au distributeur de l'énergie de redstone une fois pour distribuer un objet aléatoire. -The dispenser will do different things, depending on the dispensed item:=Le distributeur fera différentes choses, selon l'article distribué: -• Arrows: Are launched=• Flèches: Sont lancées -• Eggs and snowballs: Are thrown=• Oeufs et boules de neige: Sont jetés -• Fire charges: Are fired in a straight line=• Feu d'artifice: Sont tirés en ligne droite -• Armor: Will be equipped to players and armor stands=• Armure: Sera équipée pour les joueurs et les porte-armures -• Boats: Are placed on water or are dropped=• Bateaux: Sont placés sur l'eau ou sont lâchés -• Minecart: Are placed on rails or are dropped=• Minecart: Sont placés sur des rails ou sont lâchés -• Bone meal: Is applied on the block it is facing=• Farine d'os: Est appliquée sur le bloc auquel elle fait face -• Empty buckets: Are used to collect a liquid source=• Seaux vides: Sont utilisés pour collecter une source de liquide -• Filled buckets: Are used to place a liquid source=• Seaux remplis: Sont utilisés pour placer une source de liquide -• Heads, pumpkins: Equipped to players and armor stands, or placed as a block=• Têtes, citrouilles: Seront équipées pour les joueurs et les armures, ou placées en bloc -• Shulker boxes: Are placed as a block=• Boîtes de Shulker: Sont placées comme un bloc -• TNT: Is placed and ignited=• TNT: Est placé et allumé -• Flint and steel: Is used to ignite a fire in air and to ignite TNT=• Briquet: Sert à allumer un feu dans l'air et à allumer du TNT -• Spawn eggs: Will summon the mob they contain=• Silex et acier: Sert à allumer un feu dans l'air et à allumer du TNT -• Other items: Are simply dropped=• Autres articles: Sont simplement lâchés -Downwards-Facing Dispenser=Distributeur orienté vers le bas -Upwards-Facing Dispenser=Distributeur orienté vers le haut -Inventory=Inventaire -9 inventory slots=9 emplacements d'inventaire -Launches item when powered by redstone power=Lance un objet lorsqu'il est alimenté par la puissance Redstone diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/template.txt b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/template.txt index 91129aac..ad477dfd 100644 --- a/mods/ITEMS/REDSTONE/mcl_dispensers/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mcl_dispensers/locale/template.txt @@ -21,5 +21,3 @@ The dispenser will do different things, depending on the dispensed item:= Downwards-Facing Dispenser= Upwards-Facing Dispenser= Inventory= -9 inventory slots= -Launches item when powered by redstone power= diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_horizontal.png b/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_horizontal.png index ca08f4f3..bc1de75f 100644 Binary files a/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_horizontal.png and b/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_horizontal.png differ diff --git a/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_vertical.png b/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_vertical.png index 2b2328af..a366c78e 100644 Binary files a/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_vertical.png and b/mods/ITEMS/REDSTONE/mcl_dispensers/textures/mcl_dispensers_dispenser_front_vertical.png differ diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/depends.txt b/mods/ITEMS/REDSTONE/mcl_droppers/depends.txt index cfd9772f..d8d7ca50 100644 --- a/mods/ITEMS/REDSTONE/mcl_droppers/depends.txt +++ b/mods/ITEMS/REDSTONE/mcl_droppers/depends.txt @@ -1,5 +1,4 @@ mcl_init -mcl_formspec mesecons mcl_util doc? diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/init.lua b/mods/ITEMS/REDSTONE/mcl_droppers/init.lua index 715a85f3..7167de19 100644 --- a/mods/ITEMS/REDSTONE/mcl_droppers/init.lua +++ b/mods/ITEMS/REDSTONE/mcl_droppers/init.lua @@ -14,14 +14,13 @@ local S = minetest.get_translator("mcl_droppers") local setup_dropper = function(pos) -- Set formspec and inventory local form = "size[9,8.75]".. + "background[-0.19,-0.25;9.41,9.49;crafting_inventory_9_slots.png]".. + mcl_vars.inventory_header.. "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "label[3,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Dropper"))).."]".. "list[current_name;main;3,0.5;3,3;]".. - mcl_formspec.get_itemslot_bg(3,0.5,3,3).. "listring[current_name;main]".. "listring[current_player;main]" local meta = minetest.get_meta(pos) @@ -94,7 +93,7 @@ local dropperdef = { return stack:get_count() end end, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, mesecons = {effector = { -- Drop random item when triggered @@ -149,7 +148,6 @@ local dropperdef = { local horizontal_def = table.copy(dropperdef) horizontal_def.description = S("Dropper") -horizontal_def._tt_help = S("9 inventory slots").."\n"..S("Drops item when powered by redstone power") horizontal_def._doc_items_longdesc = S("A dropper is a redstone component and a container with 9 inventory slots which, when supplied with redstone power, drops an item or puts it into a container in front of it.") horizontal_def._doc_items_usagehelp = S("Droppers can be placed in 6 possible directions, items will be dropped out of the hole. Use the dropper to access its inventory. Supply it with redstone energy once to make the dropper drop or transfer a random item.") horizontal_def.after_place_node = function(pos, placer, itemstack, pointed_thing) @@ -209,10 +207,9 @@ if minetest.get_modpath("doc") then doc.add_entry_alias("nodes", "mcl_droppers:dropper", "nodes", "mcl_droppers:dropper_up") end --- Legacy minetest.register_lbm({ - label = "Update dropper formspecs (0.60.0)", - name = "mcl_droppers:update_formspecs_0_60_0", + label = "Update dropper formspecs (0.51.0)", + name = "mcl_droppers:update_formspecs_0_51_0", nodenames = { "mcl_droppers:dropper", "mcl_droppers:dropper_down", "mcl_droppers:dropper_up" }, action = function(pos, node) setup_dropper(pos) diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/init_new.lua b/mods/ITEMS/REDSTONE/mcl_droppers/init_new.lua index 1bf968a8..a36a2dbe 100644 --- a/mods/ITEMS/REDSTONE/mcl_droppers/init_new.lua +++ b/mods/ITEMS/REDSTONE/mcl_droppers/init_new.lua @@ -15,6 +15,7 @@ local setup_dropper = function(pos) -- Set formspec and inventory local form = "size[9,8.75]".. "background[-0.19,-0.25;9.41,9.49;crafting_inventory_9_slots.png]".. + mcl_vars.inventory_header.. "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. "list[current_player;main;0,7.74;9,1;]".. @@ -92,7 +93,7 @@ local dropperdef = { return stack:get_count() end end, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, mesecons = {effector = { -- Drop random item when triggered diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.de.tr b/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.de.tr index a4eb2eb0..526e48cd 100644 --- a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.de.tr +++ b/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.de.tr @@ -5,5 +5,3 @@ Droppers can be placed in 6 possible directions, items will be dropped out of th Downwards-Facing Dropper=Nach unten zeigender Spender Upwards-Facing Dropper=Nach oben zeigender Spender Inventory=Inventar -9 inventory slots=9 Inventarplätze -Drops item when powered by redstone power=Gibt einen Gegenstand aus, wenn mit Redstoneenergie versorgt diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.es.tr b/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.es.tr deleted file mode 100644 index 8fd8104a..00000000 --- a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.es.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_droppers -Dropper=Soltador -A dropper is a redstone component and a container with 9 inventory slots which, when supplied with redstone power, drops an item or puts it into a container in front of it.=Un Soltador es un componente de redstone y un contenedor con 9 ranuras de inventario que, cuando se suministra con redstone power, deja caer un artículo o lo coloca en un contenedor frente a él. -Droppers can be placed in 6 possible directions, items will be dropped out of the hole. Use the dropper to access its inventory. Supply it with redstone energy once to make the dropper drop or transfer a random item.=Los soltadores se pueden colocar en 6 direcciones posibles, los artículos se sacarán del agujero. Usa el cuentagotas para acceder a su inventario. Proporcione energía de redstone una vez para hacer que el soltador caiga o transfiera un elemento aleatorio. -Downwards-Facing Dropper=Soltador orientado hacia abajo -Upwards-Facing Dropper=Soltador orientado hacia arriba -Inventory=Inventario diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.fr.tr b/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.fr.tr deleted file mode 100644 index 137400d3..00000000 --- a/mods/ITEMS/REDSTONE/mcl_droppers/locale/mcl_droppers.fr.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_droppers -Dropper=Dropper -A dropper is a redstone component and a container with 9 inventory slots which, when supplied with redstone power, drops an item or puts it into a container in front of it.=Un dropper est un composant redstone et un conteneur avec 9 emplacements d'inventaire qui, lorsqu'ils sont alimentés en puissance redstone, déposent un objet ou le placent dans un conteneur en face de lui. -Droppers can be placed in 6 possible directions, items will be dropped out of the hole. Use the dropper to access its inventory. Supply it with redstone energy once to make the dropper drop or transfer a random item.=Les droppers peuvent être placés dans 6 directions possibles, les objets seront déposés hors du trou. Utilisez le dropper pour accéder à son inventaire. Fournissez-lui de l'énergie redstone pour faire tomber un élement ou transférer un élément aléatoire. -Downwards-Facing Dropper=Dropper orienté vers le bas -Upwards-Facing Dropper=Dropper orienté vers le haut -Inventory=Inventaire -9 inventory slots=9 emplacements d'inventaire -Drops item when powered by redstone power=Obtient un objet lorsqu'il est alimenté par la puissance Redstone diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/locale/template.txt b/mods/ITEMS/REDSTONE/mcl_droppers/locale/template.txt index 24b2bc10..48e6cc79 100644 --- a/mods/ITEMS/REDSTONE/mcl_droppers/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mcl_droppers/locale/template.txt @@ -5,5 +5,3 @@ Droppers can be placed in 6 possible directions, items will be dropped out of th Downwards-Facing Dropper= Upwards-Facing Dropper= Inventory= -9 inventory slots= -Drops item when powered by redstone power= diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_horizontal.png b/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_horizontal.png index e247e92c..59c92346 100644 Binary files a/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_horizontal.png and b/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_horizontal.png differ diff --git a/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_vertical.png b/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_vertical.png index 37bc9fa2..f0b5db98 100644 Binary files a/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_vertical.png and b/mods/ITEMS/REDSTONE/mcl_droppers/textures/mcl_droppers_dropper_front_vertical.png differ diff --git a/mods/ITEMS/REDSTONE/mcl_observers/init.lua b/mods/ITEMS/REDSTONE/mcl_observers/init.lua index 885e8599..802e2450 100644 --- a/mods/ITEMS/REDSTONE/mcl_observers/init.lua +++ b/mods/ITEMS/REDSTONE/mcl_observers/init.lua @@ -82,12 +82,11 @@ mesecon.register_node("mcl_observers:observer", sounds = mcl_sounds.node_sound_stone_defaults(), paramtype2 = "facedir", on_rotate = false, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, }, { description = S("Observer"), - _tt_help = S("Emits redstone pulse when block in front changes"), _doc_items_longdesc = S("An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes."), _doc_items_usagehelp = S("Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here."), @@ -139,7 +138,7 @@ mesecon.register_node("mcl_observers:observer_down", sounds = mcl_sounds.node_sound_stone_defaults(), groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 }, on_rotate = false, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, drop = "mcl_observers:observer_off", }, @@ -188,7 +187,7 @@ mesecon.register_node("mcl_observers:observer_up", sounds = mcl_sounds.node_sound_stone_defaults(), groups = {pickaxey=1, material_stone=1, not_opaque=1, not_in_creative_inventory=1 }, on_rotate = false, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, drop = "mcl_observers:observer_off", }, diff --git a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.de.tr b/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.de.tr index 3ce085ad..ef23ad49 100644 --- a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.de.tr +++ b/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.de.tr @@ -2,4 +2,3 @@ Observer=Wächter An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes.=Ein Wächter ist eine Redstonekomponente, die den Block vor ihm beobachtet und einen sehr kurzen Redstoneimpuls sendet, wenn sich dieser Block ändert. Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here.=Platzieren Sie den Wächter direkt vor dem Block, den Sie beobachten wollen, so dass das „Gesicht“ zum Block schaut. Der Pfeil zeigt auf die Seite des Signalausgangs, der sich gegenüber vom „Gesicht“ befindet. Hier können Sie Ihren Restonestaub oder eine beliebige andere Komponente platzieren. -Emits redstone pulse when block in front changes=Macht einen Redstonepuls, wenn der Block vor ihm sich ändert diff --git a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.es.tr b/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.es.tr deleted file mode 100644 index 146b72b8..00000000 --- a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_observers -Observer=Observador -An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes.=Un observador es un componente de redstone que observa el bloque frente a él y envía un pulso muy corto de redstone cada vez que este bloque cambia. -Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here.=Coloque el observador directamente en frente del bloque que desea observar con la "cara" mirando el bloque. La flecha apunta al lado de la salida, que está en el lado opuesto de la "cara". Puede colocar su polvo de redstone o cualquier otro componente aquí. diff --git a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.fr.tr b/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.fr.tr deleted file mode 100644 index 3295335a..00000000 --- a/mods/ITEMS/REDSTONE/mcl_observers/locale/mcl_observers.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_observers -Observer=Observateur -An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes.=Un observateur est un composant de redstone qui observe le bloc en face de lui et envoie une impulsion de redstone très courte chaque fois que ce bloc change. -Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here.=Placez l'observateur directement devant le bloc que vous souhaitez observer avec le "visage" regardant le bloc. La flèche pointe vers le côté de la sortie, qui est du côté opposé du "visage". Vous pouvez placer votre poussière de redstone ou tout autre composant ici. -Emits redstone pulse when block in front changes=Émet une impulsion de redstone lorsque le bloc à l'avant change diff --git a/mods/ITEMS/REDSTONE/mcl_observers/locale/template.txt b/mods/ITEMS/REDSTONE/mcl_observers/locale/template.txt index 7f599150..40dbfd71 100644 --- a/mods/ITEMS/REDSTONE/mcl_observers/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mcl_observers/locale/template.txt @@ -2,4 +2,3 @@ Observer= An observer is a redstone component which observes the block in front of it and sends a very short redstone pulse whenever this block changes.= Place the observer directly in front of the block you want to observe with the “face” looking at the block. The arrow points to the side of the output, which is at the opposite side of the “face”. You can place your redstone dust or any other component here.= -Emits redstone pulse when block in front changes= diff --git a/mods/ITEMS/REDSTONE/mesecons/init.lua b/mods/ITEMS/REDSTONE/mesecons/init.lua index 93d299f0..3286c0ce 100644 --- a/mods/ITEMS/REDSTONE/mesecons/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons/init.lua @@ -117,5 +117,8 @@ function mesecon.receptor_off(pos, rules) mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules) end + +print("[OK] Mesecons") + --Services like turnoff receptor on dignode and so on dofile(minetest.get_modpath("mesecons").."/services.lua"); diff --git a/mods/ITEMS/REDSTONE/mesecons/util.lua b/mods/ITEMS/REDSTONE/mesecons/util.lua index b6602526..91da1e95 100644 --- a/mods/ITEMS/REDSTONE/mesecons/util.lua +++ b/mods/ITEMS/REDSTONE/mesecons/util.lua @@ -366,7 +366,7 @@ function mesecon.vm_get_node(pos) local tbl = vm_get_or_create_entry(pos) local index = tbl.va:indexp(pos) local node_value = tbl.data[index] - if node_value == minetest.CONTENT_IGNORE then + if node_value == core.CONTENT_IGNORE then return nil else local node_param1 = tbl.param1[index] diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 5ff15ecc..9f659983 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -27,7 +27,7 @@ mesecon.push_button = function(pos, node) local def = minetest.registered_nodes[node.name] minetest.set_node(pos, {name="mesecons_button:button_"..def._mcl_button_basename.."_on", param2=node.param2}) mesecon.receptor_on(pos, button_get_output_rules(node)) - minetest.sound_play("mesecons_button_push", {pos=pos}, true) + minetest.sound_play("mesecons_button_push", {pos=pos}) local timer = minetest.get_node_timer(pos) timer:start(def._mcl_button_timer) end @@ -73,7 +73,7 @@ local on_button_place = function(itemstack, placer, pointed_thing) if success then if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=above, gain=1}) end end return itemstack @@ -97,11 +97,7 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s groups_off.button_push_by_arrow = 1 groups_on.button_push_by_arrow = 1 end - local tt = S("Provides redstone power when pushed") - tt = tt .. "\n" .. S("Push duration: @1s", string.format("%.1f", button_timer)) - if push_by_arrow then - tt = tt .. "\n" .. S("Pushable by arrow") - end + minetest.register_node("mesecons_button:button_"..basename.."_off", { drawtype = "nodebox", tiles = {texture}, @@ -117,7 +113,6 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s node_box = boxes_off, groups = groups_off, description = description, - _tt_help = tt, _doc_items_longdesc = longdesc, _doc_items_usagehelp = buttonuse, on_place = on_button_place, @@ -133,7 +128,7 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s _mcl_button_basename = basename, _mcl_button_timer = button_timer, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -141,6 +136,7 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s drawtype = "nodebox", tiles = {texture}, wield_image = "mesecons_button_wield_mask.png^"..texture.."^mesecons_button_wield_mask.png^[makealpha:255,126,126", + inventory_image = "mesecons_button_wield_mask.png^"..texture.."^mesecons_button_wield_mask.png^[makealpha:255,126,126", wield_scale = { x=1, y=1, z=0.5}, paramtype = "light", paramtype2 = "wallmounted", @@ -179,12 +175,12 @@ mesecon.register_button = function(basename, description, texture, recipeitem, s -- Normal operation: Un-press the button minetest.set_node(pos, {name="mesecons_button:button_"..basename.."_off",param2=node.param2}) - minetest.sound_play("mesecons_button_pop", {pos=pos}, true) + minetest.sound_play("mesecons_button_pop", {pos=pos}) mesecon.receptor_off(pos, button_get_output_rules(node)) end end, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.de.tr b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.de.tr index 9b311b9a..60d64437 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.de.tr @@ -9,6 +9,3 @@ Dark Oak Button=Schwarzeichenknopf Spruce Button=Fichtenknopf Jungle Button=Dschungelknopf A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.=Ein Holzknopf ist eine Redstonekomponente aus Holz. Er kann gedrückt werden, um ein Redstonesignal zu senden. Im gedrückten Zustand versorgt er benachbarte Redstonekomponenten für 1,5 Sekunden mit Redstoneenergie. Holzknöpfe können auch von Pfeilen gedrückt werden. -Provides redstone power when pushed=Gibt Redstoneenergie, wenn gedrückt -Push duration: @1s=Druckdauer: @1s -Pushable by arrow=Drückbar von Pfeilen diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.es.tr b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.es.tr deleted file mode 100644 index d793b7a9..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.es.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mesecons_button -Use the button to push it.=Usa el botón para pulsarlo. -Stone Button=Botón de piedra -A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un botón de piedra es un componente de redstone hecho de piedra que se puede presionar para proporcionar energía de redstone. Cuando se empuja, alimenta los componentes adyacentes de redstone durante 1 segundo. -Oak Button=Botón de roble -Acacia Button=Botón de acacia -Birch Button=Botón de abedul -Dark Oak Button=Botón de roble oscuro -Spruce Button=Botón de abeto -Jungle Button=Botón de jungla -A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.=Ein Holzknopf ist eine Redstonekomponente aus Holz. Er kann gedrückt werden, um ein Redstonesignal zu senden. Im gedrückten Zustand versorgt er benachbarte Redstonekomponenten für 1,5 Sekunden mit Redstoneenergie. Holzknöpfe können auch von Pfeilen gedrückt werden. diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr b/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr deleted file mode 100644 index 96f963b4..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/mesecons_button.fr.tr +++ /dev/null @@ -1,14 +0,0 @@ -# textdomain: mesecons_button -Use the button to push it.=Utilisez le bouton pour le pousser. -Stone Button=Bouton de pierre -A stone button is a redstone component made out of stone which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1 second.=Un bouton en pierre est un composant Redstone en pierre qui peut être poussé pour fournir de la puissance Redstone. Lorsqu'il est poussé, il alimente les composants Redstone adjacents pendant 1 seconde. -Oak Button=Bouton en Chêne -Acacia Button=Bouton en Acacia -Birch Button=Bouton en Bouleau -Dark Oak Button=Bouton en Chêne Noir -Spruce Button=Bouton en Sapin -Jungle Button=Bouton en Acajou -A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.=Un bouton en bois est un composant de redstone en bois qui peut être poussé pour fournir une puissance de redstone. Lorsqu'il est poussé, il alimente les composants Redstone adjacents pendant 1,5 seconde. Les boutons en bois peuvent également être poussés par des flèches. -Provides redstone power when pushed=Fournit une puissance de redstone lorsqu'il est poussé -Push duration: @1s=Durée de poussée: @1s -Pushable by arrow=Poussable par une flèche diff --git a/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt index 4c352b87..5ae22b59 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_button/locale/template.txt @@ -9,6 +9,3 @@ Dark Oak Button= Spruce Button= Jungle Button= A wooden button is a redstone component made out of wood which can be pushed to provide redstone power. When pushed, it powers adjacent redstone components for 1.5 seconds. Wooden buttons may also be pushed by arrows.= -Provides redstone power when pushed= -Push duration: @1s= -Pushable by arrow= diff --git a/mods/ITEMS/REDSTONE/mesecons_commandblock/init.lua b/mods/ITEMS/REDSTONE/mesecons_commandblock/init.lua index 44db17a4..91c682cb 100644 --- a/mods/ITEMS/REDSTONE/mesecons_commandblock/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_commandblock/init.lua @@ -155,12 +155,12 @@ local on_rightclick = function(pos, node, player, itemstack, pointed_thing) else commanderstr = S("Commander: @1", commander) end - local textarea_name, submit, textarea + local textrea_name, submit, textarea -- If editing is not allowed, only allow read-only access. -- Player can still view the contents of the command block. if can_edit then textarea_name = "commands" - submit = "button_exit[3.3,4.4;2,1;submit;"..F(S("Submit")).."]" + submit = "button_exit[3.3,4.5;2,1;submit;"..F(S("Submit")).."]" else textarea_name = "" submit = "" @@ -170,10 +170,10 @@ local on_rightclick = function(pos, node, player, itemstack, pointed_thing) else textarea = "textarea[0.5,0.5;8.5,4;"..textarea_name..";"..F(S("Commands:"))..";"..F(commands).."]" end - local formspec = "size[9,5;]" .. + local formspec = "invsize[9,5;]" .. textarea .. submit .. - "image_button[8,4.4;1,1;doc_button_icon_lores.png;doc;]" .. + "image_button[8,4.5;1,1;doc_button_icon_lores.png;doc;]" .. "tooltip[doc;"..F(S("Help")).."]" .. "label[0,4;"..F(commanderstr).."]" minetest.show_formspec(pname, "commandblock_"..pos.x.."_"..pos.y.."_"..pos.z, formspec) @@ -204,7 +204,6 @@ end minetest.register_node("mesecons_commandblock:commandblock_off", { description = S("Command Block"), - _tt_help = S("Executes server commands when powered by redstone power"), _doc_items_longdesc = S("Command blocks are mighty redstone components which are able to alter reality itself. In other words, they cause the server to execute server commands when they are supplied with redstone power."), _doc_items_usagehelp = @@ -242,7 +241,7 @@ S("Example 2:\n give @@n mcl_core:apple 5\nGives the nearest player 5 apples" action_on = commandblock_action_on, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 3600000, + _mcl_blast_resistance = 18000000, _mcl_hardness = -1, }) @@ -261,26 +260,25 @@ minetest.register_node("mesecons_commandblock:commandblock_on", { action_off = commandblock_action_off, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 3600000, + _mcl_blast_resistance = 18000000, _mcl_hardness = -1, }) minetest.register_on_player_receive_fields(function(player, formname, fields) if string.sub(formname, 1, 13) == "commandblock_" then - if fields.doc and minetest.get_modpath("doc") then - doc.show_entry(player:get_player_name(), "nodes", "mesecons_commandblock:commandblock_off", true) + if (not fields.submit and not fields.key_enter and not fields.doc) or (not fields.commands) then return end - if (not fields.submit and not fields.key_enter) or (not fields.commands) then - return - end - local privs = minetest.get_player_privs(player:get_player_name()) if not privs.maphack then minetest.chat_send_player(player:get_player_name(), S("Access denied. You need the “maphack” privilege to edit command blocks.")) return end + if fields.doc and minetest.get_modpath("doc") then + doc.show_entry(player:get_player_name(), "nodes", "mesecons_commandblock:commandblock_off", true) + return + end local index, _, x, y, z = string.find(formname, "commandblock_(-?%d+)_(-?%d+)_(-?%d+)") if index ~= nil and x ~= nil and y ~= nil and z ~= nil then local pos = {x=tonumber(x), y=tonumber(y), z=tonumber(z)} diff --git a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.de.tr b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.de.tr index d114a47b..35df4998 100644 --- a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.de.tr @@ -26,4 +26,3 @@ Example 2:@n give @@n mcl_core:apple 5@nGives the nearest player 5 apples=2. Access denied. You need the “maphack” privilege to edit command blocks.=Zugriff verweigert. Sie brauchen das „maphack“-Privileg, um Befehlsblöcke zu bearbeiten. Editing the command block has failed! You can only change the command block in Creative Mode!=Bearbeitung des Befehlsblocks fehlgeschlagen! Sie können den Befehlsblock nur im Kreativmodus ändern! Editing the command block has failed! The command block is gone.=Bearbeiten des Befehlsblocks fehlgeschlagen! Der Befehlsblock ist verschwunden. -Executes server commands when powered by redstone power=Führt Serverbefehle aus, wenn mit Redstoneenergie versorgt diff --git a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.es.tr b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.es.tr deleted file mode 100644 index 65e59115..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.es.tr +++ /dev/null @@ -1,29 +0,0 @@ -# textdomain: mesecons_commandblock -Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands.=Error: el comando "@1" no existe; su bloque de comando no ha sido cambiado. Utilice el comando de chat "help" para obtener una lista de los comandos disponibles. -Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands. Hint: Try to remove the leading slash.=Error: el comando "@1" no existe; su bloque de comando no ha sido cambiado. Utilice el comando de chat "help" para obtener una lista de los comandos disponibles. Sugerencia: intente eliminar la barra diagonal inicial. -Error: You have insufficient privileges to use the command “@1” (missing privilege: @2)! The command block has not been changed.=Error: ¡No tiene suficientes privilegios para usar el comando “@ 1” (faltan privilegios: @ 2)! El bloque de comando no ha sido cambiado. -Error: No commander! Block must be replaced.=Error: ¡Sin dueño! El bloque debe ser reemplazado. -Commander: @1=Dueño: @1 -Submit=Aceptar -No commands.=Sin comandos. -Commands:=Comandos: -Help=Ayuda -Placement denied. You need the “maphack” privilege to place command blocks.=Colocación denegada. Necesita el privilegio "maphack" para colocar bloques de comandos. -Command Block=Bloque de comandos -Command blocks are mighty redstone components which are able to alter reality itself. In other words, they cause the server to execute server commands when they are supplied with redstone power.=Los bloques de comandos son poderosos componentes de redstone que pueden alterar la realidad misma. En otras palabras, hacen que el servidor ejecute comandos del servidor cuando se les suministra energía redstone. -Everyone can activate a command block and look at its commands, but not everyone can edit and place them.=Todos pueden activar un bloque de comandos y ver sus comandos, pero no todos pueden editarlos y colocarlos. -To view the commands in a command block, use it. To activate the command block, just supply it with redstone power. This will execute the commands once. To execute the commands again, turn the redstone power off and on again.=Para ver los comandos en un bloque de comandos, úselo. Para activar el bloque de comando, solo suminístrelo con redstone power. Esto ejecutará los comandos una vez. Para ejecutar los comandos nuevamente, apague y vuelva a encender la redstone. -To be able to place a command block and change the commands, you need to be in Creative Mode and must have the “maphack” privilege. A new command block does not have any commands and does nothing. Use the command block (in Creative Mode!) to edit its commands. Read the help entry “Advanced topics > Server Commands” to understand how commands work. Each line contains a single command. You enter them like you would in the console, but without the leading slash. The commands will be executed from top to bottom.=Para poder colocar un bloque de comandos y cambiar los comandos, debe estar en modo creativo y debe tener el privilegio de "maphack". Un nuevo bloque de comandos no tiene ningún comando y no hace nada. Use el bloque de comandos (en modo creativo) para editar sus comandos. Lea la entrada de ayuda "Temas avanzados> Comandos del servidor" para comprender cómo funcionan los comandos. Cada línea contiene un solo comando. Los ingresas como lo harías en la consola, pero sin la barra inclinada. Los comandos se ejecutarán de arriba a abajo. - -All commands will be executed on behalf of the player who placed the command block, as if the player typed in the commands. This player is said to be the “commander” of the block.=Todos los comandos se ejecutarán en el nombre del jugador que colocó el bloque de comandos, como si el jugador tecleara los comandos. Se dice que este jugador es el "dueño" del bloque. -Command blocks support placeholders, insert one of these placeholders and they will be replaced by some other text:=Los bloques de comando admiten marcadores de posición, inserte uno de estos marcadores de posición y serán reemplazados por otro texto: -• “@@c”: commander of this command block=• "@@c“: dueño de este bloque de comandos -• “@@n” or “@@p”: nearest player from the command block=• "@@n“ o "@@p“: jugador más cercano del bloque de comandos -• “@@f” farthest player from the command block=• "@@f“: jugador más alejado del bloque de comandos -• “@@r”: random player currently in the world=• "@@r“: jugador aleatorio actualmente en el mundo -• “@@@@”: literal “@@” sign=• „@@@@“: literal "@@“ firmado -Example 1:@n time 12000@nSets the game clock to 12:00=1. Ejemplo:@n time 12000@nConfigura el reloj del juego a las 12:00 -Example 2:@n give @@n mcl_core:apple 5@nGives the nearest player 5 apples=2. Beispiel:@n give @@n mcl_core:apple 5@nDa al jugador más cercano a 5 manzanas -Access denied. You need the “maphack” privilege to edit command blocks.=Acceso denegado. Necesita el privilegio "maphack" para editar bloques de comandos. -Editing the command block has failed! You can only change the command block in Creative Mode!=¡La edición del bloque de comando ha fallado! ¡Solo puede cambiar el bloque de comandos en modo creativo! -Editing the command block has failed! The command block is gone.=¡La edición del bloque de comando ha fallado! El bloque de comando se ha ido. diff --git a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.fr.tr b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.fr.tr deleted file mode 100644 index 739f6ece..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/mesecons_commandblock.fr.tr +++ /dev/null @@ -1,29 +0,0 @@ -# textdomain: mesecons_commandblock -Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands.=Erreur: la commande "@1" n'existe pas; votre bloc de commande n'a pas été modifié. Utilisez la commande de discussion "help" pour obtenir la liste des commandes disponibles. -Error: The command “@1” does not exist; your command block has not been changed. Use the “help” chat command for a list of available commands. Hint: Try to remove the leading slash.=Erreur: la commande "@1" n'existe pas; votre bloc de commande n'a pas été modifié. Utilisez la commande de discussion "help" pour obtenir la liste des commandes disponibles. Astuce: essayez de supprimer la barre oblique principale. -Error: You have insufficient privileges to use the command “@1” (missing privilege: @2)! The command block has not been changed.=Erreur: vous ne disposez pas de privilèges suffisants pour utiliser la commande "@1" (privilège manquant: @2)! Le bloc de commandes n'a pas été modifié. -Error: No commander! Block must be replaced.=Erreur: pas de commandant! Le bloc doit être remplacé. -Commander: @1=Commandant: @1 -Submit=Soumettre -No commands.=Aucune commande. -Commands:=Commandes: -Help=Aide -Placement denied. You need the “maphack” privilege to place command blocks.=Placement refusé. Vous avez besoin du privilège "maphack" pour placer des blocs de commande. -Command Block=Bloc de Commande -Command blocks are mighty redstone components which are able to alter reality itself. In other words, they cause the server to execute server commands when they are supplied with redstone power.=Les blocs de commande sont des composants redstone puissants qui sont capables de modifier la réalité elle-même. En d'autres termes, ils obligent le serveur à exécuter des commandes serveur lorsqu'ils sont alimentés en redstone. -Everyone can activate a command block and look at its commands, but not everyone can edit and place them.=Tout le monde peut activer un bloc de commandes et consulter ses commandes, mais tout le monde ne peut pas les modifier et les placer. -To view the commands in a command block, use it. To activate the command block, just supply it with redstone power. This will execute the commands once. To execute the commands again, turn the redstone power off and on again.=Pour afficher les commandes dans un bloc de commandes, utilisez-le. Pour activer le bloc de commande, il suffit de l'alimenter en redstone. Cela exécutera les commandes une fois. Pour exécuter à nouveau les commandes, éteignez puis rallumez le Redstone. -To be able to place a command block and change the commands, you need to be in Creative Mode and must have the “maphack” privilege. A new command block does not have any commands and does nothing. Use the command block (in Creative Mode!) to edit its commands. Read the help entry “Advanced topics > Server Commands” to understand how commands work. Each line contains a single command. You enter them like you would in the console, but without the leading slash. The commands will be executed from top to bottom.=Pour pouvoir placer un bloc de commande et modifier les commandes, vous devez être en mode créatif et avoir le privilège "maphack". Un nouveau bloc de commandes n'a aucune commande et ne fait rien. Utilisez le bloc de commande (en mode créatif!) Pour modifier ses commandes. Lisez l'entrée d'aide "Rubriques avancées> Commandes du serveur" pour comprendre le fonctionnement des commandes. Chaque ligne contient une seule commande. Vous les entrez comme vous le feriez dans la console, mais sans la barre oblique principale. Les commandes seront exécutées de haut en bas. -All commands will be executed on behalf of the player who placed the command block, as if the player typed in the commands. This player is said to be the “commander” of the block.=Toutes les commandes seront exécutées au nom du joueur qui a placé le bloc de commande, comme si le joueur avait tapé les commandes. Ce joueur est appelé le "commandant" du bloc. -Command blocks support placeholders, insert one of these placeholders and they will be replaced by some other text:=Les blocs de commande prennent en charge les espaces réservés, insérez l'un de ces espaces réservés et ils seront remplacés par un autre texte: -• “@@c”: commander of this command block=• “@@c”: commandant de ce bloc que commande -• “@@n” or “@@p”: nearest player from the command block=• “@@n” or “@@p”: joueur le plus proche du bloc de commande -• “@@f” farthest player from the command block=• “@@f” : joueur le plus éloigné du bloc de commande -• “@@r”: random player currently in the world=• “@@r”: joueur aléatoire actuellement dans le monde -• “@@@@”: literal “@@” sign= • “@@@@”: literalement le symbole “@@” -Example 1:@n time 12000@nSets the game clock to 12:00=Exemple 1:@n time 12000@nRègle l'horloge du jeu sur 12:00 -Example 2:@n give @@n mcl_core:apple 5@nGives the nearest player 5 apples=Exemple 2:@n give @@n mcl_core:apple 5@nDonne au joueur le plus proche 5 pommes -Access denied. You need the “maphack” privilege to edit command blocks.=Accès refusé. Vous avez besoin du privilège "maphack" pour modifier les blocs de commande. -Editing the command block has failed! You can only change the command block in Creative Mode!=La modification du bloc de commandes a échoué! Vous ne pouvez modifier le bloc de commandes qu'en mode créatif! -Editing the command block has failed! The command block is gone.=La modification du bloc de commandes a échoué! Le bloc de commande a disparu. -Executes server commands when powered by redstone power=Exécute les commandes du serveur lorsqu'il est alimenté par l'alimentation Redstone diff --git a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/template.txt index c03e0d1d..ffa7d2ab 100644 --- a/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_commandblock/locale/template.txt @@ -26,4 +26,3 @@ Example 2:@n give @@n mcl_core:apple 5@nGives the nearest player 5 apples= Access denied. You need the “maphack” privilege to edit command blocks.= Editing the command block has failed! You can only change the command block in Creative Mode!= Editing the command block has failed! The command block is gone.= -Executes server commands when powered by redstone power= diff --git a/mods/ITEMS/REDSTONE/mesecons_delayer/init.lua b/mods/ITEMS/REDSTONE/mesecons_delayer/init.lua index 80489814..01bd1901 100644 --- a/mods/ITEMS/REDSTONE/mesecons_delayer/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_delayer/init.lua @@ -181,12 +181,9 @@ boxes = { } end -local help, tt, longdesc, usagehelp, icon, on_construct +local help, longdesc, usagehelp, icon, on_construct if i == 1 then help = true - tt = S("Transmits redstone power only in one direction").."\n".. - S("Delays signal").."\n".. - S("Output locks when getting active redstone repeater signal from the side") longdesc = S("Redstone repeaters are versatile redstone components with multiple purposes: 1. They only allow signals to travel in one direction. 2. They delay the signal. 3. Optionally, they can lock their output in one state.") usagehelp = S("To power a redstone repeater, send a signal in “arrow” direction (the input). The signal goes out on the opposite side (the output) with a delay. To change the delay, use the redstone repeater. The delay is between 0.1 and 0.4 seconds long and can be changed in steps of 0.1 seconds. It is indicated by the position of the moving redstone torch.").."\n".. S("To lock a repeater, send a signal from an adjacent repeater into one of its sides. While locked, the moving redstone torch disappears, the output doesn't change and the input signal is ignored.") @@ -223,18 +220,10 @@ else help = false end -local desc_off -if i == 1 then - desc_off = S("Redstone Repeater") -else - desc_off = S("Redstone Repeater (Delay @1)", i) -end - minetest.register_node("mesecons_delayer:delayer_off_"..tostring(i), { - description = desc_off, + description = S("Redstone Repeater"), inventory_image = icon, wield_image = icon, - _tt_help = tt, _doc_items_create_entry = help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, @@ -305,7 +294,7 @@ minetest.register_node("mesecons_delayer:delayer_off_"..tostring(i), { minetest.register_node("mesecons_delayer:delayer_on_"..tostring(i), { - description = S("Redstone Repeater (Delay @1, Powered)", i), + description = S("Redstone Repeater (Powered)"), _doc_items_create_entry = false, drawtype = "nodebox", tiles = { diff --git a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.de.tr b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.de.tr index 45c95952..db17d7f6 100644 --- a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.de.tr @@ -6,8 +6,3 @@ Redstone Repeater=Redstoneverstärker Redstone Repeater (Powered)=Redstoneverstärker (bestromt) Redstone Repeater (Locked)=Redstoneverstärker (gesperrt) Redstone Repeater (Locked, Powered)=Redstoneverstärker (gesperrt, bestromt) -Redstone Repeater (Delay @1)=Redstoneverstärker (Verzögerung @1) -Redstone Repeater (Delay @1, Powered)=Redstoneverstärker (Verzögerung @1, bestromt) -Transmits redstone power only in one direction=Überträgt Redstoneenergie in nur eine Richtung -Delays signal=Verzögert Signal -Output locks when getting active redstone repeater signal from the side=Ausgangssignal wird gesperrt, wenn Signal von aktivem Redstoneverstärker an der Seite erhalten diff --git a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.es.tr b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.es.tr deleted file mode 100644 index fd502c73..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mesecons_delayer -Redstone repeaters are versatile redstone components with multiple purposes: 1. They only allow signals to travel in one direction. 2. They delay the signal. 3. Optionally, they can lock their output in one state.=Los repetidores Redstone son componentes versátiles de redstone con múltiples propósitos: 1. Solo permiten que las señales viajen en una dirección. 2. Retrasan la señal. 3. Opcionalmente, pueden bloquear su salida en un estado. -To power a redstone repeater, send a signal in “arrow” direction (the input). The signal goes out on the opposite side (the output) with a delay. To change the delay, use the redstone repeater. The delay is between 0.1 and 0.4 seconds long and can be changed in steps of 0.1 seconds. It is indicated by the position of the moving redstone torch.=Para alimentar un repetidor de redstone, envíe una señal en la dirección de "flecha" (la entrada). La señal se apaga en el lado opuesto (la salida) con un retraso. Para cambiar el retraso, use el repetidor de redstone. El retraso es de entre 0.1 y 0.4 segundos y se puede cambiar en pasos de 0.1 segundos. Está indicado por la posición de la antorcha de redstone en movimiento. -To lock a repeater, send a signal from an adjacent repeater into one of its sides. While locked, the moving redstone torch disappears, the output doesn't change and the input signal is ignored.=Para bloquear un repetidor, envíe una señal desde un repetidor adyacente a uno de sus lados. Mientras está bloqueado, la antorcha de redstone en movimiento desaparece, la salida no cambia y la señal de entrada se ignora. -Redstone Repeater=Repetidor de redstone -Redstone Repeater (Powered)=Repetidor de redstone (Motorizado) -Redstone Repeater (Locked)=Repetidor de redstone (Bloqueado) -Redstone Repeater (Locked, Powered)=Repetidor de redstone (Bloqueado, Motorizado) -Redstone Repeater (Delay @1)=Repetidor de redstone (Retardar @1) -Redstone Repeater (Delay @1, Powered)=Repetidor de redstone (Retardar @1, Motorizado) diff --git a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.fr.tr b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.fr.tr deleted file mode 100644 index e2831716..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/mesecons_delayer.fr.tr +++ /dev/null @@ -1,13 +0,0 @@ -# textdomain: mesecons_delayer -Redstone repeaters are versatile redstone components with multiple purposes: 1. They only allow signals to travel in one direction. 2. They delay the signal. 3. Optionally, they can lock their output in one state.=Les répéteurs Redstone sont des composants Redstone polyvalents à usages multiples: 1. Ils ne permettent aux signaux de voyager que dans une seule direction. 2. Ils retardent le signal. 3. En option, ils peuvent verrouiller leur sortie dans un état. -To power a redstone repeater, send a signal in “arrow” direction (the input). The signal goes out on the opposite side (the output) with a delay. To change the delay, use the redstone repeater. The delay is between 0.1 and 0.4 seconds long and can be changed in steps of 0.1 seconds. It is indicated by the position of the moving redstone torch.=Pour alimenter un répéteur redstone, envoyez un signal dans le sens de la «flèche» (l'entrée). Le signal s'éteint du côté opposé (la sortie) avec un retard. Pour modifier le délai, utilisez le répéteur redstone. Le délai est compris entre 0,1 et 0,4 seconde et peut être modifié par incréments de 0,1 seconde. Elle est indiquée par la position de la torche en pierre rouge en mouvement. -To lock a repeater, send a signal from an adjacent repeater into one of its sides. While locked, the moving redstone torch disappears, the output doesn't change and the input signal is ignored.=Pour verrouiller un répéteur, envoyez un signal d'un répéteur adjacent à l'un de ses côtés. Lorsqu'elle est verrouillée, la torche Redstone en mouvement disparaît, la sortie ne change pas et le signal d'entrée est ignoré. -Redstone Repeater=Répéteur Redstone -Redstone Repeater (Powered)=Répéteur Redstone (Alimenté) -Redstone Repeater (Locked)=Répéteur Redstone (Bloqué) -Redstone Repeater (Locked, Powered)=Répéteur Redstone (Bloqué, Alimenté) -Redstone Repeater (Delay @1)=Répéteur Redstone (Délai @1) -Redstone Repeater (Delay @1, Powered)=Répéteur Redstone (Délai @1, Alimenté) -Transmits redstone power only in one direction=Transmet la puissance de redstone seulement dans une direction -Delays signal=Retard du signal -Output locks when getting active redstone repeater signal from the side=La sortie se verrouille lorsque le signal du répéteur Redstone est actif sur le côté diff --git a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/template.txt index 58012480..e694d70a 100644 --- a/mods/ITEMS/REDSTONE/mesecons_delayer/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_delayer/locale/template.txt @@ -6,8 +6,3 @@ Redstone Repeater= Redstone Repeater (Powered)= Redstone Repeater (Locked)= Redstone Repeater (Locked, Powered)= -Redstone Repeater (Delay @1)= -Redstone Repeater (Delay @1, Powered)= -Transmits redstone power only in one direction= -Delays signal= -Output locks when getting active redstone repeater signal from the side= diff --git a/mods/ITEMS/REDSTONE/mesecons_lightstone/init.lua b/mods/ITEMS/REDSTONE/mesecons_lightstone/init.lua index c09bcf59..97ef544a 100644 --- a/mods/ITEMS/REDSTONE/mesecons_lightstone/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_lightstone/init.lua @@ -1,14 +1,11 @@ local S = minetest.get_translator("mesecons_lightstone") -local light = minetest.LIGHT_MAX - minetest.register_node("mesecons_lightstone:lightstone_off", { tiles = {"jeija_lightstone_gray_off.png"}, groups = {handy=1, mesecon_effector_off = 1, mesecon = 2}, is_ground_content = false, description= S("Redstone Lamp"), - _tt_help = S("Glows when powered by redstone power"), - _doc_items_longdesc = S("Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.", light), + _doc_items_longdesc = S("Redstone lamps are simple redstone components which glow brightly (light level 14) when they receive redstone power."), sounds = mcl_sounds.node_sound_glass_defaults(), mesecons = {effector = { action_on = function (pos, node) @@ -16,7 +13,7 @@ minetest.register_node("mesecons_lightstone:lightstone_off", { end, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) @@ -26,7 +23,8 @@ minetest.register_node("mesecons_lightstone:lightstone_on", { drop = "node mesecons_lightstone:lightstone_off", is_ground_content = false, paramtype = "light", - light_source = light, + -- Real light level: 15 (Minetest caps at 14) + light_source = 14, sounds = mcl_sounds.node_sound_glass_defaults(), mesecons = {effector = { action_off = function (pos, node) @@ -34,7 +32,7 @@ minetest.register_node("mesecons_lightstone:lightstone_on", { end, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.de.tr b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.de.tr index a0cfc221..dd39b80d 100644 --- a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.de.tr @@ -1,4 +1,3 @@ # textdomain: mesecons_lightstone Redstone Lamp=Redstonelampe -Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=Redstonelampen sind einfache Redstonekomponenten, die hell aufleuchten (Helligkeitspegel von @1), wenn sie Redstoneenergie erhalten. -Glows when powered by redstone power=Leuchtet, wenn mit Redstoneenergie versorgt +Redstone lamps are simple redstone components which glow brightly (light level 14) when they receive redstone power.=Redstonelampen sind einfache Redstonekomponenten, die hell aufleuchten (Helligkeitspegel von 14), wenn sie Redstoneenergie erhalten. diff --git a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.es.tr b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.es.tr deleted file mode 100644 index 713f0be5..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mesecons_lightstone -Redstone Lamp=Lámpara de redstone -Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=Las lámparas Redstone son componentes simples de redstone que brillan intensamente (nivel de luz @ 1) cuando reciben energía de redstone. diff --git a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.fr.tr b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.fr.tr deleted file mode 100644 index 16601ace..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/mesecons_lightstone.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mesecons_lightstone -Redstone Lamp=Lampe Redstone -Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.=Les lampes Redstone sont de simples composants Redstone qui brillent (niveau de lumière @1) lorsqu'elles reçoivent une puissance Redstone. -Glows when powered by redstone power=Brille lorsqu'il est alimenté par la puissance Redstone diff --git a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/template.txt index 2d2cc419..3261d768 100644 --- a/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_lightstone/locale/template.txt @@ -1,4 +1,3 @@ # textdomain: mesecons_lightstone Redstone Lamp= -Redstone lamps are simple redstone components which glow brightly (light level @1) when they receive redstone power.= -Glows when powered by redstone power= +Redstone lamps are simple redstone components which glow brightly (light level 14) when they receive redstone power.= diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/LICENSE.txt b/mods/ITEMS/REDSTONE/mesecons_noteblock/LICENSE.txt new file mode 100644 index 00000000..ec3fc396 --- /dev/null +++ b/mods/ITEMS/REDSTONE/mesecons_noteblock/LICENSE.txt @@ -0,0 +1,8 @@ +Licensing information + +* All code: GPLv3 by Mesecons Mod Developer Team, contributors and Wuzzy +* mesecons_noteblock_temp_bass_guitar.ogg: CC0 +* mesecons_noteblock_temp_stick.ogg: CC0 +* Other sounds and data: CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) by Mesecons Mod Developer Team and contributors + +Note: All “temp” sounds are subject to be replaced in later versions. diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/README.txt b/mods/ITEMS/REDSTONE/mesecons_noteblock/README.txt deleted file mode 100644 index dd6822a3..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/README.txt +++ /dev/null @@ -1,57 +0,0 @@ -Credits of sound files: - -Note: Most sounds have not been used verbatim, but tweaked a little to be more suitable for the noteblock mod. - -### Sounds licensed CC0: - - * by freesound.org user AmateurJ - * Source: https://freesound.org/people/AmateurJ/sounds/399523/ -* mesecons_noteblock_bass_drum.ogg - * by freesound.org user Mattc90 - * Source: https://freesound.org/people/Mattc90/sounds/264285/ -* mesecons_noteblock_bell.ogg - * by opengameart.org user Brandon75689 - * Source: https://opengameart.org/content/point-bell -* mesecons_noteblock_chime.ogg - * by freesound.org user - * Source: https://freesound.org/people/ikonochris/sounds/213380/ -* mesecons_noteblock_cowbell.ogg - * by freesound.org user timgormly - * Source: https://freesound.org/people/timgormly/sounds/159760/ -* mesecons_noteblock_flute.ogg - * by freesound.org user menegass - * Source: https://freesound.org/people/menegass/sounds/107307/ -* mesecons_noteblock_bass_guitar.ogg - * by freesound.org user Vres - * Source: https://freesound.org/people/Vres/sounds/133024/ -* mesecons_noteblock_hit.ogg - * by freesound.org user rubberduck - * Source: https://opengameart.org/content/100-cc0-sfx -* mesecons_noteblock_piano_digital.ogg - * by freesound.org user monotraum - * Source: https://freesound.org/people/monotraum/sounds/208889/ -* mesecons_noteblock_squarewave.ogg - * by Wuzzy -* mesecons_noteblock_xylophone_metal.ogg - * by freesound.org user JappeHallunken - * Source: https://freesound.org/people/JappeHallunken/sounds/501300/ -* mesecons_noteblock_xylophone_wood.ogg - * by freesound.org user connersaw8 - * Source: https://freesound.org/people/connersaw8/sounds/125271/ - -### Sounds licensed CC BY 3.0: - -* mesecons_noteblock_bass_guitar.ogg - * by freesound.org user Kyster - * Source: https://freesound.org/people/Kyster/sounds/117707/ -* mesecons_noteblock_didgeridoo.ogg - * by freesound.org user InspectorJ - * Source: https://freesound.org/people/InspectorJ/sounds/398272/ - -Everything else: -Created by Mesecons authors, licensed CC BY 3.0. - --------------------- -License links: -* CC0: http://creativecommons.org/publicdomain/zero/1.0/ -* CC BY 3.0: http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/init.lua b/mods/ITEMS/REDSTONE/mesecons_noteblock/init.lua index f521638f..342cbc7c 100644 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_noteblock/init.lua @@ -2,7 +2,6 @@ local S = minetest.get_translator("mesecons_noteblock") minetest.register_node("mesecons_noteblock:noteblock", { description = S("Note Block"), - _tt_help = S("Plays a musical note when powered by redstone power"), _doc_items_longdesc = S("A note block is a musical block which plays one of many musical notes and different intruments when it is punched or supplied with redstone power."), _doc_items_usagehelp = S("Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:").."\n\n".. @@ -10,22 +9,11 @@ S("• Glass: Sticks").."\n".. S("• Wood: Bass guitar").."\n".. S("• Stone: Bass drum").."\n".. S("• Sand or gravel: Snare drum").."\n".. -S("• Block of Gold: Bell").."\n".. -S("• Clay: Flute").."\n".. -S("• Packed Ice: Chime").."\n".. -S("• Wool: Guitar").."\n".. -S("• Bone Block: Xylophne").."\n".. -S("• Block of Iron: Iron xylophne").."\n".. -S("• Soul Sand: Cow bell").."\n".. -S("• Pumpkin: Didgeridoo").."\n".. -S("• Block of Emerald: Square wave").."\n".. -S("• Hay Bale: Banjo").."\n".. -S("• Glowstone: Electric piano").."\n".. S("• Anything else: Piano").."\n\n".. S("The note block will only play a note when it is below air, otherwise, it stays silent."), tiles = {"mesecons_noteblock.png"}, - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, is_ground_content = false, place_param2 = 0, on_rightclick = function (pos, node, clicker) -- change sound when rightclicked @@ -48,7 +36,7 @@ S("The note block will only play a note when it is below air, otherwise, it stay end, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -109,38 +97,19 @@ mesecon.noteblock_play = function (pos, param2) local param2_to_pitch = function(param2) return 2^((param2-12)/12) end - local pitched = false local soundname, pitch - if block_below_name == "mcl_core:goldblock" then - soundname="mesecons_noteblock_bell" - elseif block_below_name == "mcl_core:clay" then - soundname="mesecons_noteblock_flute" - elseif block_below_name == "mcl_core:packed_ice" then - soundname="mesecons_noteblock_chime" - elseif block_below_name == "mcl_core:bone_block" then - soundname="mesecons_noteblock_xylophone_wood" - elseif block_below_name == "mcl_core:ironblock" then - soundname="mesecons_noteblock_xylophone_metal" - elseif block_below_name == "mcl_nether:soul_sand" then - soundname="mesecons_noteblock_cowbell" - elseif block_below_name == "mcl_farming:pumpkin" or block_below_name == "mcl_farming:pumpkin_face" or block_below_name == "mcl_farming:pumpkin_face_light" then - soundname="mesecons_noteblock_didgeridoo" - elseif block_below_name == "mcl_core:emeraldblock" then - soundname="mesecons_noteblock_squarewave" - elseif block_below_name == "mcl_farming:hay_block" then - soundname="mesecons_noteblock_banjo" - elseif block_below_name == "mcl_nether:glowstone" then - soundname="mesecons_noteblock_piano_digital" - elseif minetest.get_item_group(block_below_name, "wool") ~= 0 then - soundname="mesecons_noteblock_guitar" - elseif minetest.get_item_group(block_below_name, "material_glass") ~= 0 then - soundname="mesecons_noteblock_hit" + if minetest.get_item_group(block_below_name, "material_glass") ~= 0 then + soundname="mesecons_noteblock_stick" + pitch = param2_to_pitch(param2) elseif minetest.get_item_group(block_below_name, "material_wood") ~= 0 then soundname="mesecons_noteblock_bass_guitar" + pitch = param2_to_pitch(param2) elseif minetest.get_item_group(block_below_name, "material_sand") ~= 0 then soundname="mesecons_noteblock_snare" + pitch = param2_to_pitch(param2) elseif minetest.get_item_group(block_below_name, "material_stone") ~= 0 then - soundname="mesecons_noteblock_bass_drum" + soundname="mesecons_noteblock_kick" + pitch = param2_to_pitch(param2) else -- Default: One of 25 piano notes soundname = soundnames_piano[param2] @@ -148,10 +117,6 @@ mesecon.noteblock_play = function (pos, param2) if param2 == 24 then pitch = 2^(1/12) end - pitched = true - end - if not pitched then - pitch = param2_to_pitch(param2) end minetest.sound_play(soundname, diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.de.tr b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.de.tr index b3fe2224..27282396 100644 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.de.tr @@ -1,22 +1,10 @@ # textdomain: mesecons_noteblock Note Block=Notenblock A note block is a musical block which plays one of many musical notes and different intruments when it is punched or supplied with redstone power.=Ein Notenblock ist ein musikalischer Block, der eine von vielen Noten von verschiedenen Instrumenten spielt, wenn er geschlagen oder mit Redstoneenergie versorgt wird. -Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:=Benutzen Sie den Notenblock, um die nächste Musiknote zu wählen (es gibt 25 Halbtöne bzw. oder 2 Oktaven). Das gespielte Instrument hängt vom Material des Blocks unter dem Notenblock ab: +Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:=Benutzen Sie den Notenblock, um die nächste Musiknote zu wählen (es gibt 25 Halbtöne, oder 2 Oktaven). Das gespielte Instrument hängt vom Material des Blocks unter dem Notenblock ab: • Glass: Sticks=• Glas: Stöcke • Wood: Bass guitar=• Holz: Bassgitarre • Stone: Bass drum=• Stein: Basstrommel • Sand or gravel: Snare drum=• Sand oder Kies: Kleine Trommel -• Block of Gold: Bell=• Goldblock: Glocke -• Clay: Flute=• Ton: Flöte -• Packed Ice: Chime=• Packeis: Glockenspiel -• Wool: Guitar=• Wolle: Gitarre -• Bone Block: Xylophne=• Knochenblock: Xylophon -• Block of Iron: Iron xylophne=• Eisenblock: Eisenxylophon -• Soul Sand: Cow bell=• Seelensand: Kuhglocke -• Pumpkin: Didgeridoo=• Kürbis: Didgeridoo -• Block of Emerald: Square wave=• Smaragdblock: Rechteckschwingung -• Hay Bale: Banjo=• Heuballen: Banjo -• Glowstone: Electric piano=• Leuchtstein: E-Piano • Anything else: Piano=• Alles andere: Klavier The note block will only play a note when it is below air, otherwise, it stays silent.=Der Notenblock wird nur eine Note spielen, wenn er sich unter Luft befindet, sonst bleibt er stumm. -Plays a musical note when powered by redstone power=Spielt eine Musiknote, wenn mit Redstoneenergie versorgt diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.es.tr b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.es.tr deleted file mode 100644 index 123862d2..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mesecons_noteblock -Note Block=Bloque musical -A note block is a musical block which plays one of many musical notes and different intruments when it is punched or supplied with redstone power.=Un bloque de notas es un bloque musical que reproduce una de las muchas notas musicales e instrumentos diferentes cuando se golpea o se le suministra energía de redstone. -Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:=Use el bloque de notas para elegir la siguiente nota musical (hay 25 semitonos, o 2 octavas). El instrumento jugado depende del material del bloque debajo del bloque de nota: -• Glass: Sticks=• Cristal: Palos -• Wood: Bass guitar=• Madera: Bajo -• Stone: Bass drum=• Piedra: Bombo -• Sand or gravel: Snare drum=• Arena o grava: tambor -• Anything else: Piano=• Cualquier otra cosa: piano -The note block will only play a note when it is below air, otherwise, it stays silent.=El bloque de notas solo reproducirá una nota cuando esté debajo del aire, de lo contrario, permanecerá en silencio. diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.fr.tr b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.fr.tr deleted file mode 100644 index f8d8e3d7..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/mesecons_noteblock.fr.tr +++ /dev/null @@ -1,22 +0,0 @@ -# textdomain: mesecons_noteblock -Note Block=Bloc de notes -A note block is a musical block which plays one of many musical notes and different intruments when it is punched or supplied with redstone power.=Un bloc de notes est un bloc musical qui joue l'une des nombreuses notes de musique et différents instruments lorsqu'il est frappé ou alimenté en redstone. -Use the note block to choose the next musical note (there are 25 semitones, or 2 octaves). The intrument played depends on the material of the block below the note block:=Utilisez le bloc de notes pour choisir la prochaine note de musique (il y a 25 demi-tons ou 2 octaves). L'instrument joué dépend du matériau du bloc situé sous le bloc de notes: -• Glass: Sticks=• Glass: Sticks -• Wood: Bass guitar=• Bois: Guitare Basse -• Stone: Bass drum=• Pierre: Grosse caisse -• Sand or gravel: Snare drum=• Sable ou gravier: Caisse claire -• Block of Gold: Bell=• Bloc d'OR: Cloche -• Clay: Flute=• Argile: Flûte -• Packed Ice: Chime=• Glace tassée: Carillon -• Wool: Guitar=• Laine: Guitare -• Bone Block: Xylophne=• Bloc osseux: Xylophne -• Block of Iron: Iron xylophne=• Bloc de fer: Xylophone en fer -• Soul Sand: Cow bell=• Soul Sand: Cloche de vache -• Pumpkin: Didgeridoo=• Citrouille: Didgeridoo -• Block of Emerald: Square wave=• Bloc d'émeraude: Onde carrée -• Hay Bale: Banjo=• Hay Bale: Banjo -• Glowstone: Electric piano=• Glowstone: Piano Electrique -• Anything else: Piano=• Autres: Piano -The note block will only play a note when it is below air, otherwise, it stays silent.=Le bloc de notes ne jouera une note que lorsqu'il est sous l'air, sinon il reste silencieux. -Plays a musical note when powered by redstone power=Joue une note de musique lorsqu'il est alimenté par une puissance redstone diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/template.txt index d0daa96a..c1d7dc02 100644 --- a/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_noteblock/locale/template.txt @@ -7,16 +7,4 @@ Use the note block to choose the next musical note (there are 25 semitones, or 2 • Stone: Bass drum= • Sand or gravel: Snare drum= • Anything else: Piano= -• Block of Gold: Bell -• Clay: Flute -• Packed Ice: Chime -• Wool: Guitar -• Bone Block: Xylophne -• Block of Iron: Iron xylophne -• Soul Sand: Cow bell -• Pumpkin: Didgeridoo -• Block of Emerald: Square wave -• Hay Bale: Banjo -• Glowstone: Electric piano The note block will only play a note when it is below air, otherwise, it stays silent.= -Plays a musical note when powered by redstone power= diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_banjo.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_banjo.ogg deleted file mode 100644 index 62d93d57..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_banjo.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_drum.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_drum.ogg deleted file mode 100644 index c470537e..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_drum.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_guitar.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_guitar.ogg index 48069d8e..eaa531b2 100644 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_guitar.ogg and b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bass_guitar.ogg differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bell.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bell.ogg deleted file mode 100644 index 6758e2c7..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_bell.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_chime.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_chime.ogg deleted file mode 100644 index 4c131263..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_chime.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_cowbell.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_cowbell.ogg deleted file mode 100644 index 32b4c9fb..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_cowbell.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_didgeridoo.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_didgeridoo.ogg deleted file mode 100644 index 221cd844..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_didgeridoo.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_flute.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_flute.ogg deleted file mode 100644 index 3a8bbc6a..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_flute.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_guitar.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_guitar.ogg deleted file mode 100644 index 1dcd5b83..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_guitar.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_hit.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_hit.ogg deleted file mode 100644 index cf8a5bfd..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_hit.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg new file mode 100644 index 00000000..c73b7117 Binary files /dev/null and b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_piano_digital.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_piano_digital.ogg deleted file mode 100644 index 6461a700..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_piano_digital.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg index 329a43b4..83a79441 100644 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg and b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_squarewave.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_squarewave.ogg deleted file mode 100644 index b6bc5c44..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_squarewave.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_stick.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_stick.ogg new file mode 100644 index 00000000..1fc2c04b Binary files /dev/null and b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_stick.ogg differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_metal.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_metal.ogg deleted file mode 100644 index 2d99327f..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_metal.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_wood.ogg b/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_wood.ogg deleted file mode 100644 index 5598f62d..00000000 Binary files a/mods/ITEMS/REDSTONE/mesecons_noteblock/sounds/mesecons_noteblock_xylophone_wood.ogg and /dev/null differ diff --git a/mods/ITEMS/REDSTONE/mesecons_pistons/init.lua b/mods/ITEMS/REDSTONE/mesecons_pistons/init.lua index eb69d338..7c2feb7c 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pistons/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pistons/init.lua @@ -64,7 +64,7 @@ local piston_remove_pusher = function (pos, oldnode) pos = pos, max_hear_distance = 31, gain = 0.3, - }, true) + }) end end @@ -85,7 +85,7 @@ local piston_remove_base = function (pos, oldnode) pos = pos, max_hear_distance = 31, gain = 0.3, - }, true) + }) end end @@ -108,7 +108,7 @@ local piston_on = function (pos, node) pos = pos, max_hear_distance = 31, gain = 0.3, - }, true) + }) end end @@ -178,7 +178,6 @@ local usagehelp_piston = S("This block can have one of 6 possible orientations." -- offstate minetest.register_node("mesecons_pistons:piston_normal_off", { description = S("Piston"), - _tt_help = S("Pushes block when powered by redstone power"), _doc_items_longdesc = S("A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however."), _doc_items_usagehelp = usagehelp_piston, tiles = { @@ -189,7 +188,7 @@ minetest.register_node("mesecons_pistons:piston_normal_off", { "mesecons_piston_back.png", "mesecons_piston_pusher_front.png" }, - groups = {handy = 1, piston=1}, + groups = {handy = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -200,7 +199,7 @@ minetest.register_node("mesecons_pistons:piston_normal_off", { action_on = piston_on, rules = piston_get_rules }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -221,7 +220,7 @@ minetest.register_node("mesecons_pistons:piston_normal_on", { "mesecons_piston_back.png", "mesecons_piston_on_front.png" }, - groups = {handy=1, piston=1, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -235,7 +234,7 @@ minetest.register_node("mesecons_pistons:piston_normal_on", { action_off = piston_off, rules = piston_get_rules }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -253,16 +252,14 @@ minetest.register_node("mesecons_pistons:piston_pusher_normal", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 1 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_normal_on", selection_box = piston_pusher_box, node_box = piston_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) @@ -281,7 +278,6 @@ local pistonspec_sticky = { -- offstate minetest.register_node("mesecons_pistons:piston_sticky_off", { description = S("Sticky Piston"), - _tt_help = S("Pushes or pulls block when powered by redstone power"), _doc_items_longdesc = S("A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled."), _doc_items_usagehelp = usagehelp_piston, @@ -293,7 +289,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_off", { "mesecons_piston_back.png", "mesecons_piston_pusher_front_sticky.png" }, - groups = {handy=1, piston=2}, + groups = {handy=1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -304,7 +300,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_off", { action_on = piston_on, rules = piston_get_rules }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -325,7 +321,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_on", { "mesecons_piston_back.png", "mesecons_piston_on_front.png" }, - groups = {handy=1, piston=2, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -339,7 +335,7 @@ minetest.register_node("mesecons_pistons:piston_sticky_on", { action_off = piston_off, rules = piston_get_rules }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -357,16 +353,14 @@ minetest.register_node("mesecons_pistons:piston_pusher_sticky", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 2 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_sticky_on", selection_box = piston_pusher_box, node_box = piston_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) @@ -410,7 +404,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_off", { "mesecons_piston_bottom.png", "mesecons_piston_bottom.png", }, - groups = {handy=1, piston=1, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -423,7 +417,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_off", { sounds = mcl_sounds.node_sound_stone_defaults({ footstep = mcl_sounds.node_sound_wood_defaults().footstep }), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -445,7 +439,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_on", { "mesecons_piston_bottom.png", "mesecons_piston_bottom.png", }, - groups = {handy=1, piston_=1, not_in_creative_inventory = 1}, + groups = {hanry=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -459,7 +453,7 @@ minetest.register_node("mesecons_pistons:piston_up_normal_on", { action_off = piston_off, rules = piston_up_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -477,16 +471,14 @@ minetest.register_node("mesecons_pistons:piston_up_pusher_normal", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 1 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_up_normal_on", selection_box = piston_up_pusher_box, node_box = piston_up_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) @@ -513,7 +505,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_off", { "mesecons_piston_bottom.png", "mesecons_piston_bottom.png", }, - groups = {handy=1, piston=2, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -526,7 +518,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_off", { action_on = piston_on, rules = piston_up_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -548,7 +540,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_on", { "mesecons_piston_bottom.png", "mesecons_piston_bottom.png", }, - groups = {handy=1, piston=2, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -562,7 +554,7 @@ minetest.register_node("mesecons_pistons:piston_up_sticky_on", { action_off = piston_off, rules = piston_up_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -580,16 +572,14 @@ minetest.register_node("mesecons_pistons:piston_up_pusher_sticky", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 2 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_up_sticky_on", selection_box = piston_up_pusher_box, node_box = piston_up_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) @@ -635,7 +625,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_off", { "mesecons_piston_bottom.png^[transformR180", "mesecons_piston_bottom.png^[transformR180", }, - groups = {handy=1, piston=1, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -646,7 +636,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_off", { action_on = piston_on, rules = piston_down_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -668,7 +658,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_on", { "mesecons_piston_bottom.png^[transformR180", "mesecons_piston_bottom.png^[transformR180", }, - groups = {handy=1, piston=1, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -682,7 +672,7 @@ minetest.register_node("mesecons_pistons:piston_down_normal_on", { action_off = piston_off, rules = piston_down_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -700,16 +690,14 @@ minetest.register_node("mesecons_pistons:piston_down_pusher_normal", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 1 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_down_normal_on", selection_box = piston_down_pusher_box, node_box = piston_down_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) @@ -733,7 +721,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_off", { "mesecons_piston_bottom.png^[transformR180", "mesecons_piston_bottom.png^[transformR180", }, - groups = {handy=1, piston=2, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -744,7 +732,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_off", { action_on = piston_on, rules = piston_down_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = function(pos, node, user, mode) if mode == screwdriver.ROTATE_AXIS then @@ -766,7 +754,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_on", { "mesecons_piston_bottom.png^[transformR180", "mesecons_piston_bottom.png^[transformR180", }, - groups = {handy=1, piston=1, not_in_creative_inventory = 1}, + groups = {handy=1, not_in_creative_inventory = 1}, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, @@ -780,7 +768,7 @@ minetest.register_node("mesecons_pistons:piston_down_sticky_on", { action_off = piston_off, rules = piston_down_rules, }}, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, on_rotate = false, }) @@ -798,16 +786,14 @@ minetest.register_node("mesecons_pistons:piston_down_pusher_sticky", { }, paramtype = "light", paramtype2 = "facedir", - groups = { piston_pusher = 2 }, is_ground_content = false, after_destruct = piston_remove_base, diggable = false, - drop = "", corresponding_piston = "mesecons_pistons:piston_down_sticky_on", selection_box = piston_down_pusher_box, node_box = piston_down_pusher_box, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, on_rotate = false, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.de.tr b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.de.tr index 9719812b..cebf8461 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.de.tr @@ -4,5 +4,3 @@ Piston=Kolben A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however.=Ein Kolben ist eine Redstonekomponente mit einem Schieber den Block oder die Blöcke vor ihm schieben wird, wenn er mit Redstoneenergie versorgt wird. Allerdings können nicht alle Blöcke können geschoben werden. Sticky Piston=Klebriger Kolben A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled.=Ein klebriger Kolben ist eine Redstonekomponente mit einem klebrigen Schieber, der ein- und ausgefahren werden kann. Er fährt aus, wenn er mit Redstoneenergie versorgt wird. Wenn der Schieber ausgefahren wird, schiebt er den Block oder die Blöcke vor ihm. Wird er eingefahren, zieht er den Block vor ihm zu sich. Nicht alle Blöcke können geschoben oder gezogen werden. -Pushes block when powered by redstone power=Schiebt Block, wenn mit Redstoneenergie versorgt -Pushes or pulls block when powered by redstone power=Schiebt oder zieht Block, wenn mit Redstoneenergie versorgt diff --git a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.es.tr b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.es.tr deleted file mode 100644 index 113472ac..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.es.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mesecons_pistons -This block can have one of 6 possible orientations.=Este bloque puede tener una de las 6 orientaciones posibles. -Piston=Pistón -A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however.=Un pistón es un componente de redstone con un empujador que empuja el bloque o bloques frente a él cuando se le suministra energía de redstone. Sin embargo, no todos los bloques se pueden empujar. -Sticky Piston=Pistón pegajoso -A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled.=Un pistón pegajoso es un componente de redstone con un empujador pegajoso que se puede extender y retraer. Se extiende cuando se le suministra energía de redstone. Cuando el empujador se extiende, empuja el bloque o bloques frente a él. Cuando se retrae, tira hacia atrás el bloque único que está frente a él. Tenga en cuenta que no todos los bloques se pueden empujar o tirar. diff --git a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.fr.tr b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.fr.tr deleted file mode 100644 index 9046e2d6..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/mesecons_pistons.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mesecons_pistons -This block can have one of 6 possible orientations.=Ce bloc peut avoir l'une des 6 orientations possibles. -Piston=Piston -A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however.=Un piston est un composant de redstone avec un poussoir qui pousse le ou les blocs devant lui lorsqu'il est alimenté en redstone. Cependant, tous les blocs ne peuvent pas être poussés. -Sticky Piston=Piston collant -A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled.=Un piston collant est un composant de redstone avec un poussoir collant qui peut être étendu et rétracté. Il se prolonge lorsqu'il est alimenté en redstone. Lorsque le poussoir s'étend, il pousse le ou les blocs devant lui. Quand il se rétracte, il recule le bloc unique devant lui. Notez que tous les blocs ne peuvent pas être poussés ou tirés. -Pushes block when powered by redstone power=Pousse le bloc lorsqu'il est alimenté par la puissance Redstone -Pushes or pulls block when powered by redstone power=Pousse ou tire le bloc lorsqu'il est alimenté par une puissance redstone diff --git a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/template.txt index 6b54c584..2cdd6512 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pistons/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_pistons/locale/template.txt @@ -4,5 +4,3 @@ Piston= A piston is a redstone component with a pusher which pushes the block or blocks in front of it when it is supplied with redstone power. Not all blocks can be pushed, however.= Sticky Piston= A sticky piston is a redstone component with a sticky pusher which can be extended and retracted. It extends when it is supplied with redstone power. When the pusher extends, it pushes the block or blocks in front of it. When it retracts, it pulls back the single block in front of it. Note that not all blocks can be pushed or pulled.= -Pushes block when powered by redstone power= -Pushes or pulls block when powered by redstone power= diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua index 2e161ae4..6148c700 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua @@ -99,16 +99,6 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te if not longdesc then longdesc = S("A pressure plate is a redstone component which supplies its surrounding blocks with redstone power while someone or something rests on top of it.") end - local tt = S("Provides redstone power when pushed") - if not activated_by then - tt = tt .. "\n" .. S("Pushable by players, mobs and objects") - elseif activated_by.mob and activated_by.player then - tt = tt .. "\n" .. S("Pushable by players and mobs") - elseif activated_by.mob then - tt = tt .. "\n" .. S("Pushable by mobs") - elseif activated_by.player then - tt = tt .. "\n" .. S("Pushable by players") - end mesecon.register_node(basename, { drawtype = "nodebox", @@ -125,7 +115,7 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te is_ground_content = false, pressureplate_basename = basename, pressureplate_activated_by = activated_by, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, },{ node_box = pp_box_off, @@ -135,13 +125,11 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }}, _doc_items_longdesc = longdesc, - _tt_help = tt, },{ node_box = pp_box_on, selection_box = pp_box_on, groups = groups_on, tiles = textures_on, - description = "", mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }}, _doc_items_create_entry = false, diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.de.tr b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.de.tr index 6e5e761e..678e061c 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.de.tr @@ -9,8 +9,4 @@ Jungle Pressure Plate=Dschungeldruckplatte A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Eine Holzdruckplatte ist eine Redstonekomponente, die ihre benachbarten Blöcke mit Redstoneenergie versorgt, solange sich ein beliebiges bewegliches Objekt (wie Gegenstände, Spieler und Mobs) auf ihm befindet. Stone Pressure Plate=Steindruckplatte A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Eine Steindruckplatte ist eine Redstonekomponente, die ihre benachbarten Blöcke mit Redstoneenergie versorgt, solange sich ein Spieler oder Mob auf ihm befindet. Sie wird von nichts anderem ausgelöst. -Provides redstone power when pushed=Gibt Redstoneenergie aus, wenn gedrückt -Pushable by players, mobs and objects=Drückbar von Spielern, Mobs und Objekten -Pushable by players and mobs=Drückbar von Spielern und Mobs -Pushable by players=Drückbar von Spielern -Pushable by mobs=Drückbar von Mobs + diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.es.tr b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.es.tr deleted file mode 100644 index d30dfbfa..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.es.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mesecons_pressureplates -A pressure plate is a redstone component which supplies its surrounding blocks with redstone power while someone or something rests on top of it.=Una placa de presión es un componente de redstone que suministra a sus bloques circundantes energía de redstone mientras alguien o algo descansa sobre ella. -Oak Pressure Plate=Placa de presión de roble -Acacia Pressure Plate=Placa de presión de acacia -Birch Pressure Plate=Placa de presión de abedul -Dark Oak Pressure Plate=Placa de presión de roble oscuro -Spruce Pressure Plate=Placa de presión de abeto -Jungle Pressure Plate=Placa de presión de jungla -A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Una placa de presión de madera es un componente de redstone que suministra a sus bloques circundantes energía de redstone mientras que cualquier objeto móvil (incluidos los objetos caídos, jugadores y mobs) descansa sobre él. -Stone Pressure Plate=Placa de presión de piedra -A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Una placa de presión de piedra es un componente de redstone que suministra a sus bloques circundantes poder de redstone mientras un jugador o una criatura se paran encima. No se desencadena por nada más. diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr deleted file mode 100644 index ef145de5..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/mesecons_pressureplates.fr.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mesecons_pressureplates -A pressure plate is a redstone component which supplies its surrounding blocks with redstone power while someone or something rests on top of it.=Une plaque de pression est un composant de redstone qui alimente ses blocs environnants en puissance de redstone pendant que quelqu'un ou quelque chose repose dessus. -Oak Pressure Plate=Plaque de pression en Chêne -Acacia Pressure Plate=Plaque de pression en Acacia -Birch Pressure Plate=Plaque de pression en Bouleau -Dark Oak Pressure Plate=Plaque de pression en Chêne Noir -Spruce Pressure Plate=Plaque de pression en Sapin -Jungle Pressure Plate=Plaque de pression en Acajou -A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.=Une plaque de pression en bois est un composant de redstone qui alimente ses blocs environnants en puissance de redstone tandis que tout objet mobile (y compris les objets lâchés, les joueurs et les mobs) repose dessus. -Stone Pressure Plate=Plaque de pression en pierre -A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.=Une plaque de pression en pierre est un composant de redstone qui alimente ses blocs environnants en puissance de redstone pendant qu'un joueur ou un mob se tient au-dessus. Il n'est déclenché par rien d'autre. -Provides redstone power when pushed=Fournit une puissance de redstone lorsqu'il est poussé -Pushable by players, mobs and objects=Poussable par les joueurs, les mobs et les objets -Pushable by players and mobs=Poussable par les joueurs et les mobs -Pushable by players=Poussable par les joueurs -Pushable by mobs=Poussable par les mobs diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt index 96eb3f92..0927706c 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/locale/template.txt @@ -9,8 +9,3 @@ Jungle Pressure Plate= A wooden pressure plate is a redstone component which supplies its surrounding blocks with redstone power while any movable object (including dropped items, players and mobs) rests on top of it.= Stone Pressure Plate= A stone pressure plate is a redstone component which supplies its surrounding blocks with redstone power while a player or mob stands on top of it. It is not triggered by anything else.= -Provides redstone power when pushed= -Pushable by players, mobs and objects= -Pushable by players and mobs= -Pushable by players= -Pushable by mobs= diff --git a/mods/ITEMS/REDSTONE/mesecons_solarpanel/init.lua b/mods/ITEMS/REDSTONE/mesecons_solarpanel/init.lua index b256d87e..0ea8ba63 100644 --- a/mods/ITEMS/REDSTONE/mesecons_solarpanel/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_solarpanel/init.lua @@ -20,8 +20,9 @@ minetest.register_node("mesecons_solarpanel:solar_panel_on", { fixed = boxes }, drop = "mesecons_solarpanel:solar_panel_off", + description=S("Daylight Sensor"), _doc_items_create_entry = false, - groups = {handy=1,axey=1, not_in_creative_inventory = 1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, not_in_creative_inventory = 1, material_wood=1}, sounds = mcl_sounds.node_sound_glass_defaults(), mesecons = {receptor = { state = mesecon.state.on, @@ -36,7 +37,7 @@ minetest.register_node("mesecons_solarpanel:solar_panel_on", { minetest.swap_node(pos, {name = "mesecons_solarpanel:solar_panel_inverted_off"}) mesecon.receptor_off(pos, mesecon.rules.pplate) end, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) @@ -58,7 +59,6 @@ minetest.register_node("mesecons_solarpanel:solar_panel_off", { }, groups = {handy=1,axey=1, material_wood=1}, description=S("Daylight Sensor"), - _tt_help = S("Provides redstone power when in sunlight") .. "\n" ..S("Can be inverted"), _doc_items_longdesc = S("Daylight sensors are redstone components which provide redstone power when they are in sunlight and no power otherwise. They can also be inverted.").."\n".. S("In inverted state, they provide redstone power when they are not in sunlight and no power otherwise."), _doc_items_usagehelp = S("Use the daylight sensor to toggle its state."), @@ -76,7 +76,7 @@ minetest.register_node("mesecons_solarpanel:solar_panel_off", { minetest.swap_node(pos, {name = "mesecons_solarpanel:solar_panel_inverted_on"}) mesecon.receptor_on(pos, mesecon.rules.pplate) end, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) @@ -139,6 +139,7 @@ minetest.register_node("mesecons_solarpanel:solar_panel_inverted_on", { }, drop = "mesecons_solarpanel:solar_panel_off", groups = {handy=1,axey=1, not_in_creative_inventory = 1, material_wood=1}, + description=S("Inverted Daylight Sensor"), _doc_items_create_entry = false, sounds = mcl_sounds.node_sound_glass_defaults(), mesecons = {receptor = { @@ -154,7 +155,7 @@ minetest.register_node("mesecons_solarpanel:solar_panel_inverted_on", { minetest.swap_node(pos, {name = "mesecons_solarpanel:solar_panel_off"}) mesecon.receptor_off(pos, mesecon.rules.pplate) end, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) @@ -192,7 +193,7 @@ minetest.register_node("mesecons_solarpanel:solar_panel_inverted_off", { minetest.swap_node(pos, {name = "mesecons_solarpanel:solar_panel_on"}) mesecon.receptor_on(pos, mesecon.rules.pplate) end, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.de.tr b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.de.tr index c33fe949..b9272882 100644 --- a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.de.tr @@ -4,5 +4,3 @@ Daylight sensors are redstone components which provide redstone power when they Inverted Daylight Sensor=Invertierter Tageslichtsensor Use the daylight sensor to toggle its state.=Benutzen Sie den Tageslichtsensor, um seinen Zustand umzuschalten. In inverted state, they provide redstone power when they are not in sunlight and no power otherwise.=Im invertierten Zustand erzeugen sie Redstoneenergie, wenn sie sich nicht im Tageslicht befinden, ansonsten nicht. -Provides redstone power when in sunlight=Gibt Redstoneenergie aus, wenn im Sonnenlicht -Can be inverted=Kann invertiert werden diff --git a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.es.tr b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.es.tr deleted file mode 100644 index 986a16d8..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.es.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mesecons_solarpanel -Daylight Sensor=Sensor de luz solar -Daylight sensors are redstone components which provide redstone power when they are in sunlight and no power otherwise. They can also be inverted.=Los sensores de luz diurna son componentes de redstone que proporcionan energía de redstone cuando están bajo la luz solar y no tienen energía de otra manera. También se pueden invertir. -Inverted Daylight Sensor=Sensor de luz solar invertido -Use the daylight sensor to toggle its state.=Use el sensor de luz diurna para alternar su estado. -In inverted state, they provide redstone power when they are not in sunlight and no power otherwise.=En estado invertido, proporcionan energía de redstone cuando no están bajo la luz solar y no tienen energía de otra manera. diff --git a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.fr.tr b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.fr.tr deleted file mode 100644 index a0b7ad7b..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/mesecons_solarpanel.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mesecons_solarpanel -Daylight Sensor=Capteur de luminosité -Daylight sensors are redstone components which provide redstone power when they are in sunlight and no power otherwise. They can also be inverted.=Les capteurs de luminosité sont des composants de redstone qui fournissent une puissance de redstone lorsqu'ils sont en plein soleil et aucune autrement. Ils peuvent également être inversés. -Use the daylight sensor to toggle its state.=Utilisez le capteur de luminosité pour basculer son état. -Inverted Daylight Sensor=Capteur de luminosité inversé -In inverted state, they provide redstone power when they are not in sunlight and no power otherwise.=En état inversé, ils fournissent une puissance de redstone lorsqu'ils ne sont pas en plein soleil et aucune puissance autrement. -Provides redstone power when in sunlight=Fournit une puissance de redstone en plein soleil -Can be inverted=Peut être inversé diff --git a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/template.txt index 84c3ce42..b776f507 100644 --- a/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_solarpanel/locale/template.txt @@ -4,5 +4,3 @@ Daylight sensors are redstone components which provide redstone power when they Use the daylight sensor to toggle its state.= Inverted Daylight Sensor= In inverted state, they provide redstone power when they are not in sunlight and no power otherwise.= -Provides redstone power when in sunlight= -Can be inverted= diff --git a/mods/ITEMS/REDSTONE/mesecons_torch/init.lua b/mods/ITEMS/REDSTONE/mesecons_torch/init.lua index 5e68306f..dabc292e 100644 --- a/mods/ITEMS/REDSTONE/mesecons_torch/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_torch/init.lua @@ -50,7 +50,7 @@ local torch_get_input_rules = function(node) end local torch_overheated = function(pos) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.02, max_hear_distance = 6}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.02, max_hear_distance = 6}) minetest.add_particle({ pos = {x=pos.x, y=pos.y+0.2, z=pos.z}, velocity = {x = 0, y = 0.6, z = 0}, @@ -117,7 +117,7 @@ minetest.register_craft({ {"mcl_core:stick"},} }) -mcl_torches.register_torch("mesecon_torch_off", S("Redstone Torch (off)"), +mcl_torches.register_torch("mesecon_torch_off", "Redstone Torch (off)", nil, nil, "jeija_torches_off.png", @@ -143,7 +143,7 @@ mcl_torches.register_torch("mesecon_torch_off", S("Redstone Torch (off)"), } ) -mcl_torches.register_torch("mesecon_torch_overheated", S("Redstone Torch (overheated)"), +mcl_torches.register_torch("mesecon_torch_overheated", "Redstone Torch (overheated)", nil, nil, "jeija_torches_off.png", @@ -176,10 +176,6 @@ mcl_torches.register_torch("mesecon_torch_on", S("Redstone Torch"), {dig_immediate=3, dig_by_water=1, redstone_torch=1, mesecon_ignore_opaque_dig=1}, mcl_sounds.node_sound_wood_defaults(), { - on_destruct = function(pos, oldnode) - local node = minetest.get_node(pos) - torch_action_on(pos, node) - end, mesecons = { receptor = { state = mesecon.state.on, @@ -190,14 +186,12 @@ mcl_torches.register_torch("mesecon_torch_on", S("Redstone Torch"), rules = torch_get_input_rules, action_on = torch_action_on, }, - }, - _tt_help = S("Provides redstone power when it's not powered itself"), + } } ) minetest.register_node("mesecons_torch:redstoneblock", { description = S("Block of Redstone"), - _tt_help = S("Provides redstone power"), _doc_items_longdesc = S("A block of redstone permanently supplies redstone power to its surrounding blocks."), tiles = {"redstone_redstone_block.png"}, stack_max = 64, @@ -208,7 +202,7 @@ minetest.register_node("mesecons_torch:redstoneblock", { state = mesecon.state.on, rules = mesecon.rules.alldirs, }}, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.de.tr b/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.de.tr index 7f3f94c5..2166ccdd 100644 --- a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.de.tr @@ -1,10 +1,6 @@ # textdomain: mesecons_torch Redstone Torch=Redstonefackel -Redstone Torch (off)=Redstonefackel (aus) -Redstone Torch (overheated)=Redstonefackel (überhitzt) A redstone torch is a redstone component which can be used to invert a redstone signal. It supplies its surrounding blocks with redstone power, except for the block it is attached to. A redstone torch is normally lit, but it can also be turned off by powering the block it is attached to. While unlit, a redstone torch does not power anything.=Eine Redstonefackel ist eine Redstonekomponente, die benutzt werden kann, um ein Redstonesignal zu invertieren. Sie versorgt die benachbarten Blöcke mit Redstoneenergie, ausgenommen den Block, an dem sie befestigt wurde. Eine Redstonefackel leuchtet normalerweise, aber sie kann auch ausgeschaltet werden, indem der Block, an dem sie befestigt ist, bestromt wird. Wenn sie aus ist, wird sie nichts mit Redstoneenergie versorgen. Redstone torches can be placed at the side and on the top of full solid opaque blocks.=Redstonefackeln können an der Seite und auf der Oberseite der meisten undurchsichtigen ganzen Blöcke platziert werden. Block of Redstone=Redstoneblock A block of redstone permanently supplies redstone power to its surrounding blocks.=Ein Redstoneblock versorgt seine benachbarten Blöcke beständig mit Redstoneenergie. -Provides redstone power when it's not powered itself=Gibt Redstoneenergie aus, wenn es nicht selbst bestromt ist -Provides redstone power=Gibt Redstoneenergie aus diff --git a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.es.tr b/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.es.tr deleted file mode 100644 index b27fa1b5..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mesecons_torch -Redstone Torch=Antorcha de redstone -Redstone Torch (off)=Antorcha de redstone (Apagada) -Redstone Torch (overheated)=Antorcha de redstone (Sobrecalentada) -A redstone torch is a redstone component which can be used to invert a redstone signal. It supplies its surrounding blocks with redstone power, except for the block it is attached to. A redstone torch is normally lit, but it can also be turned off by powering the block it is attached to. While unlit, a redstone torch does not power anything.=Una antorcha de redstone es un componente de redstone que se puede utilizar para invertir una señal de redstone. Suministra a sus bloques circundantes energía de redstone, excepto el bloque al que está unido. Una antorcha de redstone normalmente está encendida, pero también se puede apagar alimentando el bloque al que está conectado. Mientras está apagada, una antorcha de redstone no alimenta nada. -Redstone torches can be placed at the side and on the top of full solid opaque blocks.=Las antorchas Redstone se pueden colocar a un lado y en la parte superior de bloques opacos sólidos completos. -Block of Redstone=Bloque de redstone -A block of redstone permanently supplies redstone power to its surrounding blocks.=Un bloque de redstone suministra permanentemente energía de redstone a sus bloques circundantes. diff --git a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.fr.tr b/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.fr.tr deleted file mode 100644 index 8c223d83..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_torch/locale/mesecons_torch.fr.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mesecons_torch -Redstone Torch=Torche de Redstone -Redstone Torch (off)=Torche de Redstone (inactive) -Redstone Torch (overheated)=Torche de Redstone (surchauffé) -A redstone torch is a redstone component which can be used to invert a redstone signal. It supplies its surrounding blocks with redstone power, except for the block it is attached to. A redstone torch is normally lit, but it can also be turned off by powering the block it is attached to. While unlit, a redstone torch does not power anything.=Une torche redstone est un composant redstone qui peut être utilisé pour inverser un signal redstone. Il alimente ses blocs environnants en énergie redstone, à l'exception du bloc auquel il est attaché. Une torche Redstone est normalement allumée, mais elle peut également être éteinte en alimentant le bloc auquel elle est attachée. Tant qu'elle n'est pas allumée, une torche redstone n'alimente rien. -Redstone torches can be placed at the side and on the top of full solid opaque blocks.=Les torches Redstone peuvent être placées sur le côté et sur le dessus de blocs opaques solides. -Block of Redstone=Bloc de Redstone -A block of redstone permanently supplies redstone power to its surrounding blocks.=Un bloc de redstone fournit en permanence de l'énergie redstone à ses blocs environnants. -Provides redstone power when it's not powered itself=Fournit une puissance redstone lorsqu'il n'est pas alimenté lui-même -Provides redstone power=Fournit une puissance redstone diff --git a/mods/ITEMS/REDSTONE/mesecons_torch/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_torch/locale/template.txt index 8cde3ad6..fb5ba71f 100644 --- a/mods/ITEMS/REDSTONE/mesecons_torch/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_torch/locale/template.txt @@ -1,10 +1,6 @@ # textdomain: mesecons_torch Redstone Torch= -Redstone Torch (off)= -Redstone Torch (overheated)= A redstone torch is a redstone component which can be used to invert a redstone signal. It supplies its surrounding blocks with redstone power, except for the block it is attached to. A redstone torch is normally lit, but it can also be turned off by powering the block it is attached to. While unlit, a redstone torch does not power anything.= Redstone torches can be placed at the side and on the top of full solid opaque blocks.= Block of Redstone= A block of redstone permanently supplies redstone power to its surrounding blocks.= -Provides redstone power when it's not powered itself= -Provides redstone power= diff --git a/mods/ITEMS/REDSTONE/mesecons_walllever/init.lua b/mods/ITEMS/REDSTONE/mesecons_walllever/init.lua index 053990ed..035c32e0 100644 --- a/mods/ITEMS/REDSTONE/mesecons_walllever/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_walllever/init.lua @@ -47,13 +47,12 @@ minetest.register_node("mesecons_walllever:wall_lever_off", { groups = {handy=1, dig_by_water=1, destroy_by_lava_flow=1, dig_by_piston=1, attached_node_facedir=1}, is_ground_content = false, description=S("Lever"), - _tt_help = S("Provides redstone power while it's turned on"), _doc_items_longdesc = S("A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state."), _doc_items_usagehelp = S("Use the lever to flip it on or off."), on_rightclick = function (pos, node) minetest.swap_node(pos, {name="mesecons_walllever:wall_lever_on", param2=node.param2}) mesecon.receptor_on(pos, lever_get_output_rules(node)) - minetest.sound_play("mesecons_lever", {pos=pos}, true) + minetest.sound_play("mesecons_lever", {pos=pos}) end, node_placement_prediction = "", on_place = function(itemstack, placer, pointed_thing) @@ -116,7 +115,7 @@ minetest.register_node("mesecons_walllever:wall_lever_off", { if success then if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=above, gain=1}) end end return itemstack @@ -128,7 +127,7 @@ minetest.register_node("mesecons_walllever:wall_lever_off", { state = mesecon.state.off }}, on_rotate = on_rotate, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) minetest.register_node("mesecons_walllever:wall_lever_on", { @@ -136,6 +135,7 @@ minetest.register_node("mesecons_walllever:wall_lever_on", { tiles = { "jeija_wall_lever_lever_light_on.png", }, + inventory_image = "jeija_wall_lever.png", paramtype = "light", paramtype2 = "facedir", mesh = "jeija_wall_lever_on.obj", @@ -148,11 +148,12 @@ minetest.register_node("mesecons_walllever:wall_lever_on", { groups = {handy=1, not_in_creative_inventory = 1, dig_by_water=1, destroy_by_lava_flow=1, dig_by_piston=1, attached_node_facedir=1}, is_ground_content = false, drop = '"mesecons_walllever:wall_lever_off" 1', + description=S("Lever"), _doc_items_create_entry = false, on_rightclick = function (pos, node) minetest.swap_node(pos, {name="mesecons_walllever:wall_lever_off", param2=node.param2}) mesecon.receptor_off(pos, lever_get_output_rules(node)) - minetest.sound_play("mesecons_lever", {pos=pos}, true) + minetest.sound_play("mesecons_lever", {pos=pos}) end, sounds = mcl_sounds.node_sound_stone_defaults(), mesecons = {receptor = { @@ -160,7 +161,7 @@ minetest.register_node("mesecons_walllever:wall_lever_on", { state = mesecon.state.on }}, on_rotate = on_rotate, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) diff --git a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.de.tr b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.de.tr index 27a3bb55..053f8191 100644 --- a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.de.tr @@ -2,4 +2,3 @@ Lever=Hebel A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state.=Ein Hebel ist eine Redstonekomponente, die ein- und ausgeschaltet werden kann. Er versorgt seine benachbarten Blöcke mit Redstoneenergie, solange er sich im eingeschalteten Zustand befindet. Use the lever to flip it on or off.=Benutzen Sie den Hebel, um ihn ein- oder auszuschalten. -Provides redstone power while it's turned on=Gibt Redstoneenergie aus, während er eingeschaltet ist diff --git a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.es.tr b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.es.tr deleted file mode 100644 index e0e55298..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mesecons_wallever -Lever=Palanca -A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state.=EUna palanca es un componente de redstone que se puede activar y desactivar. Suministra energía redstone a bloques adyacentes mientras está en el estado "encendido". -Use the lever to flip it on or off.=Use la palanca para encenderlo o apagarlo. diff --git a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.fr.tr b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.fr.tr deleted file mode 100644 index 3d5d23c8..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/mesecons_walllever.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mesecons_wallever -Lever=Levier -A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state.=Un levier est un composant de redstone qui peut être activé et désactivé. Il fournit de l'énergie redstone aux blocs adjacents pendant qu'il est à l'état "activé". -Use the lever to flip it on or off.=Utilisez le levier pour l'activer ou le désactiver. -Provides redstone power while it's turned on=Fournit une puissance de redstone lorsqu'il est activé diff --git a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/template.txt index 0187e6d2..59988e90 100644 --- a/mods/ITEMS/REDSTONE/mesecons_walllever/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_walllever/locale/template.txt @@ -2,4 +2,3 @@ Lever= A lever is a redstone component which can be flipped on and off. It supplies redstone power to adjacent blocks while it is in the “on” state.= Use the lever to flip it on or off.= -Provides redstone power while it's turned on= diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/init.lua b/mods/ITEMS/REDSTONE/mesecons_wires/init.lua index 75acd3ce..106f3fb6 100644 --- a/mods/ITEMS/REDSTONE/mesecons_wires/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_wires/init.lua @@ -217,7 +217,7 @@ local function register_wires() local tiles_off = { crossing_off, crossing_off, straight0_off, straight1_off, straight0_off, straight1_off } local tiles_on = { crossing_on, crossing_on, straight0_on, straight1_on, straight0_on, straight1_on } - local wirehelp, tt, longdesc, usagehelp, img, desc_off, desc_on + local wirehelp, longdesc, usagehelp, img, desc_off, desc_on if nodeid == "00000000" then -- Non-connected redstone wire nodebox.fixed = {-8/16, -.5, -8/16, 8/16, -.5+1/64, 8/16} @@ -225,7 +225,6 @@ local function register_wires() tiles_off = { dot_off, dot_off, "blank.png", "blank.png", "blank.png", "blank.png" } tiles_on = { dot_on, dot_on, "blank.png", "blank.png", "blank.png", "blank.png" } - tt = S("Transmits redstone power, powers mechanisms") longdesc = S("Redstone is a versatile conductive mineral which transmits redstone power. It can be placed on the ground as a trail.").."\n".. S("A redstone trail can be in two states: Powered or not powered. A powered redstone trail will power (and thus activate) adjacent redstone components.").."\n".. S("Redstone power can be received from various redstone components, such as a block of redstone or a button. Redstone power is used to activate numerous mechanisms, such as redstone lamps or pistons.") @@ -260,7 +259,6 @@ S("Read the help entries on the other redstone components to learn how redstone description = desc_off, inventory_image = img, wield_image = img, - _tt_help = tt, _doc_items_create_entry = wirehelp, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.de.tr b/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.de.tr index d6d82e8e..0fa27836 100644 --- a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.de.tr +++ b/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.de.tr @@ -8,4 +8,3 @@ Redstone=Redstone Powered Redstone Spot (@1)=Bestromter Redstoneklecks (@1) Redstone Trail (@1)=Redstonespur (@1) Powered Redstone Trail (@1)=Bestromte Redstonespur (@1) -Transmits redstone power, powers mechanisms=Überträgt Redstoneenergie, bestromt Mechanismen diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.es.tr b/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.es.tr deleted file mode 100644 index beac8451..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mesecons_wires -Redstone is a versatile conductive mineral which transmits redstone power. It can be placed on the ground as a trail.=Redstone es un mineral conductor versátil que transmite el poder de redstone. Se puede colocar en el suelo como un sendero. -A redstone trail can be in two states: Powered or not powered. A powered redstone trail will power (and thus activate) adjacent redstone components.=Un sendero de redstone puede estar en dos estados: alimentado o no alimentado. Un rastro de redstone alimentado alimentará (y por lo tanto activará) los componentes adyacentes de redstone. -Redstone power can be received from various redstone components, such as a block of redstone or a button. Redstone power is used to activate numerous mechanisms, such as redstone lamps or pistons.=El poder de Redstone se puede recibir de varios componentes de redstone, como un bloque de redstone o un botón. El poder de Redstone se utiliza para activar numerosos mecanismos, como las lámparas de redstone o los pistones. -Place redstone on the ground to build a redstone trail. The trails will connect to each other automatically and it can also go over hills.=Coloque redstone en el suelo para construir un sendero de redstone. Los senderos se conectarán entre sí de forma automática y también pueden pasar por colinas. -Read the help entries on the other redstone components to learn how redstone components interact.=Lea las entradas de ayuda en los otros componentes de redstone para aprender cómo interactúan los componentes de redstone. -Redstone=Redstone -Powered Redstone Spot (@1)=Punto de Redstone accionado (@1) -Redstone Trail (@1)=Sendero de Redstone (@1) -Powered Redstone Trail (@1)=Sendero de Redstone con motorizado (@1) diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.fr.tr b/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.fr.tr deleted file mode 100644 index 66a4230f..00000000 --- a/mods/ITEMS/REDSTONE/mesecons_wires/locale/mesecons_wires.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mesecons_wires -Redstone is a versatile conductive mineral which transmits redstone power. It can be placed on the ground as a trail.=Redstone est un minéral conducteur polyvalent qui transmet la puissance de redstone. Il peut être placé au sol comme un sentier. -A redstone trail can be in two states: Powered or not powered. A powered redstone trail will power (and thus activate) adjacent redstone components.=Un sentier de redstone peut être dans deux états: alimenté ou non alimenté. Un sentier Redstone alimenté alimentera (et activera donc) les composants Redstone adjacents. -Redstone power can be received from various redstone components, such as a block of redstone or a button. Redstone power is used to activate numerous mechanisms, such as redstone lamps or pistons.=L'alimentation Redstone peut être reçue de divers composants Redstone, tels qu'un bloc de Redstone ou un bouton. La puissance Redstone est utilisée pour activer de nombreux mécanismes, tels que les lampes ou les pistons Redstone. -Place redstone on the ground to build a redstone trail. The trails will connect to each other automatically and it can also go over hills. An easy way to power a redstone trail is by placing a redstone torch.=Placez du redstone sur le sol pour construire un sentier de redstone. Les sentiers se connecteront automatiquement et pourront également traverser des collines. Un moyen facile d'alimenter une piste de redstone est de placer une torche de redstone. -Read the help entries on the other redstone components to learn how redstone components interact.=Lisez les entrées d'aide sur les autres composants Redstone pour savoir comment les composants Redstone interagissent. -Redstone=Redstone -Powered Redstone Spot (@1)=Spot Redstone alimenté (@1) -Redstone Trail (@1)=Sentier Redstone (@1) -Powered Redstone Trail (@1)=Sentier Redstone alimenté (@1) -Transmits redstone power, powers mechanisms=Transmet la puissance redstone, alimente les mécanismes diff --git a/mods/ITEMS/REDSTONE/mesecons_wires/locale/template.txt b/mods/ITEMS/REDSTONE/mesecons_wires/locale/template.txt index 91e6bdee..632a3eef 100644 --- a/mods/ITEMS/REDSTONE/mesecons_wires/locale/template.txt +++ b/mods/ITEMS/REDSTONE/mesecons_wires/locale/template.txt @@ -8,4 +8,3 @@ Redstone= Powered Redstone Spot (@1)= Redstone Trail (@1)= Powered Redstone Trail (@1)= -Transmits redstone power, powers mechanisms= diff --git a/mods/ITEMS/mcl_anvils/depends.txt b/mods/ITEMS/mcl_anvils/depends.txt index 98a3e017..021df7cb 100644 --- a/mods/ITEMS/mcl_anvils/depends.txt +++ b/mods/ITEMS/mcl_anvils/depends.txt @@ -1,5 +1,4 @@ mcl_init -mcl_formspec mcl_sounds mcl_core? screwdriver? diff --git a/mods/ITEMS/mcl_anvils/init.lua b/mods/ITEMS/mcl_anvils/init.lua index bfeed83f..b2608cd8 100644 --- a/mods/ITEMS/mcl_anvils/init.lua +++ b/mods/ITEMS/mcl_anvils/init.lua @@ -17,17 +17,13 @@ local function get_anvil_formspec(set_name) end return "size[9,8.75]".. "background[-0.19,-0.25;9.41,9.49;mcl_anvils_inventory.png]".. + mcl_vars.inventory_header.. "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "list[context;input;1,2.5;1,1;]".. - mcl_formspec.get_itemslot_bg(1,2.5,1,1).. "list[context;input;4,2.5;1,1;1]".. - mcl_formspec.get_itemslot_bg(4,2.5,1,1).. "list[context;output;8,2.5;1,1;]".. - mcl_formspec.get_itemslot_bg(8,2.5,1,1).. "label[3,0.1;"..minetest.formspec_escape(minetest.colorize("#313131", S("Repair and Name"))).."]".. "field[3.25,1;4,1;name;;"..minetest.formspec_escape(set_name).."]".. "field_close_on_enter[name;false]".. @@ -183,7 +179,7 @@ local function update_anvil_slots(meta) else -- Custom name set. Colorize it! -- This makes the name visually different from unnamed items - meta:set_string("description", minetest.colorize(NAME_COLOR, new_name)) + meta:set_string("description", core.colorize(NAME_COLOR, new_name)) end -- Save the raw name internally, too meta:set_string("name", new_name) @@ -220,17 +216,17 @@ local function damage_anvil(pos) local new if node.name == "mcl_anvils:anvil" then minetest.swap_node(pos, {name="mcl_anvils:anvil_damage_1", param2=node.param2}) - minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dig, {pos=pos, max_hear_distance=16}, true) + minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dig, {pos=pos, max_hear_distance=16}) return false elseif node.name == "mcl_anvils:anvil_damage_1" then minetest.swap_node(pos, {name="mcl_anvils:anvil_damage_2", param2=node.param2}) - minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dig, {pos=pos, max_hear_distance=16}, true) + minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dig, {pos=pos, max_hear_distance=16}) return false elseif node.name == "mcl_anvils:anvil_damage_2" then -- Destroy anvil local meta = minetest.get_meta(pos) drop_anvil_items(pos, meta) - minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dug, {pos=pos, max_hear_distance=16}, true) + minetest.sound_play(mcl_sounds.node_sound_metal_defaults().dug, {pos=pos, max_hear_distance=16}) minetest.remove_node(pos) minetest.check_single_for_falling({x=pos.x, y=pos.y+1, z=pos.z}) return true @@ -275,7 +271,7 @@ local anvildef = { } }, sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 1200, + _mcl_blast_resistance = 6000, _mcl_hardness = 5, _mcl_after_falling = damage_anvil_by_falling, @@ -453,7 +449,6 @@ S("• Tool + Tool: Place two tools of the same type in the input slots. The “ S("• Tool + Material: Some tools can also be repaired by combining them with an item that it's made of. For example, iron pickaxes can be repaired with iron ingots. This repairs the tool by 25%.").."\n".. S("Armor counts as a tool. It is possible to repair and rename a tool in a single step.").."\n\n".. S("The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.") -anvildef0._tt_help = S("Repair and rename items") local anvildef1 = table.copy(anvildef) anvildef1.description = S("Slightly Damaged Anvil") @@ -490,16 +485,3 @@ if minetest.get_modpath("doc") then doc.add_entry_alias("nodes", "mcl_anvils:anvil", "nodes", "mcl_anvils:anvil_damage_1") doc.add_entry_alias("nodes", "mcl_anvils:anvil", "nodes", "mcl_anvils:anvil_damage_2") end - --- Legacy -minetest.register_lbm({ - label = "Update anvil formspecs (0.60.0", - name = "mcl_anvils:update_formspec_0_60_0", - nodenames = { "group:anvil" }, - run_at_every_load = false, - action = function(pos, node) - local meta = minetest.get_meta(pos) - local set_name = meta:get_string("set_name") - meta:set_string("formspec", get_anvil_formspec(set_name)) - end, -}) diff --git a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.de.tr b/mods/ITEMS/mcl_anvils/locale/mcl_anvils.de.tr index 9e7d8833..29010796 100644 --- a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.de.tr +++ b/mods/ITEMS/mcl_anvils/locale/mcl_anvils.de.tr @@ -13,4 +13,3 @@ Armor counts as a tool. It is possible to repair and rename a tool in a single s The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.=Der Amboss hat begrenze Lebensdauer und 3 Schadensstufen: Kein Schaden, leicht beschädigt, und stark beschädigt. Jedes mal, wenn Sie etwas reparieren oder umbenennen, gibt es eine 12%-ige Chance, dass der Amboss Schaden nimmt. Ambosse können auch beschädigt werden, wenn sie um mehr als 1 Block fallen. Wenn ein sehr beschädigter Amboss erneut beschädigt wird, wird er zerstört. Slightly Damaged Anvil=Leicht beschädigter Amboss Very Damaged Anvil=Stark beschädigter Amboss -Repair and rename items=Für die Reparatur und Umbenennung von Gegenständen diff --git a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.es.tr b/mods/ITEMS/mcl_anvils/locale/mcl_anvils.es.tr deleted file mode 100644 index 7212b92b..00000000 --- a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.es.tr +++ /dev/null @@ -1,15 +0,0 @@ -# textdomain: mcl_anvils -Set Name=Establece un nombre -Repair and Name=Reparar y nombrar -Inventory=Inventario -Anvil=Yunque -The anvil allows you to repair tools and armor, and to give names to items. It has a limited durability, however. Don't let it fall on your head, it could be quite painful!=El yunque le permite reparar herramientas y armaduras, y dar nombres a los elementos. Sin embargo, tiene una durabilidad limitada. No lo dejes caer sobre tu cabeza, ¡podría ser bastante doloroso! -To use an anvil, rightclick it. An anvil has 2 input slots (on the left) and one output slot.=Para usar un yunque, haga clic derecho sobre él. Un yunque tiene 2 ranuras de entrada (a la izquierda) y una ranura de salida. -To rename items, put an item stack in one of the item slots while keeping the other input slot empty. Type in a name, hit enter or “Set Name”, then take the renamed item from the output slot.=Para cambiar el nombre de los elementos, coloque una pila de elementos en una de las ranuras de elementos mientras mantiene vacía la otra ranura de entrada. Escriba un nombre, presione enter o "Establecer nombre", luego obtenga el elemento renombrado en la ranura de salida. -There are two possibilities to repair tools (and armor):=Hay dos posibilidades para reparar herramientas (y armaduras): -• Tool + Tool: Place two tools of the same type in the input slots. The “health” of the repaired tool is the sum of the “health” of both input tools, plus a 12% bonus.=• Herramienta + Herramienta: Coloque dos herramientas del mismo tipo en las ranuras de entrada. La "salud" de la herramienta reparada es la suma de la "salud" de ambas herramientas, con un bono del 12%. -• Tool + Material: Some tools can also be repaired by combining them with an item that it's made of. For example, iron pickaxes can be repaired with iron ingots. This repairs the tool by 25%.=• Herramienta + Material: Algunas herramientas también pueden repararse combinándolas con un elemento del que está hecho. Por ejemplo, los picos de hierro pueden repararse con lingotes de hierro. Esto repara la herramienta en un 25%. -Armor counts as a tool. It is possible to repair and rename a tool in a single step.=La armadura cuenta como una herramienta. Es posible reparar y cambiar el nombre de una herramienta en un solo paso. -The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.=El yunque tiene una durabilidad limitada y 3 niveles de daño: sin daños, ligeramente dañado y muy dañado. Cada vez que reparas o cambias el nombre de algo, hay un 12% de posibilidades de que el yunque se dañe. Los yunques también tienen la posibilidad de dañarse cuando caen en más de 1 bloque. Si un yunque muy dañado se daña nuevamente, se destruye. -Slightly Damaged Anvil=Yunque dañado -Very Damaged Anvil=Yunque muy dañado diff --git a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.fr.tr b/mods/ITEMS/mcl_anvils/locale/mcl_anvils.fr.tr deleted file mode 100644 index 1f03de8e..00000000 --- a/mods/ITEMS/mcl_anvils/locale/mcl_anvils.fr.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_anvils -Set Name=Définir le Nom -Repair and Name=Réparation et Nomme -Inventory=Inventaire -Anvil=Enclume -The anvil allows you to repair tools and armor, and to give names to items. It has a limited durability, however. Don't let it fall on your head, it could be quite painful!=L'enclume vous permet de réparer des outils et des armures, et de donner des noms à des objets. Il a cependant une durabilité limitée. Ne la laissez pas tomber sur la tête, cela pourrait être assez douloureux! -To use an anvil, rightclick it. An anvil has 2 input slots (on the left) and one output slot.=Pour utiliser une enclume, faites un clic droit dessus. Une enclume a 2 emplacements d'entrée (à gauche) et un emplacement de sortie. -To rename items, put an item stack in one of the item slots while keeping the other input slot empty. Type in a name, hit enter or “Set Name”, then take the renamed item from the output slot.=Pour renommer des objets, placez une pile d'objets dans l'un des emplacements d'objets tout en laissant l'autre emplacement d'entrée vide. Tapez un nom, appuyez sur Entrée ou sur «Définir le nom», puis prenez l'élément renommé dans l'emplacement de sortie. -There are two possibilities to repair tools (and armor):=Il existe deux possibilités pour réparer les outils (et les armures): -• Tool + Tool: Place two tools of the same type in the input slots. The “health” of the repaired tool is the sum of the “health” of both input tools, plus a 12% bonus.=• Outil + Outil: Placez deux outils du même type dans les emplacements d'entrée. La "santé" de l'outil réparé est la somme de la "santé" des deux outils d'entrée, plus un bonus de 12%. -• Tool + Material: Some tools can also be repaired by combining them with an item that it's made of. For example, iron pickaxes can be repaired with iron ingots. This repairs the tool by 25%.=• Outil + Matériel: Certains outils peuvent également être réparés en les combinant avec un élément dont il est fait. Par exemple, les pioches de fer peuvent être réparées avec des lingots de fer. Cela répare l'outil de 25%. -Armor counts as a tool. It is possible to repair and rename a tool in a single step.=L'armure compte comme un outil. Il est possible de réparer et de renommer un outil en une seule étape. -The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.=L'enclume a une durabilité limitée et 3 niveaux de dommages: en bon état, légèrement endommagé et très endommagé. Chaque fois que vous réparez ou renommez quelque chose, il y a 12% de chances que l'enclume soit endommagée. Les enclumes ont également une chance d'être endommagées lorsqu'elles tombent de plus d'un bloc. Si une enclume très endommagée est à nouveau endommagée, elle est détruite. -Slightly Damaged Anvil=Enclume Légèrement Endommagée -Very Damaged Anvil=Enclume Très Endommagée -Repair and rename items=Réparer et renommer des objets diff --git a/mods/ITEMS/mcl_anvils/locale/template.txt b/mods/ITEMS/mcl_anvils/locale/template.txt index ebc741c0..c76b7174 100644 --- a/mods/ITEMS/mcl_anvils/locale/template.txt +++ b/mods/ITEMS/mcl_anvils/locale/template.txt @@ -13,4 +13,3 @@ Armor counts as a tool. It is possible to repair and rename a tool in a single s The anvil has limited durability and 3 damage levels: undamaged, slightly damaged and very damaged. Each time you repair or rename something, there is a 12% chance the anvil gets damaged. Anvils also have a chance of being damaged when they fall by more than 1 block. If a very damaged anvil is damaged again, it is destroyed.= Slightly Damaged Anvil= Very Damaged Anvil= -Repair and rename items= diff --git a/mods/ITEMS/mcl_anvils/textures/mcl_anvils_inventory.png b/mods/ITEMS/mcl_anvils/textures/mcl_anvils_inventory.png index 7be42962..df84b725 100644 Binary files a/mods/ITEMS/mcl_anvils/textures/mcl_anvils_inventory.png and b/mods/ITEMS/mcl_anvils/textures/mcl_anvils_inventory.png differ diff --git a/mods/ITEMS/mcl_armor/README.txt b/mods/ITEMS/mcl_armor/README.txt deleted file mode 100644 index 5e68b574..00000000 --- a/mods/ITEMS/mcl_armor/README.txt +++ /dev/null @@ -1,30 +0,0 @@ -[mod] Visible Player Armor [mcl_armor] -====================================== - -Adds craftable armor that is visible to other players. Each armor item worn contributes to -a player's armor group level making them less vulnerable to some forms of damage. - -Armor takes damage when a player is hurt. - -This mod is based on 3D Armor mod by stu. - -Media credits -------------- -* mcl_armor_equip_diamond.ogg -* mcl_armor_unequip_diamond.ogg -Licensed CC0, by Freesound.org user juryduty. -Source: - -* mcl_armor_equip_iron.ogg -* mcl_armor_unequip_iron.ogg -Licensed CC0, by Freesound.org user mtchanary. -Source: - -* mcl_armor_equip_generic.ogg -* mcl_armor_unequip_generic.ogg -Licensed (CC BY-SA 3.0) by Mito551 - -All other sounds licensed CC0 by OpenGameArt.org user artisticdude. -Source: - -Other media files: See MineClone 2 license. diff --git a/mods/ITEMS/mcl_armor/alias.lua b/mods/ITEMS/mcl_armor/alias.lua deleted file mode 100644 index 19c2424d..00000000 --- a/mods/ITEMS/mcl_armor/alias.lua +++ /dev/null @@ -1,23 +0,0 @@ -minetest.register_alias("3d_armor:helmet_leather", "mcl_armor:helmet_leather") -minetest.register_alias("3d_armor:helmet_iron", "mcl_armor:helmet_iron") -minetest.register_alias("3d_armor:helmet_chain", "mcl_armor:helmet_chain") -minetest.register_alias("3d_armor:helmet_gold", "mcl_armor:helmet_gold") -minetest.register_alias("3d_armor:helmet_diamond", "mcl_armor:helmet_diamond") - -minetest.register_alias("3d_armor:chestplate_leather", "mcl_armor:chestplate_leather") -minetest.register_alias("3d_armor:chestplate_iron", "mcl_armor:chestplate_iron") -minetest.register_alias("3d_armor:chestplate_chain", "mcl_armor:chestplate_chain") -minetest.register_alias("3d_armor:chestplate_gold", "mcl_armor:chestplate_gold") -minetest.register_alias("3d_armor:chestplate_diamond", "mcl_armor:chestplate_diamond") - -minetest.register_alias("3d_armor:leggings_leather", "mcl_armor:leggings_leather") -minetest.register_alias("3d_armor:leggings_iron", "mcl_armor:leggings_iron") -minetest.register_alias("3d_armor:leggings_chain", "mcl_armor:leggings_chain") -minetest.register_alias("3d_armor:leggings_gold", "mcl_armor:leggings_gold") -minetest.register_alias("3d_armor:leggings_diamond", "mcl_armor:leggings_diamond") - -minetest.register_alias("3d_armor:boots_leather", "mcl_armor:boots_leather") -minetest.register_alias("3d_armor:boots_iron", "mcl_armor:boots_iron") -minetest.register_alias("3d_armor:boots_chain", "mcl_armor:boots_chain") -minetest.register_alias("3d_armor:boots_gold", "mcl_armor:boots_gold") -minetest.register_alias("3d_armor:boots_diamond", "mcl_armor:boots_diamond") diff --git a/mods/ITEMS/mcl_armor/init.lua b/mods/ITEMS/mcl_armor/init.lua deleted file mode 100644 index 1eb03d32..00000000 --- a/mods/ITEMS/mcl_armor/init.lua +++ /dev/null @@ -1,392 +0,0 @@ -local S = minetest.get_translator("mcl_armor") - -dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor.lua") -dofile(minetest.get_modpath(minetest.get_current_modname()).."/alias.lua") - --- Regisiter Head Armor - -local longdesc = S("This is a piece of equippable armor which reduces the amount of damage you receive.") -local usage = S("To equip it, put it on the corresponding armor slot in your inventory menu.") - -minetest.register_tool("mcl_armor:helmet_leather", { - description = S("Leather Cap"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_helmet_leather.png", - groups = {armor_head=1, mcl_armor_points=1, mcl_armor_uses=56}, - _repair_material = "mcl_mobitems:leather", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_leather", - _mcl_armor_unequip = "mcl_armor_unequip_leather", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:helmet_iron", { - description = S("Iron Helmet"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_helmet_iron.png", - groups = {armor_head=1, mcl_armor_points=2, mcl_armor_uses=166}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:helmet_gold", { - description = S("Golden Helmet"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_helmet_gold.png", - groups = {armor_head=1, mcl_armor_points=2, mcl_armor_uses=78}, - _repair_material = "mcl_core:gold_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:helmet_diamond",{ - description = S("Diamond Helmet"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_helmet_diamond.png", - groups = {armor_head=1, mcl_armor_points=3, mcl_armor_uses=364, mcl_armor_toughness=2}, - _repair_material = "mcl_core:diamond", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_diamond", - _mcl_armor_unequip = "mcl_armor_unequip_diamond", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:helmet_chain", { - description = S("Chain Helmet"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_helmet_chain.png", - groups = {armor_head=1, mcl_armor_points=2, mcl_armor_uses=166}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_chainmail", - _mcl_armor_unequip = "mcl_armor_unequip_chainmail", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - --- Regisiter Torso Armor - -minetest.register_tool("mcl_armor:chestplate_leather", { - description = S("Leather Tunic"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_chestplate_leather.png", - groups = {armor_torso=1, mcl_armor_points=3, mcl_armor_uses=81}, - _repair_material = "mcl_mobitems:leather", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_leather", - _mcl_armor_unequip = "mcl_armor_unequip_leather", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:chestplate_iron", { - description = S("Iron Chestplate"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_chestplate_iron.png", - groups = {armor_torso=1, mcl_armor_points=6, mcl_armor_uses=241}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:chestplate_gold", { - description = S("Golden Chestplate"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_chestplate_gold.png", - groups = {armor_torso=1, mcl_armor_points=5, mcl_armor_uses=113}, - _repair_material = "mcl_core:gold_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:chestplate_diamond",{ - description = S("Diamond Chestplate"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_chestplate_diamond.png", - groups = {armor_torso=1, mcl_armor_points=8, mcl_armor_uses=529, mcl_armor_toughness=2}, - _repair_material = "mcl_core:diamond", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_diamond", - _mcl_armor_unequip = "mcl_armor_unequip_diamond", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:chestplate_chain", { - description = S("Chain Chestplate"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_chestplate_chain.png", - groups = {armor_torso=1, mcl_armor_points=5, mcl_armor_uses=241}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_chainmail", - _mcl_armor_unequip = "mcl_armor_unequip_chainmail", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - --- Regisiter Leg Armor - -minetest.register_tool("mcl_armor:leggings_leather", { - description = S("Leather Pants"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_leggings_leather.png", - groups = {armor_legs=1, mcl_armor_points=2, mcl_armor_uses=76}, - _repair_material = "mcl_mobitems:leather", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_leather", - _mcl_armor_unequip = "mcl_armor_unequip_leather", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:leggings_iron", { - description = S("Iron Leggings"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_leggings_iron.png", - groups = {armor_legs=1, mcl_armor_points=5, mcl_armor_uses=226}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:leggings_gold", { - description = S("Golden Leggings"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_leggings_gold.png", - groups = {armor_legs=1, mcl_armor_points=3, mcl_armor_uses=106}, - _repair_material = "mcl_core:gold_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:leggings_diamond",{ - description = S("Diamond Leggings"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_leggings_diamond.png", - groups = {armor_legs=1, mcl_armor_points=6, mcl_armor_uses=496, mcl_armor_toughness=2}, - _repair_material = "mcl_core:diamond", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_diamond", - _mcl_armor_unequip = "mcl_armor_unequip_diamond", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:leggings_chain", { - description = S("Chain Leggings"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_leggings_chain.png", - groups = {armor_legs=1, mcl_armor_points=4, mcl_armor_uses=226}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_chainmail", - _mcl_armor_unequip = "mcl_armor_unequip_chainmail", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) --- Regisiter Boots - -minetest.register_tool("mcl_armor:boots_leather", { - description = S("Leather Boots"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_boots_leather.png", - groups = {armor_feet=1, mcl_armor_points=1, mcl_armor_uses=66}, - _repair_material = "mcl_mobitems:leather", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_leather", - _mcl_armor_unequip = "mcl_armor_unequip_leather", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:boots_iron", { - description = S("Iron Boots"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_boots_iron.png", - groups = {armor_feet=1, mcl_armor_points=2, mcl_armor_uses=196}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:boots_gold", { - description = S("Golden Boots"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_boots_gold.png", - groups = {armor_feet=1, mcl_armor_points=1, mcl_armor_uses=92}, - _repair_material = "mcl_core:gold_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_iron", - _mcl_armor_unequip = "mcl_armor_unequip_iron", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:boots_diamond",{ - description = S("Diamond Boots"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_boots_diamond.png", - groups = {armor_feet=1, mcl_armor_points=3, mcl_armor_uses=430, mcl_armor_toughness=2}, - _repair_material = "mcl_core:diamond", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_diamond", - _mcl_armor_unequip = "mcl_armor_unequip_diamond", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - -minetest.register_tool("mcl_armor:boots_chain", { - description = S("Chain Boots"), - _doc_items_longdesc = longdesc, - _doc_items_usagehelp = usage, - inventory_image = "mcl_armor_inv_boots_chain.png", - groups = {armor_feet=1, mcl_armor_points=1, mcl_armor_uses=196}, - _repair_material = "mcl_core:iron_ingot", - sounds = { - _mcl_armor_equip = "mcl_armor_equip_chainmail", - _mcl_armor_unequip = "mcl_armor_unequip_chainmail", - }, - on_place = armor.on_armor_use, - on_secondary_use = armor.on_armor_use, -}) - --- Register Craft Recipies - -local craft_ingreds = { - leather = { "mcl_mobitems:leather" }, - iron = { "mcl_core:iron_ingot", "mcl_core:iron_nugget" }, - gold = { "mcl_core:gold_ingot", "mcl_core:gold_nugget" }, - diamond = { "mcl_core:diamond" }, - chain = { nil, "mcl_core:iron_nugget"} , -} - -for k, v in pairs(craft_ingreds) do - -- material - local m = v[1] - -- cooking result - local c = v[2] - if m ~= nil then - minetest.register_craft({ - output = "mcl_armor:helmet_"..k, - recipe = { - {m, m, m}, - {m, "", m}, - {"", "", ""}, - }, - }) - minetest.register_craft({ - output = "mcl_armor:chestplate_"..k, - recipe = { - {m, "", m}, - {m, m, m}, - {m, m, m}, - }, - }) - minetest.register_craft({ - output = "mcl_armor:leggings_"..k, - recipe = { - {m, m, m}, - {m, "", m}, - {m, "", m}, - }, - }) - minetest.register_craft({ - output = "mcl_armor:boots_"..k, - recipe = { - {m, "", m}, - {m, "", m}, - }, - }) - end - if c ~= nil then - minetest.register_craft({ - type = "cooking", - output = c, - recipe = "mcl_armor:helmet_"..k, - cooktime = 10, - }) - minetest.register_craft({ - type = "cooking", - output = c, - recipe = "mcl_armor:chestplate_"..k, - cooktime = 10, - }) - minetest.register_craft({ - type = "cooking", - output = c, - recipe = "mcl_armor:leggings_"..k, - cooktime = 10, - }) - minetest.register_craft({ - type = "cooking", - output = c, - recipe = "mcl_armor:boots_"..k, - cooktime = 10, - }) - end -end - diff --git a/mods/ITEMS/mcl_armor/locale/mcl_armor.es.tr b/mods/ITEMS/mcl_armor/locale/mcl_armor.es.tr deleted file mode 100644 index e770dff0..00000000 --- a/mods/ITEMS/mcl_armor/locale/mcl_armor.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_armor -This is a piece of equippable armor which reduces the amount of damage you receive.=Dies ist ein Teil einer tragbaren Rüstung, die die Menge an Schaden, den Sie erleiden, reduziert. -To equip it, put it on the corresponding armor slot in your inventory menu.=Um es zu tragen, legen Sie es in den passenden Rüstungsplatz in ihrem Inventarmenü. -Leather Cap=Sombrero de cuero -Iron Helmet=Casco de hierro -Golden Helmet=Casco de oro -Diamond Helmet=Casco de diamante -Chain Helmet=Casco de cota de mallas -Leather Tunic=Túnica de cuero -Iron Chestplate=Peto de hierro -Golden Chestplate=Peto de oro -Diamond Chestplate=Peto de diamante -Chain Chestplate=Peto de cota de mallas -Leather Pants=Pantalones de cuero -Iron Leggings=Grebas de hierro -Golden Leggings=Grebas de oro -Diamond Leggings=Grebas de diamante -Chain Leggings=Grebas de cota de mallas -Leather Boots=Botas de cuero -Iron Boots=Botas de hierro -Golden Boots=Botas de oro -Diamond Boots=Botas de diamante -Chain Boots=Botas de cota de mallas diff --git a/mods/ITEMS/mcl_armor/locale/mcl_armor.fr.tr b/mods/ITEMS/mcl_armor/locale/mcl_armor.fr.tr deleted file mode 100644 index 6f55a73f..00000000 --- a/mods/ITEMS/mcl_armor/locale/mcl_armor.fr.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_armor -This is a piece of equippable armor which reduces the amount of damage you receive.=Il s'agit d'un morceau d'armure équipable qui réduit la quantité de dégâts que vous recevez. -To equip it, put it on the corresponding armor slot in your inventory menu.=Pour l'équiper, placez-le sur l'emplacement d'armure correspondant dans votre menu d'inventaire. -Leather Cap=Casquette en Cuir -Iron Helmet=Casque de Fer -Golden Helmet=Casque d'Or -Diamond Helmet=Casque de Diamant -Chain Helmet=Casque de Mailles -Leather Tunic=Tunique en Cuir -Iron Chestplate=Plastron de Fer -Golden Chestplate=Plastron d'Or -Diamond Chestplate=Plastron de Diamant -Chain Chestplate=Cotte de Mailles -Leather Pants=Pantalon de Cuir -Iron Leggings=Jambières de Fer -Golden Leggings=Jambières d'Or -Diamond Leggings=Jambières de Diamant -Chain Leggings=Jambières de Mailles -Leather Boots=Bottes de Cuir -Iron Boots=Bottes de Fer -Golden Boots=Bottes d'Or -Diamond Boots=Bottes de Diamant -Chain Boots=Bottes de Mailles diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_chainmail.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_chainmail.ogg deleted file mode 100644 index 3e98e0e0..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_chainmail.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_diamond.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_diamond.ogg deleted file mode 100644 index 9fd655ab..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_diamond.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_generic.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_generic.ogg deleted file mode 100644 index 1d3b3de2..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_generic.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_iron.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_iron.ogg deleted file mode 100644 index 7001c446..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_iron.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_leather.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_leather.ogg deleted file mode 100644 index 378ec316..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_equip_leather.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_chainmail.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_chainmail.ogg deleted file mode 100644 index 01692b5d..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_chainmail.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_diamond.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_diamond.ogg deleted file mode 100644 index bdfdf803..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_diamond.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_generic.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_generic.ogg deleted file mode 100644 index c04975d4..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_generic.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_iron.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_iron.ogg deleted file mode 100644 index 969ac030..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_iron.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_leather.ogg b/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_leather.ogg deleted file mode 100644 index e634b89d..00000000 Binary files a/mods/ITEMS/mcl_armor/sounds/mcl_armor_unequip_leather.ogg and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_chain_preview.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_chain_preview.png deleted file mode 100644 index 87ab8d6a..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_chain_preview.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_diamond.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_diamond.png deleted file mode 100644 index 51ece245..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_diamond.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_leather.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_leather.png deleted file mode 100644 index 6297859f..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_leather.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_chain.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_chain.png deleted file mode 100644 index eaed6b6d..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_chain.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_chain.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_chain.png deleted file mode 100644 index d8229d8d..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_chain.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_chain.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_chain.png deleted file mode 100644 index 92c1e4e0..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_chain.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_chain.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_chain.png deleted file mode 100644 index 7648cda2..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_chain.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_leather.png b/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_leather.png deleted file mode 100644 index b35086a9..00000000 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_leather.png and /dev/null differ diff --git a/mods/ITEMS/mcl_armor_stand/LICENSE.txt b/mods/ITEMS/mcl_armor_stand/LICENSE.txt deleted file mode 100644 index 3ef95067..00000000 --- a/mods/ITEMS/mcl_armor_stand/LICENSE.txt +++ /dev/null @@ -1,8 +0,0 @@ -[mod] 3d Armor Stand [mcl_armor_stand] -====================================== - -License Source Code: LGPL v2.1 - -License Media: CC BY-SA 3.0 - -Source Code: Copyright (C) 2013 Stuart Jones - LGPL diff --git a/mods/ITEMS/mcl_armor_stand/README.txt b/mods/ITEMS/mcl_armor_stand/README.txt deleted file mode 100644 index 4ecbbba6..00000000 --- a/mods/ITEMS/mcl_armor_stand/README.txt +++ /dev/null @@ -1,6 +0,0 @@ -[mod] 3d Armor Stand [mcl_armor_stand] -====================================== - -Depends: mcl_armor - -Adds an armor stand for armor storage and display. diff --git a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.es.tr b/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.es.tr deleted file mode 100644 index 8e33389a..00000000 --- a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_armor_stand -Armor Stand=Soporte para armadura -An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.=Un soporte para armadura es un objeto decorativo que puede mostrar diferentes piezas de armadura. Cualquier cosa que los jugadores puedan usar como armadura también se puede poner en un soporte para armadura. -Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.=Simplemente coloca un objeto de armadura en el soporte para armadura. Para tomar la pieza superior de armadura del soporte para armadura, seleccione su mano y use la tecla de posición en el soporte para armadura. diff --git a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.fr.tr b/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.fr.tr deleted file mode 100644 index 867b3f04..00000000 --- a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_armor_stand -Armor Stand=Support d'armure -An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.=Un support d'armure est un objet décoratif qui peut afficher différentes pièces d'armure. Tout ce que les joueurs peuvent porter comme armure peut également être placé sur un support d'armure. -Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.=Placez simplement un objet d'armure sur le support d'armure. Pour prendre la pièce d'armure du support d'armure, sélectionnez votre main et utilisez la touche "Placer" sur le support d'armure. -Displays pieces of armor=Displays pieces of armor diff --git a/mods/ITEMS/mcl_banners/README.txt b/mods/ITEMS/mcl_banners/README.txt index 4de3ce43..330f46d6 100644 --- a/mods/ITEMS/mcl_banners/README.txt +++ b/mods/ITEMS/mcl_banners/README.txt @@ -1,6 +1,6 @@ License of code: WTFPL -License of textures: See README.md in top directory of MineClone 2. +License of textures: See README.me in top directory of MineClone 2. License of models: GPLv3 (https://www.gnu.org/licenses/gpl-3.0.html) Models author: 22i. diff --git a/mods/ITEMS/mcl_banners/init.lua b/mods/ITEMS/mcl_banners/init.lua index 57adbed8..d10b6847 100644 --- a/mods/ITEMS/mcl_banners/init.lua +++ b/mods/ITEMS/mcl_banners/init.lua @@ -67,7 +67,7 @@ local on_dig_banner = function(pos, node, digger) if not item:is_empty() then minetest.handle_node_drops(pos, {item:to_string()}, digger) else - minetest.handle_node_drops(pos, {"mcl_banners:banner_item_white"}, digger) + minetest.handle_node_drops(pos, {"mcl_bannes:banner_item_white"}, digger) end -- Remove node minetest.remove_node(pos) @@ -195,7 +195,7 @@ end -- Standing banner node -- This one is also used for the help entry to avoid spamming the help with 16 entries. minetest.register_node("mcl_banners:standing_banner", { - _doc_items_entry_name = S("Banner"), + _doc_items_entry_name = "Banner", _doc_items_image = "mcl_banners_item_base.png^mcl_banners_item_overlay.png", _doc_items_longdesc = S("Banners are tall colorful decorative blocks. They can be placed on the floor and at walls. Banners can be emblazoned with a variety of patterns using a lot of dye in crafting."), _doc_items_usagehelp = S("Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 12 layers on a banner that way. If the banner includes a gradient, only 3 layers are possible.").."\n".. @@ -219,7 +219,7 @@ S("You can copy the pattern of a banner by placing two banners of the same color wield_image = "mcl_banners_item_base.png", selection_box = {type = "fixed", fixed= {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} }, - groups = {axey=1,handy=1, attached_node = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1, material_wood=1, dig_by_piston=1, flammable=-1 }, + groups = {axey=1,handy=1, attached_node = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1, material_wood=1, dig_by_piston=1 }, stack_max = 16, sounds = node_sounds, drop = "", -- Item drops are handled in entity code @@ -230,7 +230,7 @@ S("You can copy the pattern of a banner by placing two banners of the same color respawn_banner_entity(pos, node) end, _mcl_hardness = 1, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, on_rotate = function(pos, node, user, mode, param2) if mode == screwdriver.ROTATE_FACE then local meta = minetest.get_meta(pos) @@ -263,7 +263,7 @@ minetest.register_node("mcl_banners:hanging_banner", { wall_bottom = { -0.49, -0.49, -0.49, -0.41, -0.41, 0.49 }, }, selection_box = {type = "wallmounted", wall_side = {-0.5, -0.5, -0.5, -4/16, 0.5, 0.5} }, - groups = {axey=1,handy=1, attached_node = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1, material_wood=1, flammable=-1 }, + groups = {axey=1,handy=1, attached_node = 1, not_in_creative_inventory = 1, not_in_craft_guide = 1, material_wood=1 }, stack_max = 16, sounds = node_sounds, drop = "", -- Item drops are handled in entity code @@ -274,7 +274,7 @@ minetest.register_node("mcl_banners:hanging_banner", { respawn_banner_entity(pos, node) end, _mcl_hardness = 1, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, on_rotate = function(pos, node, user, mode, param2) if mode == screwdriver.ROTATE_FACE then local r = screwdriver.rotate.wallmounted(pos, node, mode) @@ -320,13 +320,12 @@ for colorid, colortab in pairs(mcl_banners.colors) do -- TODO: Combine the items into only 1 item. minetest.register_craftitem(itemstring, { description = desc, - _tt_help = S("Paintable decoration"), _doc_items_create_entry = false, inventory_image = inv, wield_image = inv, -- Banner group groups together the banner items, but not the nodes. -- Used for crafting. - groups = { banner = 1, deco_block = 1, flammable = -1 }, + groups = { banner = 1, deco_block = 1, }, stack_max = 16, on_place = function(itemstack, placer, pointed_thing) @@ -376,7 +375,7 @@ for colorid, colortab in pairs(mcl_banners.colors) do minetest.set_node(pointed_thing.under, {name=new_node}) -- Play sound (from mcl_potions mod) - minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true) + minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}) return itemstack end @@ -458,7 +457,7 @@ for colorid, colortab in pairs(mcl_banners.colors) do if not minetest.settings:get_bool("creative_mode") then itemstack:take_item() end - minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos}, true) + minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos}) return itemstack end, diff --git a/mods/ITEMS/mcl_banners/locale/mcl_banners.de.tr b/mods/ITEMS/mcl_banners/locale/mcl_banners.de.tr index 3bf65629..958192ba 100644 --- a/mods/ITEMS/mcl_banners/locale/mcl_banners.de.tr +++ b/mods/ITEMS/mcl_banners/locale/mcl_banners.de.tr @@ -74,4 +74,3 @@ You can copy the pattern of a banner by placing two banners of the same color in @1 Chief Indented=Gezacktes Haupt (@1) And one additional layer=Und eine zusätzliche Schicht And @1 additional layers=Und @1 zusätzliche Schichten -Paintable decoration=Bemalbare Dekoration diff --git a/mods/ITEMS/mcl_banners/locale/mcl_banners.es.tr b/mods/ITEMS/mcl_banners/locale/mcl_banners.es.tr deleted file mode 100644 index 1368bc5a..00000000 --- a/mods/ITEMS/mcl_banners/locale/mcl_banners.es.tr +++ /dev/null @@ -1,76 +0,0 @@ -# textdomain: mcl_banners -White Banner=Estandarte blanco -White=Blanco -Grey Banner=Estandarte gris -Grey=Gris -Light Grey Banner=Estandarte gris claro -Light Grey=Gris claro -Black Banner=Estandarte negro -Black=Negro -Red Banner=Estandarte roja -Red=Rojo -Yellow Banner=Estandarte amarilla -Yellow=Amarillo -Green Banner=Estandarte verde -Green=Verde -Cyan Banner=Estandarte cian -Cyan=Cian -Blue Banner=Estandarte azul -Blue=Azul -Magenta Banner=Estandarte magenta -Magenta=Magenta -Orange Banner=Estandarte naranja -Orange=Naranja -Purple Banner=Estandarte morada -Purple=Morado -Brown Banner=Estandarte marrón -Brown=Marrón -Pink Banner=Estandarte rosa -Pink=Rosa -Lime Banner=Estandarte verde lima -Lime=Verde lima -Light Blue Banner=Estandarte azul claro -Light Blue=Azul claro -Banners are tall colorful decorative blocks. They can be placed on the floor and at walls. Banners can be emblazoned with a variety of patterns using a lot of dye in crafting.=Los estandartes son bloques decorativos altos y coloridos. Se pueden colocar en el suelo y en las paredes. Los estandartes se pueden estampar con una variedad de patrones usando mucho tinte en la elaboración. -Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 12 layers on a banner that way. If the banner includes a gradient, only 3 layers are possible.=Usa la elaboración para dibujar un patrón en la parte superior del estandarte. Los estandartes estampados pueden volver a estamparse para combinar varios patrones. Puede dibujar hasta 12 capas en un estandarte de esa manera. Si la pancarta incluye un degradado, solo son posibles 3 capas. -You can copy the pattern of a banner by placing two banners of the same color in the crafting grid—one needs to be emblazoned, the other one must be clean. Finally, you can use a banner on a cauldron with water to wash off its top-most layer.=Puede copiar el patrón de un estandarte colocando dos estandartes del mismo color en la cuadrícula de fabricación: una debe ser estampada, la otra debe estar limpia. Finalmente, puede usar un estandarte en un caldero con agua para lavar su capa superior. -@1 Bordure=Borde (@1) -@1 Bricks=Bloque (@1) -@1 Roundel=Medallón (@1) -@1 Creeper Charge=Carga de enredadera (@1) -@1 Saltire=Saltire (@1) -@1 Bordure Indented=Sangrado del borde (@1) -@1 Per Bend Inverted=Curva invertida (@1) -@1 Per Bend Sinister Inverted=Curva siniestra invertida (@1) -@1 Per Bend=Curva (@1) -@1 Per Bend Sinister=Curva siniestra (@1) -@1 Flower Charge=Carga de la flor (@1) -@1 Gradient=Farbverlauf (@1) -@1 Base Gradient=Zócalo Degradado (@1) -@1 Per Fess Inverted=División invertida (@1) -@1 Per Fess=División (@1) -@1 Per Pale=Palidez (@1) -@1 Per Pale Inverted=Palidez invertida (@1) -@1 Thing Charge=Carga de objeto (@1) -@1 Lozenge=Rombo (@1) -@1 Skull Charge=Carga de calabera (@1) -@1 Paly=Poster (@1) -@1 Base Dexter Canton=Zócalo inferior derecho (@1) -@1 Base Sinister Canton=Zócalo inferior izquierdo (@1) -@1 Chief Dexter Canton=Encabezado superior derecho (@1) -@1 Chief Sinister Canton=Encabezado superior izquierdo (@1) -@1 Cross=Cruce (@1) -@1 Base=Zócalo (@1) -@1 Pale=Palidez (@1) -@1 Bend Sinister=Curva siniestra (@1) -@1 Bend=Curva (@1) -@1 Pale Dexter=Palidez derecho (@1) -@1 Fess=División (@1) -@1 Pale Sinister=Palidez siniestra (@1) -@1 Chief=Encabezado (@1) -@1 Chevron=Viga (@1) -@1 Chevron Inverted=Viga invertida (@1) -@1 Base Indented=Zócalo sangrada (@1) -@1 Chief Indented=Sangrado del encabezado (@1) -And one additional layer=Y una capa adicional -And @1 additional layers=Y @1 capas adicionales diff --git a/mods/ITEMS/mcl_banners/locale/mcl_banners.fr.tr b/mods/ITEMS/mcl_banners/locale/mcl_banners.fr.tr deleted file mode 100644 index ee877272..00000000 --- a/mods/ITEMS/mcl_banners/locale/mcl_banners.fr.tr +++ /dev/null @@ -1,77 +0,0 @@ -# textdomain: mcl_banners -White Banner=Bannière Blanche -White=Blanc -Grey Banner=Bannière Grise -Grey=Gris -Light Grey Banner=Bannière Gris Clair -Light Grey=Gris Clair -Black Banner=Bannière Noir -Black=Noir -Red Banner=Bannière Rouge -Red=Rouge -Yellow Banner=Bannière Jaune -Yellow=Jaune -Green Banner=Bannière Verte -Green=Vert -Cyan Banner=Bannière Cyan -Cyan=Cyan -Blue Banner=Bannière Bleue -Blue=Blue -Magenta Banner=Bannière Magenta -Magenta=Magenta -Orange Banner=Bannière Orange -Orange=Orange -Purple Banner=Bannière Violette -Violet=Violet -Brown Banner=Bannière Marron -Brown=Marron -Pink Banner=Bannière Rose -Pink=Rose -Lime Banner=Bannière Vert Clair -Lime=Vert Clair -Light Blue Banner=Bannière Bleue Clair -Light Blue=Bleu Clair -Banners are tall colorful decorative blocks. They can be placed on the floor and at walls. Banners can be emblazoned with a variety of patterns using a lot of dye in crafting.=Les bannières sont de grands blocs décoratifs colorés. Ils peuvent être placés au sol et aux murs. Les bannières peuvent arborées une variété de motifs en utilisant beaucoup de colorant dans l'artisanat. -Use crafting to draw a pattern on top of the banner. Emblazoned banners can be emblazoned again to combine various patterns. You can draw up to 12 layers on a banner that way. If the banner includes a gradient, only 3 layers are possible.=Utilisez l'artisanat pour dessiner un motif sur le dessus de la bannière. Les bannières blasonnées peuvent être à nouveau blasonnées pour combiner différents motifs. Vous pouvez dessiner jusqu'à 12 couches sur une bannière de cette façon. Si la bannière comprend un dégradé, seulement 3 couches sont possibles. -You can copy the pattern of a banner by placing two banners of the same color in the crafting grid—one needs to be emblazoned, the other one must be clean. Finally, you can use a banner on a cauldron with water to wash off its top-most layer.=Vous pouvez copier le motif d'une bannière en plaçant deux bannières de la même couleur dans la grille de fabrication: l'une doit être décorée, l'autre doit être propre. Enfin, vous pouvez utiliser une bannière sur un chaudron avec de l'eau pour laver sa couche la plus haute. -@1 Bordure=Bordure (@1) -@1 Bricks=Blocs (@1) -@1 Roundel=Cocarde (@1) -@1 Creeper Charge=Face de Creeper (@1) -@1 Saltire=Saltire (@1) -@1 Bordure Indented=Bordure en retrait (@1) -@1 Per Bend Inverted=Division inclinée inversé (@1) -@1 Per Bend Sinister Inverted=Division oblique inversé (@1) -@1 Per Bend=Division inclinée (@1) -@1 Per Bend Sinister=Division oblique (@1) -@1 Flower Charge=Figure Fleur (@1) -@1 Gradient=Dégradé (@1) -@1 Base Gradient=Dégradé de couleurs (@1) -@1 Per Fess Inverted=Division inverse (@1) -@1 Per Fess=Division (@1) -@1 Per Pale=Division (@1) -@1 Per Pale Inverted=Division inverse (@1) -@1 Thing Charge=Chose (@ 1) -@1 Lozenge=Rhombus (@1) -@1 Skull Charge=Figure de crâne (@1) -@1 Paly=Pieux (@1) -@1 Base Dexter Canton=Coin inférieur droit (@1) -@1 Base Sinister Canton=Coin inférieur gauche (@1) -@1 Chief Dexter Canton=Coin supérieur droit (@1) -@1 Chief Sinister Canton=Coin supérieur gauche (@1) -@1 Cross=Croix (@1) -@1 Base=Pieds (@1) -@1 Pale=Mise (@1) -@1 Bend Sinister=Barre gauche inclinée (@1) -@1 Bend=Barre inclinée (@1) -@1 Pale Dexter=Flanc droit (@1) -@1 Fess=Bar (@1) -@1 Pale Sinister=Flanc gauche (@1) -@1 Chief=Principal (@1) -@1 Chevron=Chevron (@1) -@1 Chevron Inverted=Contre-chevrons (@1) -@1 Base Indented=Pied dentelé (@1)t -@1 Chief Indented=Tête dentelée (@1) -And one additional layer=Et une couche supplémentaire -And @1 additional layer(s)=Et @1 couche(s) supplémentaire(s) -Paintable decoration=Décoration à peindre diff --git a/mods/ITEMS/mcl_banners/locale/template.txt b/mods/ITEMS/mcl_banners/locale/template.txt index 944a1a7a..e69629d9 100644 --- a/mods/ITEMS/mcl_banners/locale/template.txt +++ b/mods/ITEMS/mcl_banners/locale/template.txt @@ -74,4 +74,3 @@ You can copy the pattern of a banner by placing two banners of the same color in @1 Chief Indented= And one additional layer= And @1 additional layer(s)= -Paintable decoration= diff --git a/mods/ITEMS/mcl_banners/patterncraft.lua b/mods/ITEMS/mcl_banners/patterncraft.lua index e1f05ff1..3f161267 100644 --- a/mods/ITEMS/mcl_banners/patterncraft.lua +++ b/mods/ITEMS/mcl_banners/patterncraft.lua @@ -281,7 +281,7 @@ mcl_banners.make_advanced_banner_description = function(description, layers) -- Final string concatenations: Just a list of strings local append = table.concat(layerstrings, "\n") - description = description .. "\n" .. minetest.colorize("#8F8F8F", append) + description = description .. "\n" .. core.colorize("#8F8F8F", append) return description end end diff --git a/mods/ITEMS/mcl_banners/textures/mcl_banners_triangle_top.png b/mods/ITEMS/mcl_banners/textures/mcl_banners_triangle_top.png index 1c72d742..7f626c26 100644 Binary files a/mods/ITEMS/mcl_banners/textures/mcl_banners_triangle_top.png and b/mods/ITEMS/mcl_banners/textures/mcl_banners_triangle_top.png differ diff --git a/mods/ITEMS/mcl_beds/api.lua b/mods/ITEMS/mcl_beds/api.lua index 7f11cf96..efc27b3e 100644 --- a/mods/ITEMS/mcl_beds/api.lua +++ b/mods/ITEMS/mcl_beds/api.lua @@ -66,7 +66,6 @@ function mcl_beds.register_bed(name, def) end minetest.register_node(name .. "_bottom", { description = def.description, - _tt_help = S("Allows you to sleep"), _doc_items_longdesc = def._doc_items_longdesc or beddesc, _doc_items_usagehelp = def._doc_items_usagehelp or beduse, _doc_items_create_entry = def._doc_items_create_entry, @@ -79,7 +78,7 @@ function mcl_beds.register_bed(name, def) paramtype2 = "facedir", is_ground_content = false, stack_max = 1, - groups = {handy=1, flammable = 3, bed = 1, dig_by_piston=1, bouncy=66, fall_damage_add_percent=-50, deco_block = 1, flammable=-1}, + groups = {handy=1, flammable = 3, bed = 1, dig_by_piston=1, bouncy=66, fall_damage_add_percent=-50, deco_block = 1}, _mcl_hardness = 0.2, _mcl_blast_resistance = 1, sounds = def.sounds or default_sounds, diff --git a/mods/ITEMS/mcl_beds/depends.txt b/mods/ITEMS/mcl_beds/depends.txt index c7c874fd..34e12adc 100644 --- a/mods/ITEMS/mcl_beds/depends.txt +++ b/mods/ITEMS/mcl_beds/depends.txt @@ -3,7 +3,7 @@ mcl_sounds? mcl_worlds? mcl_wool? mcl_dye? -mcl_explosions? +mcl_tnt? mcl_weather? mcl_spawn? doc? diff --git a/mods/ITEMS/mcl_beds/functions.lua b/mods/ITEMS/mcl_beds/functions.lua index d73154ee..73e1cebc 100644 --- a/mods/ITEMS/mcl_beds/functions.lua +++ b/mods/ITEMS/mcl_beds/functions.lua @@ -5,7 +5,6 @@ local pi = math.pi local player_in_bed = 0 local is_sp = minetest.is_singleplayer() local weather_mod = minetest.get_modpath("mcl_weather") ~= nil -local explosions_mod = minetest.get_modpath("mcl_explosions") ~= nil -- Helper functions @@ -183,7 +182,7 @@ local function lay_down(player, pos, bed_pos, state, skip) -- physics, eye_offset, etc player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0}) player:set_look_horizontal(yaw) - player:set_look_vertical(-(math.pi/2)) + player:set_look_vertical(0) player:get_meta():set_string("mcl_beds:sleeping", "true") playerphysics.add_physics_factor(player, "speed", "mcl_beds:sleeping", 0) @@ -200,11 +199,11 @@ end local function update_formspecs(finished) local ges = #minetest.get_connected_players() - local form_n = "size[6,5;true]" + local form_n = "size[8,15;true]" local all_in_bed = ges == player_in_bed local night_skip = is_night_skip_enabled() - local button_leave = "button_exit[1,3;4,0.75;leave;"..F(S("Leave bed")).."]" - local button_abort = "button_exit[1,3;4,0.75;leave;"..F(S("Abort sleep")).."]" + local button_leave = "button_exit[2,12;4,0.75;leave;"..F(S("Leave bed")).."]" + local button_abort = "button_exit[2,12;4,0.75;leave;"..F(S("Abort sleep")).."]" local bg_presleep = "bgcolor[#00000080;true]" local bg_sleep = "bgcolor[#000000FF;true]" @@ -228,7 +227,7 @@ local function update_formspecs(finished) form_n = form_n .. bg_presleep form_n = form_n .. button_leave end - form_n = form_n .. "label[1,1;"..F(text).."]" + form_n = form_n .. "label[2.2,7.5;"..F(text).."]" else local text if night_skip then @@ -240,7 +239,7 @@ local function update_formspecs(finished) form_n = form_n .. bg_presleep form_n = form_n .. button_leave end - form_n = form_n .. "label[1,1;"..F(text).."]" + form_n = form_n .. "label[2.2,7.5;"..F(text).."]" end for name,_ in pairs(mcl_beds.player) do @@ -308,8 +307,8 @@ function mcl_beds.on_rightclick(pos, player, is_top) if dim == "nether" or dim == "end" then -- Bed goes BOOM in the Nether or End. minetest.remove_node(pos) - if explosions_mod then - mcl_explosions.explode(pos, 5, {drop_chance = 1.0, fire = true}) + if minetest.get_modpath("mcl_tnt") then + tnt.boom(pos, {radius = 4, damage_radius = 4}) end return end diff --git a/mods/ITEMS/mcl_beds/locale/mcl_beds.de.tr b/mods/ITEMS/mcl_beds/locale/mcl_beds.de.tr index 16592115..079951c8 100644 --- a/mods/ITEMS/mcl_beds/locale/mcl_beds.de.tr +++ b/mods/ITEMS/mcl_beds/locale/mcl_beds.de.tr @@ -38,4 +38,3 @@ Note: Night skip is disabled.=Anmerkung: Überspringen der Nacht deaktiviert. You're sleeping.=Sie schlafen. You will fall asleep when all players are in bed.=Sie werden einschlafen, wenn alle Spieler im Bett sind. You're in bed.=Sie sind im Bett. -Allows you to sleep=Zum Einschafen diff --git a/mods/ITEMS/mcl_beds/locale/mcl_beds.es.tr b/mods/ITEMS/mcl_beds/locale/mcl_beds.es.tr deleted file mode 100644 index e03087d3..00000000 --- a/mods/ITEMS/mcl_beds/locale/mcl_beds.es.tr +++ /dev/null @@ -1,40 +0,0 @@ -# textdomain: mcl_beds -Beds allow you to sleep at night and make the time pass faster.=Las camas le permiten dormir por la noche y hacer que el tiempo pase más rápido. -To use a bed, stand close to it and right-click the bed to sleep in it. Sleeping only works when the sun sets, at night or during a thunderstorm. The bed must also be clear of any danger.=Para usar una cama, párate cerca de ella y haz clic derecho en la cama para dormir en ella. Dormir solo funciona cuando se oculta el sol, por la noche o durante una tormenta eléctrica. La cama también debe estar libre de cualquier peligro. -You have heard of other worlds in which a bed would set the start point for your next life. But this world is not one of them.=Has oído hablar de otros mundos en los que una cama establecería el punto de partida para tu próxima vida. Pero este mundo no es uno de ellos. -By using a bed, you set the starting point for your next life. If you die, you will start your next life at this bed, unless it is obstructed or destroyed.=Al usar una cama, se establece como el punto de partida para tu próxima vida. Si mueres, comenzarás tu próxima vida en esta cama, a menos que esté obstruida o destruida. -In this world, going to bed won't skip the night, but it will skip thunderstorms.=En este mundo, ir a la cama no se saltará la noche, pero se saltará las tormentas eléctricas. -Sleeping allows you to skip the night. The night is skipped when all players in this world went to sleep. The night is skipped after sleeping for a few seconds. Thunderstorms can be skipped in the same manner.=Dormir te permite saltarte la noche. Se omite la noche cuando todos los jugadores en este mundo se fueron a dormir. La noche se salta después de dormir durante unos segundos. Las tormentas eléctricas se pueden omitir de la misma manera. -Bed=Cama -Red Bed=Cama roja -Blue Bed=Cama azul -Cyan Bed=Cama cian -Grey Bed=Cama gris -Light Grey Bed=Cama gris ocuro -Black Bed=Cama negra -Yellow Bed=Cama amarilla -Green Bed=Cama verde -Magenta Bed=Cama magenta -Orange Bed=Cama naranja -Purple Bed=Cama morada -Brown Bed=Cama marrón -Pink Bed=Cama rosa -Lime Bed=Cama verde lima -Light Blue Bed=Cama azul claro -White Bed=Cama blanca -You can't sleep, the bed's too far away!=¡No puedes dormir, la cama está muy lejos! -This bed is already occupied!=¡La cama ya está ocupada! -You have to stop moving before going to bed!=¡Tienes que dejar de moverte antes de acostarte! -You can't sleep now, monsters are nearby!=No puedes dormir ahora, ¡hay monstruos cerca! -You can't sleep, the bed is obstructed!=¡No puedes dormir, la cama está obstruida! -It's too dangerous to sleep here!=¡Es muy peligroso dormir aquí! -New respawn position set! But you can only sleep at night or during a thunderstorm.=¡Nueva posición de reaparición establecida! Pero solo puedes dormir por la noche o durante tormentas eléctricas. -You can only sleep at night or during a thunderstorm.=Solo puedes dormir por la noche o durante tormentas eléctricas. -New respawn position set!=¡Nueva posición de reaparición establecida! -Leave bed=Salir de la cama -Abort sleep=Levantarse -Players in bed: @1/@2=Jugadores en la cama: @1/@2 -Note: Night skip is disabled.=Nota: El salto nocturno está deshabilitado. -You're sleeping.=Estás durmiendo. -You will fall asleep when all players are in bed.=Te quedarás dormido cuando todos los jugadores estén en la cama. -You're in bed.=Estas en la cama. diff --git a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr b/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr deleted file mode 100644 index d85d48bf..00000000 --- a/mods/ITEMS/mcl_beds/locale/mcl_beds.fr.tr +++ /dev/null @@ -1,41 +0,0 @@ -# textdomain: mcl_beds -Beds allow you to sleep at night and make the time pass faster.=Les lits vous permettent de dormir la nuit et de faire passer le temps plus rapidement. -To use a bed, stand close to it and right-click the bed to sleep in it. Sleeping only works when the sun sets, at night or during a thunderstorm. The bed must also be clear of any danger.=Pour utiliser un lit, tenez-vous près de lui et faites un clic droit sur le lit pour y dormir. Dormir ne fonctionne que lorsque le soleil se couche, la nuit ou pendant un orage. Le lit doit également être à l'abri de tout danger. -You have heard of other worlds in which a bed would set the start point for your next life. But this world is not one of them.=Vous avez entendu parler d'autres mondes dans lesquels un lit serait le point de départ de votre prochaine vie. Mais ce monde n'en fait pas partie. -By using a bed, you set the starting point for your next life. If you die, you will start your next life at this bed, unless it is obstructed or destroyed.=En utilisant un lit, vous définissez le point de départ de votre prochaine vie. Si vous mourez, vous commencerez votre prochaine vie dans ce lit, à moins qu'il ne soit obstrué ou détruit. -In this world, going to bed won't skip the night, but it will skip thunderstorms.=Dans ce monde, aller au lit ne sautera pas la nuit, mais cela évitera les orages. -Sleeping allows you to skip the night. The night is skipped when all players in this world went to sleep. The night is skipped after sleeping for a few seconds. Thunderstorms can be skipped in the same manner.=Dormir vous permet de sauter la nuit. La nuit est sautée lorsque tous les joueurs de ce monde se sont endormis. La nuit est sautée après avoir dormi quelques secondes. Les orages peuvent être évités de la même manière. -Bed=Lit -Red Bed=Lit Rouge -Blue Bed=Lit Bleu -Cyan Bed=Lit Cyan -Grey Bed=Lit Gris -Light Grey Bed=Lit Gris Clair -Black Bed=Lit Noir -Yellow Bed=Lit Jaune -Green Bed=Lit Vert -Magenta Bed=Lit Magenta -Orange Bed=Lit Orange -Purple Bed=Lit Violet -Brown Bed=Lit Marron -Pink Bed=Lit Rose -Lime Bed=Lit Vert Clair -Light Blue Bed=Lit Bleu Clair -White Bed=Lit Blanc -You can't sleep, the bed's too far away!=Vous ne pouvez pas dormir, le lit est trop loin! -This bed is already occupied!=Ce lit est déjà occupé! -You have to stop moving before going to bed!=Vous devez arrêter de bouger avant de vous coucher! -You can't sleep now, monsters are nearby!=Vous ne pouvez pas dormir maintenant, les monstres sont à proximité! -You can't sleep, the bed is obstructed!=Vous ne pouvez pas dormir, le lit est obstrué! -It's too dangerous to sleep here!=C'est trop dangereux de dormir ici! -New respawn position set! But you can only sleep at night or during a thunderstorm.=Nouvelle position de réapparition définie! Mais vous ne pouvez dormir que la nuit ou pendant un orage. -You can only sleep at night or during a thunderstorm.=Vous ne pouvez dormir que la nuit ou pendant un orage. -New respawn position set!=Nouvelle position de réapparition définie! -Leave bed=Quitter le lit -Abort sleep=Abandonner le sommeil -Players in bed: @1/@2=Joueurs au lit: @1/@2 -Note: Night skip is disabled.=Remarque: Le saut de nuit est désactivé. -You're sleeping.=Tu dors. -You will fall asleep when all players are in bed.=Vous vous endormirez lorsque tous les joueurs seront au lit. -You're in bed.=Tu es au lit. -Allows you to sleep=Vous permet de dormir diff --git a/mods/ITEMS/mcl_beds/locale/template.txt b/mods/ITEMS/mcl_beds/locale/template.txt index d18fbe5d..9664c800 100644 --- a/mods/ITEMS/mcl_beds/locale/template.txt +++ b/mods/ITEMS/mcl_beds/locale/template.txt @@ -38,4 +38,3 @@ Note: Night skip is disabled.= You're sleeping.= You will fall asleep when all players are in bed.= You're in bed.= -Allows you to sleep= diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_black.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_black.png index 2ec1864d..5bfa983c 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_black.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_black.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_blue.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_blue.png index 076663f7..ecf58cd0 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_blue.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_blue.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_brown.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_brown.png index 450a5921..f1473c36 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_brown.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_brown.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_cyan.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_cyan.png index 4b7f06a4..e3c466ec 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_cyan.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_cyan.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_green.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_green.png index 53101587..e59981a4 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_green.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_green.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_grey.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_grey.png index 264fe4bd..65052ad0 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_grey.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_grey.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_light_blue.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_light_blue.png index 2e98d09f..974ac656 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_light_blue.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_light_blue.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_lime.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_lime.png index 6588e80d..88c36740 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_lime.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_lime.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_magenta.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_magenta.png index 5789f0b8..04bdc7dd 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_magenta.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_magenta.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_orange.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_orange.png index a74da540..5271b820 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_orange.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_orange.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_pink.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_pink.png index 741b1646..ca6b5047 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_pink.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_pink.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_purple.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_purple.png index 07965418..740824b3 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_purple.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_purple.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_red.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_red.png index 94c867a1..638bdd50 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_red.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_red.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_silver.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_silver.png index ee693465..b0739432 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_silver.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_silver.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_white.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_white.png index cd1632d5..1e536432 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_white.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_white.png differ diff --git a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_yellow.png b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_yellow.png index eb886247..a3d9c8c2 100644 Binary files a/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_yellow.png and b/mods/ITEMS/mcl_beds/textures/mcl_beds_bed_side_top_r_yellow.png differ diff --git a/mods/ITEMS/mcl_books/depends.txt b/mods/ITEMS/mcl_books/depends.txt index e1ecc48c..8b043fbb 100644 --- a/mods/ITEMS/mcl_books/depends.txt +++ b/mods/ITEMS/mcl_books/depends.txt @@ -1,4 +1,3 @@ -mcl_init? mcl_core? mcl_sounds? mcl_mobitems? diff --git a/mods/ITEMS/mcl_books/init.lua b/mods/ITEMS/mcl_books/init.lua index cf4daf0b..87ca3194 100644 --- a/mods/ITEMS/mcl_books/init.lua +++ b/mods/ITEMS/mcl_books/init.lua @@ -3,12 +3,6 @@ local S =minetest.get_translator("mcl_books") local max_text_length = 4500 -- TODO: Increase to 12800 when scroll bar was added to written book local max_title_length = 64 -local header = "" -if minetest.get_modpath("mcl_init") then - header = "no_prepend[]" .. mcl_vars.gui_nonbg .. mcl_vars.gui_bg_color .. - "style_type[button;border=false;bgimg=mcl_books_button9.png;bgimg_pressed=mcl_books_button9_pressed.png;bgimg_middle=2,2]" -end - -- Book minetest.register_craftitem("mcl_books:book", { description = S("Book"), @@ -66,7 +60,7 @@ local make_description = function(title, author, generation) else desc = S("Tattered Book") end - desc = desc .. "\n" .. minetest.colorize("#AAAAAA", S("by @1", author)) + desc = desc .. "\n" .. core.colorize("#AAAAAA", S("by @1", author)) return desc end @@ -87,7 +81,6 @@ local write = function(itemstack, user, pointed_thing) local text = get_text(itemstack) local formspec = "size[8,9]".. - header.. "background[-0.5,-0.5;9,10;mcl_books_book_bg.png]".. "textarea[0.75,0.1;7.25,9;text;;"..minetest.formspec_escape(text).."]".. "button[0.75,7.95;3,1;sign;"..minetest.formspec_escape(S("Sign")).."]".. @@ -108,9 +101,8 @@ local read = function(itemstack, user, pointed_thing) local text = get_text(itemstack) local formspec = "size[8,9]".. - header.. "background[-0.5,-0.5;9,10;mcl_books_book_bg.png]".. - "textarea[0.75,0.1;7.25,9;;"..minetest.formspec_escape(text)..";]".. + "textarea[0.75,0.1;7.25,9;;"..core.colorize("#000000", minetest.formspec_escape(text))..";]".. "button_exit[2.25,7.95;3,1;ok;"..minetest.formspec_escape(S("Done")).."]" minetest.show_formspec(user:get_player_name(), "mcl_books:written_book", formspec) end @@ -118,7 +110,6 @@ end -- Book and Quill minetest.register_craftitem("mcl_books:writable_book", { description = S("Book and Quill"), - _tt_help = S("Write down some notes"), _doc_items_longdesc = S("This item can be used to write down some notes."), _doc_items_usagehelp = S("Hold it in the hand, then rightclick to read the current notes and edit then. You can edit the text as often as you like. You can also sign the book which turns it into a written book which you can stack, but it can't be edited anymore.").."\n".. S("A book can hold up to 4500 characters. The title length is limited to 64 characters."), @@ -144,10 +135,9 @@ minetest.register_on_player_receive_fields(function ( player, formname, fields ) local name = player:get_player_name() local formspec = "size[8,9]".. - header.. "background[-0.5,-0.5;9,10;mcl_books_book_bg.png]".. - "field[0.75,1;7.25,1;title;"..minetest.formspec_escape(minetest.colorize("#000000", S("Enter book title:")))..";]".. - "label[0.75,1.5;"..minetest.formspec_escape(minetest.colorize("#404040", S("by @1", name))).."]".. + "field[0.75,1;7.25,1;title;"..minetest.formspec_escape(core.colorize("#000000", S("Enter book title:")))..";]".. + "label[0.75,1.5;"..minetest.formspec_escape(core.colorize("#404040", S("by @1", name))).."]".. "button_exit[0.75,7.95;3,1;sign;"..minetest.formspec_escape(S("Sign and Close")).."]".. "tooltip[sign;"..minetest.formspec_escape(S("Note: The book will no longer be editable after signing")).."]".. "button[4.25,7.95;3,1;cancel;"..minetest.formspec_escape(S("Cancel")).."]" @@ -339,10 +329,10 @@ minetest.register_node("mcl_books:bookshelf", { tiles = {"mcl_books_bookshelf_top.png", "mcl_books_bookshelf_top.png", "default_bookshelf.png"}, stack_max = 64, is_ground_content = false, - groups = {handy=1,axey=1, flammable=3,building_block=1, material_wood=1, fire_encouragement=30, fire_flammability=20}, + groups = {handy=1,axey=1, flammable=3,building_block=1, material_wood=1}, drop = "mcl_books:book 3", sounds = wood_sound, - _mcl_blast_resistance = 1.5, + _mcl_blast_resistance = 7.5, _mcl_hardness = 1.5, }) diff --git a/mods/ITEMS/mcl_books/locale/mcl_books.de.tr b/mods/ITEMS/mcl_books/locale/mcl_books.de.tr index df51c185..c4613fd9 100644 --- a/mods/ITEMS/mcl_books/locale/mcl_books.de.tr +++ b/mods/ITEMS/mcl_books/locale/mcl_books.de.tr @@ -23,4 +23,3 @@ To copy the text of the written book, place it into the crafting grid together w Bookshelf=Bücherregal Bookshelves are used for decoration.=Bücherregale werden zur Dekoration benutzt. Book and Quill=Buch und Federkiel -Write down some notes=Zum Aufschreiben von Notizen diff --git a/mods/ITEMS/mcl_books/locale/mcl_books.es.tr b/mods/ITEMS/mcl_books/locale/mcl_books.es.tr deleted file mode 100644 index d1e0d947..00000000 --- a/mods/ITEMS/mcl_books/locale/mcl_books.es.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_books -Book=Libro -Books are used to make bookshelves and book and quills.=Los libros se usan para hacer estanterías, libros y plumas. -“@1”="@1“ -Copy of “@1”=Copia de "@1“ -Copy of Copy of “@1”=Kopie von Kopie von „@1“ -Tatter ed Book=Libro andrajoso -by @1=por @1 -Sign=Firmar -Done=Hecho -This item can be used to write down some notes.=Este elemento se puede usar para escribir algunas notas. -Hold it in the hand, then rightclick to read the current notes and edit then. You can edit the text as often as you like. You can also sign the book which turns it into a written book which you can stack, but it can't be edited anymore.=Sosténgalo en la mano, luego haga clic derecho para leer las notas actuales y luego edite. Puede editar el texto con la frecuencia que desee. También puede firmar el libro que lo convierte en un libro escrito que puede apilar, pero ya no se puede editar. -A book can hold up to 4500 characters. The title length is limited to 64 characters.=Un libro puede contener hasta 4500 caracteres. La longitud del título está limitada a 64 caracteres. -Enter book title:=Inserta el título del libro: -Note: The book will no longer be editable after signing=Nota: El libro ya no será editable después de firmarlo -Sign and Close=Firmar y cerrar libro -Cancel=Cancelar -Nameless Book=Libro sin nombre -Written Book=Libro escrito -Written books contain some text written by someone. They can be read and copied, but not edited.=Los libros escritos contienen texto escrito por alguien. Pueden leerse y copiarse, pero no editarse. -Hold it in your hand, then rightclick to read the book.=Sostenlo en tu mano, luego haz clic derecho para leer el libro. -To copy the text of the written book, place it into the crafting grid together with a book and quill (or multiple of those) and craft. The written book will not be consumed. Copies of copies can not be copied.=Para copiar el texto del libro escrito, colóquelo en la cuadrícula de elaboración junto con un libro y pluma (o varios de esos) y haga manualidades. El libro escrito no se consumirá. Las copias de copias no se pueden copiar. -Bookshelf=Librería -Bookshelves are used for decoration.=Las librerías se utilizan para la decoración. -Book and Quill=Libro y pluma diff --git a/mods/ITEMS/mcl_books/locale/mcl_books.fr.tr b/mods/ITEMS/mcl_books/locale/mcl_books.fr.tr deleted file mode 100644 index 7024cf5d..00000000 --- a/mods/ITEMS/mcl_books/locale/mcl_books.fr.tr +++ /dev/null @@ -1,28 +0,0 @@ -# textdomain: mcl_books -Book=Livre -Books are used to make bookshelves and book and quills.=Les livres sont utilisés pour fabriquer des étagères et des livres et des plumes. -“@1”="@1" -Copy of “@1”=Copie de "@1" -Copy of Copy of “@1”=Copie de Copie de "@1" -Tattered Book=Livre en lambeaux -by @1=ar @1 -# as in “to sign a book” -Sign=Signer -Done=Terminé -This item can be used to write down some notes.=Cet élément peut être utilisé pour écrire certaines notes. -Hold it in the hand, then rightclick to read the current notes and edit then. You can edit the text as often as you like. You can also sign the book which turns it into a written book which you can stack, but it can't be edited anymore.=Tenez-le dans la main, puis faites un clic droit pour lire les notes actuelles et modifiez-les ensuite. Vous pouvez modifier le texte aussi souvent que vous le souhaitez. Vous pouvez également signer le livre qui le transforme en livre écrit que vous pouvez empiler, mais il ne peut plus être édité. -A book can hold up to 4500 characters. The title length is limited to 64 characters.=Un livre peut contenir jusqu'à 4500 caractères. La longueur du titre est limitée à 64 caractères. -Enter book title:=Entrez le titre du livre: -by @1=par @1 -Note: The book will no longer be editable after signing=Remarque: le livre ne sera plus modifiable après la signature -Sign and Close=Signez et fermez -Cancel=Annuler -Nameless Book=Livre sans nom -Written Book=Livre écrit -Written books contain some text written by someone. They can be read and copied, but not edited.=Les livres écrits contiennent du texte écrit par quelqu'un. Ils peuvent être lus et copiés, mais pas modifiés. -Hold it in your hand, then rightclick to read the book.=Tenez-le dans votre main, puis faites un clic droit pour lire le livre. -To copy the text of the written book, place it into the crafting grid together with a book and quill (or multiple of those) and craft. The written book will not be consumed. Copies of copies can not be copied.=Pour copier le texte du livre écrit, placez-le dans la grille d'artisanat avec un livre et une plume (ou plusieurs de ceux-ci) et de l'artisanat. Le livre écrit ne sera pas consommé. Les copies de copies ne peuvent pas être copiées. -Bookshelf=Bibliothèque -Bookshelves are used for decoration.=Les bibliothèques sont utilisées pour la décoration. -Book and Quill=Livre et Plume -Write down some notes=Notez quelques notes diff --git a/mods/ITEMS/mcl_books/locale/template.txt b/mods/ITEMS/mcl_books/locale/template.txt index 8667d1f0..22c4dae9 100644 --- a/mods/ITEMS/mcl_books/locale/template.txt +++ b/mods/ITEMS/mcl_books/locale/template.txt @@ -25,4 +25,3 @@ To copy the text of the written book, place it into the crafting grid together w Bookshelf= Bookshelves are used for decoration.= Book and Quill= -Write down some notes= diff --git a/mods/ITEMS/mcl_books/textures/mcl_books_button9.png b/mods/ITEMS/mcl_books/textures/mcl_books_button9.png deleted file mode 100644 index 27b80a89..00000000 Binary files a/mods/ITEMS/mcl_books/textures/mcl_books_button9.png and /dev/null differ diff --git a/mods/ITEMS/mcl_books/textures/mcl_books_button9_pressed.png b/mods/ITEMS/mcl_books/textures/mcl_books_button9_pressed.png deleted file mode 100644 index 08d4272d..00000000 Binary files a/mods/ITEMS/mcl_books/textures/mcl_books_button9_pressed.png and /dev/null differ diff --git a/mods/ITEMS/mcl_bows/arrow.lua b/mods/ITEMS/mcl_bows/arrow.lua index 9ae6e85a..94474869 100644 --- a/mods/ITEMS/mcl_bows/arrow.lua +++ b/mods/ITEMS/mcl_bows/arrow.lua @@ -20,7 +20,6 @@ local mod_button = minetest.get_modpath("mesecons_button") minetest.register_craftitem("mcl_bows:arrow", { description = S("Arrow"), - _tt_help = S("Ammunition").."\n"..S("Damage from bow: 1-10").."\n"..S("Damage from dispenser: 3"), _doc_items_longdesc = S("Arrows are ammunition for bows and dispensers.").."\n".. S("An arrow fired from a bow has a regular damage of 1-9. At full charge, there's a 20% chance of a critical hit dealing 10 damage instead. An arrow fired from a dispenser always deals 3 damage.").."\n".. S("Arrows might get stuck on solid blocks and can be retrieved again. They are also capable of pushing wooden buttons."), @@ -145,7 +144,7 @@ ARROW_ENTITY.on_step = function(self, dtime) pos = pos, max_hear_distance = 16, gain = 1.0, - }, true) + }) end end self.object:remove() @@ -198,24 +197,6 @@ ARROW_ENTITY.on_step = function(self, dtime) local lua = obj:get_luaentity() if obj ~= self._shooter and (is_player or (lua and lua._cmi_is_mob)) then if obj:get_hp() > 0 then - -- Check if there is no solid node between arrow and object - local ray = minetest.raycast(self.object:get_pos(), obj:get_pos(), true) - for pointed_thing in ray do - if pointed_thing.type == "object" and pointed_thing.ref == closest_object then - -- Target reached! We can proceed now. - break - elseif pointed_thing.type == "node" then - local nn = minetest.get_node(minetest.get_pointed_thing_position(pointed_thing)).name - local def = minetest.registered_nodes[nn] - if (not def) or def.walkable then - -- There's a node in the way. Delete arrow without damage - self.object:remove() - return - end - end - end - - -- Punch target object obj:punch(self.object, 1.0, { full_punch_interval=1.0, damage_groups={fleshy=self._damage}, @@ -224,7 +205,7 @@ ARROW_ENTITY.on_step = function(self, dtime) if is_player then if self._shooter and self._shooter:is_player() then -- “Ding” sound for hitting another player - minetest.sound_play({name="mcl_bows_hit_player", gain=0.1}, {to_player=self._shooter}, true) + minetest.sound_play({name="mcl_bows_hit_player", gain=0.1}, {to_player=self._shooter}) end end diff --git a/mods/ITEMS/mcl_bows/bow.lua b/mods/ITEMS/mcl_bows/bow.lua index 3bae7687..4f39331d 100644 --- a/mods/ITEMS/mcl_bows/bow.lua +++ b/mods/ITEMS/mcl_bows/bow.lua @@ -48,7 +48,7 @@ mcl_bows.shoot_arrow = function(arrow_item, pos, dir, yaw, shooter, power, damag le._shooter = shooter le._damage = damage le._startpos = pos - minetest.sound_play("mcl_bows_bow_shoot", {pos=pos}, true) + minetest.sound_play("mcl_bows_bow_shoot", {pos=pos}) if shooter ~= nil and shooter:is_player() then if obj:get_luaentity().player == "" then obj:get_luaentity().player = shooter @@ -98,13 +98,11 @@ end -- Bow item, uncharged state minetest.register_tool("mcl_bows:bow", { description = S("Bow"), - _tt_help = S("Launches arrows"), _doc_items_longdesc = S("Bows are ranged weapons to shoot arrows at your foes.").."\n".. S("The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead."), _doc_items_usagehelp = S("To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot."), _doc_items_durability = BOW_DURABILITY, inventory_image = "mcl_bows_bow.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, stack_max = 1, -- Trick to disable melee damage to entities. -- Range not set to 0 (unlike the others) so it can be placed into item frames @@ -145,7 +143,6 @@ for level=0, 2 do description = S("Bow"), _doc_items_create_entry = false, inventory_image = "mcl_bows_bow_"..level..".png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, stack_max = 1, range = 0, -- Pointing range to 0 to prevent punching with bow :D groups = {not_in_creative_inventory=1, not_in_craft_guide=1}, diff --git a/mods/ITEMS/mcl_bows/locale/mcl_bows.de.tr b/mods/ITEMS/mcl_bows/locale/mcl_bows.de.tr index c3b42681..4ca45c0e 100644 --- a/mods/ITEMS/mcl_bows/locale/mcl_bows.de.tr +++ b/mods/ITEMS/mcl_bows/locale/mcl_bows.de.tr @@ -9,7 +9,3 @@ Bows are ranged weapons to shoot arrows at your foes.=Bogen sind Fernwaffen, um The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead.=Die Geschwindigkeit und der Schaden des Bogens erhöht sich, je länger sie den Bogen spannen. Der reguläre Schaden des Pfeiles ist zwischen 1 und 9. Ist der Bogen voll gespannt, gibt es eine 20%-ig Change für einen kritischen Treffer, der 10 Schaden anrichtet. To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.=Um den Bogen zu benutzen, muss sich im Inventar mindestens ein Pfeil befinden (außer im Kreativmodus). Halten sie die rechte Maustaste gedrückt zum Spannen, lassen Sie sie los zum Schießen. Bow=Bogen -Ammunition=Munition -Damage from bow: 1-10=Schaden vom Bogen: 1-10 -Damage from dispenser: 3=Schaden vom Werfer: 3 -Launches arrows=Verschießt Pfeile diff --git a/mods/ITEMS/mcl_bows/locale/mcl_bows.es.tr b/mods/ITEMS/mcl_bows/locale/mcl_bows.es.tr deleted file mode 100644 index 539afdcf..00000000 --- a/mods/ITEMS/mcl_bows/locale/mcl_bows.es.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_bows -Arrow=Flecha -Arrows are ammunition for bows and dispensers.=Las flechas son municiones para arcos y dispensadores. -An arrow fired from a bow has a regular damage of 1-9. At full charge, there's a 20% chance of a critical hit dealing 10 damage instead. An arrow fired from a dispenser always deals 3 damage.=Una flecha disparada desde un arco tiene un daño regular de 1-9. A plena carga, hay un 20% de posibilidades de que un golpe crítico inflija 10 daños en su lugar. Una flecha disparada desde un dispensador siempre causa 3 de daño. -Arrows might get stuck on solid blocks and can be retrieved again. They are also capable of pushing wooden buttons.=Las flechas pueden atascarse en bloques sólidos y pueden recuperarse nuevamente. También son capaces de presionar botones de madera. -To use arrows as ammunition for a bow, just put them anywhere in your inventory, they will be used up automatically. To use arrows as ammunition for a dispenser, place them in the dispenser's inventory. To retrieve an arrow that sticks in a block, simply walk close to it.=Para usar flechas como municiones para un arco, simplemente colóquelas en cualquier parte de su inventario, se usarán automáticamente. Para usar flechas como municiones para un dispensador, colóquelas en el inventario del dispensador. Para recuperar una flecha que se pega en un bloque, simplemente camine cerca de ella. -Bow=Arco -Bows are ranged weapons to shoot arrows at your foes.=Los arcos son armas a distancia para disparar flechas a tus enemigos. -The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead.=La velocidad y el daño de la flecha aumentan cuanto más tiempo tenses. El daño regular de la flecha está entre 1 y 9. A plena carga, también hay un 20% de un golpe crítico, que en vez de eso causa 10 de daño. -To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.=Para usar el arco, primero debes de tener al menos una flecha en cualquier parte de su inventario (a menos que esté en modo creativo). Mantenga presionado el botón derecho del mouse para tensar, suelte para disparar. -Bow=Arco \ No newline at end of file diff --git a/mods/ITEMS/mcl_bows/locale/mcl_bows.fr.tr b/mods/ITEMS/mcl_bows/locale/mcl_bows.fr.tr deleted file mode 100644 index 313081e4..00000000 --- a/mods/ITEMS/mcl_bows/locale/mcl_bows.fr.tr +++ /dev/null @@ -1,15 +0,0 @@ -# textdomain: mcl_bows -Arrow=Flèche -Arrows are ammunition for bows and dispensers.=Les flèches sont des munitions pour les arcs et les distributeurs. -An arrow fired from a bow has a regular damage of 1-9. At full charge, there's a 20% chance of a critical hit dealing 10 damage instead. An arrow fired from a dispenser always deals 3 damage.=Une flèche tirée d'un arc a des dégâts réguliers de 1 à 9. À pleine charge, il y a 20% de chances qu'un coup critique inflige 10 dégâts à la place. Une flèche tirée depuis un distributeur inflige toujours 3 dégâts. -Arrows might get stuck on solid blocks and can be retrieved again. They are also capable of pushing wooden buttons.=Les flèches peuvent se coincer sur des blocs solides et peuvent être récupérées à nouveau. Ils sont également capables de pousser des boutons en bois. -To use arrows as ammunition for a bow, just put them anywhere in your inventory, they will be used up automatically. To use arrows as ammunition for a dispenser, place them in the dispenser's inventory. To retrieve an arrow that sticks in a block, simply walk close to it.=Pour utiliser des flèches comme munitions pour un arc, il suffit de les placer n'importe où dans votre inventaire, elles seront utilisées automatiquement. Pour utiliser des flèches comme munitions pour un distributeur, placez-les dans l'inventaire du distributeur. Pour récupérer une flèche qui colle dans un bloc, il vous suffit de vous en approcher. -Bow=Arc -Bows are ranged weapons to shoot arrows at your foes.=Les arcs sont des armes à distance pour tirer des flèches sur vos ennemis. -The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead.=La vitesse et les dégâts de la flèche augmentent plus vous chargez. Les dégâts réguliers de la flèche sont compris entre 1 et 9. À pleine charge, il y a également 20% d'un coup critique, infligeant 10 dégâts à la place. -To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.=Pour utiliser l'arc, vous devez d'abord avoir au moins une flèche n'importe où dans votre inventaire (sauf en mode créatif). Maintenez enfoncé le bouton droit de la souris pour charger, relâchez pour tirer. -Bow=Arc -Ammunition=Munition -Damage from bow: 1-10=Dégâts de l'arc: 1-10 -Damage from dispenser: 3=Dégâts du distributeur: 3 -Launches arrows=Lance des flèches diff --git a/mods/ITEMS/mcl_bows/locale/template.txt b/mods/ITEMS/mcl_bows/locale/template.txt index 228b6170..c6c91b44 100644 --- a/mods/ITEMS/mcl_bows/locale/template.txt +++ b/mods/ITEMS/mcl_bows/locale/template.txt @@ -9,7 +9,3 @@ Bows are ranged weapons to shoot arrows at your foes.= The speed and damage of the arrow increases the longer you charge. The regular damage of the arrow is between 1 and 9. At full charge, there's also a 20% of a critical hit, dealing 10 damage instead.= To use the bow, you first need to have at least one arrow anywhere in your inventory (unless in Creative Mode). Hold down the right mouse button to charge, release to shoot.= Bow= -Ammunition= -Damage from bow: 1-10= -Damage from dispenser: 3= -Launches arrows= diff --git a/mods/ITEMS/mcl_bows/textures/mcl_bows_arrow_inv.png b/mods/ITEMS/mcl_bows/textures/mcl_bows_arrow_inv.png index bf324d62..8635d28a 100644 Binary files a/mods/ITEMS/mcl_bows/textures/mcl_bows_arrow_inv.png and b/mods/ITEMS/mcl_bows/textures/mcl_bows_arrow_inv.png differ diff --git a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow.png b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow.png index 6df5c5b8..7d695bc9 100644 Binary files a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow.png and b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow.png differ diff --git a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_0.png b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_0.png index f2867b2a..8bb41ea4 100644 Binary files a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_0.png and b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_0.png differ diff --git a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_1.png b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_1.png index 881206eb..f85304e4 100644 Binary files a/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_1.png and b/mods/ITEMS/mcl_bows/textures/mcl_bows_bow_1.png differ diff --git a/mods/ITEMS/mcl_buckets/init.lua b/mods/ITEMS/mcl_buckets/init.lua index 9918ef73..9b25c21a 100644 --- a/mods/ITEMS/mcl_buckets/init.lua +++ b/mods/ITEMS/mcl_buckets/init.lua @@ -28,14 +28,14 @@ mcl_buckets.liquids = {} local sound_place = function(itemname, pos) local def = minetest.registered_nodes[itemname] if def and def.sounds and def.sounds.place then - minetest.sound_play(def.sounds.place, {gain=1.0, pos = pos, pitch = 1 + math.random(-10, 10)*0.005}, true) + minetest.sound_play(def.sounds.place, {gain=1.0, pos = pos, pitch = 1 + math.random(-10, 10)*0.005}) end end local sound_take = function(itemname, pos) local def = minetest.registered_nodes[itemname] if def and def.sounds and def.sounds.dug then - minetest.sound_play(def.sounds.dug, {gain=1.0, pos = pos, pitch = 1 + math.random(-10, 10)*0.005}, true) + minetest.sound_play(def.sounds.dug, {gain=1.0, pos = pos, pitch = 1 + math.random(-10, 10)*0.005}) end end @@ -55,13 +55,12 @@ end -- name = user-visible bucket description -- longdesc = long explanatory description (for help) -- usagehelp = short usage explanation (for help) --- tt_help = very short tooltip help -- extra_check(pos, placer) = optional function(pos) which can returns false to avoid placing the liquid. -- placer is object/player who is placing the liquid, can be nil -- groups = optional list of item groups -- -- This function can be called from any mod (which depends on this one) -function mcl_buckets.register_liquid(source_place, source_take, itemname, inventory_image, name, longdesc, usagehelp, tt_help, extra_check, groups) +function mcl_buckets.register_liquid(source_place, source_take, itemname, inventory_image, name, longdesc, usagehelp, extra_check, groups) for i=1, #source_take do mcl_buckets.liquids[source_take[i]] = { source_place = source_place, @@ -78,9 +77,9 @@ function mcl_buckets.register_liquid(source_place, source_take, itemname, invent description = name, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, - _tt_help = tt_help, inventory_image = inventory_image, stack_max = 16, + liquids_pointable = true, groups = groups, on_place = function(itemstack, user, pointed_thing) -- Must be pointing to node @@ -188,10 +187,10 @@ minetest.register_craftitem("mcl_buckets:bucket_empty", { description = S("Empty Bucket"), _doc_items_longdesc = S("A bucket can be used to collect and release liquids."), _doc_items_usagehelp = S("Punch a liquid source to collect it. You can then use the filled bucket to place the liquid somewhere else."), - _tt_help = S("Collects liquids"), inventory_image = "bucket.png", stack_max = 16, + liquids_pointable = true, on_place = function(itemstack, user, pointed_thing) -- Must be pointing to node if pointed_thing.type ~= "node" then @@ -307,8 +306,7 @@ if mod_mcl_core then "bucket_lava.png", S("Lava Bucket"), S("A bucket can be used to collect and release liquids. This one is filled with hot lava, safely contained inside. Use with caution."), - S("Get in a safe distance and place the bucket to empty it and create a lava source at this spot. Don't burn yourself!"), - S("Places a lava source") + S("Get in a safe distance and place the bucket to empty it and create a lava source at this spot. Don't burn yourself!") ) -- Water bucket @@ -320,7 +318,6 @@ if mod_mcl_core then S("Water Bucket"), S("A bucket can be used to collect and release liquids. This one is filled with water."), S("Place it to empty the bucket and create a water source."), - S("Places a water source"), function(pos, placer) -- Check protection local placer_name = "" @@ -344,7 +341,7 @@ if mod_mcl_core then else local dim = mcl_worlds.pos_to_dimension(pos) if dim == "nether" then - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) return false end end @@ -363,7 +360,6 @@ if mod_mclx_core then S("River Water Bucket"), S("A bucket can be used to collect and release liquids. This one is filled with river water."), S("Place it to empty the bucket and create a river water source."), - S("Places a river water source"), function(pos, placer) -- Check protection local placer_name = "" @@ -387,7 +383,7 @@ if mod_mclx_core then -- Evaporate water if used in Nether (except on cauldron) local dim = mcl_worlds.pos_to_dimension(pos) if dim == "nether" then - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) return false end end diff --git a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.de.tr b/mods/ITEMS/mcl_buckets/locale/mcl_buckets.de.tr index 99d07109..26bb4ca4 100644 --- a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.de.tr +++ b/mods/ITEMS/mcl_buckets/locale/mcl_buckets.de.tr @@ -11,7 +11,3 @@ Place it to empty the bucket and create a water source.=Platzieren Sie ihn, um d River Water Bucket=Flusswassereimer A bucket can be used to collect and release liquids. This one is filled with river water.=Ein Eimer kann benutzt werden, um Flüssigkeiten aufzusammeln und wieder freizulassen. Dieser hier ist mit Flusswasser gefüllt. Place it to empty the bucket and create a river water source.=Platzieren Sie ihn, um den Eimer zu leeren und eine Flusswasserquelle zu erzeugen. -Collects liquids=Sammelt Flüssigkeiten auf -Places a lava source=Platziert eine Lavaquelle -Places a water source=Platziert eine Wasserquelle -Places a river water source=Platziert eine Flusswasserquelle diff --git a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.es.tr b/mods/ITEMS/mcl_buckets/locale/mcl_buckets.es.tr deleted file mode 100644 index 27517a1a..00000000 --- a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.es.tr +++ /dev/null @@ -1,13 +0,0 @@ -# textdomain: mcl_buckets -Empty Bucket=Cubo vacío -A bucket can be used to collect and release liquids.=Se puede usar un cubo para recoger y liberar líquidos. -Punch a liquid source to collect it. You can then use the filled bucket to place the liquid somewhere else.=Golpea una fuente de líquido para recolectarla. Luego puede usar el cubo lleno para colocar el líquido en otro lugar. -Lava Bucket=Cubo con lava -A bucket can be used to collect and release liquids. This one is filled with hot lava, safely contained inside. Use with caution.=Se puede usar un cubo para recoger y liberar líquidos. Este está lleno de lava caliente, contenida de forma segura en el interior. Usar con precaución. -Get in a safe distance and place the bucket to empty it and create a lava source at this spot. Don't burn yourself!=Aléjate a una distancia segura y coloca el cubo para vaciarlo y crea una fuente de lava en este lugar. ¡No te quemes! -Water Bucket=Cubo con agua -A bucket can be used to collect and release liquids. This one is filled with water.=Se puede usar un cubo para recoger y liberar líquidos. Este está lleno de agua. -Place it to empty the bucket and create a water source.=Colóquelo para vaciar el cubo y crear una fuente de agua. -River Water Bucket=Cubo de agua de río -A bucket can be used to collect and release liquids. This one is filled with river water.=Se puede usar un cubo para recoger y liberar líquidos. Este está lleno de agua de río. -Place it to empty the bucket and create a river water source.=Colóquelo para vaciar el cubo y crear una fuente de agua de río. \ No newline at end of file diff --git a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.fr.tr b/mods/ITEMS/mcl_buckets/locale/mcl_buckets.fr.tr deleted file mode 100644 index 4320f750..00000000 --- a/mods/ITEMS/mcl_buckets/locale/mcl_buckets.fr.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_buckets -Empty Bucket=Seau Vide -A bucket can be used to collect and release liquids.=Un seau peut être utilisé pour recueillir et libérer les liquides. -Punch a liquid source to collect it. You can then use the filled bucket to place the liquid somewhere else.=Frappez une source de liquide pour la collecter. Vous pouvez ensuite utiliser le seau rempli pour placer le liquide ailleurs. -Lava Bucket=Seau de Lave -A bucket can be used to collect and release liquids. This one is filled with hot lava, safely contained inside. Use with caution.=Un seau peut être utilisé pour recueillir et libérer les liquides. Celui-ci est rempli de lave chaude, contenue en toute sécurité à l'intérieur. Utiliser avec précaution. -Get in a safe distance and place the bucket to empty it and create a lava source at this spot. Don't burn yourself!=Eloignez-vous et placez le seau pour le vider et créez une source de lave à cet endroit. Ne vous brûlez pas! -Water Bucket=Seau d'Eau -A bucket can be used to collect and release liquids. This one is filled with water.=Un seau peut être utilisé pour recueillir et libérer les liquides. Celui-ci est rempli d'eau. -Place it to empty the bucket and create a water source.=Placez-le pour vider le seau et créer une source d'eau. -River Water Bucket=Seau d'Eau de Rivière -A bucket can be used to collect and release liquids. This one is filled with river water.=Un seau peut être utilisé pour recueillir et libérer les liquides. Celui-ci est rempli d'eau de rivière. -Place it to empty the bucket and create a river water source.=Placez-le pour vider le seau et créer une source d'eau de rivière. -Collects liquids=Collecte des liquides -Places a lava source=Place une source de lave -Places a water source=Place une source d'eau -Places a river water source=Place une source d'eau de rivière diff --git a/mods/ITEMS/mcl_buckets/locale/template.txt b/mods/ITEMS/mcl_buckets/locale/template.txt index 174d1b76..6ad479fe 100644 --- a/mods/ITEMS/mcl_buckets/locale/template.txt +++ b/mods/ITEMS/mcl_buckets/locale/template.txt @@ -11,7 +11,3 @@ Place it to empty the bucket and create a water source.= River Water Bucket= A bucket can be used to collect and release liquids. This one is filled with river water.= Place it to empty the bucket and create a river water source.= -Collects liquids= -Places a lava source= -Places a water source= -Places a river water source= diff --git a/mods/ITEMS/mcl_cake/init.lua b/mods/ITEMS/mcl_cake/init.lua index 9f9dd204..f3cc0232 100644 --- a/mods/ITEMS/mcl_cake/init.lua +++ b/mods/ITEMS/mcl_cake/init.lua @@ -3,8 +3,6 @@ #!#!#!#Released under CC Attribution-ShareAlike 3.0 Unported #!#!# ]]-- -local CAKE_HUNGER_POINTS = 2 - local S = minetest.get_translator("mcl_cake") local cake_texture = {"cake_top.png","cake_bottom.png","cake_inner.png","cake_side.png","cake_side.png","cake_side.png"} @@ -33,7 +31,6 @@ minetest.register_craft({ minetest.register_node("mcl_cake:cake", { description = S("Cake"), - _tt_help = S("With 7 tasty slices!").."\n"..S("Hunger points: +@1 per slice", CAKE_HUNGER_POINTS), _doc_items_longdesc = S("Cakes can be placed and eaten to restore hunger points. A cake has 7 slices. Each slice restores 2 hunger points and 0.4 saturation points. Cakes will be destroyed when dug or when the block below them is broken."), _doc_items_usagehelp = S("Place the cake anywhere, then rightclick it to eat a single slice. You can't eat from the cake when your hunger bar is full."), tiles = {"cake_top.png","cake_bottom.png","cake_side.png","cake_side.png","cake_side.png","cake_side.png"}, @@ -70,7 +67,7 @@ minetest.register_node("mcl_cake:cake", { _food_particles = false, _mcl_saturation = 0.4, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -85,7 +82,7 @@ local register_slice = function(level, nodebox, desc) minetest.record_protection_violation(pos, name) return end - local newcake = minetest.do_item_eat(CAKE_HUNGER_POINTS, ItemStack(after_eat), ItemStack(this), clicker, {type="nothing"}) + local newcake = minetest.do_item_eat(2, ItemStack(after_eat), ItemStack(this), clicker, {type="nothing"}) -- Check if we were allowed to eat if newcake:get_name() ~= this or minetest.settings:get_bool("creative_mode") == true then minetest.add_node(pos,{type="node",name=after_eat,param2=0}) @@ -99,7 +96,7 @@ local register_slice = function(level, nodebox, desc) minetest.record_protection_violation(pos, name) return end - local newcake = minetest.do_item_eat(CAKE_HUNGER_POINTS, ItemStack("mcl:cake:cake 0"), ItemStack("mcl_cake:cake_1"), clicker, {type="nothing"}) + local newcake = minetest.do_item_eat(2, ItemStack("mcl:cake:cake 0"), ItemStack("mcl_cake:cake_1"), clicker, {type="nothing"}) -- Check if we were allowed to eat if newcake:get_name() ~= this or minetest.settings:get_bool("creative_mode") == true then minetest.remove_node(pos) @@ -130,7 +127,7 @@ local register_slice = function(level, nodebox, desc) _food_particles = false, _mcl_saturation = 0.4, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) diff --git a/mods/ITEMS/mcl_cake/locale/mcl_cake.de.tr b/mods/ITEMS/mcl_cake/locale/mcl_cake.de.tr index f5af4f30..204f0d4a 100644 --- a/mods/ITEMS/mcl_cake/locale/mcl_cake.de.tr +++ b/mods/ITEMS/mcl_cake/locale/mcl_cake.de.tr @@ -8,5 +8,3 @@ Cake (4 Slices Left)=Kuchen (4 Stücke übrig) Cake (3 Slices Left)=Kuchen (3 Stücke übrig) Cake (2 Slices Left)=Kuchen (2 Stücke übrig) Cake (1 Slice Left)=Kuchen (1 Stück übrig) -With 7 tasty slices!=Mit 7 leckeren Stücken! -Hunger points: +@1 per slice=Hungerpunkte: +@1 pro Stück diff --git a/mods/ITEMS/mcl_cake/locale/mcl_cake.es.tr b/mods/ITEMS/mcl_cake/locale/mcl_cake.es.tr deleted file mode 100644 index 261d581e..00000000 --- a/mods/ITEMS/mcl_cake/locale/mcl_cake.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_cake -Cake=Tarta -Cakes can be placed and eaten to restore hunger points. A cake has 7 slices. Each slice restores 2 hunger points and 0.4 saturation points. Cakes will be destroyed when dug or when the block below them is broken.=Los pasteles se pueden colocar y comer para restaurar los puntos de hambre. Un pastel tiene 7 trozos. Cada trozo restaura 2 puntos de hambre y 0.4 puntos de saturación. Los pasteles se destruirán cuando se caven o cuando se rompa el bloque debajo de ellos. -Place the cake anywhere, then rightclick it to eat a single slice. You can't eat from the cake when your hunger bar is full.=Coloque el pastel en cualquier lugar, luego haga clic derecho para comer una sola trozo. No puedes comer del pastel cuando tu barra de hambre está llena. -Cake (6 Slices Left)=Tarta (Quedan 6 trozos) -Cake (5 Slices Left)=Tarta (Quedan 5 trozos) -Cake (4 Slices Left)=Tarta (Quedan 4 trozos) -Cake (3 Slices Left)=Tarta (Quedan 3 trozos) -Cake (2 Slices Left)=Tarta (Quedan 2 trozos) -Cake (1 Slice Left)=Tarta (Queda 1 trozo) diff --git a/mods/ITEMS/mcl_cake/locale/mcl_cake.fr.tr b/mods/ITEMS/mcl_cake/locale/mcl_cake.fr.tr deleted file mode 100644 index 06e3b7ce..00000000 --- a/mods/ITEMS/mcl_cake/locale/mcl_cake.fr.tr +++ /dev/null @@ -1,12 +0,0 @@ -# textdomain: mcl_cake -Cake=Gâteau -Cakes can be placed and eaten to restore hunger points. A cake has 7 slices. Each slice restores 2 hunger points and 0.4 saturation points. Cakes will be destroyed when dug or when the block below them is broken.=Les gâteaux peuvent être placés et mangés pour restaurer les points de faim. Un gâteau a 7 tranches. Chaque tranche restaure 2 points de faim et 0,4 points de saturation. Les gâteaux seront détruits lorsqu'ils seront creusés ou lorsque le bloc en dessous d'eux sera brisé. -Place the cake anywhere, then rightclick it to eat a single slice. You can't eat from the cake when your hunger bar is full.=Placez le gâteau n'importe où, puis faites un clic droit pour manger une seule tranche. Vous ne pouvez pas manger du gâteau lorsque votre barre de faim est pleine. -Cake (6 Slices Left)=Gâteau (reste 6 tranches) -Cake (5 Slices Left)=Gâteau (reste 5 tranches) -Cake (4 Slices Left)=Gâteau (reste 4 tranches) -Cake (3 Slices Left)=Gâteau (reste 3 tranches) -Cake (2 Slices Left)=Gâteau (reste 2 tranches) -Cake (1 Slice Left)=Gâteau (reste 1 tranche) -With 7 tasty slices!=Avec 7 tranches savoureuses! -Hunger points: +@1 per slice=Points de faim: +@1 par tranche diff --git a/mods/ITEMS/mcl_cake/locale/template.txt b/mods/ITEMS/mcl_cake/locale/template.txt index 080e7395..921f9612 100644 --- a/mods/ITEMS/mcl_cake/locale/template.txt +++ b/mods/ITEMS/mcl_cake/locale/template.txt @@ -8,5 +8,3 @@ Cake (4 Slices Left)= Cake (3 Slices Left)= Cake (2 Slices Left)= Cake (1 Slice Left)= -With 7 tasty slices!= -Hunger points: +@1 per slice= diff --git a/mods/ITEMS/mcl_cake/textures/cake.png b/mods/ITEMS/mcl_cake/textures/cake.png index db340bd7..736faa6d 100644 Binary files a/mods/ITEMS/mcl_cake/textures/cake.png and b/mods/ITEMS/mcl_cake/textures/cake.png differ diff --git a/mods/ITEMS/mcl_cake/textures/cake_bottom.png b/mods/ITEMS/mcl_cake/textures/cake_bottom.png index d7f8602b..d64db7f7 100644 Binary files a/mods/ITEMS/mcl_cake/textures/cake_bottom.png and b/mods/ITEMS/mcl_cake/textures/cake_bottom.png differ diff --git a/mods/ITEMS/mcl_cake/textures/cake_side.png b/mods/ITEMS/mcl_cake/textures/cake_side.png index f69be02c..3d4643e4 100644 Binary files a/mods/ITEMS/mcl_cake/textures/cake_side.png and b/mods/ITEMS/mcl_cake/textures/cake_side.png differ diff --git a/mods/ITEMS/mcl_cake/textures/cake_top.png b/mods/ITEMS/mcl_cake/textures/cake_top.png index 667a5b32..576c3fe8 100644 Binary files a/mods/ITEMS/mcl_cake/textures/cake_top.png and b/mods/ITEMS/mcl_cake/textures/cake_top.png differ diff --git a/mods/ITEMS/mcl_cauldrons/init.lua b/mods/ITEMS/mcl_cauldrons/init.lua index 7f0592b2..68c507ce 100644 --- a/mods/ITEMS/mcl_cauldrons/init.lua +++ b/mods/ITEMS/mcl_cauldrons/init.lua @@ -45,7 +45,6 @@ end -- Empty cauldron minetest.register_node("mcl_cauldrons:cauldron", { description = S("Cauldron"), - _tt_help = S("Stores water"), _doc_items_longdesc = S("Cauldrons are used to store water and slowly fill up under rain."), _doc_items_usagehelp = S("Place a water pucket into the cauldron to fill it with water. Place an empty bucket on a full cauldron to retrieve the water. Place a water bottle into the cauldron to fill the cauldron to one third with water. Place a glass bottle in a cauldron with water to retrieve one third of the water."), wield_image = "mcl_cauldrons_cauldron.png", @@ -63,7 +62,7 @@ minetest.register_node("mcl_cauldrons:cauldron", { }, sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_hardness = 2, - _mcl_blast_resistance = 2, + _mcl_blast_resistance = 10, }) -- Template function for cauldrons with water @@ -94,7 +93,7 @@ local register_filled_cauldron = function(water_level, description, river_water) sounds = mcl_sounds.node_sound_metal_defaults(), drop = "mcl_cauldrons:cauldron", _mcl_hardness = 2, - _mcl_blast_resistance = 2, + _mcl_blast_resistance = 10, }) -- Add entry aliases for the Help diff --git a/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.de.tr b/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.de.tr index 72432b04..0e3a4c41 100644 --- a/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.de.tr +++ b/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.de.tr @@ -8,4 +8,3 @@ Cauldron (3/3 Water)=Kessel (3/3 Wasser) Cauldron (1/3 River Water)=Kessel (1/3 Wasser) Cauldron (2/3 River Water)=Kessel (2/3 Flusswasser) Cauldron (3/3 River Water)=Kessel (3/3 Flusswasser) -Stores water=Speichert Wasser diff --git a/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.es.tr b/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.es.tr deleted file mode 100644 index 5f7f9fc3..00000000 --- a/mods/ITEMS/mcl_cauldrons/locale/mcl_cauldrons.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_cauldron -Cauldron=Caldera -Cauldrons are used to store water and slowly fill up under rain.=Los calderos se usan para almacenar agua y llenarse lentamente bajo la lluvia. -Place a water pucket into the cauldron to fill it with water. Place an empty bucket on a full cauldron to retrieve the water. Place a water bottle into the cauldron to fill the cauldron to one third with water. Place a glass bottle in a cauldron with water to retrieve one third of the water.=Coloque un cubo de agua en el caldero para llenarlo con agua. Coloque un cubo vacío en un caldero lleno para recuperar el agua. Coloque una botella de agua en el caldero para llenar el caldero hasta un tercio con agua. Coloque una botella de vidrio en un caldero con agua para recuperar un tercio del agua. -Cauldron (1/3 Water)=Caldera (1/3 de agua) -Cauldron (2/3 Water)=Caldera (2/3 de agua) -Cauldron (3/3 Water)=Caldera (3/3 de agua) -Cauldron (1/3 River Water)=Caldera (1/3 de agua de río) -Cauldron (2/3 River Water)=Caldera (2/3 de agua de río) -Cauldron (3/3 River Water)=Caldera (3/3 de agua de río) \ No newline at end of file diff --git a/mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.fr.tr b/mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.fr.tr deleted file mode 100644 index 03b0e9be..00000000 --- a/mods/ITEMS/mcl_cauldrons/locale/mcl_chaudrons.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_cauldron -Cauldron=Chaudrons -Cauldrons are used to store water and slowly fill up under rain. They can also be used to wash off banners.=Les chaudrons sont utilisés pour stocker l'eau et se remplissent lentement sous la pluie. Ils peuvent également être utilisés pour laver les bannières. -Place a water pucket into the cauldron to fill it with water. Place an empty bucket on a full cauldron to retrieve the water. Place a water bottle into the cauldron to fill the cauldron to one third with water. Place a glass bottle in a cauldron with water to retrieve one third of the water. Use an emblazoned banner on a cauldron with water to wash off its top layer.=Placez une marmite d'eau dans le chaudron pour le remplir d'eau. Placez un seau vide sur un chaudron plein pour récupérer l'eau. Placez une bouteille d'eau dans le chaudron pour remplir le chaudron au tiers avec de l'eau. Placez une bouteille en verre dans un chaudron avec de l'eau pour récupérer un tiers de l'eau. Utilisez une bannière blasonnée sur un chaudron avec de l'eau pour laver sa couche supérieure. -Cauldron (1/3 Water)=Chaudron (1/3 d'eau) -Cauldron (2/3 Water)=Chaudron (2/3 d'eau) -Cauldron (3/3 Water)=Chaudron (3/3 d'eau) -Cauldron (1/3 River Water)=Chaudron (1/3 d'eau de rivière) -Cauldron (2/3 River Water)=Chaudron (2/3 d'eau de rivière) -Cauldron (3/3 River Water)=Chaudron (3/3 d'eau de rivière) -Stores water=Stocke l'eau diff --git a/mods/ITEMS/mcl_cauldrons/locale/template.txt b/mods/ITEMS/mcl_cauldrons/locale/template.txt index b4385631..426d7d69 100644 --- a/mods/ITEMS/mcl_cauldrons/locale/template.txt +++ b/mods/ITEMS/mcl_cauldrons/locale/template.txt @@ -8,4 +8,3 @@ Cauldron (3/3 Water)= Cauldron (1/3 River Water)= Cauldron (2/3 River Water)= Cauldron (3/3 River Water)= -Stores water= diff --git a/mods/ITEMS/mcl_cauldrons/textures/mcl_cauldrons_cauldron.png b/mods/ITEMS/mcl_cauldrons/textures/mcl_cauldrons_cauldron.png index b4a51c31..d373012f 100644 Binary files a/mods/ITEMS/mcl_cauldrons/textures/mcl_cauldrons_cauldron.png and b/mods/ITEMS/mcl_cauldrons/textures/mcl_cauldrons_cauldron.png differ diff --git a/mods/ITEMS/mcl_chests/depends.txt b/mods/ITEMS/mcl_chests/depends.txt index af11d5f6..cd00aa22 100644 --- a/mods/ITEMS/mcl_chests/depends.txt +++ b/mods/ITEMS/mcl_chests/depends.txt @@ -1,5 +1,4 @@ mcl_init -mcl_formspec mcl_core mcl_sounds mcl_end diff --git a/mods/ITEMS/mcl_chests/init.lua b/mods/ITEMS/mcl_chests/init.lua index 3d36aa13..39af9a21 100644 --- a/mods/ITEMS/mcl_chests/init.lua +++ b/mods/ITEMS/mcl_chests/init.lua @@ -77,7 +77,7 @@ local player_chest_close = function(player) end -- This is a helper function to register both chests and trapped chests. Trapped chests will make use of the additional parameters -local register_chest = function(basename, desc, longdesc, usagehelp, tt_help, tiles_table, hidden, mesecons, on_rightclick_addendum, on_rightclick_addendum_left, on_rightclick_addendum_right, drop, canonical_basename) +local register_chest = function(basename, desc, longdesc, usagehelp, tiles_table, hidden, mesecons, on_rightclick_addendum, on_rightclick_addendum_left, on_rightclick_addendum_right, drop, canonical_basename) -- START OF register_chest FUNCTION BODY if not drop then drop = "mcl_chests:"..basename @@ -90,42 +90,8 @@ if not canonical_basename then canonical_basename = basename end -local double_chest_add_item = function(top_inv, bottom_inv, listname, stack) - if not stack or stack:is_empty() then - return - end - - local name = stack:get_name() - - local top_off = function(inv, stack) - for c, chest_stack in ipairs(inv:get_list(listname)) do - if stack:is_empty() then - break - end - - if chest_stack:get_name() == name and chest_stack:get_free_space() > 0 then - stack = chest_stack:add_item(stack) - inv:set_stack(listname, c, chest_stack) - end - end - - return stack - end - - stack = top_off(top_inv, stack) - stack = top_off(bottom_inv, stack) - - if not stack:is_empty() then - stack = top_inv:add_item(listname, stack) - if not stack:is_empty() then - bottom_inv:add_item(listname, stack) - end - end -end - minetest.register_node("mcl_chests:"..basename, { description = desc, - _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, _doc_items_hidden = hidden, @@ -134,7 +100,7 @@ minetest.register_node("mcl_chests:"..basename, { paramtype2 = "facedir", stack_max = 64, drop = drop, - groups = {handy=1,axey=1, container=2, deco_block=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, container=2, deco_block=1, material_wood=1}, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), on_construct = function(pos) @@ -142,7 +108,7 @@ minetest.register_node("mcl_chests:"..basename, { local meta = minetest.get_meta(pos) --[[ This is a workaround for Minetest issue 5894 . - Apparently if we don't do this, large chests initially don't work when + Apparently if we don't do this, double chests initially don't work when placed at chunk borders, and some chests randomly don't work after placing. ]] -- FIXME: Remove this workaround when the bug has been fixed. @@ -216,14 +182,13 @@ minetest.register_node("mcl_chests:"..basename, { minetest.show_formspec(clicker:get_player_name(), "mcl_chests:"..canonical_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "size[9,8.75]".. + mcl_vars.inventory_header.. + "background[-0.19,-0.25;9.41,10.48;mcl_chests_inventory_chest.png]".. "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Chest"))).."]".. "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,0.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,0.5,9,3).. "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "listring[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main]".. "listring[current_player;main]") @@ -246,7 +211,7 @@ minetest.register_node("mcl_chests:"..basename.."_left", { tiles = tiles_table.left, paramtype = "light", paramtype2 = "facedir", - groups = {handy=1,axey=1, container=5,not_in_creative_inventory=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, container=5,not_in_creative_inventory=1, material_wood=1}, drop = drop, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -330,10 +295,12 @@ minetest.register_node("mcl_chests:"..basename.."_left", { -- BEGIN OF LISTRING WORKAROUND if listname == "input" then local inv = minetest.get_inventory({type="node", pos=pos}) - local other_pos = mcl_util.get_double_container_neighbor_pos(pos, minetest.get_node(pos).param2, "left") - local other_inv = minetest.get_inventory({type="node", pos=other_pos}) - - double_chest_add_item(inv, other_inv, "main", stack) + local leftover = inv:add_item("main", stack) + if not leftover:is_empty() then + local other_pos = mcl_util.get_double_container_neighbor_pos(pos, minetest.get_node(pos).param2, "left") + local other_inv = minetest.get_inventory({type="node", pos=other_pos}) + other_inv:add_item("main", leftover) + end end -- END OF LISTRING WORKAROUND end, @@ -350,16 +317,14 @@ minetest.register_node("mcl_chests:"..basename.."_left", { minetest.show_formspec(clicker:get_player_name(), "mcl_chests:"..canonical_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "size[9,11.5]".. + "background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]".. + mcl_vars.inventory_header.. "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Large Chest"))).."]".. "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,0.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,0.5,9,3).. "list[nodemeta:"..pos_other.x..","..pos_other.y..","..pos_other.z..";main;0,3.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,3.5,9,3).. "label[0,7;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,7.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,7.5,9,3).. "list[current_player;main;0,10.75;9,1;]".. - mcl_formspec.get_itemslot_bg(0,10.75,9,1).. -- BEGIN OF LISTRING WORKAROUND "listring[current_player;main]".. "listring[nodemeta:"..pos.x..","..pos.y..","..pos.z..";input]".. @@ -381,7 +346,7 @@ minetest.register_node("mcl_chests:"..basename.."_right", { tiles = tiles_table.right, paramtype = "light", paramtype2 = "facedir", - groups = {handy=1,axey=1, container=6,not_in_creative_inventory=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, container=6,not_in_creative_inventory=1, material_wood=1}, drop = drop, is_ground_content = false, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -466,9 +431,11 @@ minetest.register_node("mcl_chests:"..basename.."_right", { if listname == "input" then local other_pos = mcl_util.get_double_container_neighbor_pos(pos, minetest.get_node(pos).param2, "right") local other_inv = minetest.get_inventory({type="node", pos=other_pos}) - local inv = minetest.get_inventory({type="node", pos=pos}) - - double_chest_add_item(other_inv, inv, "main", stack) + local leftover = other_inv:add_item("main", stack) + if not leftover:is_empty() then + local inv = minetest.get_inventory({type="node", pos=pos}) + inv:add_item("main", leftover) + end end -- END OF LISTRING WORKAROUND end, @@ -486,16 +453,14 @@ minetest.register_node("mcl_chests:"..basename.."_right", { "mcl_chests:"..canonical_basename.."_"..pos.x.."_"..pos.y.."_"..pos.z, "size[9,11.5]".. + "background[-0.19,-0.25;9.41,12.5;mcl_chests_inventory_chest_large.png]".. + mcl_vars.inventory_header.. "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Large Chest"))).."]".. "list[nodemeta:"..pos_other.x..","..pos_other.y..","..pos_other.z..";main;0,0.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,0.5,9,3).. "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0,3.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,3.5,9,3).. "label[0,7;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,7.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,7.5,9,3).. "list[current_player;main;0,10.75;9,1;]".. - mcl_formspec.get_itemslot_bg(0,10.75,9,1).. -- BEGIN OF LISTRING WORKAROUND "listring[current_player;main]".. "listring[nodemeta:"..pos.x..","..pos.y..","..pos.z..";input]".. @@ -527,7 +492,6 @@ register_chest("chest", S("Chest"), S("Chests are containers which provide 27 inventory slots. Chests can be turned into large chests with double the capacity by placing two chests next to each other."), chestusage, - S("27 inventory slots") .. "\n" .. S("Can be combined to a large chest"), { small = {"default_chest_top.png", "mcl_chests_chest_bottom.png", "mcl_chests_chest_right.png", "mcl_chests_chest_left.png", @@ -558,7 +522,6 @@ register_chest("trapped_chest", S("Trapped Chest"), S("A trapped chest is a container which provides 27 inventory slots. When it is opened, it sends a redstone signal to its adjacent blocks as long it stays open. Trapped chests can be turned into large trapped chests with double the capacity by placing two trapped chests next to each other."), chestusage, - S("27 inventory slots") .. "\n" .. S("Can be combined to a large chest") .. "\n" .. S("Emits a redstone signal when opened"), traptiles, nil, {receptor = { @@ -597,7 +560,7 @@ register_chest("trapped_chest", ) register_chest("trapped_chest_on", - nil, nil, nil, nil, traptiles, true, + nil, nil, nil, traptiles, true, {receptor = { state = mesecon.state.on, rules = trapped_chest_mesecons_rules, @@ -678,22 +641,8 @@ minetest.register_craft({ burntime = 15 }) -local formspec_ender_chest = "size[9,8.75]".. - "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Ender Chest"))).."]".. - "list[current_player;enderchest;0,0.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,0.5,9,3).. - "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. - "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. - "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. - "listring[current_player;enderchest]".. - "listring[current_player;main]" - - minetest.register_node("mcl_chests:ender_chest", { description = S("Ender Chest"), - _tt_help = S("27 interdimensional inventory slots") .. "\n" .. S("Put items inside, retrieve them from any ender chest"), _doc_items_longdesc = S("Ender chests grant you access to a single personal interdimensional inventory with 27 slots. This inventory is the same no matter from which ender chest you access it from. If you put one item into one ender chest, you will find it in all other ender chests. Each player will only see their own items, but not the items of other players."), _doc_items_usagehelp = S("Rightclick the ender chest to access your personal interdimensional inventory."), tiles = {"mcl_chests_ender_chest_top.png", "mcl_chests_ender_chest_bottom.png", @@ -710,7 +659,17 @@ minetest.register_node("mcl_chests:ender_chest", { drop = "mcl_core:obsidian 8", on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("formspec", formspec_ender_chest) + meta:set_string("formspec", + "size[9,8.75]".. + mcl_vars.inventory_header.. + "background[-0.19,-0.25;9.41,10.48;mcl_chests_inventory_chest.png]".. + "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Ender Chest"))).."]".. + "list[current_player;enderchest;0,0.5;9,3;]".. + "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. + "list[current_player;main;0,4.5;9,3;9]".. + "list[current_player;main;0,7.74;9,1;]".. + "listring[current_player;enderchest]".. + "listring[current_player;main]") end, _mcl_blast_resistance = 3000, _mcl_hardness = 22.5, @@ -781,18 +740,6 @@ local shulker_mob_textures = { } local canonical_shulker_color = "violet" -local formspec_shulker_box = "size[9,8.75]".. - "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Shulker Box"))).."]".. - "list[current_name;main;0,0.5;9,3;]".. - mcl_formspec.get_itemslot_bg(0,0.5,9,3).. - "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. - "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. - "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. - "listring[current_name;main]".. - "listring[current_player;main]" - for color, desc in pairs(boxtypes) do local mob_texture = shulker_mob_textures[color] local is_canonical = color == canonical_shulker_color @@ -809,7 +756,6 @@ for color, desc in pairs(boxtypes) do minetest.register_node("mcl_chests:"..color.."_shulker_box", { description = desc, - _tt_help = S("27 inventory slots") .. "\n" .. S("Can be carried around with its contents"), _doc_items_create_entry = create_entry, _doc_items_entry_name = entry_name, _doc_items_longdesc = longdesc, @@ -834,7 +780,17 @@ for color, desc in pairs(boxtypes) do -- on_place = minetest.rotate_node, on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("formspec", formspec_shulker_box) + meta:set_string("formspec", + "size[9,8.75]".. + mcl_vars.inventory_header.. + "background[-0.19,-0.25;9.41,10.48;mcl_chests_inventory_chest.png]".. + "label[0,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Shulker Box"))).."]".. + "list[current_name;main;0,0.5;9,3;]".. + "label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. + "list[current_player;main;0,4.5;9,3;9]".. + "list[current_player;main;0,7.74;9,1;]".. + "listring[current_name;main]".. + "listring[current_player;main]") local inv = meta:get_inventory() inv:set_size("main", 9*3) end, @@ -927,29 +883,6 @@ minetest.register_craft({ } }) --- Save metadata of shulker box when used in crafting -minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) - local new = itemstack:get_name() - if minetest.get_item_group(itemstack:get_name(), "shulker_box") ~= 1 then - return - end - local original - for i = 1, #old_craft_grid do - local item = old_craft_grid[i]:get_name() - if minetest.get_item_group(item, "shulker_box") == 1 then - original = old_craft_grid[i] - break - end - end - if original then - local ometa = original:get_meta():to_table() - local nmeta = itemstack:get_meta() - nmeta:from_table(ometa) - return itemstack - end -end) - - minetest.register_lbm({ -- Disable active/open trapped chests when loaded because nobody could -- have them open at loading time. @@ -959,29 +892,7 @@ minetest.register_lbm({ nodenames = { "mcl_chests:trapped_chest_on", "mcl_chests:trapped_chest_on_left", "mcl_chests:trapped_chest_on_right" }, run_at_every_load = true, action = function(pos, node) - minetest.log("action", "[mcl_chests] Disabled active trapped chest on load: " ..minetest.pos_to_string(pos)) + minetest.log("error", "lbm!" ..minetest.pos_to_string(pos)) chest_update_after_close(pos) end, }) - --- Legacy -minetest.register_lbm({ - label = "Update ender chest formspecs (0.60.0)", - name = "mcl_chests:update_ender_chest_formspecs_0_60_0", - nodenames = { "mcl_chests:ender_chest" }, - run_at_every_load = false, - action = function(pos, node) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", formspec_ender_chest) - end, -}) -minetest.register_lbm({ - label = "Update shulker box formspecs (0.60.0)", - name = "mcl_chests:update_shulker_box_formspecs_0_60_0", - nodenames = { "group:shulker_box" }, - run_at_every_load = false, - action = function(pos, node) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", formspec_shulker_box) - end, -}) diff --git a/mods/ITEMS/mcl_chests/locale/mcl_chests.de.tr b/mods/ITEMS/mcl_chests/locale/mcl_chests.de.tr index b4ef7969..2fac283e 100644 --- a/mods/ITEMS/mcl_chests/locale/mcl_chests.de.tr +++ b/mods/ITEMS/mcl_chests/locale/mcl_chests.de.tr @@ -28,9 +28,3 @@ To access the inventory of a shulker box, place and right-click it. To take a sh Shulker Box=Schulkerkiste Large Chest=Große Truhe Inventory=Inventar -27 inventory slots=27 Inventarplätze -Can be carried around with its contents=Kann mitsamt Inhalt transportiert werden -Can be combined to a large chest=Kann zu einer großen Truhe kombiniert werden -27 interdimensional inventory slots=27 interdimensionale Inventarplätze -Put items inside, retrieve them from any ender chest=Abgelegte Gegenstände können aus beliebigen Endertruhen genommen werden -Emits a redstone signal when opened=Sendet ein Redstonesignal beim Öffnen diff --git a/mods/ITEMS/mcl_chests/locale/mcl_chests.es.tr b/mods/ITEMS/mcl_chests/locale/mcl_chests.es.tr deleted file mode 100644 index 9d44bacc..00000000 --- a/mods/ITEMS/mcl_chests/locale/mcl_chests.es.tr +++ /dev/null @@ -1,30 +0,0 @@ -# textdomain: mcl_chests -Chest=Cofre -Chests are containers which provide 27 inventory slots. Chests can be turned into large chests with double the capacity by placing two chests next to each other.=Los cofres son contenedores que proporcionan 27 ranuras de inventario. Los cofres se pueden convertir en cofres grandes con el doble de capacidad colocando dos cofres uno al lado del otro. -To access its inventory, rightclick it. When broken, the items will drop out.=Para acceder a su inventario, haga clic derecho. Cuando se rompen, los artículos se caerán. -Trapped Chest=Cofre trampa -A trapped chest is a container which provides 27 inventory slots. When it is opened, it sends a redstone signal to its adjacent blocks as long it stays open. Trapped chests can be turned into large trapped chests with double the capacity by placing two trapped chests next to each other.=Un sofre trampa es un contenedor que proporciona 27 ranuras de inventario. Cuando se abre, envía una señal de redstone a sus bloques adyacentes siempre que permanezca abierto. Los cofres trampa se pueden convertir en grandes cofres trampa con el doble de capacidad colocando dos cofres atrapados uno al lado del otro. -Ender Chest=Cofre de ender -Ender chests grant you access to a single personal interdimensional inventory with 27 slots. This inventory is the same no matter from which ender chest you access it from. If you put one item into one ender chest, you will find it in all other ender chests. Each player will only see their own items, but not the items of other players.=Los cofres Ender le otorgan acceso a un único inventario interdimensional personal con 27 ranuras. Este inventario es el mismo sin importar desde qué cofre de acceso accedas. Si pones un elemento en un cofre de ender, lo encontrarás en todos los demás cofres de ender. Cada jugador solo verá sus propios artículos, pero no los artículos de otros jugadores. -Rightclick the ender chest to access your personal interdimensional inventory.=Haga clic derecho en el cofre ender para acceder a su inventario interdimensional personal. -White Shulker Box=Caja de shulker Blanca -Light Grey Shulker Box=Caja de shulker gris claro -Orange Shulker Box=Caja de shulker naranja -Cyan Shulker Box=Caja de shulker cian -Magenta Shulker Box=Caja de shulker magenta -Purple Shulker Box=Caja de shulker morada -Light Blue Shulker Box=Caja de shulker azul claro -Blue Shulker Box=Caja de shulker azul -Yellow Shulker Box=Caja de shulker amarilla -Brown Shulker Box=Caja de shulker marrón -Lime Shulker Box=Caja de shulker verde lima -Green Shulker Box=Caja de shulker verde -Pink Shulker Box=Caja de shulker rosa -Red Shulker Box=Caja de shulker roja -Grey Shulker Box=Caja de shulker gris -Black Shulker Box=Caja de shulker negra -A shulker box is a portable container which provides 27 inventory slots for any item except shulker boxes. Shulker boxes keep their inventory when broken, so shulker boxes as well as their contents can be taken as a single item. Shulker boxes come in many different colors.=Una caja de shulker es un contenedor portátil que proporciona 27 ranuras de inventario para cualquier artículo, excepto las cajas shulker. Las cajas de shulker mantienen su inventario cuando están rotas, por lo que las cajas de shulker y sus contenidos se pueden tomar como un solo artículo. Las cajas shulker vienen en muchos colores diferentes. -To access the inventory of a shulker box, place and right-click it. To take a shulker box and its contents with you, just break and collect it, the items will not fall out.=Para acceder al inventario de un cuadro de shulker, colóquelo y haga clic con el botón derecho. Para llevar una caja de shulker y su contenido, solo rómpela y recójala, los artículos no se caerán. -Shulker Box=Caja de shulker -Large Chest=Arcón -Inventory=Inventario diff --git a/mods/ITEMS/mcl_chests/locale/mcl_chests.fr.tr b/mods/ITEMS/mcl_chests/locale/mcl_chests.fr.tr deleted file mode 100644 index b84dac02..00000000 --- a/mods/ITEMS/mcl_chests/locale/mcl_chests.fr.tr +++ /dev/null @@ -1,36 +0,0 @@ -# textdomain: mcl_chests -Chest=Coffre -Chests are containers which provide 27 inventory slots. Chests can be turned into large chests with double the capacity by placing two chests next to each other.=Les coffres sont des conteneurs qui offrent 27 emplacements d'inventaire. Les coffres peuvent être transformés en grands coffres avec une capacité double en plaçant deux coffres l'un à côté de l'autre. -To access its inventory, rightclick it. When broken, the items will drop out.=Pour accéder à son inventaire, faites un clic droit dessus. Une fois cassés, les articles tomberont. -Trapped Chest=Coffre Piégé -A trapped chest is a container which provides 27 inventory slots. When it is opened, it sends a redstone signal to its adjacent blocks as long it stays open. Trapped chests can be turned into large trapped chests with double the capacity by placing two trapped chests next to each other.=Un coffre piégé est un conteneur qui fournit 27 emplacements d'inventaire. Lorsqu'il est ouvert, il envoie un signal redstone à ses blocs adjacents tant qu'il reste ouvert. Les coffres piégés peuvent être transformés en grands coffres piégés avec une capacité double en plaçant deux coffres piégés l'un à côté de l'autre. -Ender Chest=Coffre Ender -Ender chests grant you access to a single personal interdimensional inventory with 27 slots. This inventory is the same no matter from which ender chest you access it from. If you put one item into one ender chest, you will find it in all other ender chests. Each player will only see their own items, but not the items of other players.=Les coffres Ender vous donnent accès à un seul inventaire interdimensionnel personnel avec 27 emplacements. Cet inventaire est le même quel que soit le coffre d'ender d'où vous y accédez. Si vous placez un objet dans un coffre d'ender, vous le trouverez dans tous les autres coffres d'ender. Chaque joueur ne verra que ses propres objets, mais pas ceux des autres joueurs. -Rightclick the ender chest to access your personal interdimensional inventory.=Faites un clic droit sur le coffre d'ender pour accéder à votre inventaire interdimensionnel personnel. -White Shulker Box=Boîte de Shulter Blanche -Light Grey Shulker Box=Boîte de Shulter Gris Clair -Orange Shulker Box=Boîte de Shulter Orange -Cyan Shulker Box=Boîte de Shulter Cyan -Magenta Shulker Box=Boîte de Shulter Magenta -Purple Shulker Box=Boîte de Shulter Violette -Light Blue Shulker Box=Boîte de Shulter Bleu Clair -Blue Shulker Box=Boîte de Shulter Bleue -Yellow Shulker Box=Boîte de Shulter Jaune -Brown Shulker Box=Boîte de Shulter Marron -Lime Shulker Box=Boîte de Shulter Vert Clair -Green Shulker Box=Boîte de Shulter Verte -Pink Shulker Box=Boîte de Shulter Rose -Red Shulker Box=Boîte de Shulter Rouge -Grey Shulker Box=Boîte de Shulter Grise -Black Shulker Box=Boîte de Shulter Noire -A shulker box is a portable container which provides 27 inventory slots for any item except shulker boxes. Shulker boxes keep their inventory when broken, so shulker boxes as well as their contents can be taken as a single item. Shulker boxes come in many different colors.=Une boîte shulker est un conteneur portable qui fournit 27 emplacements d'inventaire pour tout article, à l'exception des boîtes shulker. Les boîtes Shulker conservent leur inventaire lorsqu'elles sont brisées, de sorte que les boîtes Shulker ainsi que leur contenu peuvent être considérés comme un seul élément. Les boîtes Shulker sont disponibles dans de nombreuses couleurs différentes. -To access the inventory of a shulker box, place and right-click it. To take a shulker box and its contents with you, just break and collect it, the items will not fall out. Place the shulker box again to be able to retrieve its contents.=Pour accéder à l'inventaire d'une boîte shulker, placez-la et cliquez dessus avec le bouton droit. Pour emporter une boîte shulker et son contenu, il suffit de la casser et de la récupérer, les objets ne tomberont pas. Replacez la boîte shulker pour pouvoir récupérer son contenu. -Shulker Box=Boîte de Shulter -Large Chest=Coffre Large -Inventory=Inventaire -27 inventory slots=27 emplacements d'inventaire -Can be carried around with its contents=Peut être transporté avec son contenu -Can be combined to a large chest=Peut être combiné à un grand coffre -27 interdimensional inventory slots=27 emplacements d'inventaire interdimensionnels -Put items inside, retrieve them from any ender chest=Mettez des objets à l'intérieur, récupérez-les dans n'importe quel coffre -Emits a redstone signal when opened=Émet un signal redstone à l'ouverture diff --git a/mods/ITEMS/mcl_chests/locale/template.txt b/mods/ITEMS/mcl_chests/locale/template.txt index d680c24c..14254c14 100644 --- a/mods/ITEMS/mcl_chests/locale/template.txt +++ b/mods/ITEMS/mcl_chests/locale/template.txt @@ -28,9 +28,3 @@ To access the inventory of a shulker box, place and right-click it. To take a sh Shulker Box= Large Chest= Inventory= -27 inventory slots= -Can be carried around with its contents= -Can be combined to a large chest= -27 interdimensional inventory slots= -Put items inside, retrieve them from any ender chest= -Emits a redstone signal when opened= diff --git a/mods/ITEMS/mcl_chests/textures/default_chest_top_big.png b/mods/ITEMS/mcl_chests/textures/default_chest_top_big.png index b8b2696b..de56e2ca 100644 Binary files a/mods/ITEMS/mcl_chests/textures/default_chest_top_big.png and b/mods/ITEMS/mcl_chests/textures/default_chest_top_big.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_chest_trapped_top_big.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_chest_trapped_top_big.png index b8b2696b..de56e2ca 100644 Binary files a/mods/ITEMS/mcl_chests/textures/mcl_chests_chest_trapped_top_big.png and b/mods/ITEMS/mcl_chests/textures/mcl_chests_chest_trapped_top_big.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_bottom.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_bottom.png index 2cf3d49d..03a61a59 100644 Binary files a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_bottom.png and b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_bottom.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_left.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_left.png index e22d3366..1a0ceaef 100644 Binary files a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_left.png and b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_left.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_right.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_right.png index d7600a0a..f547532f 100644 Binary files a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_right.png and b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_right.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_top.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_top.png index 94f198c1..c109aa82 100644 Binary files a/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_top.png and b/mods/ITEMS/mcl_chests/textures/mcl_chests_ender_chest_top.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest.png new file mode 100644 index 00000000..eba521e9 Binary files /dev/null and b/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest.png differ diff --git a/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest_large.png b/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest_large.png new file mode 100644 index 00000000..bace59ed Binary files /dev/null and b/mods/ITEMS/mcl_chests/textures/mcl_chests_inventory_chest_large.png differ diff --git a/mods/ITEMS/mcl_clock/init.lua b/mods/ITEMS/mcl_clock/init.lua index 0532bf5f..2e2d1b00 100644 --- a/mods/ITEMS/mcl_clock/init.lua +++ b/mods/ITEMS/mcl_clock/init.lua @@ -54,15 +54,13 @@ function watch.register_item(name, image, creative, frame) if doc_mod and not use_doc then doc.add_entry_alias("craftitems", mcl_clock.stereotype, "craftitems", name) end - local longdesc, usagehelp, tt + local longdesc, usagehelp if use_doc then longdesc = S("Clocks are tools which shows the current time of day in the Overworld.") usagehelp = S("The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.") - tt = S("Displays the time of day in the Overworld") end minetest.register_craftitem(name, { description = S("Clock"), - _tt_help = tt, _doc_items_create_entry = use_doc, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, diff --git a/mods/ITEMS/mcl_clock/locale/mcl_clock.de.tr b/mods/ITEMS/mcl_clock/locale/mcl_clock.de.tr index 00c2529e..f80daa41 100644 --- a/mods/ITEMS/mcl_clock/locale/mcl_clock.de.tr +++ b/mods/ITEMS/mcl_clock/locale/mcl_clock.de.tr @@ -2,4 +2,3 @@ Clocks are tools which shows the current time of day in the Overworld.=Uhren sind Werkzeuge, die die Tageszeit in der Oberwelt anzeigen. The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.=Die Uhr enthält eine rotierende Scheibe mit einem Sonnensymbol (gelbe Scheibe) und einem Mondsymbol, und sie hat einem kleinen „Pfeil“, der die jetzige Tageszeit anzeigt, indem die reale Position von Sonne und Mond im Himmel abgeschätzt wird. Die Sonne repräsentiert die Mittagszeit und der Mond repräsentiert Mitternacht. Clock=Uhr -Displays the time of day in the Overworld=Zeigt die Tageszeit in der Oberwelt diff --git a/mods/ITEMS/mcl_clock/locale/mcl_clock.es.tr b/mods/ITEMS/mcl_clock/locale/mcl_clock.es.tr deleted file mode 100644 index c8841fc6..00000000 --- a/mods/ITEMS/mcl_clock/locale/mcl_clock.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_clock -Clocks are tools which shows the current time of day in the Overworld.=Los relojes son herramientas que muestran la hora del día en el mundo. -The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.=El reloj contiene un disco giratorio con un símbolo del sol (disco amarillo) y un símbolo de la luna y un pequeño "puntero" que muestra la hora actual del día al estimar la posición real del sol y la luna en el cielo. El mediodía está representado por el símbolo del sol y la medianoche está representado por el símbolo de la luna. -Clock=Reloj \ No newline at end of file diff --git a/mods/ITEMS/mcl_clock/locale/mcl_clock.fr.tr b/mods/ITEMS/mcl_clock/locale/mcl_clock.fr.tr deleted file mode 100644 index 604f5085..00000000 --- a/mods/ITEMS/mcl_clock/locale/mcl_clock.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_clock -Clocks are tools which shows the current time of day in the Overworld.=Les horloges sont des outils qui indiquent l'heure actuelle dans l'Overworld. -The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.=L'horloge contient un disque rotatif avec un symbole du soleil (disque jaune) et un symbole de la lune et un petit "pointeur" qui montre l'heure actuelle en estimant la position réelle du soleil et de la lune dans le ciel. Midi est représenté par le symbole du soleil et minuit est représenté par le symbole de la lune. -Clock=Horloge -Displays the time of day in the Overworld=Affiche l'heure de la journée dans l'Overworld diff --git a/mods/ITEMS/mcl_clock/locale/template.txt b/mods/ITEMS/mcl_clock/locale/template.txt index 6589666c..07ff8cab 100644 --- a/mods/ITEMS/mcl_clock/locale/template.txt +++ b/mods/ITEMS/mcl_clock/locale/template.txt @@ -2,4 +2,3 @@ Clocks are tools which shows the current time of day in the Overworld.= The clock contains a rotating disc with a sun symbol (yellow disc) and moon symbol and a little “pointer” which shows the current time of day by estimating the real position of the sun and the moon in the sky. Noon is represented by the sun symbol and midnight is represented by the moon symbol.= Clock= -Displays the time of day in the Overworld= diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_07.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_07.png index ef1c59c7..1e5d7c96 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_07.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_07.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_10.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_10.png index 0bc5290b..68395a4c 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_10.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_10.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_11.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_11.png index ef8b924e..8fcf0a83 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_11.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_11.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_13.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_13.png index 7125cde0..501c5fa7 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_13.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_13.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_14.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_14.png index 8ac41660..1f750d28 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_14.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_14.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_15.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_15.png index 05ae6bb6..1126230c 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_15.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_15.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_16.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_16.png index 2fa29478..7e13698a 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_16.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_16.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_17.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_17.png index 2c679d70..cc6af924 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_17.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_17.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_18.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_18.png index 49ae5e71..beb08e69 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_18.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_18.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_20.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_20.png index 11c33c96..9f54e4a2 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_20.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_20.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_22.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_22.png index 9c613ea8..8db493f6 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_22.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_22.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_23.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_23.png index 60a8986d..d7913629 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_23.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_23.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_40.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_40.png index 72f0b83a..9ce1c709 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_40.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_40.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_43.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_43.png index 9ebe0d6f..34521c99 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_43.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_43.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_45.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_45.png index e3db7078..8ba8622b 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_45.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_45.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_46.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_46.png index d0377cc1..9f865c02 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_46.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_46.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_48.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_48.png index 79416715..33300e32 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_48.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_48.png differ diff --git a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_51.png b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_51.png index 62285911..f2b76743 100644 Binary files a/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_51.png and b/mods/ITEMS/mcl_clock/textures/mcl_clock_clock_51.png differ diff --git a/mods/ITEMS/mcl_cocoas/init.lua b/mods/ITEMS/mcl_cocoas/init.lua index 8b70c1ad..ae9d5cf1 100644 --- a/mods/ITEMS/mcl_cocoas/init.lua +++ b/mods/ITEMS/mcl_cocoas/init.lua @@ -43,7 +43,7 @@ function mcl_cocoas.place(itemstack, placer, pointed_thing, plantname) -- Add the node, set facedir and remove 1 item from the itemstack minetest.set_node(pt.above, {name = plantname, param2 = minetest.dir_to_facedir(clickdir)}) - minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}, true) + minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}) if not minetest.settings:get_bool("creative_mode") then itemstack:take_item() @@ -110,8 +110,7 @@ local crop_def = { handy=1,axey=1, cocoa=1, not_in_creative_inventory=1, dig_by_water=1, destroy_by_lava_flow=1, dig_by_piston=1, attached_node_facedir=1, }, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = false, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 0.2, } diff --git a/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.es.tr b/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.es.tr deleted file mode 100644 index e1477c79..00000000 --- a/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.es.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mcl_cocoas -Premature Cocoa Pod=Vaina de cacao prematura -Cocoa pods grow on the side of jungle trees in 3 stages.=Las vainas de cacao crecen al lado de los árboles de jungla en 3 etapas. -Medium Cocoa Pod=Vaina de cacao mediana -Mature Cocoa Pod=Vaina de cacao madura -A mature cocoa pod grew on a jungle tree to its full size and it is ready to be harvested for cocoa beans. It won't grow any further.=Una vaina de cacao madura creció en un árbol de jungla a su tamaño completo y está lista para ser cosechada para los granos de cacao. No crecerá más. diff --git a/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.fr.tr b/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.fr.tr deleted file mode 100644 index bf546895..00000000 --- a/mods/ITEMS/mcl_cocoas/locale/mcl_cocoas.fr.tr +++ /dev/null @@ -1,6 +0,0 @@ -# textdomain: mcl_cocoas -Premature Cocoa Pod=Gousse de cacao prématurée -Cocoa pods grow on the side of jungle trees in 3 stages.=Les cabosses de cacao poussent sur le côté des arbres d'Acajou en 3 étapes. -Medium Cocoa Pod=Gousse de cacao moyenne -Mature Cocoa Pod=Cabosse de cacao mature -A mature cocoa pod grew on a jungle tree to its full size and it is ready to be harvested for cocoa beans. It won't grow any further.=Une cabosse de cacao mature a poussé sur un arbre d'Acajou à sa pleine taille et elle est prête à être récoltée pour les fèves de cacao. Elle ne grandira plus. diff --git a/mods/ITEMS/mcl_colorblocks/init.lua b/mods/ITEMS/mcl_colorblocks/init.lua index dad97f62..15c12ab3 100644 --- a/mods/ITEMS/mcl_colorblocks/init.lua +++ b/mods/ITEMS/mcl_colorblocks/init.lua @@ -1,3 +1,4 @@ +local init = os.clock() local S = minetest.get_translator("mcl_colorblocks") local doc_mod = minetest.get_modpath("doc") @@ -27,7 +28,6 @@ local hc_desc = S("Terracotta is a basic building material. It comes in many dif local gt_desc = S("Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.") local cp_desc = S("Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.") local c_desc = S("Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.") -local cp_tt = S("Turns into concrete on water contact") minetest.register_node("mcl_colorblocks:hardened_clay", { description = S("Terracotta"), @@ -36,7 +36,7 @@ minetest.register_node("mcl_colorblocks:hardened_clay", { stack_max = 64, groups = {pickaxey=1, hardened_clay=1,building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 4.2, + _mcl_blast_resistance = 21, _mcl_hardness = 1.25, }) @@ -62,7 +62,6 @@ for _, row in ipairs(block.dyes) do local ldesc_hc, ldesc_gt, ldesc_cp, ldesc_c local create_entry local ename_hc, ename_gt, ename_cp, ename_c - local ltt_cp = cp_tt if is_canonical then ldesc_hc = hc_desc ldesc_gt = gt_desc @@ -86,13 +85,12 @@ for _, row in ipairs(block.dyes) do groups = {pickaxey=1, hardened_clay=1,building_block=1, material_stone=1}, stack_max = 64, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 4.2, + _mcl_blast_resistance = 21, _mcl_hardness = 1.25, }) minetest.register_node("mcl_colorblocks:concrete_powder_"..name, { description = sdesc_cp, - _tt_help = ltt_cp, _doc_items_longdesc = ldesc_cp, _doc_items_create_entry = create_entry, _doc_items_entry_name = ename_cp, @@ -127,7 +125,7 @@ for _, row in ipairs(block.dyes) do -- Specify the node to which this node will convert after getting in contact with water _mcl_colorblocks_harden_to = "mcl_colorblocks:concrete_"..name, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -141,7 +139,7 @@ for _, row in ipairs(block.dyes) do stack_max = 64, is_ground_content = false, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 1.8, + _mcl_blast_resistance = 9, _mcl_hardness = 1.8, }) @@ -158,7 +156,7 @@ for _, row in ipairs(block.dyes) do stack_max = 64, is_ground_content = false, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 4.2, + _mcl_blast_resistance = 7, _mcl_hardness = 1.4, on_rotate = on_rotate, }) @@ -216,3 +214,6 @@ minetest.register_abm({ end end, }) + +local time_to_load= os.clock() - init +print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load)) diff --git a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.de.tr b/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.de.tr index 359a2f7c..f0d77197 100644 --- a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.de.tr +++ b/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.de.tr @@ -73,4 +73,3 @@ Colored Terracotta=Gefärbte Terrakotta Glazed Terracotta=Glasierte Terrakotta Concrete Powder=Betonpulver Concrete=Beton -Turns into concrete on water contact=Wird zu Beton bei Wasserkontakt diff --git a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.es.tr b/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.es.tr deleted file mode 100644 index cae96e62..00000000 --- a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.es.tr +++ /dev/null @@ -1,75 +0,0 @@ -# textdomain: mcl_colorblocks -White Terracotta=Terracota blanca -White Glazed Terracotta=Terracota cristalizada blanca -White Concrete Powder=Cemento blanco -White Concrete=Hormigón blanco -Grey Terracotta=Terracota gris -Grey Glazed Terracotta=Terracota cristalizada gris -Grey Concrete Powder=Cemento gris -Grey Concrete=Hormigón gris -Light Grey Terracotta=Terracota gris claro -Light Grey Glazed Terracotta=Terracota cristalizada gris claro -Light Grey Concrete Powder=Cemento gris claro -Light Grey Concrete=Hormigón gris claro -Black Terracotta=Terracota negra -Black Glazed Terracotta=Terracota cristalizada negra -Black Concrete Powder=Cemento negro -Black Concrete=Hormigón negro -Red Terracotta=Terracota roja -Red Glazed Terracotta=Terracota cristalizada roja -Red Concrete Powder=Cemento rojo -Red Concrete=Hormigón rojo -Yellow Terracotta=Terracota amarilla -Yellow Glazed Terracotta=Terracota cristalizada amarilla -Yellow Concrete Powder=Cemento amarillo -Yellow Concrete=Hormigón amarillo -Green Terracotta=Terracota verde -Green Glazed Terracotta=Terracota cristalizada verde -Green Concrete Powder=Cemento verde -Green Concrete=Hormigón verde -Cyan Terracotta=Terracota cian -Cyan Glazed Terracotta=Terracota cristalizada cian -Cyan Concrete Powder=Cemento cian -Cyan Concrete=Hormigón cian -Blue Terracotta=Terracota azul -Blue Glazed Terracotta=Terracota cristalizada azul -Blue Concrete Powder=Cemento azul -Blue Concrete=Hormigón azul -Magenta Terracotta=Terracota magenta -Magenta Glazed Terracotta=Terracota cristalizada magenta -Magenta Concrete Powder=Cemento magenta -Magenta Concrete=Hormigón magenta -Orange Terracotta=Terracota naranja -Orange Glazed Terracotta=Terracota cristalizada naranja -Orange Concrete Powder=Cemento naranja -Orange Concrete=Hormigón naranja -Purple Terracotta=Terracota morada -Purple Glazed Terracotta=Terracota cristalizada morada -Purple Concrete Powder=Cemento morado -Purple Concrete=Hormigón morado -Brown Terracotta=Terracota marrón -Brown Glazed Terracotta=Terracota cristalizada marrón -Brown Concrete Powder=Cemento marrón -Brown Concrete=Hormigón marrón -Pink Terracotta=Terracota rosa -Pink Glazed Terracotta=Terracota cristalizada rosa -Pink Concrete Powder=Cemento rosa -Pink Concrete=Hormigón rosa -Lime Terracotta=Terracota verde lima -Lime Glazed Terracotta=Terracota cristalizada verde lima -Lime Concrete Powder=Cemento verde lima -Lime Concrete=Hormigón verde lima -Light Blue Terracotta=Terracota azul claro -Light Blue Glazed Terracotta=Terracota cristalizada azul claro -Light Blue Concrete Powder=Cemento azul claro -Light Blue Concrete=Hormigón azul claro -Terracotta is a basic building material. It comes in many different colors.=La terracota es un material de construcción básico. Viene en muchos colores diferentes. -Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.=La terracota cristalizada es un bloque decorativo con un patrón complejo. Se puede girar colocándolo en diferentes direcciones. -Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.=La Cemento se usa para crear Hormigón, pero también se puede usar como decoración en sí. Viene en diferentes colores. La Cemento se convierte en Hormigón del mismo color cuando entra en contacto con el agua. -Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.=El Hormigón es un bloque decorativo que viene en muchos colores diferentes. Es notable por tener un color muy fuerte y limpio. -Terracotta=Terracota -Terracotta is a basic building material which comes in many different colors. This particular block is uncolored.=La terracota es un material de construcción básico que viene en muchos colores diferentes. Este bloque en particular no tiene color. -Colored Terracotta=Terracota coloreada -Glazed Terracotta=Terracota vidriada -Concrete Powder=Cemento -Concrete=Hormigón diff --git a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.fr.tr b/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.fr.tr deleted file mode 100644 index d457364e..00000000 --- a/mods/ITEMS/mcl_colorblocks/locale/mcl_colorblocks.fr.tr +++ /dev/null @@ -1,76 +0,0 @@ -# textdomain: mcl_colorblocks -White Terracotta=Terre Cuite Blanche -White Glazed Terracotta=Terre Cuite Emaillée Blanche -White Concrete Powder=Béton en Poudre Blanc -White Concrete=Béton Blanc -Grey Terracotta=Terre Cuite Grise -Grey Glazed Terracotta=Terre Cuite Emaillée Grise -Grey Concrete Powder=Béton en Poudre Gris -Grey Concrete=Béton Gris -Light Grey Terracotta=Terre Cuite Gris Clair -Light Grey Glazed Terracotta=Terre Cuite Emaillée Gris Clair -Light Grey Concrete Powder=Béton en Poudre Gris Clair -Light Grey Concrete=Béton Gris Clair -Black Terracotta=Terre Cuite Noir -Black Glazed Terracotta=Terre Cuite Emaillée Noir -Black Concrete Powder=Béton en Poudre Noir -Black Concrete=Béton Noir -Red Terracotta=Terre Cuite Rouge -Red Glazed Terracotta=Terre Cuite Emaillée Rouge -Red Concrete Powder=Béton en Poudre Rouge -Red Concrete=Béton Rouge -Yellow Terracotta=Terre Cuite Jaune -Yellow Glazed Terracotta=Terre Cuite Emaillée Jaune -Yellow Concrete Powder=Béton en Poudre Jaune -Yellow Concrete=Béton Jaune -Green Terracotta=Terre Cuite Verte -Green Glazed Terracotta=Terre Cuite Emaillée Verte -Green Concrete Powder=Béton en Poudre Vert -Green Concrete=Béton Vert -Cyan Terracotta=Terre Cuite Cyan -Cyan Glazed Terracotta=Terre Cuite Emaillée Cyan -Cyan Concrete Powder=Béton en Poudre Cyan -Cyan Concrete=Béton Cyan -Blue Terracotta=Terre Cuite Bleue -Blue Glazed Terracotta=Terre Cuite Emaillée Bleue -Blue Concrete Powder=Béton en Poudre Bleu -Blue Concrete=Béton Bleu -Magenta Terracotta=Terre Cuite Magenta -Magenta Glazed Terracotta=Terre Cuite Emaillée Magenta -Magenta Concrete Powder=Béton en Poudre Magenta -Magenta Concrete=Béton Magenta -Orange Terracotta=Terre Cuite Orange -Orange Glazed Terracotta=Terre Cuite Emaillée Orange -Orange Concrete Powder=Béton en Poudre Orange -Orange Concrete=Béton Orange -Purple Terracotta=Terre Cuite Violette -Purple Glazed Terracotta=Terre Cuite Emaillée Violette -Purple Concrete Powder=Béton en Poudre Violet -Purple Concrete=Béton Violet -Brown Terracotta=Terre Cuite Marron -Brown Glazed Terracotta=Terre Cuite Emaillée Marron -Brown Concrete Powder=Béton en Poudre Marron -Brown Concrete=Béton Marron -Pink Terracotta=Terre Cuite Rose -Pink Glazed Terracotta=Terre Cuite Emaillée Rose -Pink Concrete Powder=Béton en Poudre Rose -Pink Concrete=Béton Rose -Lime Terracotta=Terre Cuite Verte Clair -Lime Glazed Terracotta=Terre Cuite Emaillée Verte Clair -Lime Concrete Powder=Béton en Poudre Vert Clair -Lime Concrete=Béton Vert Clair -Light Blue Terracotta=Terre Cuite Bleu Clair -Light Blue Glazed Terracotta=Terre Cuite Emaillée Bleu Clair -Light Blue Concrete Powder=Béton en Poudre Bleu Clair -Light Blue Concrete=Béton Bleu Clair -Terracotta is a basic building material. It comes in many different colors.=La terre cuite est un matériau de construction de base. Il est disponible dans de nombreuses couleurs différentes. -Glazed terracotta is a decorative block with a complex pattern. It can be rotated by placing it in different directions.=La terre cuite émaillée est un bloc décoratif au motif complexe. Il peut être tourné en le plaçant dans différentes directions. -Concrete powder is used for creating concrete, but it can also be used as decoration itself. It comes in different colors. Concrete powder turns into concrete of the same color when it comes in contact with water.=La poudre de béton est utilisée pour créer du béton, mais elle peut également être utilisée comme décoration elle-même. Il est disponible en différentes couleurs. La poudre de béton se transforme en béton de la même couleur au contact de l'eau. -Concrete is a decorative block which comes in many different colors. It is notable for having a very strong and clean color.=Le béton est un bloc décoratif qui se décline en de nombreuses couleurs différentes. Il est remarquable pour avoir une couleur très forte et propre. -Terracotta=Terre Cuite -Terracotta is a basic building material which comes in many different colors. This particular block is uncolored.=La terre cuite est un matériau de construction de base qui se décline en de nombreuses couleurs différentes. Ce bloc particulier n'est pas coloré. -Colored Terracotta=Terre Cuite Coloré -Glazed Terracotta=Terre Cuite Emaillée -Concrete Powder=Béton en Poudre -Concrete=Béton -Turns into concrete on water contact=Se transforme en béton au contact de l'eau diff --git a/mods/ITEMS/mcl_colorblocks/locale/template.txt b/mods/ITEMS/mcl_colorblocks/locale/template.txt index ca1c059a..f20c7965 100644 --- a/mods/ITEMS/mcl_colorblocks/locale/template.txt +++ b/mods/ITEMS/mcl_colorblocks/locale/template.txt @@ -73,4 +73,3 @@ Colored Terracotta= Glazed Terracotta= Concrete Powder= Concrete= -Turns into concrete on water contact= diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_blue.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_blue.png index bd3ef19a..530be050 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_blue.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_blue.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_brown.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_brown.png index 1214e7c6..3344f075 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_brown.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_brown.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_green.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_green.png index a7c54224..5d1e5366 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_green.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_green.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_grey.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_grey.png index bf4a8336..885b62fc 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_grey.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_grey.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_light_blue.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_light_blue.png index 21ddec3d..a6afea9d 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_light_blue.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_light_blue.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_lime.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_lime.png index 49067b6f..d7ac2794 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_lime.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_lime.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_magenta.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_magenta.png index 0732c0bc..258efb78 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_magenta.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_magenta.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_pink.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_pink.png index 3450015e..75dfa29a 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_pink.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_pink.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_black.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_black.png index caf718d0..f3447237 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_black.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_black.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_blue.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_blue.png index c71038df..12c64fc6 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_blue.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_blue.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_brown.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_brown.png index af4f2381..9e355c8a 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_brown.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_brown.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_grey.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_grey.png index da8ffb6f..23d957a8 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_grey.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_grey.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_lime.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_lime.png index d1b99029..536e5edc 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_lime.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_lime.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_pink.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_pink.png index 4dd4dc9b..4a949719 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_pink.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_pink.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_red.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_red.png index 959fb89a..32195ff4 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_red.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_red.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_silver.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_silver.png index 647c9e6d..37edd79b 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_silver.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_silver.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_yellow.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_yellow.png index 8e9562ea..83d693e0 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_yellow.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_powder_yellow.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_red.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_red.png index 35ab9b5c..a02379ed 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_red.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_red.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_white.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_white.png index abb66f20..4561f653 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_white.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_white.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_yellow.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_yellow.png index eb8d6204..990a5d2d 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_yellow.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_concrete_yellow.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_blue.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_blue.png index 52b66b6d..1fd064ea 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_blue.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_blue.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_light_blue.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_light_blue.png index 079cfdd6..f78fa94a 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_light_blue.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_light_blue.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_lime.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_lime.png index 0cc61b37..7e944f5f 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_lime.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_lime.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_orange.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_orange.png index 531e1f14..470d5694 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_orange.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_orange.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_pink.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_pink.png index 76264bef..7e71e8c8 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_pink.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_pink.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_purple.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_purple.png index 6912cd63..f9d025bf 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_purple.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_purple.png differ diff --git a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_yellow.png b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_yellow.png index db5a3aa9..2f2bb447 100644 Binary files a/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_yellow.png and b/mods/ITEMS/mcl_colorblocks/textures/mcl_colorblocks_glazed_terracotta_yellow.png differ diff --git a/mods/ITEMS/mcl_compass/init.lua b/mods/ITEMS/mcl_compass/init.lua index 7a23cc50..ee7df7de 100644 --- a/mods/ITEMS/mcl_compass/init.lua +++ b/mods/ITEMS/mcl_compass/init.lua @@ -78,16 +78,14 @@ for i,img in ipairs(images) do if i == stereotype_frame then inv = 0 end - local use_doc, longdesc, usagehelp, tt + local use_doc, longdesc, usagehelp use_doc = i == stereotype_frame if use_doc then - tt = S("Points to the world origin") longdesc = S("Compasses are tools which point to the world origin (X=0, Z=0) or the spawn point in the Overworld.") end local itemstring = "mcl_compass:"..(i-1) minetest.register_craftitem(itemstring, { description = S("Compass"), - _tt_help = tt, _doc_items_create_entry = use_doc, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, diff --git a/mods/ITEMS/mcl_compass/locale/mcl_compass.de.tr b/mods/ITEMS/mcl_compass/locale/mcl_compass.de.tr index a78b70c0..e20b0e52 100644 --- a/mods/ITEMS/mcl_compass/locale/mcl_compass.de.tr +++ b/mods/ITEMS/mcl_compass/locale/mcl_compass.de.tr @@ -1,4 +1,3 @@ # textdomain: mcl_compass Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.=Kompasse sind Werkzeuge, die zum Ursprungspunkt der Welt (X@=0, Z@=0) oder den Einstiegspunkt der Welt zeigen. Compass=Kompass -Points to the world origin=Zeigt zum Startpunkt der Welt diff --git a/mods/ITEMS/mcl_compass/locale/mcl_compass.es.tr b/mods/ITEMS/mcl_compass/locale/mcl_compass.es.tr deleted file mode 100644 index 4f9fd529..00000000 --- a/mods/ITEMS/mcl_compass/locale/mcl_compass.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_compass -Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.=Las brújulas son herramientas que apuntan al origen del mundo (X @ = 0, Z @ = 0) o al punto de generación en el mundo. -Compass=Brújula \ No newline at end of file diff --git a/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr b/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr deleted file mode 100644 index 89299fde..00000000 --- a/mods/ITEMS/mcl_compass/locale/mcl_compass.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_compass -Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.=Les boussoles sont des outils qui pointent vers l'origine du monde (X@=0,Z@=0) ou le point d'apparition dans l'Overworld. -Compass=Boussole -Points to the world origin=Pointe vers l'origine mondiale diff --git a/mods/ITEMS/mcl_compass/locale/template.txt b/mods/ITEMS/mcl_compass/locale/template.txt index 462a08bc..2db3584f 100644 --- a/mods/ITEMS/mcl_compass/locale/template.txt +++ b/mods/ITEMS/mcl_compass/locale/template.txt @@ -1,4 +1,3 @@ # textdomain: mcl_compass Compasses are tools which point to the world origin (X@=0, Z@=0) or the spawn point in the Overworld.= Compass= -Points to the world origin= diff --git a/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_00.png b/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_00.png index 9eb285cf..5ba59433 100644 Binary files a/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_00.png and b/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_00.png differ diff --git a/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_01.png b/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_01.png index f4576800..4688db60 100644 Binary files a/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_01.png and b/mods/ITEMS/mcl_compass/textures/mcl_compass_compass_01.png differ diff --git a/mods/ITEMS/mcl_core/crafting.lua b/mods/ITEMS/mcl_core/crafting.lua index a0ad38a7..382c136f 100644 --- a/mods/ITEMS/mcl_core/crafting.lua +++ b/mods/ITEMS/mcl_core/crafting.lua @@ -526,12 +526,6 @@ minetest.register_craft({ burntime = 15, }) -minetest.register_craft({ - type = "fuel", - recipe = "group:bark", - burntime = 15, -}) - minetest.register_craft({ type = "fuel", recipe = "mcl_core:ladder", diff --git a/mods/ITEMS/mcl_core/craftitems.lua b/mods/ITEMS/mcl_core/craftitems.lua index 9dc9d370..42b6210e 100644 --- a/mods/ITEMS/mcl_core/craftitems.lua +++ b/mods/ITEMS/mcl_core/craftitems.lua @@ -146,15 +146,14 @@ minetest.register_craftitem("mcl_core:apple", { -- TODO: Status effects minetest.register_craftitem("mcl_core:apple_gold", { - -- TODO: Add special highlight color when this item is special - description = S("Golden Apple"), + description = core.colorize("#55FFFF", S("Golden Apple")), _doc_items_longdesc = S("Golden apples are precious food items which can be eaten."), wield_image = "mcl_core_apple_golden.png", inventory_image = "mcl_core_apple_golden.png", stack_max = 64, -- TODO: Reduce to 4 when it's ready - on_place = minetest.item_eat(20), - on_secondary_use = minetest.item_eat(20), - groups = { food = 2, eatable = 20, can_eat_when_full = 1 }, + on_place = minetest.item_eat(8), + on_secondary_use = minetest.item_eat(8), + groups = { food = 2, eatable = 8, can_eat_when_full = 1 }, _mcl_saturation = 9.6, }) diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index e8d7c2c2..9eec03d0 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -21,21 +21,21 @@ minetest.register_abm({ -- Lava on top of water: Water turns into stone if water[w].y < pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(water[w], {name="mcl_core:stone"}) - minetest.sound_play("fire_extinguish_flame", {pos = water[w], gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = water[w], gain = 0.25, max_hear_distance = 16}) -- Flowing lava vs water on same level: Lava turns into cobblestone elseif lavatype == "flowing" and water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z) then minetest.set_node(pos, {name="mcl_core:cobble"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) -- Lava source vs flowing water above or horizontally neighbored: Lava turns into obsidian elseif lavatype == "source" and ((water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z) or (water[w].y == pos.y and (water[w].x == pos.x or water[w].z == pos.z))) then minetest.set_node(pos, {name="mcl_core:obsidian"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) -- Flowing water above flowing lava: Lava turns into cobblestone elseif watertype == "flowing" and lavatype == "flowing" and water[w].y > pos.y and water[w].x == pos.x and water[w].z == pos.z then minetest.set_node(pos, {name="mcl_core:cobble"}) - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) end end end, @@ -166,7 +166,7 @@ minetest.register_abm({ action = function(pos, node, active_object_count, active_object_count_wider) liquid_flow_action(pos, "lava", function(pos) minetest.remove_node(pos) - minetest.sound_play("builtin_item_lava", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("builtin_item_lava", {pos = pos, gain = 0.25, max_hear_distance = 16}) core.check_for_falling(pos) end) end, @@ -639,19 +639,24 @@ end local grass_spread_randomizer = PseudoRandom(minetest.get_mapgen_setting("seed")) --- Return appropriate grass block node for pos +-- Return appropriate grass block node for pos. Dry grass for dry/hot biomes, normal grass otherwise. function mcl_core.get_grass_block_type(pos) local biome_data = minetest.get_biome_data(pos) - local index = 0 + local dry = false if biome_data then local biome = biome_data.biome local biome_name = minetest.get_biome_name(biome) local reg_biome = minetest.registered_biomes[biome_name] if reg_biome then - index = reg_biome._mcl_palette_index + local biome_type = reg_biome._mcl_biome_type + dry = biome_type == "hot" end end - return {name="mcl_core:dirt_with_grass", param2=index} + if dry then + return {name="mcl_core:dirt_with_dry_grass"} + else + return {name="mcl_core:dirt_with_grass"} + end end ------------------------------ @@ -757,38 +762,6 @@ minetest.register_abm({ end, }) -local SAVANNA_INDEX = 1 -minetest.register_lbm({ - label = "Replace legacy dry grass", - name = "mcl_core:replace_legacy_dry_grass_0_65_0", - nodenames = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt_with_dry_grass_snow"}, - action = function(pos, node) - local biome_data = minetest.get_biome_data(pos) - if biome_data then - local biome = biome_data.biome - local biome_name = minetest.get_biome_name(biome) - local reg_biome = minetest.registered_biomes[biome_name] - if reg_biome then - if node.name == "mcl_core:dirt_with_dry_grass_snow" then - node.name = "mcl_core:dirt_with_grass_snow" - else - node.name = "mcl_core:dirt_with_grass" - end - node.param2 = reg_biome._mcl_palette_index - -- Fall back to savanna palette index - if not node.param2 then - node.param2 = SAVANNA_INDEX - end - minetest.set_node(pos, node) - return - end - end - node.param2 = SAVANNA_INDEX - minetest.set_node(pos, node) - return - end, -}) - -------------------------- -- Try generate tree --- -------------------------- @@ -1259,11 +1232,10 @@ end -- * itemstring_clear: Itemstring of the original “clear” node without snow -- * tiles: Optional custom tiles -- * sounds: Optional custom sounds --- * clear_colorization: Optional. If true, will clear all paramtype2="color" related node def. fields -- -- The snowable nodes also MUST have _mcl_snowed defined to contain the name -- of the snowed node. -mcl_core.register_snowed_node = function(itemstring_snowed, itemstring_clear, tiles, sounds, clear_colorization) +mcl_core.register_snowed_node = function(itemstring_snowed, itemstring_clear, tiles, sounds) local def = table.copy(minetest.registered_nodes[itemstring_clear]) local create_doc_alias if def.description then @@ -1298,13 +1270,6 @@ mcl_core.register_snowed_node = function(itemstring_snowed, itemstring_clear, ti else def.tiles = tiles end - if clear_colorization then - def.paramtype2 = nil - def.palette = nil - def.palette_index = nil - def.color = nil - def.overlay_tiles = nil - end if not sounds then def.sounds = mcl_sounds.node_sound_dirt_defaults({ footstep = { name = "pedology_snow_soft_footstep", gain = 0.5 } @@ -1327,7 +1292,7 @@ end mcl_core.clear_snow_dirt = function(pos, node) local def = minetest.registered_nodes[node.name] if def._mcl_snowless then - minetest.swap_node(pos, {name = def._mcl_snowless, param2=node.param2}) + minetest.swap_node(pos, {name = def._mcl_snowless}) end end @@ -1348,7 +1313,7 @@ mcl_core.on_snowable_construct = function(pos) if minetest.get_item_group(anode.name, "snow_cover") == 1 then local def = minetest.registered_nodes[node.name] if def._mcl_snowed then - minetest.swap_node(pos, {name = def._mcl_snowed, param2=node.param2}) + minetest.swap_node(pos, {name = def._mcl_snowed}) end end end @@ -1369,7 +1334,7 @@ mcl_core.on_snow_construct = function(pos) local node = minetest.get_node(npos) local def = minetest.registered_nodes[node.name] if def._mcl_snowed then - minetest.swap_node(npos, {name = def._mcl_snowed, param2=node.param2}) + minetest.swap_node(npos, {name = def._mcl_snowed}) end end -- after_destruct diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.de.tr b/mods/ITEMS/mcl_core/locale/mcl_core.de.tr index 2092fa33..3460001d 100644 --- a/mods/ITEMS/mcl_core/locale/mcl_core.de.tr +++ b/mods/ITEMS/mcl_core/locale/mcl_core.de.tr @@ -101,7 +101,7 @@ Flint is a raw material.=Feuerstein ist ein Rohstoff. Flowing Lava=Fließende Lava Flowing Water=Fließendes Wasser Frosted Ice=Brüchiges Eis -Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.=Brüchiges Eis ist ein kurzlebiger durchscheinender Block. Er wird sich in einigen Sekunden zu einer Wasserquelle verwandeln. +Frosted ice is a short-lived solid translucent block. It melts into a water source within a few seconds.=Brüchiges Eis ist ein kurzlebiger durchscheinender Block. Er wird sich in einigen Sekunden zu einer Wasserquelle verwandeln. Glass=Glas Gold Ingot=Goldbarren Gold Nugget=Goldklumpen @@ -117,7 +117,7 @@ Gravel=Kies Green Stained Glass=Grünes Buntglas Grey Stained Glass=Graues Buntglas Ice=Eis -Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.=Eis ist ein durchscheinender fester Block, der oft in kalten Gebieten gefunden werden kann. Er schmilzt in der Nähe von Block-Lichtquellen bei einer Helligkeit von 12 oder höher. Wenn es schmilzt oder abgebaut wird, und darunter ein anderer Block war, wird er sich in eine Wasserquelle verwandeln. +Ice is a translucent solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.=Eis ist ein durchscheinender fester Block, der oft in kalten Gebieten gefunden werden kann. Er schmilzt in der Nähe von Block-Lichtquellen bei einer Helligkeit von 12 oder höher. Wenn es schmilzt oder abgebaut wird, und darunter ein anderer Block war, wird er sich in eine Wasserquelle verwandeln. In the End dimension, starting a fire on this block will create an eternal fire.=In der Ende-Dimension wird Feuer auf diesem Block ewig brennen. Iron Ingot=Eisenbarren Iron Nugget=Eisenklumpen @@ -142,7 +142,8 @@ Lit Redstone Ore=Leuchtendes Redstoneerz Magenta Stained Glass=Magenta Buntglas Molten gold. It is used to craft armor, tools, and whatnot.=Geschmolzenes Gold. Es wird benutzt, um Rüstungen, Werkzeuge, und anderes herzustellen. Molten iron. It is used to craft armor, tools, and whatnot.=Geschmolzenes Eisen. Es wird benutzt, um Rüstungen, Werkzeuge, und vieles mehr herzustellen. -Mossy Cobblestone=Moosiges Kopfsteinpflaster + +Moss Stone=Moosstein Mossy Stone Bricks=Moosige Steinziegel Mycelium=Myzel Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt.=Myzel ist eine Art Erde und der perfekte Nährboden für Pilze. Anders als bei anderen erdähnlichen Blöcken kann es mit einer Hacke nicht zu Ackerboden verwandelt werden. Im Licht wird sich Myzel langsam auf benachbarte Erde ausbreiten. Unter einem lichtundurchlässigen Block oder einer Flüssigkeit wird es sich früher oder später zurück zu Erde verwandeln. @@ -247,11 +248,3 @@ Stained Glass=Buntglas Granite is an igneous rock.=Granit ist ein magmatisches Gestein. Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.=Eine Schneeschicht kann gestapelt werden und hat eine von 8 verschiedenen Höhestufen. Bei den Höhestufen 2-8 ist die Schneeschnicht kollidierbar. Schneeschichten werfen 2-9 Schneebälle ab, abhängig von ihrer Höhe. This block can only be placed on full solid blocks and on another top snow (which increases its height).=Dieser Block kann nur auf ganzen festen Blöcken und auf anderen Schneeschichten (was die Höhe erhöht) platziert werden. -Needs soil and light to grow=Benötigt Boden und Licht zum Wachsen -Grows on sand=Wächst auf Sand -Contact damage: @1 per half second=Kontaktschaden: @1 jede halbe Sekunde -Slows down movement=Verlangsamt die Fortbewegung -2×2 saplings required=2×2 Setzlinge benötigt -2×2 saplings @= large tree=2×2 Setzlinge @= großer Baum -Grows on sand or dirt next to water=Wächst auf Sand oder Erde neben Wasser -Stackable=Stapelbar diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.es.tr b/mods/ITEMS/mcl_core/locale/mcl_core.es.tr deleted file mode 100644 index 1e1029c0..00000000 --- a/mods/ITEMS/mcl_core/locale/mcl_core.es.tr +++ /dev/null @@ -1,249 +0,0 @@ -# textdomain: mcl_core -@1 could not survive in lava.=@1 no pudo sobrevivir en la lava. -@1 died in lava.=@1 murió en la lava. -@1 melted in lava.=@1 fue derretido en la lava. -@1 took a bath in a hot lava tub.=@1 se bañó en lava caliente. -A block of diamond is mostly a shiny decorative block but also useful as a compact storage of diamonds.=Un bloque de diamantes es principalmente un bloque decorativo brillante, pero también es útil como un almacenamiento compacto de diamantes. -A block of emerald is mostly a shiny decorative block but also useful as a compact storage of emeralds.=Un bloque de esmeraldas es principalmente un bloque decorativo brillante pero también es útil como un almacenamiento compacto de esmeraldas. -A block of gold is mostly a shiny decorative block but also useful as a compact storage of gold ingots.=Un bloque de oro es principalmente un bloque decorativo brillante, pero también es útil como almacenamiento compacto de lingotes de oro. -A block of iron is mostly a decorative block but also useful as a compact storage of iron ingots.=Un bloque de hierro es principalmente un bloque decorativo, pero también es útil como almacenamiento compacto de lingotes de hierro. -A cactus can only be placed on top of another cactus or any sand.=Un cactus solo se puede colocar encima de otro cactus o arena. -A decorative and mostly transparent block.=Un bloque decorativo y mayormente transparente. -A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt.=Un bloque de hierba es tierra con una cubierta de hierba. Los bloques de hierba son bloques ingeniosos que permiten el crecimiento de todo tipo de plantas. Pueden convertirse en tierras de cultivo con una azada y convertirse en caminos de hierba con una pala. A la luz, la hierba se extiende lentamente sobre la tierra cercana. Debajo de un bloque opaco o un líquido, un bloque de hierba puede ensuciarse. -A lapis lazuli block is mostly a decorative block but also useful as a compact storage of lapis lazuli.=Un bloque de lapislázuli es principalmente un bloque decorativo, pero también es útil como un almacenamiento compacto de lapislázuli. -A lava source sets fire to a couple of air blocks above when they're next to a flammable block.=Una fuente de lava prende fuego a un par de bloques de aire arriba cuando están al lado de un bloque inflamable. -A piece of ladder which allows you to climb vertically. Ladders can only be placed on the side of solid blocks and not on glass, leaves, ice, slabs, glowstone, nor sea lanterns.=Un pedazo de escalera que te permite subir verticalmente. Las escaleras solo se pueden colocar al lado de bloques sólidos y no en vidrio, hojas, hielo, losas, piedra luminosa ni linternas marinas. -Acacia Bark=Madera de acacia sin corteza -Acacia Leaves=Hojas de acacia -Acacia Sapling=Brote de acacia -Acacia Wood=Tronco de acacia -Acacia Wood Planks=Madera de acacia -Acacia leaves are grown from acacia trees.=Las hojas de acacia se cultivan a partir de acacias. -Andesite=Andesita -Andesite is an igneous rock.=La andesita es una roca ígnea. -Apple=Manzana -Apples are food items which can be eaten.=Las manzanas son alimentos que se pueden comer. -Barrier=Barrera -Barriers are invisble walkable blocks. They are used to create boundaries of adventure maps and the like. Monsters and animals won't appear on barriers, and fences do not connect to barriers. Other blocks can be built on barriers like on any other block.=Las barreras son bloques transitables invisibles. Se utilizan para crear límites de mapas de aventura y similares. Los monstruos y los animales no aparecerán en las barreras, y las cercas no se conectan a las barreras. Otros bloques pueden construirse sobre barreras como en cualquier otro bloque. -Bedrock=Lecho de roca -Bedrock is a very hard type of rock. It can not be broken, destroyed, collected or moved by normal means, unless in Creative Mode.=El lecho de roca es un tipo de roca muy duro. No se puede romper, destruir, recoger o mover por medios normales, a menos que esté en modo creativo. -Birch Bark=Madera de abedul sin corteza -Birch Leaves=Hojas de abedul -Birch Sapling=Brote de abedul -Birch Wood=Tronco de abedul -Birch Wood Planks=Madera de abedul -Birch leaves are grown from birch trees.=Las hojas de abedul se cultivan a partir de abedules. -Black Stained Glass=Cristal negro -Block of Coal=Bloque de carbón -Block of Diamond=Bloque de diamante -Block of Emerald=Bloque de esmeralda -Block of Gold=Bloque de oro -Block of Iron=Bloque de hierro -Blocks of coal are useful as a compact storage of coal and very useful as a furnace fuel. A block of coal is as efficient as 10 coal.=Los bloques de carbón son útiles como almacenamiento compacto de carbón y son muy útiles como combustible de horno. Un bloque de carbón es tan eficiente como 10 de carbón. -Blue Stained Glass=Cristal azul -Bone Block=Bloque de hueso -Bone blocks are decorative blocks and a compact storage of bone meal.=Los bloques óseos son bloques decorativos y un almacenamiento compacto de harina de huesos. -Bowl=Cuenco -Bowls are mainly used to hold tasty soups.=Los cuencos se usan principalmente para contener sabrosas sopas. -Brick=Ladrillo -Brick Block=Bloque de ladrillo -Brick blocks are a good building material for building solid houses and can take quite a punch.=Los bloques de ladrillo son un buen material de construcción para construir casas sólidas y pueden recibir un gran golpe. -Bricks are used to craft brick blocks.=Los ladrillos se utilizan para fabricar bloques de ladrillos. -Brown Stained Glass=Cristal marrón -Cactus=Cactus -Charcoal=Carbón vegetal -Charcoal is an alternative furnace fuel created by cooking wood in a furnace. It has the same burning time as coal and also shares many of its crafting recipes, but it can not be used to create coal blocks.=El carbón vegetal es un combustible alternativo para hornos creado al cocinar leña en un horno. Tiene el mismo tiempo de combustión que el carbón y también comparte muchas de sus recetas de elaboración, pero no se puede usar para crear bloques de carbón. -Chiseled Stone Bricks=Ladrillo de piedra cincelado -Chiseled Red Sandstone=Arenisca Roja Cincelada -Chiseled Sandstone=Arenisca cincelada -Chiseled red sandstone is a decorative building block.=La piedra arenisca roja cincelada es un elemento decorativo. -Chiseled sandstone is a decorative building block.=La piedra arenisca cincelada es un bloque de construcción decorativo. -Clay=Arcilla -Clay Ball=Bola de arcilla -Clay balls are a raw material, mainly used to create bricks in the furnace.=Las bolas de arcilla son una materia prima, utilizada principalmente para crear ladrillos en el horno. -Clay is a versatile kind of earth commonly found at beaches underwater.=La arcilla es un tipo de tierra versátil que se encuentra comúnmente en las playas bajo el agua. -Coal=Carbón -Coal Ore=Mena de Carbón -Coarse Dirt=Tierra estéril -Coarse dirt acts as a soil for some plants and is similar to dirt, but it will never grow a cover.=La tierra gruesa actúa como un suelo para algunas plantas y es similar a la tierra, pero nunca crecerá una cubierta. -Cobblestone=Roca -Cobweb=Telaraña -Cobwebs can be walked through, but significantly slow you down.=Las telarañas se pueden atravesar, pero disminuyen significativamente la velocidad. -Cracked Stone Bricks=Ladrillo de piedra agrietado -Cut Red Sandstone=Arenisca roja cortada -Cut Sandstone=Arenisca cortada -Cut red sandstone is a decorative building block.=La arenisca roja cortada es un elemento decorativo. -Cut sandstone is a decorative building block.=La arenisca cortada es un elemento decorativo. -Cyan Stained Glass=Cristal cian -Dark Oak Bark=Madera de roble oscuro sin corteza -Dark Oak Leaves=Hojas de roble oscuro -Dark Oak Sapling=Brote de roble oscuro -Dark Oak Wood=Tronco de roble oscuro -Dark Oak Wood Planks=Madera de roble oscuro -Dark oak leaves are grown from dark oak trees.=Las hojas de roble oscuro se cultivan a partir de robles oscuros. -Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light.=Los brotes de roble oscuro pueden convertirse en robles oscuros, pero solo en grupos. Un árbol solitario de roble oscuro no crecerá. Un grupo de cuatro árboles jóvenes de roble oscuro se convierte en un roble oscuro después de un tiempo cuando se colocan en el suelo (como la tierra) en un cuadrado de 2 × 2 y se exponen a la luz. -Dead Bush=Arbusto muerto -Dead bushes are unremarkable plants often found in dry areas. They can be harvested for sticks.=Los arbustos muertos son plantas poco comunes que a menudo se encuentran en áreas secas. Se pueden cosechar para obtener palos. -Diamond=Diamante -Diamond Ore=Mena de diamante -Diamond ore is rare and can be found in clusters near the bottom of the world.=El mineral de diamante es raro y se puede encontrar en grupos cerca del fondo del mundo. -Diamonds are precious minerals and useful to create the highest tier of armor and tools.=Los diamantes son minerales preciosos y útiles para crear el nivel más alto de armadura y herramientas. -Diorite=Diorita -Diorite is an igneous rock.=La diorita es una roca ígnea. -Dirt=Tierra -Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby.=La tierra actúa como un suelo para algunas plantas. Cuando está a la luz, este bloque puede crecer una cubierta de hierba o micelio si tales bloques están cerca. -Emerald=Esmeralda -Emerald Ore=Mena de esmeralda -Emerald ore is the ore of emeralds. It is very rare and can be found alone, not in clusters.=El mineral esmeralda es el mineral de las esmeraldas. Es muy raro y se puede encontrar solo, no en grupos. -Emeralds are not very useful on their own, but they can exchanged for gold ingots by crafting.=Las esmeraldas no son muy útiles por sí mismas, pero pueden cambiarse por lingotes de oro haciendo artesanías. -Flint=Pedernal -Flint is a raw material.=El pedernal es una materia prima. -Flowing Lava=Lava que fluye -Flowing Water=Agua que fluye -Frosted Ice=Hielo helado -Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.=El hielo helado es un bloque sólido de corta duración. Se derrite en una fuente de agua en unos pocos segundos. -Glass=Cristal -Gold Ingot=Lingote de oro -Gold Nugget=Pepita de oro -Gold Ore=Mena de oro -Gold nuggets are very small pieces of molten gold; the main purpose is to create gold ingots.=Las pepitas de oro son piezas muy pequeñas de oro fundido; El objetivo principal es crear lingotes de oro. -Golden Apple=Manzana dorada -Golden apples are precious food items which can be eaten.=Las manzanas doradas son alimentos preciosos que se pueden comer. -Granite=Granito -Grass Block=Bloque de césped -Grass Path=Camino de hierba -Grass paths are a decorative variant of grass blocks. Their top has a different color and they are a bit lower than grass blocks, making them useful to build footpaths. Grass paths can be created with a shovel. A grass path turns into dirt when it is below a solid block.=Los caminos de hierba son una variante decorativa de bloques de hierba. Su parte superior tiene un color diferente y son un poco más bajos que los bloques de hierba, lo que los hace útiles para construir senderos. Los caminos de hierba se pueden crear con una pala. Un camino de hierba se convierte en tierra cuando está debajo de un bloque sólido. -Gravel=Grava -Green Stained Glass=Cristal verde -Grey Stained Glass=Cristal gris -Ice=Hielo -Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.=El hielo es un bloque sólido que generalmente se encuentra en áreas frías. Se funde cerca de bloques de luz, a un nivel de luz de 12 o más. Cuando se derrite o se rompe mientras posa sobre otro bloque, se convertirá en una fuente de agua. -In the End dimension, starting a fire on this block will create an eternal fire.=En la dimensión final, iniciar un incendio en este bloque creará un fuego eterno. -Iron Ingot=Lingote de hierro -Iron Nugget=Pepita de hierro -Iron Ore=Mena de hierro -Iron nuggets are very small pieces of molten iron; the main purpose is to create iron ingots.=Las pepitas de hierro son piezas muy pequeñas de hierro fundido; El objetivo principal es crear lingotes de hierro. -Jungle Bark=Madera de jungla sin corteza -Jungle Leaves=Hojas de jungla -Jungle Sapling=Brote de jungla -Jungle Wood=Tronco de jungla -Jungle Wood Planks=Madera de jungla -Jungle leaves are grown from jungle trees.=Las hojas de jungla se cultivan de los árboles de jungla. -Ladder=Escalera -Lapis Lazuli Block=Bloque de lapislázuli -Lapis Lazuli Ore=Mena de lapislázuli -Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=El mineral de lapislázuli es el mineral de lapislázuli. Rara vez se puede encontrar en grupos, se encuentra cerca del fondo del mundo. -Lava Source=Fuente de lava -Lava is hot and rather dangerous. Don't touch it, it will hurt you a lot and it is hard to get out.=La lava es caliente y bastante peligrosa. No lo toques, te dolerá mucho y es difícil salir. -Light Blue Stained Glass=Cristal azul claro -Light Grey Stained Glass=Cristal gris claro -Lime Stained Glass=Cristal amarillo verdoso -Lit Redstone Ore=Mena de redstone encendida -Magenta Stained Glass=Cristal magenta -Molten gold. It is used to craft armor, tools, and whatnot.=Oro fundido Se utiliza para fabricar armaduras, herramientas y otras cosas. -Molten iron. It is used to craft armor, tools, and whatnot.=Hierro fundido. Se utiliza para fabricar armaduras, herramientas y otras cosas. -Mossy Cobblestone=Roca musgosa -Mossy Stone Bricks=Ladrillo de piedra musgoso -Mycelium=Micelio -Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt.=El micelio es un tipo de tierra y el suelo ideal para los hongos. A diferencia de otros bloques de tipo de tierra, no se puede convertir en tierras de cultivo con una azada. A la luz, el micelio se extiende lentamente sobre la tierra cercana. Debajo de un bloque opaco o un líquido, eventualmente se convierte nuevamente en tierra. -Oak Bark=Madera de roble sin corteza -Oak Leaves=Hojas de roble -Oak Sapling=Brote de roble -Oak Wood=Tronco de roble -Oak Wood Planks=Madera de roble -Oak leaves are grown from oak trees.=Las hojas de roble se cultivan a partir de robles. -Obsidian=Obsidiana -Obsidian is an extremely hard mineral with an enourmous blast-resistance. Obsidian is formed when water meets lava.=La obsidiana es un mineral extremadamente duro con una enorme resistencia a la explosión. La obsidiana se forma cuando el agua se encuentra con la lava. -One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava.=Uno de los bloques más comunes en el mundo, casi todo el subsuelo consiste en piedra. A veces contiene minerales. Se puede crear piedra cuando el agua se encuentra con la lava. -Orange Stained Glass=Cristal Naranja -Packed Ice=Hielo envasado -Packed ice is a compressed form of ice. It is opaque and solid.=El hielo empaquetado es una forma comprimida de hielo. Es opaco y sólido. -Paper=Papel -Paper is used to craft books and maps.=El papel se usa para crear libros y mapas. -Pink Stained Glass=Cristal rosa -Podzol=Podzol -Podzol is a type of dirt found in taiga forests. Only a few plants are able to survive on it.=El podzol es un tipo de tierra que se encuentra en los bosques de taiga. Solo unas pocas plantas pueden sobrevivir en él. -Polished Andesite=Andesita pulida -Polished Diorite=Diorita pulida -Polished Granite=Granito pulido -Polished Stone=Piedra pulida -Polished andesite is a decorative building block made from andesite.=La andesita pulida es un bloque de construcción decorativo hecho de andesita. -Polished diorite is a decorative building block made from diorite.=La diorita pulida es un bloque de construcción decorativo hecho de diorita. -Polished granite is a decorative building block made from granite.=El granito pulido es un bloque decorativo hecho de granito. -Purple Stained Glass=Cristal morado -Realm Barrier=Barrera del reino -Red Sand=Arena roja -Red Sandstone=Arenisca roja -Red Stained Glass=Cristal rojo -Red sand is found in large quantities in mesa biomes.=La arena roja se encuentra en grandes cantidades en los desiertos. -Red sandstone is compressed red sand and is a rather soft kind of stone.=La arenisca roja es arena roja comprimida y es un tipo de piedra bastante suave. -Redstone Ore=Mena de redstone -Redstone ore is commonly found near the bottom of the world. It glows when it is punched or walked upon.=El mineral redstone se encuentra comúnmente cerca del fondo del mundo. Brilla cuando es golpeado o pisado. -Sand=Arena -Sand is found in large quantities at beaches and deserts.=La arena se encuentra en grandes cantidades en playas y desiertos. -Sandstone=Arenisca -Sandstone is compressed sand and is a rather soft kind of stone.=La arenisca es arena comprimida y es un tipo de piedra bastante suave. -Slime Block=Bloque de Slime -Slime blocks are very bouncy and prevent fall damage.=Los bloques de limo son muy hinchables y evitan el daño por caída. -Smooth Red Sandstone=Arenisca roja lisa -Smooth Sandstone=Arenisca lisa -Smooth red sandstone is a decorative building block.=La piedra arenisca roja lisa es un elemento decorativo. -Smooth sandstone is compressed sand and is a rather soft kind of stone.=La arenisca lisa es arena comprimida y es un tipo de piedra bastante blanda. -Snow=Bloque de Nieve -Some coal contained in stone, it is very common and can be found inside stone in medium to large clusters at nearly every height.=Algo de carbón contenido en la piedra, es muy común y se puede encontrar dentro de la piedra en grupos medianos a grandes en casi todas las alturas. -Some iron contained in stone, it is prety common and can be found below sea level.=Algo de hierro contenido en piedra, es bastante común y se puede encontrar debajo del nivel del mar. -Spruce Bark=Madera de abeto sin corteza -Spruce Leaves=Hojas de abeto -Spruce Sapling=Brote de abeto -Spruce Wood=Tronco de abeto -Spruce Wood Planks=Madera de abeto -Spruce leaves are grown from spruce trees.=Las hojas de abeto se cultivan a partir de abetos. -Stained glass is a decorative and mostly transparent block which comes in various different colors.=El vitral es un bloque decorativo y en su mayoría transparente que viene en varios colores diferentes. -Stick=Palo -Sticks are a very versatile crafting material; used in countless crafting recipes.=Los palos son un material de elaboración muy versátil; utilizado en innumerables recetas de elaboración. -Stone=Piedra -Stone Bricks=Ladrillos de piedra -Sugar=Azúcar -Sugar Canes=Caña de azúcar -Sugar canes are a plant which has some uses in crafting. Sugar canes will slowly grow up to 3 blocks when they are next to water and are placed on a grass block, dirt, sand, red sand, podzol or coarse dirt. When a sugar cane is broken, all sugar canes connected above will break as well.=Las cañas de azúcar son una planta que tiene algunos usos en la elaboración. Las cañas de azúcar crecerán lentamente hasta 3 bloques cuando estén cerca del agua y se colocan en un bloque de césped, tierra, arena, arena roja, podzol o tierra gruesa. Cuando se rompe una caña de azúcar, todas las cañas de azúcar conectadas arriba también se romperán. -Sugar canes can only be placed top of other sugar canes and on top of blocks on which they would grow.=Las cañas de azúcar solo se pueden colocar encima de otras cañas de azúcar y encima de los bloques en los que crecerían. -Sugar comes from sugar canes and is used to make sweet foods.=El azúcar proviene de las cañas de azúcar y se usa para hacer alimentos dulces. -The trunk of a birch tree.=El tronco de un abedul. -The trunk of a dark oak tree.=El tronco de un roble oscuro. -The trunk of a jungle tree.=El tronco de un árbol de jungla. -The trunk of a spruce tree.=El tronco de un árbol de abeto. -The trunk of an acacia.=El tronco de una acacia. -The trunk of an oak tree.=El tronco de un roble. -This block consists of a couple of loose stones and can't support itself.=Este bloque consta de un par de piedras sueltas y no puede sostenerse. -This is a decorative block surrounded by the bark of a tree trunk.=Este es un bloque decorativo rodeado por la corteza del tronco de un árbol. -This is a full block of snow. Snow of this thickness is usually found in areas of extreme cold.=Este es un bloque lleno de nieve. La nieve de este espesor generalmente se encuentra en áreas de frío extremo. -This is a piece of cactus commonly found in dry areas, especially deserts. Over time, cacti will grow up to 3 blocks high on sand or red sand. A cactus hurts living beings touching it with a damage of 1 HP every half second. When a cactus block is broken, all cactus blocks connected above it will break as well.=Este es un pedazo de cactus que se encuentra comúnmente en áreas secas, especialmente en los desiertos. Con el tiempo, los cactus crecerán hasta 3 bloques de altura en arena o arena roja. Un cactus lastima a los seres vivos al tocarlo con un daño de 1 HP cada medio segundo. Cuando un bloque de cactus se rompe, todos los bloques de cactus conectados encima también se romperán. -This stone contains pure gold, a rare metal.=Esta piedra contiene oro puro, un metal raro. -Top Snow=Nieve -Top snow is a layer of snow. It melts near light sources other than the sun with a light level of 12 or higher.=La nieve es una capa de nieve. Se derrite cerca de fuentes de luz distintas al sol con un nivel 12 de luz o más. -Vines=Enredadera -Vines are climbable blocks which can be placed on the sides of solid full-cube blocks. Vines slowly grow and spread.=Las enredaderas son bloques escalables que se pueden colocar a los lados de bloques sólidos de cubo completo. Las enredaderas crecen y se extienden lentamente -Void=Vacío -Water=Agua -Water Source=Fuente de agua -Water is abundant in oceans and also appears in a few springs in the ground. You can swim easily in water, but you need to catch your breath from time to time.=El agua es abundante en los océanos y también aparece en algunas fuentes en el suelo. Puede nadar fácilmente en el agua, pero necesita recuperar el aliento de vez en cuando. -When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time.=Cuando se coloca en el suelo (como tierra) y se expone a la luz, un brote de abedul se convertirá en abedul después de un tiempo. -When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree.=Cuando se coloca en el suelo (como la tierra) y se expone a la luz, un brote de jungla se convertirá en un árbol de jungla después de un tiempo. Cuando hay 4 árboles jóvenes de jungla en un cuadrado de 2×2, crecerán hasta convertirse en un enorme árbol de jungla. -When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce.=Cuando se coloca en el suelo (como tierra) y se expone a la luz, un brote de abeto se convertirá en un abeto después de un tiempo. Cuando hay 4 brotes de abeto en un cuadrado de 2×2, crecerán hasta convertirse en un abeto enorme. -When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time.=Cuando se coloca en el suelo (como tierra) y se expone a la luz, un brote de acacia se convertirá en una acacia después de un tiempo. -When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time.=Cuando se coloca en el suelo (como tierra) y se expone a la luz, un brote de roble se convertirá en un roble después de un tiempo. -When you hold a barrier in hand, you reveal all placed barriers in a short distance around you.=Cuando sostienes una barrera en la mano, revelas todas las barreras colocadas a corta distancia a tu alrededor. -White Stained Glass=Cristal blanco -Yellow Stained Glass=Cristal amarillo -“Coal” refers to coal lumps obtained by digging coal ore which can be found underground. Coal is your standard furnace fuel, but it can also be used to make torches, coal blocks and a few other things.="Carbón" se refiere a trozos de carbón obtenidos al excavar mineral de carbón que se puede encontrar bajo tierra. El carbón es el combustible estándar de su horno, pero también se puede usar para hacer antorchas, bloques de carbón y algunas otras cosas. -Water interacts with lava in various ways:=El agua interactúa con la lava de varias maneras: -• When water is directly above or horizontally next to a lava source, the lava turns into obsidian.=• Cuando el agua está directamente arriba u horizontalmente al lado de una fuente de lava, la lava se convierte en obsidiana. -• When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone.=• Cuando el agua que fluye toca la lava que fluye desde arriba u horizontalmente, la lava se convierte en roca. -• When water is directly below lava, the water turns into stone.=• Cuando el agua está directamente debajo de la lava, el agua se convierte en piedra. -Lava interacts with water various ways:=La lava interactúa con el agua de varias maneras: -• When a lava source is directly below or horizontally next to water, the lava turns into obsidian.=• Cuando una fuente de lava está directamente debajo u horizontalmente al lado del agua, la lava se convierte en obsidiana. -• When lava is directly above water, the water turns into stone.=• Cuando la lava está directamente sobre el agua, el agua se convierte en piedra. -Stained Glass=Vitral -Granite is an igneous rock.=El granito es una roca ígnea. -Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.=La nieve se puede apilar y tiene unos 8 niveles de altura diferentes. En los niveles 2-8, la nieve es colisionable. La nieve cae de 2 a 9 bolas de nieve, dependiendo de su altura. -This block can only be placed on full solid blocks and on another top snow (which increases its height).=Este bloque solo se puede colocar en bloques sólidos completos y en otra nieve (lo que aumenta su altura). diff --git a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr b/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr deleted file mode 100644 index 4d97fe22..00000000 --- a/mods/ITEMS/mcl_core/locale/mcl_core.fr.tr +++ /dev/null @@ -1,258 +0,0 @@ -# textdomain: mcl_core -@1 could not survive in lava.=@1 n'a pas pu survivre dans la lave. -@1 died in lava.=@1 est mort dans la lave. -@1 melted in lava.=@1 a fondu dans la lave. -@1 took a bath in a hot lava tub.=@1 a pris un bain dans une cuve de lave chaude. -A block of diamond is mostly a shiny decorative block but also useful as a compact storage of diamonds.=Un bloc de diamant est principalement un bloc décoratif brillant mais également utile comme stockage compact de diamants. -A block of emerald is mostly a shiny decorative block but also useful as a compact storage of emeralds.=Un bloc d'émeraude est principalement un bloc décoratif brillant mais également utile comme stockage compact d'émeraudes. -A block of gold is mostly a shiny decorative block but also useful as a compact storage of gold ingots.=Un bloc d'or est principalement un bloc décoratif brillant mais également utile comme stockage compact de lingots d'or. -A block of iron is mostly a decorative block but also useful as a compact storage of iron ingots.=Un bloc de fer est principalement un bloc décoratif mais également utile comme stockage compact de lingots de fer. -A cactus can only be placed on top of another cactus or any sand.=Un cactus ne peut être placé que sur un autre cactus ou du sable. -A decorative and mostly transparent block.=Un bloc décoratif et surtout transparent. -A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt.=Un bloc d'herbe est de la terre avec une couverture d'herbe. Les blocs d'herbe sont des blocs ingénieux qui permettent la croissance de toutes sortes de plantes. Ils peuvent être transformés en terres agricoles avec une houe et transformés en chemins d'herbe avec une pelle. À la lumière, l'herbe se propage lentement sur la terre à proximité. Sous un bloc opaque ou un liquide, un bloc d'herbe peut redevenir terre. -A lapis lazuli block is mostly a decorative block but also useful as a compact storage of lapis lazuli.=Un bloc de lapis-lazuli est principalement un bloc décoratif mais également utile comme stockage compact de lapis-lazuli. -A lava source sets fire to a couple of air blocks above when they're next to a flammable block.=Une source de lave met le feu à quelques blocs d'air au-dessus lorsqu'ils sont à côté d'un bloc inflammable. -A piece of ladder which allows you to climb vertically. Ladders can only be placed on the side of solid blocks and not on glass, leaves, ice, slabs, glowstone, nor sea lanterns.=Un morceau d'échelle qui vous permet de grimper verticalement. Les échelles ne peuvent être placées que sur le côté de blocs solides et non sur du verre, des feuilles, de la glace, des dalles, des pierres incandescentes ou des lanternes marines. -Acacia Bark=Écorce d'Acacia -Acacia Leaves=Feuilles d'Acacia -Acacia Sapling=Pousse d'Acacia -Acacia Wood=Bois d'Acacia -Acacia Wood Planks=Planches d'Acacia -Acacia leaves are grown from acacia trees.=Les feuilles d'acacia sont cultivées à partir d'acacias. -Andesite=Andésite -Andesite is an igneous rock.=L'andésite est une roche ignée. -Apple=Pomme -Apples are food items which can be eaten.=Les pommes sont des aliments qui peuvent être consommés. -Barrier=Barrière invisible -Barriers are invisble walkable blocks. They are used to create boundaries of adventure maps and the like. Monsters and animals won't appear on barriers, and fences do not connect to barriers. Other blocks can be built on barriers like on any other block.=Les barrières sont des blocs accessibles à pied. Ils sont utilisés pour créer des limites de cartes d'aventure et similaires. Les monstres et les animaux n'apparaissent pas sur les barrières, et les clôtures ne se connectent pas aux barrières. D'autres blocs peuvent être construits sur des barrières comme sur n'importe quel autre bloc. -Bedrock=Bedrock -Bedrock is a very hard type of rock. It can not be broken, destroyed, collected or moved by normal means, unless in Creative Mode.=Le bedrock est un type de roche très dur. Il ne peut pas être brisé, détruit, collecté ou déplacé par des moyens normaux, sauf en mode créatif. -Birch Bark=Écorce de Bouleau -Birch Leaves=Feuilles de Bouleau -Birch Sapling=Pousse de Bouleau -Birch Wood=Bois de Bouleau -Birch Wood Planks=Planches de Bouleau -Birch leaves are grown from birch trees.=Les feuilles de bouleau sont cultivées à partir de bouleaux. -Black Stained Glass=Verre Noir -Block of Coal=Bloc de Charbon -Block of Diamond=Bloc de Diamant -Block of Emerald=Bloc d'Emeraude -Block of Gold=Bloc d'Or -Block of Iron=Bloc de Fer -Blocks of coal are useful as a compact storage of coal and very useful as a furnace fuel. A block of coal is as efficient as 10 coal.=Les blocs de charbon sont utiles comme stockage compact de charbon et très utiles comme combustible de four. Un bloc de charbon est aussi efficace que 10 charbon. -Blue Stained Glass=Verre Bleu -Bone Block=Bloc d'Os -Bone blocks are decorative blocks and a compact storage of bone meal.=Les blocs d'os sont des blocs décoratifs et un stockage compact de poudre d'os. -Bowl=Bol -Bowls are mainly used to hold tasty soups.=Les bols sont principalement utilisés pour contenir de délicieuses soupes. -Brick=Brique -Brick Block=Bloc de Brique -Brick blocks are a good building material for building solid houses and can take quite a punch.=Les blocs de briques sont un bon matériau de construction pour la construction de maisons solides et peuvent resite au coup. -Bricks are used to craft brick blocks.=Les briques sont utilisées pour fabriquer des blocs de briques. -Brown Stained Glass=Verre Marron -Cactus=Cactus -Charcoal=Charbon de Bois -Charcoal is an alternative furnace fuel created by cooking wood in a furnace. It has the same burning time as coal and also shares many of its crafting recipes, but it can not be used to create coal blocks.=Le charbon de bois est un combustible de four alternatif créé par la cuisson du bois dans un four. Il a le même temps de combustion que le charbon et partage également bon nombre de ses recettes d'artisanat, mais il ne peut pas être utilisé pour créer des blocs de charbon. -Chiseled Stone Bricks=Pierre Sculptée -Chiseled Red Sandstone=Grès Rouge Sculptée -Chiseled Sandstone=Grès Sculptée -Chiseled red sandstone is a decorative building block.=Le grès rouge ciselé est un bloc de construction décoratif. -Chiseled sandstone is a decorative building block.=Le grès ciselé est un bloc de construction décoratif. -Clay=Argile -Clay Ball=Boule d'Argile -Clay balls are a raw material, mainly used to create bricks in the furnace.=Les boules d'argile sont une matière première, principalement utilisée pour créer des briques dans le four. -Clay is a versatile kind of earth commonly found at beaches underwater.=L'argile est une terre polyvalente que l'on trouve couramment sur les plages sous-marines. -Coal=Charbon -Coal Ore=Minerai de Charbon -Coarse Dirt=Terre Stérile -Coarse dirt acts as a soil for some plants and is similar to dirt, but it will never grow a cover.=La terre stérile agit comme un sol pour certaines plantes et est similaire à la terre, mais elle ne fera jamais pousser grand chose. -Cobblestone=Pierre -Cobweb=Toile d'Araignée -Cobwebs can be walked through, but significantly slow you down.=Les toiles d'araignée peuvent être parcourues, mais vous ralentissent considérablement. -Cracked Stone Bricks=Pierre Taillée Craquelée -Cut Red Sandstone=Grès Rouge Taillé -Cut Sandstone=Grès Taillé -Cut red sandstone is a decorative building block.=Le grès rouge taillé est un bloc de construction décoratif. -Cut sandstone is a decorative building block.=Le grès taillé est un bloc de construction décoratif. -Cyan Stained Glass=Vitre Cyan -Dark Oak Bark=Écorce de Chêne Noir -Dark Oak Leaves=Feuilles de Chêne Noir -Dark Oak Sapling=Pousse de Chêne Noir -Dark Oak Wood=Bois de Chêne Noir -Dark Oak Wood Planks=Planche de Chêne Noir -Dark oak leaves are grown from dark oak trees.=Les feuilles de chêne noir sont issues de chênes noirs. -Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light.=Les pousses de chêne noir peuvent devenir des chênes noirs, mais seulement en groupes. Une pousse de chêne noir solitaire ne poussera pas. Un groupe de quatre pousses de chêne noir se transforme en chêne noir après un certain temps lorsqu'ils sont placés sur le sol (comme la terre) dans un carré 2×2 et exposés à la lumière. -Dead Bush=Arbuste mort -Dead bushes are unremarkable plants often found in dry areas. They can be harvested for sticks.=Les buissons morts sont des plantes inhabituelles que l'on trouve souvent dans les zones sèches. Ils peuvent être récoltés avec des bâtons. -Diamond=Diamamnt -Diamond Ore=Minerai de Diamant -Diamond ore is rare and can be found in clusters near the bottom of the world.=Le minerai de diamant est rare et peut être trouvé en filons près du fond du monde. -Diamonds are precious minerals and useful to create the highest tier of armor and tools.=Les diamants sont des minéraux précieux et utiles pour créer le plus haut niveau d'armure et d'outils. -Diorite=Diorite -Diorite is an igneous rock.=La diorite est une roche ignée. -Dirt=Terre -Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby.=La terre agit comme un sol pour quelques plantes. Lorsqu'il est à la lumière, ce bloc peut faire pousser une couverture d'herbe ou de mycélium si ces blocs sont à proximité. -Emerald=Emeraude -Emerald Ore=Minerai d'Emeraude -Emerald ore is the ore of emeralds. It is very rare and can be found alone, not in clusters.=Le minerai d'émeraude produit des émeraudes. Il est très rare et peut être trouvé seul, pas en filons. -Emeralds are not very useful on their own, but they can exchanged for gold ingots by crafting.=Les émeraudes ne sont pas très utiles seules, mais elles peuvent être échangées contre des lingots d'or. -Flint=Silex -Flint is a raw material.=Le silex est une matière première. -Flowing Lava=Lave qui coule -Flowing Water=Eau qui coule -Frosted Ice=Glace Givrée -Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.=La glace givrée est un bloc solide de courte durée. Il fond dans une source d'eau en quelques secondes. -Glass=Verre -Gold Ingot=Lingot d'Or -Gold Nugget=Pépite d'Or -Gold Ore=Minerai d'Or -Gold nuggets are very small pieces of molten gold; the main purpose is to create gold ingots.=Les pépites d'or sont de très petites pièces d'or en fusion; le but principal est de créer des lingots d'or. -Golden Apple=Pomme Dorée -Golden apples are precious food items which can be eaten.=Les pommes dorrées sont des aliments précieux qui peuvent être consommés. -Granite=Granite -Grass Block=Bloc d'Herbe -Grass Path=Chemin d'Herbe -Grass paths are a decorative variant of grass blocks. Their top has a different color and they are a bit lower than grass blocks, making them useful to build footpaths. Grass paths can be created with a shovel. A grass path turns into dirt when it is below a solid block.=Les chemins d'herbe sont une variante décorative des blocs d'herbe. Leur sommet a une couleur différente et ils sont un peu plus bas que les blocs d'herbe, ce qui les rend utiles pour construire des sentiers. Les chemins d'herbe peuvent être créés avec une pelle. Un chemin d'herbe se transforme en terre quand il est en dessous d'un bloc solide. -Gravel=Gravier -Green Stained Glass=Verre Vert -Grey Stained Glass=Verre Gris -Ice=Glace -Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.=La glace est un bloc solide que l'on trouve généralement dans les régions froides. Il fond près des sources de lumière de bloc à un niveau de lumière de 12 ou plus. Lorsqu'il fond ou se casse en se reposant sur un autre bloc, il se transforme en source d'eau. -In the End dimension, starting a fire on this block will create an eternal fire.=Dans la dimension End, démarrer un feu sur ce bloc créera un feu éternel. -Iron Ingot=Lingot de Fer -Iron Nugget=Pépite de Fer -Iron Ore=Minerai de Fer -Iron nuggets are very small pieces of molten iron; the main purpose is to create iron ingots.=Les pépites de fer sont de très petits morceaux de fer fondu; le but principal est de créer des lingots de fer. -Jungle Bark=Écorce d'Acajou -Jungle Leaves=Feuilles d'Acajou -Jungle Sapling=Pousse d'Acajou -Jungle Wood=Bois d'Acajou -Jungle Wood Planks=Planches d'Acajou -Jungle leaves are grown from jungle trees.=Les feuilles d'Acajou sont cultivées à partir d'arbres d'Acajou. -Ladder=Échelle -Lapis Lazuli Block=Bloc de Lapis-Lazuli -Lapis Lazuli Ore=Minerai de Lapis-Lazuli -Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.=Le minerai de lapis-lazuli produit du lapis-lazuli. Il peut être rarement trouvé dans des filons près du fond du monde. -Lava Source=Source de Lave -Lava is hot and rather dangerous. Don't touch it, it will hurt you a lot and it is hard to get out.=La lave est chaude et plutôt dangereuse. Ne le touchez pas, cela vous fera beaucoup de mal et il est difficile d'en sortir. -Light Blue Stained Glass=Verre Bleu Clair -Light Grey Stained Glass=Verre Gris Clair -Lime Stained Glass=Verre Vert Clair -Lit Redstone Ore=Minerai de Redstone -Magenta Stained Glass=Verre Magenta -Molten gold. It is used to craft armor, tools, and whatnot.=L'Or. Il est utilisé pour fabriquer des armures, des outils et ainsi de suite. -Molten iron. It is used to craft armor, tools, and whatnot.=Le Fer. Il est utilisé pour fabriquer des armures, des outils et ainsi de suite. -Mossy Cobblestone=Pierre Moussue -Mossy Stone Bricks=Pierre Taillée Moussue -Mycelium=Mycélium -Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt.=Le mycélium est un type de terre et le sol idéal pour les champignons. Contrairement à d'autres blocs de terre, il ne peut pas être transformé en terres agricoles avec une houe. À la lumière, le mycélium se répand lentement sur la terre voisine. Sous un bloc opaque ou un liquide, il finit par redevenir de la terre. -Oak Bark=Écorce de Chêne -Oak Leaves=Feuilles de Chêne -Oak Sapling=Pousse de Chêne -Oak Wood=Bois de Chêne -Oak Wood Planks=Planches de Chêne -Oak leaves are grown from oak trees.=Les feuilles de chêne sont cultivées à partir de chênes. -Obsidian=Obsidienne -Obsidian is an extremely hard mineral with an enourmous blast-resistance. Obsidian is formed when water meets lava.=L'obsidienne est un minéral extrêmement dur avec une énorme résistance à l'explosion. L'obsidienne se forme lorsque l'eau rencontre la lave. -One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava.=L'un des blocs les plus courants au monde, presque tout le sous-sol est en pierre. Il contient parfois des minerais. La pierre peut être créée lorsque l'eau rencontre la lave. -Orange Stained Glass=Verre Orange -Packed Ice=Glace Compactée -Packed ice is a compressed form of ice. It is opaque and solid.=La glace compactée est une forme de glace comprimée. Elle est opaque et solide. -Paper=Papier -Paper is used to craft books and maps.=Le papier est utilisé pour créer des livres et des cartes. -Pink Stained Glass=Verre Rose -Podzol=Podzol -Podzol is a type of dirt found in taiga forests. Only a few plants are able to survive on it.=Le podzol est un type de terre trouvé dans les forêts de la taïga. Seules quelques plantes peuvent y survivre. -Polished Andesite=Andrésite Polie -Polished Diorite=Diorite Polie -Polished Granite=Granite Polie -Polished Stone=Roche Polie -Polished andesite is a decorative building block made from andesite.=L'andésite polie est un bloc de construction décoratif en andésite. -Polished diorite is a decorative building block made from diorite.=La diorite polie est un bloc de construction décoratif en diorite. -Polished granite is a decorative building block made from granite.=Le granit poli est un bloc de construction décoratif en granit. -Purple Stained Glass=Verre Violet -Realm Barrier=Barrière du royaume -Red Sand=Sable Rouge -Red Sandstone=Grès Rouge -Red Stained Glass=Verre Rouge -Red sand is found in large quantities in mesa biomes.=Le sable rouge se trouve en grande quantité dans les biomes mesa. -Red sandstone is compressed red sand and is a rather soft kind of stone.=Le grès rouge est du sable rouge comprimé et est une pierre plutôt tendre. -Redstone Ore=Minerai de Redstone -Redstone ore is commonly found near the bottom of the world. It glows when it is punched or walked upon.=Le minerai de Redstone se trouve généralement près du bas du monde. Il brille lorsqu'il est frappé ou piétiné. -Sand=Sable -Sand is found in large quantities at beaches and deserts.=Le sable se trouve en grande quantité sur les plages et les déserts. -Sandstone=Grès -Sandstone is compressed sand and is a rather soft kind of stone.=Le grès est du sable comprimé et est un type de pierre plutôt tendre. -Slime Block=Bloc de Slime -Slime blocks are very bouncy and prevent fall damage.=Les blocs de slime sont gonflables et empêchent les dommages de chute. -Smooth Red Sandstone=Grès Rouge Lisse -Smooth Sandstone=Grès Lisse -Smooth red sandstone is a decorative building block.=Le grès rouge lisse est un bloc de construction décoratif. -Smooth sandstone is compressed sand and is a rather soft kind of stone.=Le grès lisse est du sable comprimé et est un type de pierre plutôt tendre. -Snow=Neige -Some coal contained in stone, it is very common and can be found inside stone in medium to large clusters at nearly every height.=Du charbon contenu dans la pierre, il est très commun et peut être trouvé à l'intérieur de la pierre en grappes moyennes à grandes à presque toutes les hauteurs. -Some iron contained in stone, it is prety common and can be found below sea level.=Du fer contenu dans la pierre, il est assez courant et se trouve sous le niveau de la mer. -Spruce Bark=Écorce de Sapin -Spruce Leaves=Feuilles de Sapin -Spruce Sapling=Pousse de Sapin -Spruce Wood=Bois de Sapin -Spruce Wood Planks=Planches de Sapin -Spruce leaves are grown from spruce trees.=Les feuilles de sapin sont cultivées à partir de sapin. -Stained glass is a decorative and mostly transparent block which comes in various different colors.=Le verre est un bloc décoratif et principalement transparent qui se décline en différentes couleurs. -Stick=Bâton -Sticks are a very versatile crafting material; used in countless crafting recipes.=Les bâtons sont un matériau d'artisanat très polyvalent; utilisé dans d'innombrables recettes d'artisanat. -Stone=Roche -Stone Bricks=Pierre Taillée -Sugar=Sucre -Sugar Canes=Canne à Sucre -Sugar canes are a plant which has some uses in crafting. Sugar canes will slowly grow up to 3 blocks when they are next to water and are placed on a grass block, dirt, sand, red sand, podzol or coarse dirt. When a sugar cane is broken, all sugar canes connected above will break as well.=Les cannes à sucre sont une plante qui a certaines utilisations dans l'artisanat. Les cannes à sucre poussent lentement jusqu'à 3 blocs lorsqu'elles sont à côté de l'eau et sont placées sur un bloc d'herbe, de saleté, de sable, de sable rouge, de podzol ou de saleté grossière. Lorsqu'une canne à sucre est cassée, toutes les cannes à sucre connectées ci-dessus se brisent également. -Sugar canes can only be placed top of other sugar canes and on top of blocks on which they would grow.=Les cannes à sucre ne peuvent être placées que sur d'autres cannes à sucre et sur des blocs sur lesquels elles poussent. -Sugar comes from sugar canes and is used to make sweet foods.=Le sucre provient des cannes à sucre et est utilisé pour fabriquer des aliments sucrés. -The trunk of a birch tree.=Le tronc d'un bouleau. -The trunk of a dark oak tree.=Le tronc d'un chêne noir. -The trunk of a jungle tree.=Le tronc d'un acajou. -The trunk of a spruce tree.=Le tronc d'un sapin. -The trunk of an acacia.=Le tronc d'un acacia -The trunk of an oak tree.=Le tronc d'un chêne. -This block consists of a couple of loose stones and can't support itself.=Ce bloc se compose de quelques pierres lâches et ne peut pas se soutenir. -This is a decorative block surrounded by the bark of a tree trunk.=Il s'agit d'un bloc décoratif entouré par l'écorce d'un tronc d'arbre. -This is a full block of snow. Snow of this thickness is usually found in areas of extreme cold.=Ceci est un bloc de neige complet. La neige de cette épaisseur se trouve généralement dans les zones de froid extrême. -This is a piece of cactus commonly found in dry areas, especially deserts. Over time, cacti will grow up to 3 blocks high on sand or red sand. A cactus hurts living beings touching it with a damage of 1 HP every half second. When a cactus block is broken, all cactus blocks connected above it will break as well.=Il s'agit d'un morceau de cactus que l'on trouve couramment dans les zones sèches, en particulier dans les déserts. Au fil du temps, les cactus pousseront jusqu'à 3 blocs de haut sur le sable ou le sable rouge. Un cactus blesse les êtres vivants qui le touchent avec des dégâts de 1 HP toutes les demi-secondes. Lorsqu'un bloc de cactus est brisé, tous les blocs de cactus connectés au-dessus se brisent également. -This stone contains pure gold, a rare metal.=Cette pierre contient de l'or pur, un métal rare. -Top Snow=neige -Top snow is a layer of snow. It melts near light sources other than the sun with a light level of 12 or higher.=La neige est une couche de neige. Il fond près de sources lumineuses autres que le soleil avec un niveau de lumière de 12 ou plus. -Vines=Lianes -Vines are climbable blocks which can be placed on the sides of solid full-cube blocks. Vines slowly grow and spread.=Les lianes sont des blocs grimpants qui peuvent être placés sur les côtés de blocs pleins. Les lianes poussent et s'étendent lentement. -Void=Néant -Water=Eau -Water Source=Source d'Eau -Water is abundant in oceans and also appears in a few springs in the ground. You can swim easily in water, but you need to catch your breath from time to time.=L'eau est abondante dans les océans et apparaît également dans quelques sources dans le sol. Vous pouvez nager facilement dans l'eau, mais vous devez de temps en temps reprendre votre souffle. -When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time.=Lorsqu'il est placé sur le sol (comme la terre) et exposé à la lumière, un jeune arbre de bouleau se transforme en bouleau après un certain temps. -When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree.=Lorsqu'il est placé sur le sol (comme la terre) et exposé à la lumière, une pousse d'Acajou se transforme en arbre d'Acajou après un certain temps. Quand il y a 4 pousses d'Acajou dans un carré 2×2, ils deviendront un énorme arbre d'Acajou. -When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce.=Lorsqu'il est placé sur le sol (comme la terre) et exposé à la lumière, un pousse de sapin se transforme en sapin après un certain temps. Lorsqu'il y a 4 pousses de sapin dans un carré 2×2, elles deviendront un énorme sapin. -When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time.=Lorsqu'il est placé sur le sol (comme la terre) et exposé à la lumière, un pousse d'acacia se développera en un acacia après un certain temps. -When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time.=Lorsqu'il est placé sur le sol (comme la terre) et exposé à la lumière, une pousse de chêne se transforme en chêne après un certain temps. -When you hold a barrier in hand, you reveal all placed barriers in a short distance around you.=Lorsque vous tenez une barrière en main, vous révélez toutes les barrières placées à une courte distance autour de vous. -White Stained Glass=Verre Blanc -Yellow Stained Glass=Verre Jaune -“Coal” refers to coal lumps obtained by digging coal ore which can be found underground. Coal is your standard furnace fuel, but it can also be used to make torches, coal blocks and a few other things.=Le "charbon" fait référence aux morceaux de charbon obtenus en creusant du minerai de charbon qui peut être trouvé sous terre. Le charbon est votre combustible de four standard, mais il peut également être utilisé pour fabriquer des torches, des blocs de charbon et quelques autres choses. -Water interacts with lava in various ways:=L'eau interagit avec la lave de différentes manières: -• When water is directly above or horizontally next to a lava source, the lava turns into obsidian.=• Lorsque l'eau est directement au-dessus ou horizontalement à côté d'une source de lave, la lave se transforme en obsidienne. -• When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone.=• Lorsque l'eau qui coule touche la lave qui coule par le haut ou horizontalement, la lave se transforme en pierre. -• When water is directly below lava, the water turns into stone.=• Lorsque l'eau est directement sous la lave, l'eau se transforme en pierre. -Lava interacts with water various ways:=La lave interagit avec l'eau de différentes manières: -• When a lava source is directly below or horizontally next to water, the lava turns into obsidian.=• Lorsqu'une source de lave se trouve directement sous ou horizontalement à côté de l'eau, la lave se transforme en obsidienne. -• When lava is directly above water, the water turns into stone.=• Lorsque la lave est directement au-dessus de l'eau, l'eau se transforme en pierre. -Stained Glass=Verre teinté -Granite is an igneous rock.=Le granit est une roche ignée. -Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.=La neige peut être empilée et a l'un des 8 niveaux de hauteur différents. Aux niveaux 2 à 8, la neige provoque des collisions. La neige laisse tomber 2-9 boules de neige, selon sa hauteur. -This block can only be placed on full solid blocks and on another top snow (which increases its height).=Ce bloc ne peut être placé que sur des blocs pleins et sur une autre neige (ce qui augmente sa hauteur). -Needs soil and water to grow=A besoin de terre et d'eau pour se développer -Needs soil and light to grow=A besoin de terre et de lumière pour se développer -Grows on sand=Pousse sur le sable -Contact damage: @1 per half second=Dommages de contact: @1 par demi-seconde -Slows down movement=Ralentit le mouvement -2×2 saplings required=2×2 pousses requis -2×2 saplings @= large tree=2×2 pousses @= grand arbre -Grows on sand or dirt next to water=Pousse sur le sable ou la terre près de l'eau -Stackable=Empilable diff --git a/mods/ITEMS/mcl_core/locale/template.txt b/mods/ITEMS/mcl_core/locale/template.txt index f988435a..8460b90f 100644 --- a/mods/ITEMS/mcl_core/locale/template.txt +++ b/mods/ITEMS/mcl_core/locale/template.txt @@ -101,7 +101,7 @@ Flint is a raw material.= Flowing Lava= Flowing Water= Frosted Ice= -Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.= +Frosted ice is a short-lived solid translucent block. It melts into a water source within a few seconds.= Glass= Gold Ingot= Gold Nugget= @@ -117,7 +117,7 @@ Gravel= Green Stained Glass= Grey Stained Glass= Ice= -Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.= +Ice is a translucent solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source.= In the End dimension, starting a fire on this block will create an eternal fire.= Iron Ingot= Iron Nugget= @@ -142,7 +142,7 @@ Lit Redstone Ore= Magenta Stained Glass= Molten gold. It is used to craft armor, tools, and whatnot.= Molten iron. It is used to craft armor, tools, and whatnot.= -Mossy Cobblestone= +Moss Stone= Mossy Stone Bricks= Mycelium= Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt.= @@ -247,12 +247,3 @@ Stained Glass= Granite is an igneous rock.= Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.= This block can only be placed on full solid blocks and on another top snow (which increases its height).= -Needs soil and water to grow= -Needs soil and light to grow= -Grows on sand= -Contact damage: @1 per half second= -Slows down movement= -2×2 saplings required= -2×2 saplings @= large tree= -Grows on sand or dirt next to water= -Stackable= diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index 5ea76bcd..50c1d1cc 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -2,14 +2,6 @@ local S = minetest.get_translator("mcl_core") -- Simple solid cubic nodes, most of them are the ground materials and simple building blocks -local translucent_ice = minetest.settings:get_bool("mcl_translucent_ice", false) -local ice_drawtype -if translucent_ice then - ice_drawtype = "glasslike" -else - ice_drawtype = "normal" -end - minetest.register_node("mcl_core:stone", { description = S("Stone"), _doc_items_longdesc = S("One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava."), @@ -20,7 +12,7 @@ minetest.register_node("mcl_core:stone", { groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, drop = 'mcl_core:cobble', sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -34,7 +26,7 @@ minetest.register_node("mcl_core:stone_with_coal", { groups = {pickaxey=1, building_block=1, material_stone=1}, drop = 'mcl_core:coal_lump', sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -47,7 +39,7 @@ minetest.register_node("mcl_core:stone_with_iron", { groups = {pickaxey=3, building_block=1, material_stone=1}, drop = 'mcl_core:stone_with_iron', sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -61,7 +53,7 @@ minetest.register_node("mcl_core:stone_with_gold", { groups = {pickaxey=4, building_block=1, material_stone=1}, drop = "mcl_core:stone_with_gold", sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -93,7 +85,7 @@ minetest.register_node("mcl_core:stone_with_redstone", { sounds = mcl_sounds.node_sound_stone_defaults(), on_punch = redstone_ore_activate, on_walk_over = redstone_ore_activate, -- Uses walkover mod - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -131,7 +123,7 @@ minetest.register_node("mcl_core:stone_with_redstone_lit", { on_timer = function(pos, elapsed) minetest.swap_node(pos, {name="mcl_core:stone_with_redstone"}) end, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -153,7 +145,7 @@ minetest.register_node("mcl_core:stone_with_lapis", { } }, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -166,7 +158,7 @@ minetest.register_node("mcl_core:stone_with_emerald", { groups = {pickaxey=4, building_block=1, material_stone=1}, drop = "mcl_core:emerald", sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -179,7 +171,7 @@ minetest.register_node("mcl_core:stone_with_diamond", { groups = {pickaxey=4, building_block=1, material_stone=1}, drop = "mcl_core:diamond", sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -191,7 +183,7 @@ minetest.register_node("mcl_core:stonebrick", { groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -203,7 +195,7 @@ minetest.register_node("mcl_core:stonebrickcarved", { groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -215,7 +207,7 @@ minetest.register_node("mcl_core:stonebrickcracked", { groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -227,7 +219,7 @@ minetest.register_node("mcl_core:stonebrickmossy", { groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -239,7 +231,7 @@ minetest.register_node("mcl_core:stone_smooth", { groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), is_ground_content = false, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -251,7 +243,7 @@ minetest.register_node("mcl_core:granite", { stack_max = 64, groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -263,7 +255,7 @@ minetest.register_node("mcl_core:granite_smooth", { is_ground_content = false, groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -275,7 +267,7 @@ minetest.register_node("mcl_core:andesite", { stack_max = 64, groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -299,7 +291,7 @@ minetest.register_node("mcl_core:diorite", { stack_max = 64, groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -311,7 +303,7 @@ minetest.register_node("mcl_core:diorite_smooth", { stack_max = 64, groups = {pickaxey=1, stone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -320,12 +312,7 @@ minetest.register_node("mcl_core:dirt_with_grass", { description = S("Grass Block"), _doc_items_longdesc = S("A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt."), _doc_items_hidden = false, - paramtype2 = "color", - tiles = {"mcl_core_grass_block_top.png", { name="default_dirt.png", color="white" }}, - overlay_tiles = {"mcl_core_grass_block_top.png", "", {name="mcl_core_grass_block_side_overlay.png", tileable_vertical=false}}, - palette = "mcl_core_palette_grass.png", - palette_index = 0, - color = "#55aa60", + tiles = {"default_grass.png", "default_dirt.png", {name="default_dirt.png^default_grass_side.png", tileable_vertical=false}}, is_ground_content = true, stack_max = 64, groups = {handy=1,shovely=1,dirt=2,grass_block=1, grass_block_no_snow=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1}, @@ -334,20 +321,42 @@ minetest.register_node("mcl_core:dirt_with_grass", { footstep = {name="default_grass_footstep", gain=0.4}, }), on_construct = function(pos) - local node = minetest.get_node(pos) - if node.param2 == 0 then - local new_node = mcl_core.get_grass_block_type(pos) - if new_node.param2 ~= 0 or new_node.name ~= "mcl_core:dirt_with_grass" then - minetest.set_node(pos, new_node) - end + local new_node = mcl_core.get_grass_block_type(pos) + if new_node.name ~= "mcl_core:dirt_with_grass" then + minetest.set_node(pos, new_node) end return mcl_core.on_snowable_construct(pos) end, _mcl_snowed = "mcl_core:dirt_with_grass_snow", - _mcl_blast_resistance = 0.5, + _mcl_grass_palette_index = 0, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) -mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass", nil, nil, true) +mcl_core.register_snowed_node("mcl_core:dirt_with_grass_snow", "mcl_core:dirt_with_grass") + +-- Grass Block variant for dry biomes +minetest.register_node("mcl_core:dirt_with_dry_grass", { + _doc_items_create_entry = false, + tiles = {"default_dry_grass.png", "default_dirt.png", {name="default_dirt.png^default_dry_grass_side.png", tileable_vertical=false}}, + is_ground_content = true, + stack_max = 64, + groups = {handy=1,shovely=1, dirt=2,grass_block=1, grass_block_no_snow=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1, not_in_creative_inventory=1}, + drop = 'mcl_core:dirt', + sounds = mcl_sounds.node_sound_dirt_defaults({ + footstep = {name="default_grass_footstep", gain=0.4}, + }), + on_construct = mcl_core.on_snowable_construct, + _mcl_snowed = "mcl_core:dirt_with_dry_grass_snow", + _mcl_grass_palette_index = 1, + _mcl_blast_resistance = 3, + _mcl_hardness = 0.6, +}) +mcl_core.register_snowed_node("mcl_core:dirt_with_dry_grass_snow", "mcl_core:dirt_with_dry_grass") + +if minetest.get_modpath("doc") then + doc.add_entry_alias("nodes", "mcl_core:dirt_with_grass", "nodes", "mcl_core:dirt_with_dry_grass") + doc.add_entry_alias("nodes", "mcl_core:dirt_with_grass", "nodes", "mcl_core:dirt_with_dry_grass_snow") +end minetest.register_node("mcl_core:grass_path", { tiles = {"mcl_core_grass_path_top.png", "default_dirt.png", "mcl_core_grass_path_side.png"}, @@ -368,7 +377,7 @@ minetest.register_node("mcl_core:grass_path", { sounds = mcl_sounds.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), - _mcl_blast_resistance = 0.65, + _mcl_blast_resistance = 3.25, _mcl_hardness = 0.6, }) @@ -387,7 +396,7 @@ minetest.register_node("mcl_core:mycelium", { on_construct = mcl_core.on_snowable_construct, _mcl_snowed = "mcl_core:mycelium_snow", - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.6, }) mcl_core.register_snowed_node("mcl_core:mycelium_snow", "mcl_core:mycelium") @@ -403,7 +412,7 @@ minetest.register_node("mcl_core:podzol", { sounds = mcl_sounds.node_sound_dirt_defaults(), on_construct = mcl_core.on_snowable_construct, _mcl_snowed = "mcl_core:podzol_snow", - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.6, }) mcl_core.register_snowed_node("mcl_core:podzol_snow", "mcl_core:podzol") @@ -417,7 +426,7 @@ minetest.register_node("mcl_core:dirt", { stack_max = 64, groups = {handy=1,shovely=1, dirt=1,soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, enderman_takable=1, building_block=1}, sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 3, _mcl_hardness = 0.5, }) @@ -429,7 +438,7 @@ minetest.register_node("mcl_core:coarse_dirt", { stack_max = 64, groups = {handy=1,shovely=1, dirt=3,soil=1, soil_sugarcane=1, cultivatable=1, enderman_takable=1, building_block=1}, sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 3, _mcl_hardness = 0.5, }) @@ -450,7 +459,7 @@ minetest.register_node("mcl_core:gravel", { sounds = mcl_sounds.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.45}, }), - _mcl_blast_resistance = 0.6, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) @@ -464,7 +473,7 @@ minetest.register_node("mcl_core:sand", { stack_max = 64, groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1}, sounds = mcl_sounds.node_sound_sand_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -477,7 +486,7 @@ minetest.register_node("mcl_core:sandstone", { stack_max = 64, groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -489,7 +498,7 @@ minetest.register_node("mcl_core:sandstonesmooth", { stack_max = 64, groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -501,7 +510,7 @@ minetest.register_node("mcl_core:sandstonecarved", { stack_max = 64, groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -514,7 +523,7 @@ minetest.register_node("mcl_core:sandstonesmooth2", { stack_max = 64, groups = {pickaxey=1, sandstone=1, normal_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -528,7 +537,7 @@ minetest.register_node("mcl_core:redsand", { stack_max = 64, groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1}, sounds = mcl_sounds.node_sound_sand_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -540,7 +549,7 @@ minetest.register_node("mcl_core:redsandstone", { stack_max = 64, groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -552,7 +561,7 @@ minetest.register_node("mcl_core:redsandstonesmooth", { stack_max = 64, groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -564,7 +573,7 @@ minetest.register_node("mcl_core:redsandstonecarved", { stack_max = 64, groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -576,7 +585,7 @@ minetest.register_node("mcl_core:redsandstonesmooth2", { stack_max = 64, groups = {pickaxey=1, sandstone=1, red_sandstone=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -592,7 +601,7 @@ minetest.register_node("mcl_core:clay", { groups = {handy=1,shovely=1, enderman_takable=1, building_block=1}, drop = 'mcl_core:clay_lump 4', sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.6, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) @@ -605,7 +614,7 @@ minetest.register_node("mcl_core:brick_block", { stack_max = 64, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) @@ -621,7 +630,7 @@ minetest.register_node("mcl_core:bedrock", { is_ground_content = false, on_blast = function() end, drop = '', - _mcl_blast_resistance = 3600000, + _mcl_blast_resistance = 18000000, _mcl_hardness = -1, -- Eternal fire on top of bedrock, if in the End dimension @@ -658,19 +667,19 @@ minetest.register_node("mcl_core:cobble", { stack_max = 64, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) minetest.register_node("mcl_core:mossycobble", { - description = S("Mossy Cobblestone"), + description = S("Moss Stone"), _doc_items_longdesc = doc.sub.items.temp.build, tiles = {"default_mossycobble.png"}, is_ground_content = false, stack_max = 64, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) @@ -680,9 +689,9 @@ minetest.register_node("mcl_core:coalblock", { tiles = {"default_coal_block.png"}, is_ground_content = false, stack_max = 64, - groups = {pickaxey=1, flammable=1, building_block=1, material_stone=1, fire_encouragement=5, fire_flammability=5}, + groups = {pickaxey=1, flammable=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) @@ -694,7 +703,7 @@ minetest.register_node("mcl_core:ironblock", { stack_max = 64, groups = {pickaxey=2, building_block=1}, sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) @@ -706,7 +715,7 @@ minetest.register_node("mcl_core:goldblock", { stack_max = 64, groups = {pickaxey=4, building_block=1}, sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) @@ -718,7 +727,7 @@ minetest.register_node("mcl_core:diamondblock", { stack_max = 64, groups = {pickaxey=4, building_block=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) @@ -730,7 +739,7 @@ minetest.register_node("mcl_core:lapisblock", { stack_max = 64, groups = {pickaxey=3, building_block=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -742,7 +751,7 @@ minetest.register_node("mcl_core:emeraldblock", { stack_max = 64, groups = {pickaxey=4, building_block=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) @@ -754,18 +763,18 @@ minetest.register_node("mcl_core:obsidian", { sounds = mcl_sounds.node_sound_stone_defaults(), stack_max = 64, groups = {pickaxey=5, building_block=1, material_stone=1}, - _mcl_blast_resistance = 1200, + _mcl_blast_resistance = 6000, _mcl_hardness = 50, }) minetest.register_node("mcl_core:ice", { description = S("Ice"), - _doc_items_longdesc = S("Ice is a solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source."), - drawtype = ice_drawtype, + _doc_items_longdesc = S("Ice is a translucent solid block usually found in cold areas. It melts near block light sources at a light level of 12 or higher. When it melts or is broken while resting on top of another block, it will turn into a water source."), + drawtype = "glasslike", tiles = {"default_ice.png"}, is_ground_content = true, paramtype = "light", - use_texture_alpha = translucent_ice, + use_texture_alpha = true, stack_max = 64, groups = {handy=1,pickaxey=1, slippery=3, building_block=1}, drop = "", @@ -774,7 +783,7 @@ minetest.register_node("mcl_core:ice", { after_dig_node = function(pos, oldnode) mcl_core.melt_ice(pos) end, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -787,7 +796,7 @@ minetest.register_node("mcl_core:packed_ice", { groups = {handy=1,pickaxey=1, slippery=3, building_block=1}, drop = "", sounds = mcl_sounds.node_sound_glass_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -819,17 +828,17 @@ for i=0,3 do local use_doc = i == 0 local longdesc if use_doc then - longdesc = S("Frosted ice is a short-lived solid block. It melts into a water source within a few seconds.") + longdesc = S("Frosted ice is a short-lived solid translucent block. It melts into a water source within a few seconds.") end minetest.register_node("mcl_core:frosted_ice_"..i, { description = S("Frosted Ice"), _doc_items_create_entry = use_doc, _doc_items_longdesc = longdesc, - drawtype = ice_drawtype, + drawtype = "glasslike", tiles = {"mcl_core_frosted_ice_"..i..".png"}, is_ground_content = false, paramtype = "light", - use_texture_alpha = translucent_ice, + use_texture_alpha = true, stack_max = 64, groups = {handy=1, frosted_ice=1, slippery=3, not_in_creative_inventory=1}, drop = "", @@ -851,7 +860,7 @@ for i=0,3 do local timer = minetest.get_node_timer(pos) timer:start(1.5) end, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) @@ -862,11 +871,10 @@ for i=0,3 do end for i=1,8 do - local id, desc, longdesc, usagehelp, tt_help, help, walkable, drawtype, node_box + local id, desc, longdesc, usagehelp, help, walkable, drawtype, node_box if i == 1 then id = "mcl_core:snow" desc = S("Top Snow") - tt_help = S("Stackable") longdesc = S("Top snow is a layer of snow. It melts near light sources other than the sun with a light level of 12 or higher.").."\n"..S("Top snow can be stacked and has one of 8 different height levels. At levels 2-8, top snow is collidable. Top snow drops 2-9 snowballs, depending on its height.") usagehelp = S("This block can only be placed on full solid blocks and on another top snow (which increases its height).") walkable = false @@ -922,7 +930,7 @@ for i=1,8 do fakestack:set_name("mcl_core:snow_"..math.min(8, (i+g))) local success itemstack, success = minetest.item_place(fakestack, placer, pointed_thing) - minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = below}, true) + minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = below}) itemstack:set_name(itemstring) return itemstack end @@ -932,7 +940,7 @@ for i=1,8 do local bnode = minetest.get_node(below) if minetest.get_item_group(bnode.name, "solid") == 1 then - minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = below}, true) + minetest.sound_play(mcl_sounds.node_sound_snow_defaults().place, {pos = below}) return minetest.item_place_node(itemstack, placer, pointed_thing) else return itemstack @@ -941,7 +949,6 @@ for i=1,8 do minetest.register_node(id, { description = desc, - _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, _doc_items_create_entry = help, @@ -970,7 +977,7 @@ for i=1,8 do on_place = on_place, after_destruct = mcl_core.after_snow_destruct, drop = "mcl_throwing:snowball "..(i+1), - _mcl_blast_resistance = 0.1, + _mcl_blast_resistance = 0.5, _mcl_hardness = 0.1, }) end @@ -987,7 +994,7 @@ minetest.register_node("mcl_core:snowblock", { on_construct = mcl_core.on_snow_construct, after_destruct = mcl_core.after_snow_destruct, drop = "mcl_throwing:snowball 4", - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) diff --git a/mods/ITEMS/mcl_core/nodes_cactuscane.lua b/mods/ITEMS/mcl_core/nodes_cactuscane.lua index 277cc565..59efa759 100644 --- a/mods/ITEMS/mcl_core/nodes_cactuscane.lua +++ b/mods/ITEMS/mcl_core/nodes_cactuscane.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mcl_core") minetest.register_node("mcl_core:cactus", { description = S("Cactus"), - _tt_help = S("Grows on sand").."\n"..minetest.colorize("#FFFF00", S("Contact damage: @1 per half second", 1)), _doc_items_longdesc = S("This is a piece of cactus commonly found in dry areas, especially deserts. Over time, cacti will grow up to 3 blocks high on sand or red sand. A cactus hurts living beings touching it with a damage of 1 HP every half second. When a cactus block is broken, all cactus blocks connected above it will break as well."), _doc_items_usagehelp = S("A cactus can only be placed on top of another cactus or any sand."), drawtype = "nodebox", @@ -42,13 +41,12 @@ minetest.register_node("mcl_core:cactus", { if not node_below then return false end return (node_below.name == "mcl_core:cactus" or minetest.get_item_group(node_below.name, "sand") == 1) end), - _mcl_blast_resistance = 0.4, + _mcl_blast_resistance = 2, _mcl_hardness = 0.4, }) minetest.register_node("mcl_core:reeds", { description = S("Sugar Canes"), - _tt_help = S("Grows on sand or dirt next to water"), _doc_items_longdesc = S("Sugar canes are a plant which has some uses in crafting. Sugar canes will slowly grow up to 3 blocks when they are next to water and are placed on a grass block, dirt, sand, red sand, podzol or coarse dirt. When a sugar cane is broken, all sugar canes connected above will break as well."), _doc_items_usagehelp = S("Sugar canes can only be placed top of other sugar canes and on top of blocks on which they would grow."), drawtype = "plantlike", diff --git a/mods/ITEMS/mcl_core/nodes_climb.lua b/mods/ITEMS/mcl_core/nodes_climb.lua index d9ecd76d..9e372d4a 100644 --- a/mods/ITEMS/mcl_core/nodes_climb.lua +++ b/mods/ITEMS/mcl_core/nodes_climb.lua @@ -75,13 +75,13 @@ minetest.register_node("mcl_core:ladder", { if success then if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=above, gain=1}) end end return itemstack end, - _mcl_blast_resistance = 0.4, + _mcl_blast_resistance = 2, _mcl_hardness = 0.4, on_rotate = rotate_climbable, }) @@ -104,7 +104,7 @@ minetest.register_node("mcl_core:vine", { type = "wallmounted", }, stack_max = 64, - groups = {handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1, fire_encouragement=15, fire_flammability=100}, + groups = {handy=1,axey=1,shearsy=1,swordy=1, flammable=2,deco_block=1,destroy_by_lava_flow=1,dig_by_piston=1}, sounds = mcl_sounds.node_sound_leaves_defaults(), drop = "", _mcl_shears_drop = true, @@ -146,7 +146,7 @@ minetest.register_node("mcl_core:vine", { if success then if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=above, gain=1}) end end return itemstack @@ -164,7 +164,7 @@ minetest.register_node("mcl_core:vine", { end, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, on_rotate = false, }) diff --git a/mods/ITEMS/mcl_core/nodes_glass.lua b/mods/ITEMS/mcl_core/nodes_glass.lua index 87e9a786..3ac2cb39 100644 --- a/mods/ITEMS/mcl_core/nodes_glass.lua +++ b/mods/ITEMS/mcl_core/nodes_glass.lua @@ -14,7 +14,7 @@ minetest.register_node("mcl_core:glass", { groups = {handy=1, glass=1, building_block=1, material_glass=1}, sounds = mcl_sounds.node_sound_glass_defaults(), drop = "", - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) @@ -49,7 +49,7 @@ function mcl_core.add_stained_glass(desc, recipeitem, colorgroup, color) groups = {handy=1, glass=1, building_block=1, material_glass=1}, sounds = mcl_sounds.node_sound_glass_defaults(), drop = "", - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) diff --git a/mods/ITEMS/mcl_core/nodes_liquid.lua b/mods/ITEMS/mcl_core/nodes_liquid.lua index ac938c80..815fd6fe 100644 --- a/mods/ITEMS/mcl_core/nodes_liquid.lua +++ b/mods/ITEMS/mcl_core/nodes_liquid.lua @@ -28,7 +28,7 @@ minetest.register_node("mcl_core:water_flowing", { }, { image="default_water_flowing_animated.png", - backface_culling=false, + backface_culling=true, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0} }, }, @@ -49,7 +49,7 @@ minetest.register_node("mcl_core:water_flowing", { liquid_range = 7, post_effect_color = {a=209, r=0x03, g=0x3C, b=0x5C}, groups = { water=3, liquid=3, puts_out_fire=1, not_in_creative_inventory=1, freezes=1, melt_around=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, + _mcl_blast_resistance = 500, -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode _mcl_hardness = -1, }) @@ -93,7 +93,7 @@ S("• When water is directly below lava, the water turns into stone."), post_effect_color = {a=209, r=0x03, g=0x3C, b=0x5C}, stack_max = 64, groups = { water=3, liquid=3, puts_out_fire=1, freezes=1, not_in_creative_inventory=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, + _mcl_blast_resistance = 500, -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode _mcl_hardness = -1, }) @@ -112,13 +112,14 @@ minetest.register_node("mcl_core:lava_flowing", { }, { image="default_lava_flowing_animated.png", - backface_culling=false, + backface_culling=true, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=6.6} }, }, paramtype = "light", paramtype2 = "flowingliquid", - light_source = minetest.LIGHT_MAX, + -- Real light level: 15 (but Minetest caps at 14) + light_source = 14, sounds = mcl_sounds.node_sound_lava_defaults(), walkable = false, pointable = false, @@ -139,7 +140,7 @@ minetest.register_node("mcl_core:lava_flowing", { _mcl_node_death_message = lava_death_messages, post_effect_color = {a=255, r=208, g=73, b=10}, groups = { lava=3, liquid=2, destroys_items=1, not_in_creative_inventory=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, + _mcl_blast_resistance = 500, -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode _mcl_hardness = -1, }) @@ -174,8 +175,9 @@ S("• When lava is directly above water, the water turns into stone."), backface_culling = false, } }, + -- Real light level: 15 (but Minetest caps at 14) paramtype = "light", - light_source = minetest.LIGHT_MAX, + light_source = 14, sounds = mcl_sounds.node_sound_lava_defaults(), walkable = false, pointable = false, @@ -194,7 +196,7 @@ S("• When lava is directly above water, the water turns into stone."), post_effect_color = {a=255, r=208, g=73, b=10}, stack_max = 64, groups = { lava=3, liquid=2, destroys_items=1, not_in_creative_inventory=1, dig_by_piston=1}, - _mcl_blast_resistance = 100, + _mcl_blast_resistance = 500, -- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode _mcl_hardness = -1, }) diff --git a/mods/ITEMS/mcl_core/nodes_misc.lua b/mods/ITEMS/mcl_core/nodes_misc.lua index ca97c2aa..8d204fa9 100644 --- a/mods/ITEMS/mcl_core/nodes_misc.lua +++ b/mods/ITEMS/mcl_core/nodes_misc.lua @@ -1,12 +1,6 @@ -- Other nodes local S = minetest.get_translator("mcl_core") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - minetest.register_node("mcl_core:bone_block", { description = S("Bone Block"), _doc_items_longdesc = S("Bone blocks are decorative blocks and a compact storage of bone meal."), @@ -16,8 +10,7 @@ minetest.register_node("mcl_core:bone_block", { on_place = mcl_util.rotate_axis, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, + _mcl_blast_resistance = 10, _mcl_hardness = 2, }) @@ -56,7 +49,6 @@ minetest.register_node("mcl_core:slimeblock", { minetest.register_node("mcl_core:cobweb", { description = S("Cobweb"), - _tt_help = S("Slows down movement"), _doc_items_longdesc = S("Cobwebs can be walked through, but significantly slow you down."), drawtype = "plantlike", paramtype2 = "degrotate", @@ -72,11 +64,11 @@ minetest.register_node("mcl_core:cobweb", { liquid_renewable = false, liquid_range = 0, walkable = false, - groups = {swordy_cobweb=1,shearsy=1, fake_liquid=1, disable_jump=1, deco_block=1, dig_by_piston=1, dig_by_water=1,destroy_by_lava_flow=1,}, + groups = {swordy_cobweb=1,shearsy=1, fake_liquid=1, deco_block=1, dig_by_piston=1, dig_by_water=1,destroy_by_lava_flow=1,}, drop = "mcl_mobitems:string", _mcl_shears_drop = true, sounds = mcl_sounds.node_sound_leaves_defaults(), - _mcl_blast_resistance = 4, + _mcl_blast_resistance = 20, _mcl_hardness = 4, }) @@ -96,7 +88,7 @@ minetest.register_node("mcl_core:deadbush", { walkable = false, stack_max = 64, buildable_to = true, - groups = {handy=1,shearsy=1, flammable=3,attached_node=1,plant=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1, fire_encouragement=60, fire_flammability=100}, + groups = {handy=1,shearsy=1, flammable=3,attached_node=1,plant=1,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1}, drop = { max_items = 1, items = { @@ -135,7 +127,7 @@ minetest.register_node("mcl_core:barrier", { groups = {creative_breakable=1, not_in_creative_inventory = 1, not_solid = 1 }, on_blast = function() end, drop = "", - _mcl_blast_resistance = 36000008, + _mcl_blast_resistance = 18000003, _mcl_hardness = -1, after_place_node = function (pos, placer, itemstack, pointed_thing) if placer == nil then @@ -195,12 +187,12 @@ minetest.register_node("mcl_core:realm_barrier", { groups = {not_in_creative_inventory = 1, not_solid = 1 }, on_blast = function() end, drop = "", - _mcl_blast_resistance = 36000008, + _mcl_blast_resistance = 18000003, _mcl_hardness = -1, -- Prevent placement to protect player from screwing up the world, because the node is not pointable and hard to get rid of. node_placement_prediction = "", on_place = function(pos, placer, itemstack, pointed_thing) - minetest.chat_send_player(placer:get_player_name(), minetest.colorize("#FF0000", "You can't just place a realm barrier by hand!")) + minetest.chat_send_player(placer:get_player_name(), core.colorize("#FF0000", "You can't just place a realm barrier by hand!")) return end, }) @@ -230,7 +222,7 @@ minetest.register_node("mcl_core:void", { -- Prevent placement to protect player from screwing up the world, because the node is not pointable and hard to get rid of. node_placement_prediction = "", on_place = function(pos, placer, itemstack, pointed_thing) - minetest.chat_send_player(placer:get_player_name(), minetest.colorize("#FF0000", "You can't just place the void by hand!")) + minetest.chat_send_player(placer:get_player_name(), core.colorize("#FF0000", "You can't just place the void by hand!")) return end, drop = "", diff --git a/mods/ITEMS/mcl_core/nodes_trees.lua b/mods/ITEMS/mcl_core/nodes_trees.lua index 8955ff64..433ae03a 100644 --- a/mods/ITEMS/mcl_core/nodes_trees.lua +++ b/mods/ITEMS/mcl_core/nodes_trees.lua @@ -1,12 +1,6 @@ -- Tree nodes: Wood, Wooden Planks, Sapling, Leaves local S = minetest.get_translator("mcl_core") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - -- Register tree trunk (wood) and bark local register_tree_trunk = function(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark) minetest.register_node("mcl_core:"..subname, { @@ -17,10 +11,9 @@ local register_tree_trunk = function(subname, description_trunk, description_bar paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 2, + _mcl_blast_resistance = 10, _mcl_hardness = 2, }) @@ -31,11 +24,10 @@ local register_tree_trunk = function(subname, description_trunk, description_bar paramtype2 = "facedir", on_place = mcl_util.rotate_axis, stack_max = 64, - groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, + groups = {handy=1,axey=1, bark=1, flammable=2, building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = false, - on_rotate = on_rotate, - _mcl_blast_resistance = 2, + _mcl_blast_resistance = 10, _mcl_hardness = 2, }) @@ -56,9 +48,9 @@ local register_wooden_planks = function(subname, description, tiles) tiles = tiles, stack_max = 64, is_ground_content = false, - groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1}, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 2, }) end @@ -104,19 +96,18 @@ local register_leaves = function(subname, description, longdesc, tiles, drop1, d tiles = tiles, paramtype = "light", stack_max = 64, - groups = {handy=1,shearsy=1,swordy=1, leafdecay=leafdecay_distance, flammable=2, leaves=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60}, + groups = {handy=1,shearsy=1,swordy=1, leafdecay=leafdecay_distance, flammable=2, leaves=1, deco_block=1, dig_by_piston=1}, drop = drop, _mcl_shears_drop = true, sounds = mcl_sounds.node_sound_leaves_defaults(), - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, }) end -local register_sapling = function(subname, description, longdesc, tt_help, texture, selbox) +local register_sapling = function(subname, description, longdesc, texture, selbox) minetest.register_node("mcl_core:"..subname, { description = description, - _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_hidden = false, drawtype = "plantlike", @@ -170,30 +161,12 @@ register_wooden_planks("acaciawood", S("Acacia Wood Planks"), {"default_acacia_w register_wooden_planks("birchwood", S("Birch Wood Planks"), {"mcl_core_planks_birch.png"}) -register_sapling("sapling", S("Oak Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time."), - S("Needs soil and light to grow"), - "default_sapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("darksapling", S("Dark Oak Sapling"), - S("Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings required"), - "mcl_core_sapling_big_oak.png", {-5/16, -0.5, -5/16, 5/16, 7/16, 5/16}) -register_sapling("junglesapling", S("Jungle Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "default_junglesapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) -register_sapling("acaciasapling", S("Acacia Sapling"), - S("When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time."), - S("Needs soil and light to grow"), - "default_acacia_sapling.png", {-5/16, -0.5, -5/16, 5/16, 4/16, 5/16}) -register_sapling("sprucesapling", S("Spruce Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce."), - S("Needs soil and light to grow") .. "\n" .. S("2×2 saplings = large tree"), - "mcl_core_sapling_spruce.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) -register_sapling("birchsapling", S("Birch Sapling"), - S("When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time."), - S("Needs soil and light to grow"), - "mcl_core_sapling_birch.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) +register_sapling("sapling", S("Oak Sapling"), S("When placed on soil (such as dirt) and exposed to light, an oak sapling will grow into an oak after some time."), "default_sapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) +register_sapling("darksapling", S("Dark Oak Sapling"), S("Dark oak saplings can grow into dark oaks, but only in groups. A lonely dark oak sapling won't grow. A group of four dark oak saplings grows into a dark oak after some time when they are placed on soil (such as dirt) in a 2×2 square and exposed to light."), "mcl_core_sapling_big_oak.png", {-5/16, -0.5, -5/16, 5/16, 7/16, 5/16}) +register_sapling("junglesapling", S("Jungle Sapling"), S("When placed on soil (such as dirt) and exposed to light, a jungle sapling will grow into a jungle tree after some time. When there are 4 jungle saplings in a 2×2 square, they will grow to a huge jungle tree."), "default_junglesapling.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16}) +register_sapling("acaciasapling", S("Acacia Sapling"), S("When placed on soil (such as dirt) and exposed to light, an acacia sapling will grow into an acacia after some time."), "default_acacia_sapling.png", {-5/16, -0.5, -5/16, 5/16, 4/16, 5/16}) +register_sapling("sprucesapling", S("Spruce Sapling"), S("When placed on soil (such as dirt) and exposed to light, a spruce sapling will grow into a spruce after some time. When there are 4 spruce saplings in a 2×2 square, they will grow to a huge spruce."), "mcl_core_sapling_spruce.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) +register_sapling("birchsapling", S("Birch Sapling"), S("When placed on soil (such as dirt) and exposed to light, a birch sapling will grow into a birch after some time."), "mcl_core_sapling_birch.png", {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16}) register_leaves("leaves", S("Oak Leaves"), S("Oak leaves are grown from oak trees."), {"default_leaves.png"}, "mcl_core:sapling", 20, "mcl_core:apple", 200) diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png b/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png index 6d89629b..a24e58f1 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png and b/mods/ITEMS/mcl_core/textures/default_acacia_leaves.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_acacia_tree.png b/mods/ITEMS/mcl_core/textures/default_acacia_tree.png index 97ac9575..2f62228c 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_acacia_tree.png and b/mods/ITEMS/mcl_core/textures/default_acacia_tree.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_brick.png b/mods/ITEMS/mcl_core/textures/default_brick.png index ab4f5b78..cb57018f 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_brick.png and b/mods/ITEMS/mcl_core/textures/default_brick.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_clay.png b/mods/ITEMS/mcl_core/textures/default_clay.png index 1e412de3..63d2ff18 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_clay.png and b/mods/ITEMS/mcl_core/textures/default_clay.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_coal_block.png b/mods/ITEMS/mcl_core/textures/default_coal_block.png index c99e4a58..cf357949 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_coal_block.png and b/mods/ITEMS/mcl_core/textures/default_coal_block.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_cobble.png b/mods/ITEMS/mcl_core/textures/default_cobble.png index b1d5fe3c..d50505e8 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_cobble.png and b/mods/ITEMS/mcl_core/textures/default_cobble.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_dirt.png b/mods/ITEMS/mcl_core/textures/default_dirt.png index 1a72f2a4..d75ca70a 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_dirt.png and b/mods/ITEMS/mcl_core/textures/default_dirt.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_dry_grass.png b/mods/ITEMS/mcl_core/textures/default_dry_grass.png index 67956f18..e610678a 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_dry_grass.png and b/mods/ITEMS/mcl_core/textures/default_dry_grass.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_grass.png b/mods/ITEMS/mcl_core/textures/default_grass.png new file mode 100644 index 00000000..56176e5e Binary files /dev/null and b/mods/ITEMS/mcl_core/textures/default_grass.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_grass_side.png b/mods/ITEMS/mcl_core/textures/default_grass_side.png new file mode 100644 index 00000000..a44b9788 Binary files /dev/null and b/mods/ITEMS/mcl_core/textures/default_grass_side.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_gravel.png b/mods/ITEMS/mcl_core/textures/default_gravel.png index d1934221..8108db71 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_gravel.png and b/mods/ITEMS/mcl_core/textures/default_gravel.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_ice.png b/mods/ITEMS/mcl_core/textures/default_ice.png index 71da475e..e741bccc 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_ice.png and b/mods/ITEMS/mcl_core/textures/default_ice.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_jungleleaves.png b/mods/ITEMS/mcl_core/textures/default_jungleleaves.png index e247a16f..d92a6e08 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_jungleleaves.png and b/mods/ITEMS/mcl_core/textures/default_jungleleaves.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_jungletree_top.png b/mods/ITEMS/mcl_core/textures/default_jungletree_top.png index 1bfadcf1..a2fa3a33 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_jungletree_top.png and b/mods/ITEMS/mcl_core/textures/default_jungletree_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_leaves.png b/mods/ITEMS/mcl_core/textures/default_leaves.png index 6ef923cf..7b01275f 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_leaves.png and b/mods/ITEMS/mcl_core/textures/default_leaves.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_mossycobble.png b/mods/ITEMS/mcl_core/textures/default_mossycobble.png index 7da56145..de3ce825 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_mossycobble.png and b/mods/ITEMS/mcl_core/textures/default_mossycobble.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_obsidian.png b/mods/ITEMS/mcl_core/textures/default_obsidian.png index e212b0eb..32b3371c 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_obsidian.png and b/mods/ITEMS/mcl_core/textures/default_obsidian.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_paper.png b/mods/ITEMS/mcl_core/textures/default_paper.png index 0e8b1f60..af90416b 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_paper.png and b/mods/ITEMS/mcl_core/textures/default_paper.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_sand.png b/mods/ITEMS/mcl_core/textures/default_sand.png index e2309a53..6411f86e 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_sand.png and b/mods/ITEMS/mcl_core/textures/default_sand.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_stone.png b/mods/ITEMS/mcl_core/textures/default_stone.png index 9e9145af..8831ffb9 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_stone.png and b/mods/ITEMS/mcl_core/textures/default_stone.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_stone_brick.png b/mods/ITEMS/mcl_core/textures/default_stone_brick.png index 62a22c8d..318b91b3 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_stone_brick.png and b/mods/ITEMS/mcl_core/textures/default_stone_brick.png differ diff --git a/mods/ITEMS/mcl_core/textures/default_wood.png b/mods/ITEMS/mcl_core/textures/default_wood.png index aaaa2b48..ee97b8d8 100644 Binary files a/mods/ITEMS/mcl_core/textures/default_wood.png and b/mods/ITEMS/mcl_core/textures/default_wood.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png index ff6915ff..ff082af6 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png and b/mods/ITEMS/mcl_core/textures/mcl_core_andesite_smooth.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png b/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png index cfaacb02..639afd90 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png and b/mods/ITEMS/mcl_core/textures/mcl_core_apple_golden.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png b/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png index baed9bb5..a96b21ac 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png and b/mods/ITEMS/mcl_core/textures/mcl_core_bedrock.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png index 7faf7b10..9fc994cc 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_bone_block_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png index 27dd1487..610a0aec 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png and b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_bottom.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png index 04ddc256..1a75eacd 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png and b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_side.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png index ddae5176..988ce176 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_cactus_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png b/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png index 691a02bf..9e2ae284 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png and b/mods/ITEMS/mcl_core/textures/mcl_core_charcoal.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png b/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png index efe195ef..b564de19 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png and b/mods/ITEMS/mcl_core/textures/mcl_core_coarse_dirt.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_diorite.png b/mods/ITEMS/mcl_core/textures/mcl_core_diorite.png index 55429961..86c5a890 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_diorite.png and b/mods/ITEMS/mcl_core/textures/mcl_core_diorite.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png index 3a395cbc..25fc26b4 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png and b/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_side.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_top.png index 56fd114f..71bee043 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_dirt_podzol_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_emerald_block.png b/mods/ITEMS/mcl_core/textures/mcl_core_emerald_block.png index 773c99cb..c400a7bc 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_emerald_block.png and b/mods/ITEMS/mcl_core/textures/mcl_core_emerald_block.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png index 5a7dcaa9..fd3756eb 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png and b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_1.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png index 98cfa0a7..e90d8dd8 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png and b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_2.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_3.png b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_3.png index d50bc63d..b6b93e88 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_3.png and b/mods/ITEMS/mcl_core/textures/mcl_core_frosted_ice_3.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_granite.png b/mods/ITEMS/mcl_core/textures/mcl_core_granite.png index 23c65f36..e06aebfd 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_granite.png and b/mods/ITEMS/mcl_core/textures/mcl_core_granite.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_side_overlay.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_side_overlay.png deleted file mode 100644 index 14d4de64..00000000 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_side_overlay.png and /dev/null differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_top.png deleted file mode 100644 index 24c80203..00000000 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_grass_block_top.png and /dev/null differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png index ff79d8c4..3444f4a5 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png and b/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_side.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_top.png index 7537af9a..d570fbd1 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_grass_path_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png b/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png index dd007f8f..a8c2a2f1 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png and b/mods/ITEMS/mcl_core/textures/mcl_core_grass_side_snowed.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png b/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png index 7dd7f398..7623d45d 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png and b/mods/ITEMS/mcl_core/textures/mcl_core_ice_packed.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png b/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png index e0ae730b..6d9f6c7c 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png and b/mods/ITEMS/mcl_core/textures/mcl_core_iron_nugget.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png index 4a93ed27..f83b8303 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png and b/mods/ITEMS/mcl_core/textures/mcl_core_iron_ore.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png index 8ed68dbf..f4bc61c8 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png and b/mods/ITEMS/mcl_core/textures/mcl_core_lapis_ore.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png index 53e552de..859d14ac 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png and b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_big_oak.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_birch.png b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_birch.png index b4ad81d1..d83adabc 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_birch.png and b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_birch.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_spruce.png b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_spruce.png index e95b849f..1407ff7e 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_leaves_spruce.png and b/mods/ITEMS/mcl_core/textures/mcl_core_leaves_spruce.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png b/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png index 978ccf56..9b7a85ce 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png and b/mods/ITEMS/mcl_core/textures/mcl_core_log_big_oak.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png b/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png index 0261fd1f..b53eb796 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png and b/mods/ITEMS/mcl_core/textures/mcl_core_log_birch.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_side.png b/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_side.png index bbc0710b..37501ef6 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_side.png and b/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_side.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png index 56193d07..fdc7b7ca 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_mycelium_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_palette_grass.png b/mods/ITEMS/mcl_core/textures/mcl_core_palette_grass.png index 7aee5b33..2c465917 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_palette_grass.png and b/mods/ITEMS/mcl_core/textures/mcl_core_palette_grass.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png b/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png index 840c2c6c..ab3ae8f7 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png and b/mods/ITEMS/mcl_core/textures/mcl_core_planks_birch.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png index 1824b7d4..4b42bd3a 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sand.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png index 93825017..0f2b5517 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_bottom.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_carved.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_carved.png index c296256c..675e923a 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_carved.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_carved.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_normal.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_normal.png index 19124c29..04475f32 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_normal.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_normal.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png index 93825017..6e3839a0 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_smooth.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_top.png index dbb8548d..4df752ae 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_red_sandstone_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png b/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png index 5d051bb5..f26a9cd7 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png and b/mods/ITEMS/mcl_core/textures/mcl_core_redstone_ore.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png index 9846dba9..b8851e24 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png and b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_bottom.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png index bf535cd2..e1e7d223 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png and b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_carved.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_normal.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_normal.png index b4e33346..b5bbe63e 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_normal.png and b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_normal.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_smooth.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_smooth.png index 9846dba9..b4dc2654 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_smooth.png and b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_smooth.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png index 388fe08c..9d75ea47 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png and b/mods/ITEMS/mcl_core/textures/mcl_core_sandstone_top.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_slime.png b/mods/ITEMS/mcl_core/textures/mcl_core_slime.png index b43f9c20..a098a90b 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_slime.png and b/mods/ITEMS/mcl_core/textures/mcl_core_slime.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png b/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png index b340de08..38fcb1e8 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png and b/mods/ITEMS/mcl_core/textures/mcl_core_stonebrick_cracked.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_vine.png b/mods/ITEMS/mcl_core/textures/mcl_core_vine.png index d0e55cb4..831f9d2a 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_vine.png and b/mods/ITEMS/mcl_core/textures/mcl_core_vine.png differ diff --git a/mods/ITEMS/mcl_core/textures/mcl_core_web.png b/mods/ITEMS/mcl_core/textures/mcl_core_web.png index fc5dd369..e2233c1b 100644 Binary files a/mods/ITEMS/mcl_core/textures/mcl_core_web.png and b/mods/ITEMS/mcl_core/textures/mcl_core_web.png differ diff --git a/mods/ITEMS/mcl_crafting_table/depends.txt b/mods/ITEMS/mcl_crafting_table/depends.txt index 97aafc58..e3b8528c 100644 --- a/mods/ITEMS/mcl_crafting_table/depends.txt +++ b/mods/ITEMS/mcl_crafting_table/depends.txt @@ -1,3 +1,2 @@ mcl_init -mcl_formspec mcl_sounds diff --git a/mods/ITEMS/mcl_crafting_table/init.lua b/mods/ITEMS/mcl_crafting_table/init.lua index 09c4838c..2a02551e 100644 --- a/mods/ITEMS/mcl_crafting_table/init.lua +++ b/mods/ITEMS/mcl_crafting_table/init.lua @@ -2,7 +2,6 @@ local S = minetest.get_translator("mcl_crafting_table") minetest.register_node("mcl_crafting_table:crafting_table", { description = S("Crafting Table"), - _tt_help = S("3×3 crafting grid"), _doc_items_longdesc = S("A crafting table is a block which grants you access to a 3×3 crafting grid which allows you to perform advanced crafts."), _doc_items_usagehelp = S("Rightclick the crafting table to access the 3×3 crafting grid."), _doc_items_hidden = false, @@ -10,23 +9,20 @@ minetest.register_node("mcl_crafting_table:crafting_table", { tiles = {"crafting_workbench_top.png", "default_wood.png", "crafting_workbench_side.png", "crafting_workbench_side.png", "crafting_workbench_front.png", "crafting_workbench_front.png"}, paramtype2 = "facedir", - groups = {handy=1,axey=1, deco_block=1, material_wood=1,flammable=-1}, + groups = {handy=1,axey=1, deco_block=1, material_wood=1}, on_rightclick = function(pos, node, player, itemstack) player:get_inventory():set_width("craft", 3) player:get_inventory():set_size("craft", 9) local form = "size[9,8.75]".. - "image[4.7,1.5;1.5,1;gui_crafting_arrow.png]".. + "background[-0.19,-0.25;9.41,9.49;crafting_formspec_bg.png^crafting_inventory_workbench.png]".. + mcl_vars.inventory_header.. "label[0,4;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "label[1.75,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Crafting"))).."]".. "list[current_player;craft;1.75,0.5;3,3;]".. - mcl_formspec.get_itemslot_bg(1.75,0.5,3,3).. "list[current_player;craftpreview;6.1,1.5;1,1;]".. - mcl_formspec.get_itemslot_bg(6.1,1.5,1,1).. "image_button[0.75,1.5;1,1;craftguide_book.png;__mcl_craftguide;]".. "tooltip[__mcl_craftguide;"..minetest.formspec_escape(S("Recipe book")).."]".. "listring[current_player;main]".. @@ -35,7 +31,7 @@ minetest.register_node("mcl_crafting_table:crafting_table", { minetest.show_formspec(player:get_player_name(), "main", form) end, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 2.5, + _mcl_blast_resistance = 12.5, _mcl_hardness = 2.5, }) diff --git a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.de.tr b/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.de.tr index 00a9c9cc..08b1a29e 100644 --- a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.de.tr +++ b/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.de.tr @@ -5,4 +5,3 @@ Rightclick the crafting table to access the 3×3 crafting grid.=Rechtsklicken Si Recipe book=Fertigungsbuch Inventory=Inventar Crafting=Fertigen -3×3 crafting grid=3×3 Fertigungsgitter diff --git a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.es.tr b/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.es.tr deleted file mode 100644 index 8d560fd5..00000000 --- a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.es.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_crafting_table -Crafting Table=Mesa de trabajo -A crafting table is a block which grants you access to a 3×3 crafting grid which allows you to perform advanced crafts.=Una mesa de trabajo es un bloque que le otorga acceso a una cuadrícula de creación 3 × 3 que le permite realizar manualidades avanzadas. -Rightclick the crafting table to access the 3×3 crafting grid.=Haz clic derecho en la mesa de trabajo para acceder a la cuadrícula de creación 3 × 3. -Recipe book=Libro de recetas -Inventory=Inventario -Crafting=Elaboración diff --git a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.fr.tr b/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.fr.tr deleted file mode 100644 index 23caccff..00000000 --- a/mods/ITEMS/mcl_crafting_table/locale/mcl_crafting_table.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_crafting_table -Crafting Table=Etabli -A crafting table is a block which grants you access to a 3×3 crafting grid which allows you to perform advanced crafts.=Un établi est un bloc qui vous donne accès à une grille d'établi 3×3 qui vous permet d'effectuer des objets avancés. -Rightclick the crafting table to access the 3×3 crafting grid.=Faites un clic droit sur l'établi pour accéder à la grille d'établi 3x3. -Recipe book=Livre de Recette -Crafting=Fabriquer -Inventory=Inventaire -3×3 crafting grid=Grille d'établi 3×3 diff --git a/mods/ITEMS/mcl_crafting_table/locale/template.txt b/mods/ITEMS/mcl_crafting_table/locale/template.txt index 4563b734..76070997 100644 --- a/mods/ITEMS/mcl_crafting_table/locale/template.txt +++ b/mods/ITEMS/mcl_crafting_table/locale/template.txt @@ -5,4 +5,3 @@ Rightclick the crafting table to access the 3×3 crafting grid.= Recipe book= Crafting= Inventory= -3×3 crafting grid= diff --git a/mods/ITEMS/mcl_crafting_table/textures/crafting_inventory_workbench.png b/mods/ITEMS/mcl_crafting_table/textures/crafting_inventory_workbench.png new file mode 100644 index 00000000..957fa56b Binary files /dev/null and b/mods/ITEMS/mcl_crafting_table/textures/crafting_inventory_workbench.png differ diff --git a/mods/ITEMS/mcl_crafting_table/textures/crafting_workbench_top.png b/mods/ITEMS/mcl_crafting_table/textures/crafting_workbench_top.png index 0a708336..5d85e517 100644 Binary files a/mods/ITEMS/mcl_crafting_table/textures/crafting_workbench_top.png and b/mods/ITEMS/mcl_crafting_table/textures/crafting_workbench_top.png differ diff --git a/mods/ITEMS/mcl_crafting_table/textures/gui_crafting_arrow.png b/mods/ITEMS/mcl_crafting_table/textures/gui_crafting_arrow.png deleted file mode 100644 index 93ce1e1b..00000000 Binary files a/mods/ITEMS/mcl_crafting_table/textures/gui_crafting_arrow.png and /dev/null differ diff --git a/mods/ITEMS/mcl_doors/api_doors.lua b/mods/ITEMS/mcl_doors/api_doors.lua index a2685a91..1b32d238 100644 --- a/mods/ITEMS/mcl_doors/api_doors.lua +++ b/mods/ITEMS/mcl_doors/api_doors.lua @@ -1,5 +1,3 @@ -local S = minetest.get_translator("mcl_doors") - -- This helper function calls on_place_node callbacks. local function on_place_node(place_to, newnode, placer, oldnode, itemstack, pointed_thing) @@ -68,45 +66,31 @@ function mcl_doors:register_door(name, def) def.selection_box_top = box end - local longdesc, usagehelp, tt_help - tt_help = def._tt_help + local longdesc, usagehelp longdesc = def._doc_items_longdesc if not longdesc then if def.only_redstone_can_open then - longdesc = S("This door is a 2-block high barrier which can be opened or closed by hand or by redstone power.") + longdesc = "This door is a 2-block high barrier which can be opened or closed by hand or by redstone power." else - longdesc = S("This door is a 2-block high barrier which can only be opened by redstone power, not by hand.") + longdesc = "This door is a 2-block high barrier which can only be opened by redstone power, not by hand." end end usagehelp = def._doc_items_usagehelp if not usagehelp then if def.only_redstone_can_open then - usagehelp = S("To open or close this door, send a redstone signal to its bottom half.") + usagehelp = "To open or close this door, send a redstone signal to its bottom half." else - usagehelp = S("To open or close this door, rightclick it or send a redstone signal to its bottom half.") + usagehelp = "To open or close this door, rightclick it or send a redstone signal to its bottom half." end end - if not tt_help then - if def.only_redstone_can_open then - tt_help = S("Openable by redstone power") - else - tt_help = S("Openable by players and redstone power") - end - end - - local craftitem_groups = { mesecon_conductor_craftable = 1, deco_block = 1 } - if def.groups and def.groups.flammable then - craftitem_groups.flammable = def.groups.flammable - end minetest.register_craftitem(name, { description = def.description, - _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, inventory_image = def.inventory_image, stack_max = 64, - groups = craftitem_groups, + groups = { mesecon_conductor_craftable = 1, deco_block = 1 }, on_place = function(itemstack, placer, pointed_thing) if not pointed_thing.type == "node" or not placer or not placer:is_player() then return itemstack @@ -160,7 +144,7 @@ function mcl_doors:register_door(name, def) minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) if def.sounds and def.sounds.place then - minetest.sound_play(def.sounds.place, {pos=pt}, true) + minetest.sound_play(def.sounds.place, {pos=pt}) end if def.only_placer_can_open then @@ -230,7 +214,7 @@ function mcl_doors:register_door(name, def) meta1:set_int("is_open", 1) meta2:set_int("is_open", 1) end - minetest.sound_play(door_switching_sound, {pos = pos, gain = 0.5, max_hear_distance = 16}, true) + minetest.sound_play(door_switching_sound, {pos = pos, gain = 0.5, max_hear_distance = 16}) end local function on_mesecons_signal_open(pos, node) @@ -303,17 +287,7 @@ function mcl_doors:register_door(name, def) action_on = on_mesecons_signal_open, }}, - on_rotate = function(pos, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - minetest.remove_node(pos) - node.param2 = screwdriver.rotate.facedir(pos, node, mode) - minetest.set_node(pos, node) - node.name = name .."_t_1" - minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, node) - return true - end - return false - end, + on_rotate = false, can_dig = check_player_priv, }) @@ -360,20 +334,9 @@ function mcl_doors:register_door(name, def) mesecons = { effector = { action_on = on_mesecons_signal_open_top, - rules = mesecon.rules.flat, }}, - on_rotate = function(pos, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - minetest.remove_node(pos) - node.param2 = screwdriver.rotate.facedir(pos, node, mode) - minetest.set_node(pos, node) - node.name = name .."_b_1" - minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z}, node) - return true - end - return false - end, + on_rotate = false, can_dig = check_player_priv, }) @@ -422,17 +385,7 @@ function mcl_doors:register_door(name, def) action_off = on_mesecons_signal_close, }}, - on_rotate = function(pos, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - minetest.remove_node(pos) - node.param2 = screwdriver.rotate.facedir(pos, node, mode) - minetest.set_node(pos, node) - node.name = name .."_t_2" - minetest.set_node({x=pos.x,y=pos.y+1,z=pos.z}, node) - return true - end - return false - end, + on_rotate = false, can_dig = check_player_priv, }) @@ -479,20 +432,9 @@ function mcl_doors:register_door(name, def) mesecons = { effector = { action_off = on_mesecons_signal_close_top, - rules = mesecon.rules.flat, }}, - on_rotate = function(pos, node, user, mode, param2) - if mode == screwdriver.ROTATE_FACE then - minetest.remove_node(pos) - node.param2 = screwdriver.rotate.facedir(pos, node, mode) - minetest.set_node(pos, node) - node.name = name .."_b_2" - minetest.set_node({x=pos.x,y=pos.y-1,z=pos.z}, node) - return true - end - return false - end, + on_rotate = false, can_dig = check_player_priv, }) diff --git a/mods/ITEMS/mcl_doors/api_trapdoors.lua b/mods/ITEMS/mcl_doors/api_trapdoors.lua index a7ca6cb1..dc507023 100644 --- a/mods/ITEMS/mcl_doors/api_trapdoors.lua +++ b/mods/ITEMS/mcl_doors/api_trapdoors.lua @@ -1,5 +1,3 @@ -local S = minetest.get_translator("mcl_doors") - -- Wrapper around mintest.pointed_thing_to_face_pos. local function get_fpos(placer, pointed_thing) local fpos @@ -67,11 +65,11 @@ function mcl_doors:register_trapdoor(name, def) local tmp_node -- Close if minetest.get_item_group(me.name, "trapdoor") == 2 then - minetest.sound_play(def.sound_close, {pos = pos, gain = 0.3, max_hear_distance = 16}, true) + minetest.sound_play(def.sound_close, {pos = pos, gain = 0.3, max_hear_distance = 16}) tmp_node = {name=name, param1=me.param1, param2=me.param2} -- Open else - minetest.sound_play(def.sound_open, {pos = pos, gain = 0.3, max_hear_distance = 16}, true) + minetest.sound_play(def.sound_open, {pos = pos, gain = 0.3, max_hear_distance = 16}) tmp_node = {name=name.."_open", param1=me.param1, param2=me.param2} end minetest.set_node(pos, tmp_node) @@ -85,25 +83,18 @@ function mcl_doors:register_trapdoor(name, def) end -- Default help texts - local longdesc, usagehelp, tt_help + local longdesc, usagehelp longdesc = def._doc_items_longdesc if not longdesc then if def.only_redstone_can_open then - longdesc = S("Trapdoors are horizontal barriers which can be opened or closed and climbed like a ladder when open. They occupy the upper or lower part of a block, depending on how they have been placed. This trapdoor can only be opened or closed by redstone power.") + longdesc = "Trapdoors are horizontal barriers which can be opened or closed and climbed like a ladder when open. They occupy the upper or lower part of a block, depending on how they have been placed. This trapdoor can only be opened or closed by redstone power." else - longdesc = S("Trapdoors are horizontal barriers which can be opened or closed and climbed like a ladder when open. They occupy the upper or lower part of a block, depending on how they have been placed. This trapdoor can be opened or closed by hand or redstone power.") + longdesc = "Trapdoors are horizontal barriers which can be opened or closed and climbed like a ladder when open. They occupy the upper or lower part of a block, depending on how they have been placed. This trapdoor can be opened or closed by hand or redstone power." end end usagehelp = def._doc_items_usagehelp if not usagehelp and not def.only_redstone_can_open then - usagehelp = S("To open or close this trapdoor, rightclick it or send a redstone signal to it.") - end - if not tt_help then - if def.only_redstone_can_open then - tt_help = S("Openable by redstone power") - else - tt_help = S("Openable by players and redstone power") - end + usagehelp = "To open or close this trapdoor, rightclick it or send a redstone signal to it." end -- Closed trapdoor @@ -125,7 +116,6 @@ function mcl_doors:register_trapdoor(name, def) groups_closed.deco_block = 1 minetest.register_node(name, { description = def.description, - _tt_help = tt_help, _doc_items_longdesc = longdesc, _doc_items_usagehelp = usagehelp, drawtype = "nodebox", diff --git a/mods/ITEMS/mcl_doors/depends.txt b/mods/ITEMS/mcl_doors/depends.txt index e2ae3cf4..1e75cae1 100644 --- a/mods/ITEMS/mcl_doors/depends.txt +++ b/mods/ITEMS/mcl_doors/depends.txt @@ -2,4 +2,3 @@ mcl_core mcl_sounds doc? screwdriver? -mesecons diff --git a/mods/ITEMS/mcl_doors/init.lua b/mods/ITEMS/mcl_doors/init.lua index 9e06b513..8bdf12d3 100644 --- a/mods/ITEMS/mcl_doors/init.lua +++ b/mods/ITEMS/mcl_doors/init.lua @@ -1,3 +1,4 @@ +local init = os.clock() mcl_doors = {} local this = minetest.get_current_modname() @@ -7,3 +8,7 @@ dofile(path.."/api_doors.lua") -- Doors API dofile(path.."/api_trapdoors.lua") -- Trapdoors API dofile(path.."/register.lua") -- Register builtin doors and trapdoors dofile(path.."/alias.lua") -- Legacy aliases + +-- Debug info +local time_to_load= os.clock() - init +minetest.log("action", (string.format("[MOD] "..this.." loaded in %.4f s", time_to_load))) diff --git a/mods/ITEMS/mcl_doors/locale/mcl_doors.de.tr b/mods/ITEMS/mcl_doors/locale/mcl_doors.de.tr index 03be49a6..7cb502c6 100644 --- a/mods/ITEMS/mcl_doors/locale/mcl_doors.de.tr +++ b/mods/ITEMS/mcl_doors/locale/mcl_doors.de.tr @@ -20,5 +20,4 @@ Wooden trapdoors are horizontal barriers which can be opened and closed by hand To open or close the trapdoor, rightclick it or send a redstone signal to it.=Um die Falltür zu öffnen oder zu schließen, rechtsklicken Sie sie oder schicken Sie ein Redstone-Signal zu ihr. Iron Trapdoor=Eisenfalltür Iron trapdoors are horizontal barriers which can only be opened and closed by redstone signals, but not by hand. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=Eisenfalltüren sind horizontale Barrieren, die nur mit einem Redstone-Signal geöffnet oder geschlossen werden können, nicht von Hand. Sie belegen den oberen oder unteren Teil eines Blocks, je nach dem, wie sie platziert wurden. Wenn geöffnet, können sie wie eine Leiter erklommen werden. -Openable by players and redstone power=Zu öffnen von Spielern und Redstoneenergie -Openable by redstone power=Zu öffnen von Redstoneenergie + diff --git a/mods/ITEMS/mcl_doors/locale/mcl_doors.es.tr b/mods/ITEMS/mcl_doors/locale/mcl_doors.es.tr deleted file mode 100644 index 1a510815..00000000 --- a/mods/ITEMS/mcl_doors/locale/mcl_doors.es.tr +++ /dev/null @@ -1,22 +0,0 @@ -# textdomain: mcl_doors -Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=Las puertas de madera son barreras altas de 2 bloques que se pueden abrir o cerrar a mano y con una señal de redstone. -To open or close a wooden door, rightclick it or supply its lower half with a redstone signal.=Para abrir o cerrar una puerta de madera, haga clic derecho o suministre a su mitad inferior una señal de redstone. -Oak Door=Puerta de roble -Acacia Door=Puerta de acacia -Birch Door=Puerta de abedul -Dark Oak Door=Puerta de roble oscuro -Jungle Door=Puerta de jungla -Spruce Door=Puerta de abeto -Iron Door=Puerta de Hierro -Iron doors are 2-block high barriers which can only be opened or closed by a redstone signal, but not by hand.=Las puertas de hierro son barreras altas de 2 bloques que solo se pueden abrir o cerrar mediante una señal de redstone, no a mano. -To open or close an iron door, supply its lower half with a redstone signal.=Para abrir o cerrar una puerta de hierro, suministre a su mitad inferior una señal de redstone. -Oak Trapdoor=Trampilla de roble -Acacia Trapdoor=Trampilla de acacia -Birch Trapdoor=Trampilla de abedul -Spruce Trapdoor=Trampilla de abeto -Dark Oak Trapdoor=Trampilla de roble oscuro -Jungle Trapdoor=Trampilla de jungla -Wooden trapdoors are horizontal barriers which can be opened and closed by hand or a redstone signal. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=Las trampillas de madera son barreras horizontales que se pueden abrir y cerrar a mano o una señal de redstone. Ocupan la parte superior o inferior de un bloque, dependiendo de cómo se hayan colocado. Cuando están abiertos, se pueden subir como una escalera. -To open or close the trapdoor, rightclick it or send a redstone signal to it.=Para abrir o cerrar la trampilla, haga clic derecho o envíele una señal de redstone. -Iron Trapdoor=Trampilla de hierro -Iron trapdoors are horizontal barriers which can only be opened and closed by redstone signals, but not by hand. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=Las trampillas de hierro son barreras horizontales que solo pueden abrirse y cerrarse mediante señales de redstone, no a mano. Ocupan la parte superior o inferior de un bloque, dependiendo de cómo se hayan colocado. Cuando están abiertos, se pueden subir como una escalera. diff --git a/mods/ITEMS/mcl_doors/locale/mcl_doors.fr.tr b/mods/ITEMS/mcl_doors/locale/mcl_doors.fr.tr deleted file mode 100644 index 9d1f25d9..00000000 --- a/mods/ITEMS/mcl_doors/locale/mcl_doors.fr.tr +++ /dev/null @@ -1,24 +0,0 @@ -# textdomain: mcl_doors -Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=Les portes en bois sont des barrières hautes à 2 blocs qui peuvent être ouvertes ou fermées à la main et par un signal redstone. -To open or close a wooden door, rightclick it or supply its lower half with a redstone signal.=Pour ouvrir ou fermer une porte en bois, faites un clic droit dessus ou fournissez à sa moitié inférieure un signal redstone. -Oak Door=Porte en Chêne -Acacia Door=Porte en Acacia -Birch Door=Porte en Bouleau -Dark Oak Door=Porte en Chêne Noir -Jungle Door=Porte en Acajou -Spruce Door=Porte en Sapin -Iron Door=Porte en Fer -Iron doors are 2-block high barriers which can only be opened or closed by a redstone signal, but not by hand.=Les portes en fer sont des barrières hautes à 2 blocs qui ne peuvent être ouvertes ou fermées que par un signal redstone, mais pas à la main. -To open or close an iron door, supply its lower half with a redstone signal.=Pour ouvrir ou fermer une porte en fer, fournir à sa moitié inférieure un signal redstone. -Oak Trapdoor=Trappe en Chêne -Acacia Trapdoor=Trappe en Acacia -Birch Trapdoor=Trappe en Bouleau -Spruce Trapdoor=Trappe en Sapin -Dark Oak Trapdoor=Trappe en Chêne Noir -Jungle Trapdoor=Trappe en Acajou -Wooden trapdoors are horizontal barriers which can be opened and closed by hand or a redstone signal. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=Les trappes en bois sont des barrières horizontales qui peuvent être ouvertes et fermées à la main ou par un signal redstone. Ils occupent la partie supérieure ou inférieure d'un bloc, selon la façon dont ils ont été placés. Lorsqu'elles sont ouvertes, elles peuvent être montées comme une échelle. -To open or close the trapdoor, rightclick it or send a redstone signal to it.=Pour ouvrir ou fermer la trappe, faites un clic droit dessus ou envoyez-lui un signal redstone. -Iron Trapdoor=Trappe en Fer -Iron trapdoors are horizontal barriers which can only be opened and closed by redstone signals, but not by hand. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.=Les trappes en fer sont des barrières horizontales qui ne peuvent être ouvertes et fermées que par des signaux de redstone, mais pas à la main. Ils occupent la partie supérieure ou inférieure d'un bloc, selon la façon dont ils ont été placés. Lorsqu'elles sont ouvertes, elles peuvent être montées comme une échelle. -Openable by players and redstone power=Ouvrable par les joueurs et puissance redstone -Openable by redstone power=Ouvrable par la puissance redstone diff --git a/mods/ITEMS/mcl_doors/locale/template.txt b/mods/ITEMS/mcl_doors/locale/template.txt index d8c7c860..5b9f788a 100644 --- a/mods/ITEMS/mcl_doors/locale/template.txt +++ b/mods/ITEMS/mcl_doors/locale/template.txt @@ -20,5 +20,3 @@ Wooden trapdoors are horizontal barriers which can be opened and closed by hand To open or close the trapdoor, rightclick it or send a redstone signal to it.= Iron Trapdoor= Iron trapdoors are horizontal barriers which can only be opened and closed by redstone signals, but not by hand. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder.= -Openable by players and redstone power= -Openable by redstone power= diff --git a/mods/ITEMS/mcl_doors/register.lua b/mods/ITEMS/mcl_doors/register.lua index 2ffd4b24..e8f990f9 100644 --- a/mods/ITEMS/mcl_doors/register.lua +++ b/mods/ITEMS/mcl_doors/register.lua @@ -11,9 +11,9 @@ mcl_doors:register_door("mcl_doors:wooden_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "doors_item_wood.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_wood_lower.png", "mcl_doors_door_wood_side_lower.png"}, tiles_top = {"mcl_doors_door_wood_upper.png", "mcl_doors_door_wood_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -34,9 +34,9 @@ mcl_doors:register_door("mcl_doors:acacia_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "mcl_doors_door_acacia.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_acacia_lower.png", "mcl_doors_door_acacia_side_lower.png"}, tiles_top = {"mcl_doors_door_acacia_upper.png", "mcl_doors_door_acacia_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -57,9 +57,9 @@ mcl_doors:register_door("mcl_doors:birch_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "mcl_doors_door_birch.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_birch_lower.png", "mcl_doors_door_birch_side_lower.png"}, tiles_top = {"mcl_doors_door_birch_upper.png", "mcl_doors_door_birch_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -80,9 +80,9 @@ mcl_doors:register_door("mcl_doors:dark_oak_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "mcl_doors_door_dark_oak.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_dark_oak_lower.png", "mcl_doors_door_dark_oak_side_lower.png"}, tiles_top = {"mcl_doors_door_dark_oak_upper.png", "mcl_doors_door_dark_oak_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -103,9 +103,9 @@ mcl_doors:register_door("mcl_doors:jungle_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "mcl_doors_door_jungle.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_jungle_lower.png", "mcl_doors_door_jungle_side_lower.png"}, tiles_top = {"mcl_doors_door_jungle_upper.png", "mcl_doors_door_jungle_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -126,9 +126,9 @@ mcl_doors:register_door("mcl_doors:spruce_door", { _doc_items_longdesc = wood_longdesc, _doc_items_usagehelp = wood_usagehelp, inventory_image = "mcl_doors_door_spruce.png", - groups = {handy=1,axey=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, tiles_bottom = {"mcl_doors_door_spruce_lower.png", "mcl_doors_door_spruce_side_lower.png"}, tiles_top = {"mcl_doors_door_spruce_upper.png", "mcl_doors_door_spruce_side_upper.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -182,7 +182,7 @@ mcl_doors:register_door("mcl_doors:iron_door", { inventory_image = "doors_item_steel.png", groups = {pickaxey=1, mesecon_effector_on=1}, _mcl_hardness = 5, - _mcl_blast_resistance = 5, + _mcl_blast_resistance = 25, tiles_bottom = {"mcl_doors_door_iron_lower.png^[transformFX", "mcl_doors_door_iron_side_lower.png"}, tiles_top = {"mcl_doors_door_iron_upper.png^[transformFX", "mcl_doors_door_iron_side_upper.png"}, sounds = mcl_sounds.node_sound_metal_defaults(), @@ -222,9 +222,9 @@ for w=1, #woods do tile_front = woods[w][3], tile_side = woods[w][4], wield_image = woods[w][3], - groups = {handy=1,axey=1, mesecon_effector_on=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, mesecon_effector_on=1, material_wood=1}, _mcl_hardness = 3, - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, sounds = mcl_sounds.node_sound_wood_defaults(), }) @@ -251,7 +251,7 @@ mcl_doors:register_trapdoor("mcl_doors:iron_trapdoor", { wield_image = "doors_trapdoor_steel.png", groups = {pickaxey=1, mesecon_effector_on=1}, _mcl_hardness = 5, - _mcl_blast_resistance = 5, + _mcl_blast_resistance = 25, sounds = mcl_sounds.node_sound_metal_defaults(), sound_open = "doors_steel_door_open", sound_close = "doors_steel_door_close", diff --git a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_side.png b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_side.png index 519d9b9e..97a5904c 100644 Binary files a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_side.png and b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_side.png differ diff --git a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel.png b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel.png index eba795b3..dc8f5325 100644 Binary files a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel.png and b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel.png differ diff --git a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel_side.png b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel_side.png index 28a98f2e..109829f5 100644 Binary files a/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel_side.png and b/mods/ITEMS/mcl_doors/textures/doors_trapdoor_steel_side.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_side_lower.png index 4dbbf38c..9faa931d 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_upper.png index 3fa7b30d..7e97bb71 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_acacia_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_lower.png index cb09fef6..844ce3a2 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_side_lower.png index cae11502..dd7310ef 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_birch_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_lower.png index 7c04fd88..b3b7e81d 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_lower.png index 3cf5b4fe..51f28b35 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_upper.png index 528358fe..db254813 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_side_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_upper.png index d3ccecf4..398547b9 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_dark_oak_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_lower.png index 6d0e3686..583b3e26 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_side_lower.png index 6d0e3686..583b3e26 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_iron_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_jungle_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_jungle_side_lower.png index 5ba2aee5..6014b530 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_jungle_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_jungle_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce.png index 3806a845..847ec3f9 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_lower.png index dc17e212..ebe81d62 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_lower.png index df63467a..c4605596 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_upper.png index 45b4f664..8ca2474d 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_side_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_upper.png index ee6c4a76..9d7daaab 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_spruce_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_lower.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_lower.png index 95ef79d8..6ee18505 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_lower.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_lower.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_upper.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_upper.png index bc74c5de..abdbb0e5 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_upper.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_door_wood_side_upper.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia.png index bf1534c0..7e01900e 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia_side.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia_side.png index 1cd4f934..e63f839e 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia_side.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_acacia_side.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_birch.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_birch.png index f832fe9d..fbd39dbc 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_birch.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_birch.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_dark_oak_side.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_dark_oak_side.png index 6d5e9d6c..d344c635 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_dark_oak_side.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_dark_oak_side.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle.png index 9ed9ba81..cf83de6a 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle_side.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle_side.png index 9f42ba4f..cc7cbafa 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle_side.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_jungle_side.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce.png index c934d8cf..3c743f97 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce.png differ diff --git a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce_side.png b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce_side.png index 882ef6b2..d05d717c 100644 Binary files a/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce_side.png and b/mods/ITEMS/mcl_doors/textures/mcl_doors_trapdoor_spruce_side.png differ diff --git a/mods/ITEMS/mcl_dye/init.lua b/mods/ITEMS/mcl_dye/init.lua index eaacaecf..11a6f657 100644 --- a/mods/ITEMS/mcl_dye/init.lua +++ b/mods/ITEMS/mcl_dye/init.lua @@ -255,7 +255,7 @@ mcl_dye.apply_bone_meal = function(pointed_thing) if math.random(1,100) <= 90 then -- 90% tall grass, 10% flower if math.random(1,100) <= 90 then - local col = n2.param2 + local col = minetest.registered_nodes[n2.name]._mcl_grass_palette_index minetest.add_node(pos, {name="mcl_flowers:tallgrass", param2=col}) else local flowers_table @@ -322,7 +322,6 @@ end minetest.register_craftitem("mcl_dye:white", { inventory_image = "mcl_dye_white.png", description = S("Bone Meal"), - _tt_help = S("Speeds up plant growth"), _doc_items_longdesc = S("Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants."), _doc_items_usagehelp = S("Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place."), stack_max = 64, @@ -360,7 +359,6 @@ minetest.register_craftitem("mcl_dye:white", { minetest.register_craftitem("mcl_dye:brown", { inventory_image = "mcl_dye_brown.png", - _tt_help = S("Grows at the side of jungle trees"), _doc_items_longdesc = S("Cocoa beans are a brown dye and can be used to plant cocoas."), _doc_items_usagehelp = S("Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa."), description = S("Cocoa Beans"), diff --git a/mods/ITEMS/mcl_dye/locale/mcl_dye.de.tr b/mods/ITEMS/mcl_dye/locale/mcl_dye.de.tr index 29cd4d20..c12da579 100644 --- a/mods/ITEMS/mcl_dye/locale/mcl_dye.de.tr +++ b/mods/ITEMS/mcl_dye/locale/mcl_dye.de.tr @@ -23,5 +23,3 @@ Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its gr Cocoa beans are a brown dye and can be used to plant cocoas.=Kakaobohnen sind ein brauner Farbstoff und werden benutzt, um Kakao anzupflanzen. Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Rechtsklicken Sie auf ein Schaf, um die Wolle braun einzufärben. Rechtsklicken Sie an die Seite eines Dschungelbaumstamms (Dschungelholz), um eine junge Kakaoschote zu pflanzen. Cocoa Beans=Kakaobohnen -Grows at the side of jungle trees=Wächst an der Seite von Dschungelbäumen -Speeds up plant growth=Beschleunigt Pflanzenwachstum diff --git a/mods/ITEMS/mcl_dye/locale/mcl_dye.es.tr b/mods/ITEMS/mcl_dye/locale/mcl_dye.es.tr deleted file mode 100644 index d20e8c96..00000000 --- a/mods/ITEMS/mcl_dye/locale/mcl_dye.es.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_dye -Bone Meal=Harina de hueso -Light Grey Dye=Tinte gris claro -Grey Dye=Tinte gris -Ink Sac=Saco de tinta -Purple Dye=Tinte púrpura -Lapis Lazuli=Lapislázuli -Light Blue Dye=Tinte azul claro -Cyan Dye=Tinte cian -Cactus Green=Tinte verde -Lime Dye=Tinte amarillo verdoso -Dandelion Yellow=Tinte amarillo -Cocoa Beans=Granos de cacao -Orange Dye=Tinte naranja -Rose Red=Tinte rojo -Magenta Dye=Tinte magenta -Pink Dye=Tinte rosado -This item is a dye which is used for dyeing and crafting.=Este artículo es un tinte que se utiliza para teñir y elaborar. -Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Haga clic derecho sobre una oveja para teñir su lana. Otras cosas pueden ser teñidas mediante la elaboración. -Bone Meal=Harina de hueso -Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La harina de hueso es un tinte blanco y también es útil como fertilizante para acelerar el crecimiento de muchas plantas. -Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=RHaga clic derecho en una oveja para volver su lana blanca. Haga clic derecho en una planta para acelerar su crecimiento. Tenga en cuenta que no todas las plantas pueden ser fertilizadas de esta manera. Cuando haces clic derecho en un bloque de hierba, crecerán hierba alta y flores por todo el lugar. -Cocoa beans are a brown dye and can be used to plant cocoas.=Los granos de cacao son un tinte marrón y se pueden usar para plantar cacao. -Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Haga clic derecho en una oveja para convertir su lana en marrón. Haga clic derecho en el costado del tronco de un árbol de jungla para plantar un cacao joven. -Cocoa Beans=Granos de cacao diff --git a/mods/ITEMS/mcl_dye/locale/mcl_dye.fr.tr b/mods/ITEMS/mcl_dye/locale/mcl_dye.fr.tr deleted file mode 100644 index 8d53cc73..00000000 --- a/mods/ITEMS/mcl_dye/locale/mcl_dye.fr.tr +++ /dev/null @@ -1,27 +0,0 @@ -# textdomain: mcl_dye -Bone Meal=Poudre d'Os -Light Grey Dye=Teinture Gris Clair -Grey Dye=Teinture Gris -Ink Sac=Poche d'Encre -Purple Dye=Teinture Violette -Lapis Lazuli=Lapis Lazuli -Light Blue Dye=Teinture Bleu Clair -Cyan Dye=Teinture Cyan -Cactus Green=Cactus Vert -Lime Dye=Teinture Vert Clair -Dandelion Yellow=Pissenlit Jaune -Cocoa Beans=Fèves de Cacao -Orange Dye=Teinture Orange -Rose Red=Rose Rouge -Magenta Dye=Teinture Magenta -Pink Dye=Teinture Rose -This item is a dye which is used for dyeing and crafting.=Cet objet est un colorant utilisé pour la teinture et l'artisanat. -Rightclick on a sheep to dye its wool. Other things are dyed by crafting.=Clic droit sur un mouton pour teindre sa laine. D'autres choses sont teintes par l'artisanat. -Bone Meal=Farine d'Os -Bone meal is a white dye and also useful as a fertilizer to speed up the growth of many plants.=La farine d'os est une teinture blanche et également utile comme engrais pour accélérer la croissance de nombreuses plantes. -Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its growth. Note that not all plants can be fertilized like this. When you rightclick a grass block, tall grass and flowers will grow all over the place.=Cliquez avec le bouton droit sur un mouton pour blanchir sa laine. Cliquez avec le bouton droit sur une plante pour accélérer sa croissance. Notez que toutes les plantes ne peuvent pas être fertilisées comme ça. Lorsque vous cliquez avec le bouton droit sur un bloc d'herbe, les hautes herbes et les fleurs poussent partout. -Cocoa beans are a brown dye and can be used to plant cocoas.=Les fèves de cacao ont une teinture brune et peuvent être utilisées pour planter du cacao. -Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.=Faites un clic droit sur un mouton pour brunir sa laine. Clic droit sur le côté d'un tronc d'arbre de la jungle (Bois Acajou) pour planter un jeune cacao. -Cocoa Beans=Fèves de Cacao -Grows at the side of jungle trees=Pousse à côté des arbres de la jungle -Speeds up plant growth=Accélère la croissance des plantes diff --git a/mods/ITEMS/mcl_dye/locale/template.txt b/mods/ITEMS/mcl_dye/locale/template.txt index 94e250f0..f99638e4 100644 --- a/mods/ITEMS/mcl_dye/locale/template.txt +++ b/mods/ITEMS/mcl_dye/locale/template.txt @@ -23,5 +23,3 @@ Rightclick a sheep to turn its wool white. Rightclick a plant to speed up its gr Cocoa beans are a brown dye and can be used to plant cocoas.= Rightclick a sheep to turn its wool brown. Rightclick on the side of a jungle tree trunk (Jungle Wood) to plant a young cocoa.= Cocoa Beans= -Grows at the side of jungle trees= -Speeds up plant growth= diff --git a/mods/ITEMS/mcl_dye/textures/mcl_dye_black.png b/mods/ITEMS/mcl_dye/textures/mcl_dye_black.png index e9aebf59..95a8df4a 100644 Binary files a/mods/ITEMS/mcl_dye/textures/mcl_dye_black.png and b/mods/ITEMS/mcl_dye/textures/mcl_dye_black.png differ diff --git a/mods/ITEMS/mcl_end/building.lua b/mods/ITEMS/mcl_end/building.lua index 3dcf0671..4dbfb563 100644 --- a/mods/ITEMS/mcl_end/building.lua +++ b/mods/ITEMS/mcl_end/building.lua @@ -1,12 +1,6 @@ -- Building blocks and decorative nodes local S = minetest.get_translator("mcl_end") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - minetest.register_node("mcl_end:end_stone", { description = S("End Stone"), _doc_items_longdesc = doc.sub.items.temp.build, @@ -15,7 +9,7 @@ minetest.register_node("mcl_end:end_stone", { groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), after_dig_node = mcl_end.check_detach_chorus_plant, - _mcl_blast_resistance = 9, + _mcl_blast_resistance = 45, _mcl_hardness = 3, }) @@ -27,7 +21,7 @@ minetest.register_node("mcl_end:end_bricks", { stack_max = 64, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 9, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -39,7 +33,7 @@ minetest.register_node("mcl_end:purpur_block", { stack_max = 64, groups = {pickaxey=1, building_block=1, material_stone=1, purpur_block=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -53,8 +47,7 @@ minetest.register_node("mcl_end:purpur_pillar", { tiles = {"mcl_end_purpur_pillar_top.png", "mcl_end_purpur_pillar_top.png", "mcl_end_purpur_pillar.png"}, groups = {pickaxey=1, building_block=1, material_stone=1, purpur_block=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 1.5, }) @@ -73,7 +66,7 @@ minetest.register_node("mcl_end:end_rod", { is_ground_content = false, paramtype = "light", paramtype2 = "facedir", - light_source = minetest.LIGHT_MAX, + light_source = 14, sunlight_propagates = true, groups = { dig_immediate=3, deco_block=1, destroy_by_lava_flow=1, }, node_box = { @@ -167,7 +160,7 @@ minetest.register_node("mcl_end:dragon_egg", { }, groups = {handy=1, falling_node = 1, deco_block = 1, not_in_creative_inventory = 1, dig_by_piston = 1 }, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 9, + _mcl_blast_resistance = 45, _mcl_hardness = 3, -- TODO: Make dragon egg teleport on punching }) diff --git a/mods/ITEMS/mcl_end/chorus_plant.lua b/mods/ITEMS/mcl_end/chorus_plant.lua index 171ff37b..4e1575c8 100644 --- a/mods/ITEMS/mcl_end/chorus_plant.lua +++ b/mods/ITEMS/mcl_end/chorus_plant.lua @@ -24,21 +24,9 @@ local function round(num, idp) return math.floor(num * mult + 0.5) / mult end --- This is a list of nodes that SHOULD NOT call their detach function -local no_detach = {} - -- This detaches all chorus plants that are/were attached -- at start_pos. mcl_end.detach_chorus_plant = function(start_pos, digger) - -- This node should not call a detach function, do NOTHING - local hash = minetest.hash_node_position(start_pos) - if no_detach[hash] ~= nil then - return - end - - -- This node SHOULD be detached, make sure no others are - no_detach = {} - local neighbors = { { x=0, y=1, z=0 }, { x=0, y=0, z=1 }, @@ -64,59 +52,41 @@ mcl_end.detach_chorus_plant = function(start_pos, digger) local break_tree = true while #check_posses > 0 do local pos = check_posses[1] - - -- Don't just count neighbors as being touched, count THIS NODE as well - -- This will prevent it from getting stuck in an endless loop - if not touched_nodes_hashes[minetest.hash_node_position(pos)] then - local node = minetest.get_node(pos) - touched_nodes_hashes[minetest.hash_node_position(pos)] = true - if node.name == "mcl_end:end_stone" then - -- End stone found, the algorithm ends here (haha!) - -- without destroying any nodes, because chorus plants - -- attach to end stone. - break_tree = false - break - elseif minetest.get_item_group(node.name, "chorus_plant") == 1 then - table.insert(chorus_nodes, pos) - for i=1, #neighbors do - local newpos = vector.add(pos, neighbors[i]) - if not touched_nodes_hashes[minetest.hash_node_position(newpos)] then - table.insert(check_posses, vector.add(pos, neighbors[i])) - end + local node = minetest.get_node(pos) + touched_nodes_hashes[minetest.hash_node_position(pos)] = true + if node.name == "mcl_end:end_stone" then + -- End stone found, the algorithm ends here (haha!) + -- without destroying any nodes, because chorus plants + -- attach to end stone. + break_tree = false + break + elseif minetest.get_item_group(node.name, "chorus_plant") == 1 then + table.insert(chorus_nodes, pos) + for i=1, #neighbors do + local newpos = vector.add(pos, neighbors[i]) + if not touched_nodes_hashes[minetest.hash_node_position(newpos)] then + table.insert(check_posses, vector.add(pos, neighbors[i])) end end end - table.remove(check_posses, 1) end if break_tree then -- If we traversed the entire chorus plant and it was not attached to end stone: -- Drop ALL the chorus nodes we found. for c=1, #chorus_nodes do - no_detach[ minetest.hash_node_position(chorus_nodes[c]) ] = true - if digger then - minetest.node_dig(chorus_nodes[c], { name = "mcl_end:chorus_plant" }, digger) - else - minetest.remove_node(chorus_nodes[c]) - end + minetest.node_dig(chorus_nodes[c], { name = "mcl_end:chorus_plant" }, digger) end end end - - no_detach = {} end mcl_end.check_detach_chorus_plant = function(pos, oldnode, oldmetadata, digger) mcl_end.detach_chorus_plant(pos, digger) end -mcl_end.check_blast_chorus_plant = function(pos) - mcl_end.detach_chorus_plant(pos) -end - minetest.register_node("mcl_end:chorus_flower", { description = S("Chorus Flower"), - _tt_help = S("Grows on end stone"), _doc_items_longdesc = S("A chorus flower is the living part of a chorus plant. It can grow into a tall chorus plant, step by step. When it grows, it may die on old age eventually. It also dies when it is unable to grow."), _doc_items_usagehelp = S("Place it and wait for it to grow. It can only be placed on top of end stone, on top of a chorus plant stem, or at the side of exactly one chorus plant stem."), tiles = { @@ -191,7 +161,7 @@ minetest.register_node("mcl_end:chorus_flower", { -- Placement OK! Proceed normally local it, suc = minetest.item_place_node(itemstack, placer, pointed_thing) if suc then - minetest.sound_play(mcl_sounds.node_sound_wood_defaults().place, {pos = pos}, true) + minetest.sound_play(mcl_sounds.node_sound_wood_defaults().place, {pos = pos}) end return it else @@ -199,14 +169,12 @@ minetest.register_node("mcl_end:chorus_flower", { end end, after_dig_node = mcl_end.check_detach_chorus_plant, - on_blast = mcl_end.check_blast_chorus_plant, - _mcl_blast_resistance = 0.4, + _mcl_blast_resistance = 2, _mcl_hardness = 0.4, }) minetest.register_node("mcl_end:chorus_flower_dead", { description = S("Dead Chorus Flower"), - _tt_help = S("Grows on end stone"), _doc_items_longdesc = S("This is a part of a chorus plant. It doesn't grow. Chorus flowers die of old age or when they are unable to grow. A dead chorus flower can be harvested to obtain a fresh chorus flower which is able to grow again."), tiles = { "mcl_end_chorus_flower_dead.png", @@ -225,7 +193,6 @@ minetest.register_node("mcl_end:chorus_flower_dead", { drop = "mcl_end:chorus_flower", groups = {handy=1,axey=1, deco_block = 1, dig_by_piston = 1, destroy_by_lava_flow = 1,chorus_plant = 1}, after_dig_node = mcl_end.check_detach_chorus_plant, - on_blast = mcl_end.check_blast_chorus_plant, _mcl_blast_resistance = 2, _mcl_hardness = 0.4, }) @@ -295,7 +262,7 @@ minetest.register_node("mcl_end:chorus_plant", { -- Placement OK! Proceed normally local it, suc = minetest.item_place_node(itemstack, placer, pointed_thing) if suc then - minetest.sound_play(mcl_sounds.node_sound_wood_defaults().place, {pos = pos_place}, true) + minetest.sound_play(mcl_sounds.node_sound_wood_defaults().place, {pos = pos_place}) end return it else @@ -303,7 +270,6 @@ minetest.register_node("mcl_end:chorus_plant", { end end, after_dig_node = mcl_end.check_detach_chorus_plant, - on_blast = mcl_end.check_blast_chorus_plant, _mcl_blast_resistance = 2, _mcl_hardness = 0.4, }) @@ -516,7 +482,7 @@ local random_teleport = function(player) -- JACKPOT! Now we can teleport. local goal = {x=tpos.x, y=tpos.y-1.5, z=tpos.z} player:set_pos(goal) - minetest.sound_play({name="mcl_end_teleport", gain=0.8}, {pos=goal, max_hear_distance=16}, true) + minetest.sound_play({name="mcl_end_teleport", gain=0.8}, {pos=goal, max_hear_distance=16}) return true end end @@ -545,7 +511,6 @@ end minetest.register_craftitem("mcl_end:chorus_fruit", { description = S("Chorus Fruit"), - _tt_help = S("Randomly teleports you when eaten"), _doc_items_longdesc = S("A chorus fruit is an edible fruit from the chorus plant which is home to the End. Eating it teleports you to the top of a random solid block nearby, provided you won't end up inside a liquid, solid or harmful blocks. Teleportation might fail if there are very few or no places to teleport to."), wield_image = "mcl_end_chorus_fruit.png", inventory_image = "mcl_end_chorus_fruit.png", diff --git a/mods/ITEMS/mcl_end/eye_of_ender.lua b/mods/ITEMS/mcl_end/eye_of_ender.lua index 117fb73c..d074e392 100644 --- a/mods/ITEMS/mcl_end/eye_of_ender.lua +++ b/mods/ITEMS/mcl_end/eye_of_ender.lua @@ -74,7 +74,6 @@ minetest.register_entity("mcl_end:ender_eye", { minetest.register_craftitem("mcl_end:ender_eye", { description = S("Eye of Ender"), - _tt_help = S("Guides the way to the mysterious End dimension"), _doc_items_longdesc = S("This item is used to locate End portal shrines in the Overworld and to activate End portals.") .. "\n" .. S("NOTE: The End dimension is currently incomplete and might change in future versions."), _doc_items_usagehelp = S("Use the attack key to release the eye of ender. It will rise and fly in the horizontal direction of the closest end portal shrine. If you're very close, the eye of ender will take the direct path to the End portal shrine instead. After a few seconds, it stops. It may drop as an item, but there's a 20% chance it shatters.") .. "\n" .. S("To activate an End portal, eyes of ender need to be placed into each block of an intact End portal frame."), wield_image = "mcl_end_ender_eye.png", diff --git a/mods/ITEMS/mcl_end/locale/mcl_end.de.tr b/mods/ITEMS/mcl_end/locale/mcl_end.de.tr index df3ad90f..0290bbfd 100644 --- a/mods/ITEMS/mcl_end/locale/mcl_end.de.tr +++ b/mods/ITEMS/mcl_end/locale/mcl_end.de.tr @@ -23,6 +23,3 @@ Use the attack key to release the eye of ender. It will rise and fly in the hori To activate an End portal, eyes of ender need to be placed into each block of an intact End portal frame.=Um ein Endportal zu aktivieren, müssen Enderaugen in jeden Block eines intakten Endportalrahmens platziert werden. NOTE: The End dimension is currently incomplete and might change in future versions.=ANMERKUNG: Die Ende-Dimension ist momentan unfertig und könnte sich in künftigen Versionen ändern. The stem attaches itself to end stone and other chorus blocks.=Der Stängel muss sich neben anderen Chorusblöcken oder Endstein befinden. -Grows on end stone=Wächst auf Endstein -Randomly teleports you when eaten=Zufällige Teleportation, wenn gegessen -Guides the way to the mysterious End dimension=Weist den Weg zur mysteriösen Endedimension diff --git a/mods/ITEMS/mcl_end/locale/mcl_end.es.tr b/mods/ITEMS/mcl_end/locale/mcl_end.es.tr deleted file mode 100644 index c9804586..00000000 --- a/mods/ITEMS/mcl_end/locale/mcl_end.es.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_end -End Stone=Fin de la piedra -End Stone Bricks=Fin de ladrillos de piedra -Purpur Block=Bloque púrpura -Purpur Pillar=Pilar púrpura -End Rod=Barra final -End rods are decorative light sources.=Las varillas finales son fuentes de luz decorativas. -Dragon Egg=Huevo de dragón -A dragon egg is a decorative item which can be placed.=Un huevo de dragón es un elemento decorativo que se puede colocar. -Chorus Flower=Flor de coro -A chorus flower is the living part of a chorus plant. It can grow into a tall chorus plant, step by step. When it grows, it may die on old age eventually. It also dies when it is unable to grow.=Una flor de coro es la parte viva de una planta de coro. Puede convertirse en una planta de coro alto, paso a paso. Cuando crece, puede morir con la vejez eventualmente. También muere cuando no puede crecer. -Place it and wait for it to grow. It can only be placed on top of end stone, on top of a chorus plant stem, or at the side of exactly one chorus plant stem.=Colóquelo y espere a que crezca. Solo se puede colocar en la parte superior de la piedra del extremo, en la parte superior del tallo de la planta de coro, o al lado de exactamente un tallo de la planta de coro. -Dead Chorus Flower=Flor de coro muerto -This is a part of a chorus plant. It doesn't grow. Chorus flowers die of old age or when they are unable to grow. A dead chorus flower can be harvested to obtain a fresh chorus flower which is able to grow again.=Esta es una parte de una planta de coro. No crece Las flores de coro mueren de vejez o cuando no pueden crecer. Se puede cosechar una flor de coro muerta para obtener una flor de coro fresca que pueda crecer nuevamente. -Chorus Plant Stem=Tallo de planta de coro -A chorus plant stem is the part of a chorus plant which holds the whole plant together. It needs end stone as its soil. Stems are grown from chorus flowers.=El tallo de una planta de coro es la parte de una planta de coro que mantiene unida a toda la planta. Necesita piedra final como su suelo. Los tallos se cultivan a partir de flores de coro. -Chorus Fruit=Fruta coro -A chorus fruit is an edible fruit from the chorus plant which is home to the End. Eating it teleports you to the top of a random solid block nearby, provided you won't end up inside a liquid, solid or harmful blocks. Teleportation might fail if there are very few or no places to teleport to.=Una fruta de coro es una fruta comestible de la planta de coro que es el hogar del final. Comerlo te teletransporta a la parte superior de un bloque sólido aleatorio cercano, siempre que no termines dentro de un bloque líquido, sólido o dañino. La teletransportación puede fallar si hay muy pocos o ningún lugar para teletransportarse. -Popped Chorus Fruit=Fruta de coro reventado -Eye of Ender=Ojo de Ender -This item is used to locate End portal shrines in the Overworld and to activate End portals.=Este elemento se usa para localizar santuarios de portal del fin en el mundo y para activar portales del final. -Use the attack key to release the eye of ender. It will rise and fly in the horizontal direction of the closest end portal shrine. If you're very close, the eye of ender will take the direct path to the End portal shrine instead. After a few seconds, it stops. It may drop as an item, but there's a 20% chance it shatters.=Usa la tecla de ataque para liberar el ojo de Ender. Se elevará y volará en la dirección horizontal del santuario portal más cercano. Si estás muy cerca, el ojo de Ender tomará el camino directo al Santuario del portal final. Después de unos segundos, se detiene. Puede caer como un elemento, pero hay un 20% de posibilidades de que se rompa. -To activate an End portal, eyes of ender need to be placed into each block of an intact End portal frame.=Para activar un portal final, se deben colocar ojos de ender en cada bloque de un marco intacto del portal final. -NOTE: The End dimension is currently incomplete and might change in future versions.=NOTA: La dimensión Final está actualmente incompleta y puede cambiar en futuras versiones. -The stem attaches itself to end stone and other chorus blocks.=El tallo se adhiere al extremo de la piedra y a otros bloques de coro.. \ No newline at end of file diff --git a/mods/ITEMS/mcl_end/locale/mcl_end.fr.tr b/mods/ITEMS/mcl_end/locale/mcl_end.fr.tr deleted file mode 100644 index 39140587..00000000 --- a/mods/ITEMS/mcl_end/locale/mcl_end.fr.tr +++ /dev/null @@ -1,28 +0,0 @@ -# textdomain: mcl_end -End Stone=Pierre de L'End -End Stone Bricks=Brique de l'End -Purpur Block=Bloc de Purpur -Purpur Pillar=Bloc de Purpur Sculpté -End Rod=Barre de l'End -End rods are decorative light sources.=Les barres de l'End sont des sources de lumière décoratives. -Dragon Egg=Oeuf de Dragon -A dragon egg is a decorative item which can be placed.=Un oeuf de dragon est un objet décoratif qui peut être placé. -Chorus Flower=Plante de Chorus -A chorus flower is the living part of a chorus plant. It can grow into a tall chorus plant, step by step. When it grows, it may die on old age eventually. It also dies when it is unable to grow.=Une fleur de chorus est la partie vivante d'une plante de chorus. Il peut devenir une grande plante de chorus, étape par étape. Quand elle grandit, elle peut finir par mourir en vieillissant. Elle meurt également lorsqu'il est incapable de grandir. -Place it and wait for it to grow. It can only be placed on top of end stone, on top of a chorus plant stem, or at the side of exactly one chorus plant stem.=Placez-la et attendez qu'elle grandisse. Elle ne peut être placée que sur le dessus de la pierre d'End, sur le dessus d'une tige de plante de chorus ou exactement sur le côté d'une tige de plante de chorus. -Dead Chorus Flower=Plante de Chorus Morte -This is a part of a chorus plant. It doesn't grow. Chorus flowers die of old age or when they are unable to grow. A dead chorus flower can be harvested to obtain a fresh chorus flower which is able to grow again.=Ceci fait partie d'une plante de chorus. Ça ne pousse pas. Les fleurs de chorus meurent de vieillesse ou lorsqu'elles ne peuvent pas pousser. Une fleur de chorus morte peut être récoltée pour obtenir une fleur de chorus fraîche qui peut repousser. -Chorus Plant Stem=Tige de Plante de Chorus -A chorus plant stem is the part of a chorus plant which holds the whole plant together. It needs end stone as its soil. Stems are grown from chorus flowers.=Une tige de plante de chorus est la partie d'une plante de chorus qui maintient la plante entière ensemble. Il a besoin de pierre d'End comme sol. Les tiges sont issues de fleurs de chorus. -Chorus Fruit=Fruit de Chorus -A chorus fruit is an edible fruit from the chorus plant which is home to the End. Eating it teleports you to the top of a random solid block nearby, provided you won't end up inside a liquid, solid or harmful blocks. Teleportation might fail if there are very few or no places to teleport to.=Un fruit de chorus est un fruit comestible de l'usine de chorus qui abrite la fin. Le manger vous téléporte au sommet d'un bloc solide aléatoire à proximité, à condition de ne pas vous retrouver dans un bloc liquide, solide ou nuisible. La téléportation peut échouer s'il y a très peu ou pas d'endroits où se téléporter. -Popped Chorus Fruit=Chorus Eclaté -Eye of Ender=Oeil de l'Ender -This item is used to locate End portal shrines in the Overworld and to activate End portals.=Cet objet est utilisé pour localiser les sanctuaires du portail End dans l'Overworld et pour activer les portails End. -Use the attack key to release the eye of ender. It will rise and fly in the horizontal direction of the closest end portal shrine. If you're very close, the eye of ender will take the direct path to the End portal shrine instead. After a few seconds, it stops. It may drop as an item, but there's a 20% chance it shatters.=Utilisez la touche d'attaque pour libérer l'oeil d'ender. Il s'élèvera et volera dans la direction horizontale du sanctuaire portail d'Ender le plus proche. Si vous êtes très proche, l'oeil d'ender empruntera le chemin direct vers le sanctuaire du portail de l'End. Après quelques secondes, il s'arrête. Il peut tomber en tant qu'objet, mais il y a 20% de chances qu'il se brise. -To activate an End portal, eyes of ender need to be placed into each block of an intact End portal frame.=Pour activer un portail d'End, les yeux d'ender doivent être placés dans chaque bloc d'un cadre de portail d'End intact. -NOTE: The End dimension is currently incomplete and might change in future versions.=REMARQUE: la dimension de l'End est actuellement incomplète et pourrait changer dans les futures versions. -The stem attaches itself to end stone and other chorus blocks.=La tige s'attache à la pierre d'End et à d'autres blocs de chorus. -Grows on end stone=Pousse sur la pierre d'End -Randomly teleports you when eaten=Vous téléporte au hasard quand il est mangé -Guides the way to the mysterious End dimension=Guide le chemin vers la dimension mystérieuse de l'End diff --git a/mods/ITEMS/mcl_end/locale/template.txt b/mods/ITEMS/mcl_end/locale/template.txt index 3f024383..14cc9ff4 100644 --- a/mods/ITEMS/mcl_end/locale/template.txt +++ b/mods/ITEMS/mcl_end/locale/template.txt @@ -23,6 +23,3 @@ Use the attack key to release the eye of ender. It will rise and fly in the hori To activate an End portal, eyes of ender need to be placed into each block of an intact End portal frame.= NOTE: The End dimension is currently incomplete and might change in future versions.= The stem attaches itself to end stone and other chorus blocks.= -Grows on end stone= -Randomly teleports you when eaten= -Guides the way to the mysterious End dimension= diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower.png b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower.png index 23f0e06b..47798ba0 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower.png and b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower_dead.png b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower_dead.png index 6d4e2d3d..88f798cd 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower_dead.png and b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_flower_dead.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_plant.png b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_plant.png index 920d82ec..afde6fee 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_chorus_plant.png and b/mods/ITEMS/mcl_end/textures/mcl_end_chorus_plant.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_dragon_egg.png b/mods/ITEMS/mcl_end/textures/mcl_end_dragon_egg.png index 1533c3b1..c50d8f23 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_dragon_egg.png and b/mods/ITEMS/mcl_end/textures/mcl_end_dragon_egg.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_end_stone.png b/mods/ITEMS/mcl_end/textures/mcl_end_end_stone.png index ea48cea9..2254f82e 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_end_stone.png and b/mods/ITEMS/mcl_end/textures/mcl_end_end_stone.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_endframe_side.png b/mods/ITEMS/mcl_end/textures/mcl_end_endframe_side.png index 6922795e..a2370ece 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_endframe_side.png and b/mods/ITEMS/mcl_end/textures/mcl_end_endframe_side.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar.png b/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar.png index 2f2522e2..4b7efbd0 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar.png and b/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar.png differ diff --git a/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar_top.png b/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar_top.png index 712247d8..752e77bc 100644 Binary files a/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar_top.png and b/mods/ITEMS/mcl_end/textures/mcl_end_purpur_pillar_top.png differ diff --git a/mods/ITEMS/mcl_farming/beetroot.lua b/mods/ITEMS/mcl_farming/beetroot.lua index 7caf5103..a6f8fc9a 100644 --- a/mods/ITEMS/mcl_farming/beetroot.lua +++ b/mods/ITEMS/mcl_farming/beetroot.lua @@ -2,7 +2,6 @@ local S = minetest.get_translator("mcl_farming") minetest.register_craftitem("mcl_farming:beetroot_seeds", { description = S("Beetroot Seeds"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Grows into a beetroot plant. Chickens like beetroot seeds."), _doc_items_usagehelp = S("Place the beetroot seeds on farmland (which can be created with a hoe) to plant a beetroot plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it beetroot seeds."), groups = { craftitem=1 }, diff --git a/mods/ITEMS/mcl_farming/carrots.lua b/mods/ITEMS/mcl_farming/carrots.lua index 4599d39e..341bbeb0 100644 --- a/mods/ITEMS/mcl_farming/carrots.lua +++ b/mods/ITEMS/mcl_farming/carrots.lua @@ -82,7 +82,6 @@ minetest.register_node("mcl_farming:carrot", { minetest.register_craftitem("mcl_farming:carrot_item", { description = S("Carrot"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Carrots can be eaten and planted. Pigs and rabbits like carrots."), _doc_items_usagehelp = S("Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant the carrot. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it."), inventory_image = "farming_carrot.png", diff --git a/mods/ITEMS/mcl_farming/depends.txt b/mods/ITEMS/mcl_farming/depends.txt index 0ed4f3f5..1d455601 100644 --- a/mods/ITEMS/mcl_farming/depends.txt +++ b/mods/ITEMS/mcl_farming/depends.txt @@ -3,6 +3,5 @@ mcl_sounds mcl_wool mcl_torches mcl_weather -mcl_armor? mobs_mc doc? diff --git a/mods/ITEMS/mcl_farming/hoes.lua b/mods/ITEMS/mcl_farming/hoes.lua index f296bd83..04105b0a 100644 --- a/mods/ITEMS/mcl_farming/hoes.lua +++ b/mods/ITEMS/mcl_farming/hoes.lua @@ -11,14 +11,14 @@ local function create_soil(pos, inv) if above.name == "air" then node.name = "mcl_farming:soil" minetest.set_node(pos, node) - minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.5 }, true) + minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.5 }) return true end elseif minetest.get_item_group(name, "cultivatable") == 1 then if above.name == "air" then node.name = "mcl_core:dirt" minetest.set_node(pos, node) - minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.6 }, true) + minetest.sound_play("default_dig_crumbly", { pos = pos, gain = 0.6 }) return true end end @@ -49,32 +49,20 @@ local hoe_on_place_function = function(wear_divisor) end end -local uses = { - wood = 60, - stone = 132, - iron = 251, - gold = 33, - diamond = 1562, -} - -local hoe_tt = S("Turns block into farmland") local hoe_longdesc = S("Hoes are essential tools for growing crops. They are used to create farmland in order to plant seeds on it. Hoes can also be used as very weak weapons in a pinch.") local hoe_usagehelp = S("Use the hoe on a cultivatable block (by rightclicking it) to turn it into farmland. Dirt, grass blocks and grass paths are cultivatable blocks. Using a hoe on coarse dirt turns it into dirt.") minetest.register_tool("mcl_farming:hoe_wood", { description = S("Wood Hoe"), - _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.wood), _doc_items_longdesc = hoe_longdesc, _doc_items_usagehelp = hoe_usagehelp, _doc_items_hidden = false, inventory_image = "farming_tool_woodhoe.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, - on_place = hoe_on_place_function(uses.wood), + on_place = hoe_on_place_function(60), groups = { tool=1, hoe=1 }, tool_capabilities = { full_punch_interval = 1, - damage_groups = { fleshy = 1, }, - punch_attack_uses = uses.wood, + damage_groups = { fleshy = 1, } }, _repair_material = "group:wood", }) @@ -103,17 +91,14 @@ minetest.register_craft({ minetest.register_tool("mcl_farming:hoe_stone", { description = S("Stone Hoe"), - _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.stone), _doc_items_longdesc = hoe_longdesc, _doc_items_usagehelp = hoe_usagehelp, inventory_image = "farming_tool_stonehoe.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, - on_place = hoe_on_place_function(uses.stone), + on_place = hoe_on_place_function(132), groups = { tool=1, hoe=1 }, tool_capabilities = { full_punch_interval = 0.5, - damage_groups = { fleshy = 1, }, - punch_attack_uses = uses.stone, + damage_groups = { fleshy = 1, } }, _repair_material = "mcl_core:cobblestone", }) @@ -137,18 +122,15 @@ minetest.register_craft({ minetest.register_tool("mcl_farming:hoe_iron", { description = S("Iron Hoe"), - _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.iron), _doc_items_longdesc = hoe_longdesc, _doc_items_usagehelp = hoe_usagehelp, inventory_image = "farming_tool_steelhoe.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, - on_place = hoe_on_place_function(uses.iron), + on_place = hoe_on_place_function(251), groups = { tool=1, hoe=1 }, tool_capabilities = { -- 1/3 full_punch_interval = 0.33333333, - damage_groups = { fleshy = 1, }, - punch_attack_uses = uses.iron, + damage_groups = { fleshy = 1, } }, _repair_material = "mcl_core:iron_ingot", }) @@ -179,17 +161,14 @@ minetest.register_craft({ minetest.register_tool("mcl_farming:hoe_gold", { description = S("Golden Hoe"), - _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.gold), _doc_items_longdesc = hoe_longdesc, _doc_items_usagehelp = hoe_usagehelp, inventory_image = "farming_tool_goldhoe.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, - on_place = hoe_on_place_function(uses.gold), + on_place = hoe_on_place_function(33), groups = { tool=1, hoe=1 }, tool_capabilities = { full_punch_interval = 1, - damage_groups = { fleshy = 1, }, - punch_attack_uses = uses.gold, + damage_groups = { fleshy = 1, } }, _repair_material = "mcl_core:gold_ingot", }) @@ -222,17 +201,14 @@ minetest.register_craft({ minetest.register_tool("mcl_farming:hoe_diamond", { description = S("Diamond Hoe"), - _tt_help = hoe_tt.."\n"..S("Uses: @1", uses.diamond), _doc_items_longdesc = hoe_longdesc, _doc_items_usagehelp = hoe_usagehelp, inventory_image = "farming_tool_diamondhoe.png", - wield_scale = { x = 1.8, y = 1.8, z = 1 }, - on_place = hoe_on_place_function(uses.diamond), + on_place = hoe_on_place_function(1562), groups = { tool=1, hoe=1 }, tool_capabilities = { full_punch_interval = 0.25, - damage_groups = { fleshy = 1, }, - punch_attack_uses = uses.diamond, + damage_groups = { fleshy = 1, } }, _repair_material = "mcl_core:diamond", }) diff --git a/mods/ITEMS/mcl_farming/init.lua b/mods/ITEMS/mcl_farming/init.lua index adce058e..19be5380 100644 --- a/mods/ITEMS/mcl_farming/init.lua +++ b/mods/ITEMS/mcl_farming/init.lua @@ -1,3 +1,4 @@ +local init = os.clock() mcl_farming = {} -- IMPORTANT API AND HELPER FUNCTIONS -- @@ -27,3 +28,6 @@ dofile(minetest.get_modpath("mcl_farming").."/potatoes.lua") -- ========= BEETROOT ========= dofile(minetest.get_modpath("mcl_farming").."/beetroot.lua") + +local time_to_load= os.clock() - init +print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load)) diff --git a/mods/ITEMS/mcl_farming/locale/mcl_farming.de.tr b/mods/ITEMS/mcl_farming/locale/mcl_farming.de.tr index 54b35630..7f14774c 100644 --- a/mods/ITEMS/mcl_farming/locale/mcl_farming.de.tr +++ b/mods/ITEMS/mcl_farming/locale/mcl_farming.de.tr @@ -66,7 +66,7 @@ A mature pumpkin stem attempts to grow a pumpkin at one of its four adjacent blo Faceless Pumpkin=Gesichtsloser Kürbis A faceless pumpkin is a decorative block. It can be carved with shears to obtain pumpkin seeds.=Ein gesichtsloser Kürbis ist ein dekorativer Block. Mit einer Schere kann man in ihm ein Muster schnitzen, um Kürbissamen zu erhalten. Pumpkin=Kürbis -A pumpkin can be worn as a helmet. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.=Einen Kürbis kann zum Spaß als Helm getragen werden, aber er bietet keinen Schutz. Kürbisse wachsen aus Kürbisstängeln, welche wiederum aus Kürbissamen wachsen. +A pumpkin can be worn as a helmet for fun, but it doesn't offer any protection. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.=Einen Kürbis kann zum Spaß als Helm getragen werden, aber er bietet keinen Schutz. Kürbisse wachsen aus Kürbisstängeln, welche wiederum aus Kürbissamen wachsen. Jack o'Lantern=Kürbislaterne A jack o'lantern is a traditional Halloween decoration made from a pumpkin. It glows brightly.=Eine Kürbislaterne ist eine traditionelle Dekoration für Halloween. Sie leuchtet hell. Pumpkin Pie=Kürbiskuchen @@ -91,9 +91,3 @@ Hay Bale=Heuballen Hay bales are decorative blocks made from wheat.=Heuballen sind dekorative Blöcke, die aus Weizen gemacht sind. To carve a face into the pumpkin, use the shears on the side you want to carve.=Um ein Gesicht in den Kürbis zu schnitzen, benutzen Sie die Schere an der Seite, die Sie schnitzen wollen. Use the “Place” key on an animal to try to feed it wheat.=Benutzen Sie die „Platzieren“-Taste auf einem Tier, um zu versuchen, es zu füttern. -Grows on farmland=Wächst auf Ackerboden -Turns block into farmland=Macht Block zu Ackerboden -60% chance of poisoning=60% Vergiftungswahrscheinlichkeit -Surface for crops=Boden für Nutzpflanzen -Can become wet=Kann nass werden -Uses: @1=Verwendungen: @1 diff --git a/mods/ITEMS/mcl_farming/locale/mcl_farming.es.tr b/mods/ITEMS/mcl_farming/locale/mcl_farming.es.tr deleted file mode 100644 index 8366e825..00000000 --- a/mods/ITEMS/mcl_farming/locale/mcl_farming.es.tr +++ /dev/null @@ -1,93 +0,0 @@ -# textdomain: mcl_farming -Beetroot Seeds=Semillas de remolacha -Grows into a beetroot plant. Chickens like beetroot seeds.=Crece en una planta de remolacha. A los pollos les gustan las semillas de remolacha. -Place the beetroot seeds on farmland (which can be created with a hoe) to plant a beetroot plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it beetroot seeds.=Coloque las semillas de remolacha en tierras de cultivo (que se pueden crear con una azada) para plantar una planta de remolacha. Crecen a la luz del sol y crecen más rápido en tierras de cultivo hidratadas. Haga clic derecho en un animal para alimentarlo con semillas de remolacha. -Premature Beetroot Plant (Stage 1)=Planta de remolacha prematura (Etapa 1) -Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Las plantas de remolacha son plantas que crecen en tierras de cultivo bajo la luz solar en 4 etapas. En tierras de cultivo hidratadas, crecen un poco más rápido. Se pueden cosechar en cualquier momento, pero solo generarán ganancias cuando maduren. -Premature Beetroot Plant=Planta de remolacha prematura -Premature Beetroot Plant (Stage 2)=Planta de remolacha prematura (Etapa 2) -Premature Beetroot Plant (Stage 3)=Planta de remolacha prematura (Etapa 3) -Mature Beetroot Plant=Planta de remolacha madura -A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further.=Una planta de remolacha madura es una planta de cultivo que está lista para ser cosechada para una remolacha y algunas semillas de remolacha. No crecerá más. -Beetroot=Remolacha -Beetroots are both used as food item and a dye ingredient. Pigs like beetroots, too.=Las remolachas se usan como alimento y como colorante. A los cerdos también les gustan las remolachas. -Hold it in your hand and right-click to eat it. Rightclick an animal to feed it.=Sostenlo en tu mano y haz clic derecho para comértelo. Haga clic derecho en un animal para alimentarlo. -Beetroot Soup=Estofado de remolacha -Beetroot soup is a food item.=El estofado de remolacha es un alimento. -Premature Carrot Plant=Planta de zanahoria prematura -Carrot plants are plants which grow on farmland under sunlight in 8 stages, but only 4 stages can be visually told apart. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Las plantas de zanahoria son plantas que crecen en tierras de cultivo bajo la luz solar en 8 etapas, pero solo 4 etapas se pueden distinguir visualmente. En tierras de cultivo hidratadas, crecen un poco más rápido. Se pueden cosechar en cualquier momento, pero solo generarán ganancias cuando maduren. -Premature Carrot Plant (Stage @1)=Planta de zanahoria prematura (Etapa @1) -Mature Carrot Plant=Planta de zanahoria madura -Mature carrot plants are ready to be harvested for carrots. They won't grow any further.=Las plantas de zanahoria maduras están listas para ser cosechadas para zanahorias. No crecerán más. -Carrot=Zanahoria -Carrots can be eaten and planted. Pigs and rabbits like carrots.=Las zanahorias se pueden comer y plantar. A los cerdos y conejos les gustan las zanahorias. -Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant the carrot. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it.=Sostenlo en tu mano y haz clic derecho para comértelo. Colóquelo encima de las tierras de cultivo para plantar la zanahoria. Crece a la luz del sol y crece más rápido en tierras de cultivo hidratadas. Haga clic derecho en un animal para alimentarlo. -Golden Carrot=Zanahoria dorada -A golden carrot is a precious food item which can be eaten. It is really, really filling!=Una zanahoria dorada es un alimento precioso que se puede comer. ¡Es realmente, realmente abundante! -Hoes are essential tools for growing crops. They are used to create farmland in order to plant seeds on it. Hoes can also be used as very weak weapons in a pinch.=Las azadas son herramientas esenciales para el cultivo. Se utilizan para crear tierras de cultivo para plantar semillas en él. Las azadas también se pueden usar como armas muy débiles en caso de apuro. -Use the hoe on a cultivatable block (by rightclicking it) to turn it into farmland. Dirt, grass blocks and grass paths are cultivatable blocks. Using a hoe on coarse dirt turns it into dirt.=Use la azada en un bloque cultivable (al hacer clic derecho) para convertirlo en tierras de cultivo. La tierra, los bloques de hierba y los caminos de hierba son bloques cultivables. Usar una azada en tierra gruesa la convierte en tierra. -Wood Hoe=Azada de madera -Stone Hoe=Azada de piedra -Iron Hoe=Azada de hierro -Golden Hoe=Azada de oro -Diamond Hoe=Azada de diamante -Melon Seeds=Semillas de sandía -Place the melon seeds on farmland (which can be created with a hoe) to plant a melon stem. Melon stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem will attempt to grow a melon at the side. Rightclick an animal to feed it melon seeds.=Coloque las semillas de sandía en tierras de cultivo (que se pueden crear con una azada) para plantar un tallo de sandía. Los tallos de sandía crecen a la luz del sol y crecen más rápido en tierras de cultivo hidratadas. Cuando esté maduro, el tallo intentará cultivar un sandía a un lado. Haga clic derecho en un animal para alimentarlo con semillas de sandía. -Melon=Sandía -Grows into a melon stem which in turn grows melons. Chickens like melon seeds.=Crece en un tallo de sandía que a su vez produce melones. A las gallinas les gustan las semillas de sandía. -A melon is a block which can be grown from melon stems, which in turn are grown from melon seeds. It can be harvested for melon slices.=Un sandía es un bloque que se puede cultivar a partir de tallos de sandía, que a su vez se cultivan a partir de semillas de sandía. Se puede cosechar para rebanadas de sandía. -Premature Melon Stem=Tallo de sandía prematuro -Melon stems grow on farmland in 8 stages. On hydrated farmland, the growth is a bit quicker. Mature melon stems are able to grow melons.=Los tallos de sandía crecen en tierras de cultivo en 8 etapas. En tierras de cultivo hidratadas, el crecimiento es un poco más rápido. Los tallos de sandía maduros pueden cultivar melones. -Premature Melon Stem (Stage @1)=Tallo de sandía prematuro (Etapa @1) -Mature Melon Stem=Tallo de sandía maduro -A mature melon stem attempts to grow a melon at one of its four adjacent blocks. A melon can only grow on top of farmland, dirt, or a grass block. When a melon is next to a melon stem, the melon stem immediately bends and connects to the melon. While connected, a melon stem can't grow another melon. As soon all melons around the stem have been removed, it loses the connection and is ready to grow another melon.=Un tallo de sandía maduro intenta cultivar un sandía en uno de sus cuatro bloques adyacentes. Un sandía solo puede crecer sobre tierras de cultivo, tierra o un bloque de hierba. Cuando un sandía está al lado de un tallo, el tallo se dobla inmediatamente y se conecta al sandía. Mientras está conectado, un tallo de sandía no puede cultivar otro sandía. Tan pronto como se hayan eliminado todos los melones alrededor del tallo, pierde la conexión y está listo para cultivar otro sandía. -Melon Slice=Rodaja de sandía -This is a food item which can be eaten.=Este es un alimento que se puede comer. -Premature Potato Plant=Planta de patata prematura -Potato plants are plants which grow on farmland under sunlight in 8 stages, but only 4 stages can be visually told apart. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Las plantas de patata son plantas que crecen en tierras de cultivo bajo la luz solar en 8 etapas, pero solo 4 etapas se pueden distinguir visualmente. En tierras de cultivo hidratadas, crecen un poco más rápido. Se pueden cosechar en cualquier momento, pero solo generarán ganancias cuando maduren. -Premature Potato Plant (Stage @1)=Planta de patata prematura (Etapa @1) -Mature Potato Plant=Planta de patata madura -Mature potato plants are ready to be harvested for potatoes. They won't grow any further.=Las plantas de patatas maduras están listas para ser cosechadas. No crecerán más. -Potato=Patata -Potatoes are food items which can be eaten, cooked in the furnace and planted. Pigs like potatoes.=Las patatas son alimentos que se pueden comer, cocinar en el horno y plantar. A los cerdos les gustan las patatas. -Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant it. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it.=Sostenlo en tu mano y haz clic derecho para comértelo. Colóquelo encima de las tierras de cultivo para plantarlo. Crece a la luz del sol y crece más rápido en tierras de cultivo hidratadas. Haga clic derecho en un animal para alimentarlo. -Baked Potato=Patata cocida -Baked potatoes are food items which are more filling than the unbaked ones.=Las patatas cocidas son alimentos que llenan más que las que no están cocidas. -Poisonous Potato=Patata venenosa -This potato doesn't look too healthy. You can eat it to restore hunger points, but there's a 60% chance it will poison you briefly.=Esta patata no se ve muy saludable. Puedes comerla para restablecer los puntos de hambre, pero hay un 60% de posibilidades de que te envenene brevemente. -Pumpkin Seeds=Semillas de calabaza -Grows into a pumpkin stem which in turn grows pumpkins. Chickens like pumpkin seeds.=Crece en un tallo de calabaza que a su vez produce calabazas. A los pollos les gustan las semillas de calabaza. -Place the pumpkin seeds on farmland (which can be created with a hoe) to plant a pumpkin stem. Pumpkin stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem attempts to grow a pumpkin next to it. Rightclick an animal to feed it pumpkin seeds.=Coloque las semillas de calabaza en tierras de cultivo (que se pueden crear con una azada) para plantar un tallo de calabaza. Los tallos de calabaza crecen a la luz del sol y crecen más rápido en tierras de cultivo hidratadas. Cuando está maduro, el tallo intenta cultivar una calabaza junto a él. Haga clic derecho en un animal para alimentarlo con semillas de calabaza. -Premature Pumpkin Stem=Tallo de calabaza prematuro -Pumpkin stems grow on farmland in 8 stages. On hydrated farmland, the growth is a bit quicker. Mature pumpkin stems are able to grow pumpkins.=Los tallos de calabaza crecen en tierras de cultivo en 8 etapas. En tierras de cultivo hidratadas, el crecimiento es un poco más rápido. Los tallos de calabaza maduros pueden cultivar calabazas. -Premature Pumpkin Stem (Stage @1)=Tallo de calabaza prematuro (Etapa @1) -Mature Pumpkin Stem=Tallo maduro de calabaza -A mature pumpkin stem attempts to grow a pumpkin at one of its four adjacent blocks. A pumpkin can only grow on top of farmland, dirt or a grass block. When a pumpkin is next to a pumpkin stem, the pumpkin stem immediately bends and connects to the pumpkin. A connected pumpkin stem can't grow another pumpkin. As soon all pumpkins around the stem have been removed, it loses the connection and is ready to grow another pumpkin.=Un tallo maduro de calabaza intenta cultivar una calabaza en uno de sus cuatro bloques adyacentes. Una calabaza solo puede crecer sobre tierras de cultivo, tierra o un bloque de hierba. Cuando una calabaza está al lado de un tallo de calabaza, el tallo de la calabaza se dobla inmediatamente y se conecta a la calabaza. Un tallo de calabaza conectado no puede cultivar otra calabaza. Tan pronto como se hayan eliminado todas las calabazas alrededor del tallo, pierde la conexión y está lista para cultivar otra calabaza. -Faceless Pumpkin=Calabaza sin rostro -A faceless pumpkin is a decorative block. It can be carved with shears to obtain pumpkin seeds.=Una calabaza sin rostro es un bloque decorativo. Se puede tallar con tijeras para obtener semillas de calabaza. -Pumpkin=Calabaza -A pumpkin can be worn as a helmet for fun, but it doesn't offer any protection. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.=Una calabaza se puede usar como casco por diversión, pero no ofrece ninguna protección. Las calabazas crecen de tallos de calabaza, que a su vez crecen de semillas de calabaza. -Jack o'Lantern=Calabaza de Halloween -A jack o'lantern is a traditional Halloween decoration made from a pumpkin. It glows brightly.=La calabaza de Halloween es una decoración tradicional de Halloween hecha de una calabaza. Brilla intensamente. -Pumpkin Pie=Tarta de calabaza -A pumpkin pie is a tasty food item which can be eaten.=Un tarta de calabaza es un alimento sabroso que se puede comer. -Farmland=Tierra de cultivo -Farmland is used for farming, a necessary surface to plant crops. It is created when a hoe is used on dirt or a similar block. Plants are able to grow on farmland, but slowly. Farmland will become hydrated farmland (on which plants grow faster) when it rains or a water source is nearby. This block will turn back to dirt when a solid block appears above it or a piston arm extends above it.=Las tierras de cultivo se utilizan para la agricultura, una superficie necesaria para plantar cultivos. Se crea cuando se usa una azada sobre tierra o un bloque similar. Las plantas pueden crecer en tierras de cultivo, pero lentamente. Las tierras de cultivo se convertirán en tierras de cultivo hidratadas (en las cuales las plantas crecen más rápido) cuando llueve o hay una fuente de agua cerca. Este bloque volverá a convertirse en tierra cuando aparezca un bloque sólido sobre él o un brazo de pistón se extienda sobre él. -Hydrated Farmland=Tierra de cultivo hidratada -Hydrated farmland is used in farming, this is where you can plant and grow some plants. It is created when farmland is under rain or near water. Without water, this block will dry out eventually. This block will turn back to dirt when a solid block appears above it or a piston arm extends above it.=Las tierras de cultivo hidratadas se usan en la agricultura, aquí es donde puedes plantar y cultivar algunas plantas. Se crea cuando las tierras de cultivo están bajo la lluvia o cerca del agua. Sin agua, este bloque se secará eventualmente. Este bloque volverá a convertirse en tierra cuando aparezca un bloque sólido sobre él o un brazo de pistón se extienda sobre él. -Wheat Seeds=Semillas de trigo -Grows into a wheat plant. Chickens like wheat seeds.=Crece en una planta de trigo. A las gallinas les gustan las semillas de trigo. -Place the wheat seeds on farmland (which can be created with a hoe) to plant a wheat plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it wheat seeds.=Coloque las semillas de trigo en tierras de cultivo (que se pueden crear con una azada) para plantar una planta de trigo. Crecen a la luz del sol y crecen más rápido en tierras de cultivo hidratadas. Haga clic derecho en un animal para alimentarlo con semillas de trigo. -Premature Wheat Plant=Planta de trigo prematuro -Premature wheat plants grow on farmland under sunlight in 8 stages. On hydrated farmland, they grow faster. They can be harvested at any time but will only yield a profit when mature.=Las plantas de trigo prematuras crecen en tierras de cultivo bajo la luz solar en 8 etapas. En tierras de cultivo hidratadas, crecen más rápido. Se pueden cosechar en cualquier momento, pero solo generarán ganancias cuando maduren. -Premature Wheat Plant (Stage @1)=Planta de trigo prematuro (Etapa @1) -Mature Wheat Plant=Planta de trigo maduro -Mature wheat plants are ready to be harvested for wheat and wheat seeds. They won't grow any further.=Las plantas maduras de trigo están listas para ser cosechadas, las semillas de trigo no crecerán más. -Wheat=Trigo -Wheat is used in crafting. Some animals like wheat.=El trigo se usa en la elaboración. A algunos animales les gusta el trigo. -Cookie=Galleta -Bread=Pan -Hay Bale=Fardo de heno -Hay bales are decorative blocks made from wheat.=Las balas de heno son bloques decorativos hechos de trigo. -To carve a face into the pumpkin, use the shears on the side you want to carve.=Para tallar una cara en la calabaza, use las tijeras en el lado que desea tallar. -Use the “Place” key on an animal to try to feed it wheat.=Use la tecla "Colocar" en un animal para tratar de alimentarlo con trigo. diff --git a/mods/ITEMS/mcl_farming/locale/mcl_farming.fr.tr b/mods/ITEMS/mcl_farming/locale/mcl_farming.fr.tr deleted file mode 100644 index 5ee1bcdf..00000000 --- a/mods/ITEMS/mcl_farming/locale/mcl_farming.fr.tr +++ /dev/null @@ -1,99 +0,0 @@ -# textdomain: mcl_farming -Beetroot Seeds=Graines de Betterave -Grows into a beetroot plant. Chickens like beetroot seeds.=Pousse en bettrave. Les poulets aiment les graines de betterave -Place the beetroot seeds on farmland (which can be created with a hoe) to plant a beetroot plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it beetroot seeds.=Placez les graines de betterave sur les terres agricoles (qui peuvent être créées avec une houe) pour planter un plant de betterave. Elles poussent au soleil et poussent plus vite sur les terres agricoles hydratées. Faites un clic droit sur un animal pour le nourrir de graines de betteraves. -Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Les plants de betteraves poussent sur les terres agricoles sous le soleil en 4 étapes. Sur les terres agricoles hydratées, elles poussent un peu plus vite. Elles peuvent être récoltées à tout moment mais ne rapporteront de bénéfices qu'à maturité. -Premature Beetroot Plant=Plant de Betterave Prématurée -Premature Beetroot Plant (Stage 1)=Plant de Betterave Prématurée (Etape 1) -Premature Beetroot Plant (Stage 2)=Plant de Betterave Prématurée (Etape 2) -Premature Beetroot Plant (Stage 3)=Plant de Betterave Prématurée (Etape 3) -Mature Beetroot Plant=Betterave Mature -A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further.=Une betterave mature est une plante agricole prête à être récoltée pour une betterave et quelques graines de betterave. Elle ne grandira plus. -Beetroot=Betterave -Beetroots are both used as food item and a dye ingredient. Pigs like beetroots, too.=Les betteraves sont à la fois utilisées comme aliment et comme ingrédient colorant. Les porcs aiment aussi les betteraves. -Hold it in your hand and right-click to eat it. Rightclick an animal to feed it.=Tenez-le dans votre main et faites un clic droit pour le manger. Faites un clic droit sur un animal pour le nourrir. -Beetroot Soup=Soupe de Betterave -Beetroot soup is a food item.=La soupe de betterave est un aliment. -Premature Carrot Plant=Plant de Carrote Prématurée -Carrot plants are plants which grow on farmland under sunlight in 8 stages, but only 4 stages can be visually told apart. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Les plants de carotte sont des plantes qui poussent sur les terres agricoles sous la lumière du soleil en 8 étapes, mais seulement 4 étapes peuvent être distinguées visuellement. Sur les terres agricoles hydratées, elles poussent un peu plus vite. Ils peuvent être récoltés à tout moment mais ne rapporteront de bénéfices qu'à maturité. -Premature Carrot Plant (Stage @1)=Plant de Carrote Prématurée (Etape 1) -Mature Carrot Plant=Plant de Carotte Mature -Mature carrot plants are ready to be harvested for carrots. They won't grow any further.=Les plants de carottes matures sont prêts à être récoltés pour les carottes. Ils ne grandiront plus. -Carrot=Carrotte -Carrots can be eaten and planted. Pigs and rabbits like carrots.=Les carottes peuvent être mangées et plantées. Les cochons et les lapins comme les carottes. -Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant the carrot. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it.=Tenez-la dans votre main et faites un clic droit pour le manger. Placez-le au-dessus des terres agricoles pour planter la carotte. Elle pousse au soleil et pousse plus vite sur les terres agricoles hydratées. Faites un clic droit sur un animal pour le nourrir. -Golden Carrot=Carrot Dorée -A golden carrot is a precious food item which can be eaten. It is really, really filling!=Une carotte dorée est un aliment précieux qui peut être mangé. C'est vraiment, vraiment rassasiant! -Hoes are essential tools for growing crops. They are used to create farmland in order to plant seeds on it. Hoes can also be used as very weak weapons in a pinch.=Les houes sont des outils essentiels pour faire pousser des cultures. Ils sont utilisés pour créer des terres agricoles afin d'y planter des graines. Les houes peuvent également être utilisées comme armes très faibles à la rigueur. -Use the hoe on a cultivatable block (by rightclicking it) to turn it into farmland. Dirt, grass blocks and grass paths are cultivatable blocks. Using a hoe on coarse dirt turns it into dirt.=Utilisez la houe sur un bloc cultivable (en cliquant dessus avec le bouton droit) pour le transformer en terre agricole. La saleté, les blocs d'herbe et les chemins d'herbe sont des blocs cultivables. L'utilisation d'une houe sur la terre grossière la transforme en terre. -Wood Hoe=Houe en Bois -Stone Hoe=Houe en Pierre -Iron Hoe=Houe en Fer -Golden Hoe=Houe en Or -Diamond Hoe=Houe en Diamant -Melon Seeds=Graine de Pastèque -Grows into a melon stem which in turn grows melons. Chickens like melon seeds.=Se développe en une tige de pastèque qui à son tour forme des pastèques. Les poulets aiment les graines de pastèque. -Place the melon seeds on farmland (which can be created with a hoe) to plant a melon stem. Melon stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem will attempt to grow a melon at the side. Rightclick an animal to feed it melon seeds.=Placez les graines de pastèque sur les terres agricoles (qui peuvent être créées avec une houe) pour planter une tige de pastèque. Les tiges de pastèque poussent au soleil et se développent plus rapidement sur les terres agricoles hydratées. À maturité, la tige tentera de faire pousser une pastèque sur le côté. Faites un clic droit sur un animal pour le nourrir de graines de pastèque. -Melon=Pastèque -A melon is a block which can be grown from melon stems, which in turn are grown from melon seeds. It can be harvested for melon slices.=Une pastèque est un bloc qui peut être cultivé à partir de tiges de pastèque, qui à leur tour sont cultivées à partir de graines de pastèque. Elle peut être récoltée pour des tranches de pastèque. -Premature Melon Stem=Tige de Pastèque Prématurée -Melon stems grow on farmland in 8 stages. On hydrated farmland, the growth is a bit quicker. Mature melon stems are able to grow melons.=Les tiges de pastèque poussent sur les terres agricoles en 8 étapes. Sur les terres agricoles hydratées, la croissance est un peu plus rapide. Les tiges de pastèque matures sont capables de faire pousser des pastèques. -Premature Melon Stem (Stage @1)=Tige de Pastèque Prématurée (Etape @1) -Mature Melon Stem=Tige de Pastèque Mature -A mature melon stem attempts to grow a melon at one of its four adjacent blocks. A melon can only grow on top of farmland, dirt, or a grass block. When a melon is next to a melon stem, the melon stem immediately bends and connects to the melon. While connected, a melon stem can't grow another melon. As soon all melons around the stem have been removed, it loses the connection and is ready to grow another melon.=Une tige de pastèque mature tente de faire pousser un pastèque sur l'un de ses quatre blocs adjacents. Une pastèque ne peut pousser que sur des terres agricoles, de la terre ou un bloc d'herbe. Lorsqu'une pastèque est à côté d'une tige de pastèque, la tige de pastèque se plie immédiatement et se connecte au melon. Lorsqu'elle est connectée, une tige de pastèque ne peut pas faire pousser une autre pastèque. Dès que tous les pastèques autour de la tige ont été supprimés, elle perd la connexion et est prêt à faire pousser une autre pastèque. -Melon Slice=Tranche de Pastèque -This is a food item which can be eaten.=Il s'agit d'un aliment qui peut être mangé. -Premature Potato Plant=Plant de Pomme de Terre Prématuré -Potato plants are plants which grow on farmland under sunlight in 8 stages, but only 4 stages can be visually told apart. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature.=Les plants de pommes de terre sont des plants qui poussent sur les terres agricoles sous la lumière du soleil en 8 étapes, mais seulement 4 étapes peuvent être distinguées visuellement. Sur les terres agricoles hydratées, elles poussent un peu plus vite. Ils peuvent être récoltés à tout moment mais ne rapporteront de bénéfices qu'à maturité. -Premature Potato Plant (Stage @1)=Plant de pomme de terre prématuré (Etape @1) -Mature Potato Plant=Plant de Pomme de Terre Mature -Mature potato plants are ready to be harvested for potatoes. They won't grow any further.=Les plants de pommes de terre matures sont prêts à être récoltés pour les pommes de terre. Ils ne grandiront plus. -Potato=Pomme de terre -Potatoes are food items which can be eaten, cooked in the furnace and planted. Pigs like potatoes.=Les pommes de terre sont des aliments qui peuvent être consommés, cuits au four et plantés. Des porcs comme des pommes de terre. -Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant it. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it.=Tenez-le dans votre main et faites un clic droit pour le manger. Placez-le au-dessus des terres agricoles pour le planter. Il pousse au soleil et pousse plus vite sur les terres agricoles hydratées. Faites un clic droit sur un animal pour le nourrir. -Baked Potato=Pomme de Terre au Four -Baked potatoes are food items which are more filling than the unbaked ones.=Les pommes de terre au four sont des aliments qui sont plus copieux que ceux non cuits. -Poisonous Potato=Pomme de Terre Toxique -This potato doesn't look too healthy. You can eat it to restore hunger points, but there's a 60% chance it will poison you briefly.=Cette pomme de terre n'a pas l'air trop saine. Vous pouvez le manger pour restaurer des points de faim, mais il y a 60% de chances qu'il vous empoisonne brièvement. -Pumpkin Seeds=Graines de Citrouille -Grows into a pumpkin stem which in turn grows pumpkins. Chickens like pumpkin seeds.=Pousse dans une tige de citrouille qui à son tour fait pousser des citrouilles. Les poulets aiment des graines de citrouille. -Place the pumpkin seeds on farmland (which can be created with a hoe) to plant a pumpkin stem. Pumpkin stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem attempts to grow a pumpkin next to it. Rightclick an animal to feed it pumpkin seeds.=Placez les graines de citrouille sur les terres agricoles (qui peuvent être créées avec une houe) pour planter une tige de citrouille. Les tiges de citrouille poussent au soleil et poussent plus vite sur les terres agricoles hydratées. À maturité, la tige tente de faire pousser une citrouille à côté d'elle. Faites un clic droit sur un animal pour le nourrir de graines de citrouille. -Premature Pumpkin Stem=Tige de Citrouille Prématurée -Pumpkin stems grow on farmland in 8 stages. On hydrated farmland, the growth is a bit quicker. Mature pumpkin stems are able to grow pumpkins.=Les tiges de citrouille poussent sur les terres agricoles en 8 étapes. Sur les terres agricoles hydratées, la croissance est un peu plus rapide. Les tiges de citrouille matures peuvent faire pousser des citrouilles. -Premature Pumpkin Stem (Stage @1)=Tige de Citrouille Prématurée (Etape @1) -Mature Pumpkin Stem=Tige de Citrouille Mature -A mature pumpkin stem attempts to grow a pumpkin at one of its four adjacent blocks. A pumpkin can only grow on top of farmland, dirt or a grass block. When a pumpkin is next to a pumpkin stem, the pumpkin stem immediately bends and connects to the pumpkin. A connected pumpkin stem can't grow another pumpkin. As soon all pumpkins around the stem have been removed, it loses the connection and is ready to grow another pumpkin.=Une tige de citrouille mature tente de faire pousser une citrouille dans l'un de ses quatre blocs adjacents. Une citrouille ne peut pousser que sur des terres agricoles, de la terre ou un bloc d'herbe. Lorsqu'une citrouille est à côté d'une tige de citrouille, la tige de citrouille se plie immédiatement et se connecte à la citrouille. Une tige de citrouille connectée ne peut pas faire pousser une autre citrouille. Dès que toutes les citrouilles autour de la tige ont été retirées, elle perd la connexion et est prête à faire pousser une autre citrouille. -Faceless Pumpkin=Citrouille sans visage -A faceless pumpkin is a decorative block. It can be carved with shears to obtain pumpkin seeds.=Une citrouille sans visage est un bloc décoratif. Il peut être sculpté avec une cisaille pour obtenir des graines de citrouille. -Pumpkin=Citrouille -A pumpkin can be worn as a helmet. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.=Une citrouille peut être portée comme un casque. Les citrouilles poussent à partir de tiges de citrouille, qui à leur tour poussent à partir de graines de citrouille. -Jack o'Lantern=Citrouille-lanterne -A jack o'lantern is a traditional Halloween decoration made from a pumpkin. It glows brightly.=Une citrouille-lanterne est une décoration traditionnelle d'Halloween à base de citrouille. Il brille de mille feux. -Pumpkin Pie=Tarte à la Citrouille -A pumpkin pie is a tasty food item which can be eaten.=Une tarte à la citrouille est un aliment savoureux qui peut être mangé. -Farmland=Terres Agricoles -Farmland is used for farming, a necessary surface to plant crops. It is created when a hoe is used on dirt or a similar block. Plants are able to grow on farmland, but slowly. Farmland will become hydrated farmland (on which plants grow faster) when it rains or a water source is nearby. This block will turn back to dirt when a solid block appears above it or a piston arm extends above it.=Les terres agricoles sont utilisées pour l'agriculture, une surface nécessaire pour planter des cultures. Il est créé lorsqu'une houe est utilisée sur de la terre ou un bloc similaire. Les plantes peuvent pousser sur les terres agricoles, mais lentement. Les terres agricoles deviendront des terres agricoles hydratées (sur lesquelles les plantes poussent plus rapidement) lorsqu'il pleut ou lorsqu'une source d'eau est à proximité. Ce bloc redeviendra de la terre lorsqu'un bloc solide apparaît au-dessus ou qu'un bras de piston s'étend au-dessus. -Hydrated Farmland=Terres Agricoles Hydratées -Hydrated farmland is used in farming, this is where you can plant and grow some plants. It is created when farmland is under rain or near water. Without water, this block will dry out eventually. This block will turn back to dirt when a solid block appears above it or a piston arm extends above it.=Les terres agricoles hydratées sont utilisées dans l'agriculture, c'est là que vous pouvez planter et faire pousser certaines plantes. Il est créé lorsque les terres agricoles sont sous la pluie ou près de l'eau. Sans eau, ce bloc finira par se dessécher. Ce bloc redeviendra de la terre lorsqu'un bloc solide apparaît au-dessus ou qu'un bras de piston s'étend au-dessus. -Wheat Seeds=Graines de blé -Grows into a wheat plant. Chickens like wheat seeds.=Se transforme en blé. Les poulets aiment les graines de blé. -Place the wheat seeds on farmland (which can be created with a hoe) to plant a wheat plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it wheat seeds.=Placez les graines de blé sur les terres agricoles (qui peuvent être créées avec une houe) pour planter une plante de blé. Ils poussent au soleil et poussent plus vite sur les terres agricoles hydratées. Faites un clic droit sur un animal pour le nourrir de graines de blé. -Premature Wheat Plant=Plant de Blé Prématurée -Premature wheat plants grow on farmland under sunlight in 8 stages. On hydrated farmland, they grow faster. They can be harvested at any time but will only yield a profit when mature.=Les plants de blé prématurés poussent sur les terres agricoles sous la lumière du soleil en 8 étapes. Sur les terres agricoles hydratées, ils croissent plus rapidement. Ils peuvent être récoltés à tout moment mais ne rapporteront de bénéfices qu'à maturité. -Premature Wheat Plant (Stage @1)=Plant de blé prématurée (Etape @1) -Mature Wheat Plant=Plant de Blé Maturée -Mature wheat plants are ready to be harvested for wheat and wheat seeds. They won't grow any further.=Les plants de blé matures sont prêts à être récoltés pour le blé et les graines de blé. Ils ne grandiront plus. -Wheat=Blé -Wheat is used in crafting. Some animals like wheat.=Le blé est utilisé dans l'artisanat. Certains animaux aiment le blé. -Cookie=Cookie -Bread=Pain -Hay Bale=Balle de Foin -Hay bales are decorative blocks made from wheat.=Les balles de foin sont des blocs décoratifs en blé. -To carve a face into the pumpkin, use the shears on the side you want to carve.=Pour sculpter un visage dans la citrouille, utilisez les cisailles du côté que vous souhaitez sculpter. -Use the “Place” key on an animal to try to feed it wheat.=Utilisez la touche "Placer" sur un animal pour essayer de le nourrir de blé. -Grows on farmland=Pousse sur les terres agricoles -Turns block into farmland=Transforme un bloc en terres agricoles -60% chance of poisoning=60% de chances d'empoisonnement -Surface for crops=Surface pour les cultures -Can become wet=Peut devenir humide -Uses: @1=Utilisations: @1 diff --git a/mods/ITEMS/mcl_farming/locale/template.txt b/mods/ITEMS/mcl_farming/locale/template.txt index 7359fefa..fb124df6 100644 --- a/mods/ITEMS/mcl_farming/locale/template.txt +++ b/mods/ITEMS/mcl_farming/locale/template.txt @@ -66,7 +66,7 @@ A mature pumpkin stem attempts to grow a pumpkin at one of its four adjacent blo Faceless Pumpkin= A faceless pumpkin is a decorative block. It can be carved with shears to obtain pumpkin seeds.= Pumpkin= -A pumpkin can be worn as a helmet. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.= +A pumpkin can be worn as a helmet for fun, but it doesn't offer any protection. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.= Jack o'Lantern= A jack o'lantern is a traditional Halloween decoration made from a pumpkin. It glows brightly.= Pumpkin Pie= @@ -91,9 +91,3 @@ Hay Bale= Hay bales are decorative blocks made from wheat.= To carve a face into the pumpkin, use the shears on the side you want to carve.= Use the “Place” key on an animal to try to feed it wheat.= -Grows on farmland= -Turns block into farmland= -60% chance of poisoning= -Surface for crops= -Can become wet= -Uses: @1= diff --git a/mods/ITEMS/mcl_farming/melon.lua b/mods/ITEMS/mcl_farming/melon.lua index 43ff7b0f..18eb7faa 100644 --- a/mods/ITEMS/mcl_farming/melon.lua +++ b/mods/ITEMS/mcl_farming/melon.lua @@ -3,7 +3,6 @@ local S = minetest.get_translator("mcl_farming") -- Seeds minetest.register_craftitem("mcl_farming:melon_seeds", { description = S("Melon Seeds"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Grows into a melon stem which in turn grows melons. Chickens like melon seeds."), _doc_items_usagehelp = S("Place the melon seeds on farmland (which can be created with a hoe) to plant a melon stem. Melon stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem will attempt to grow a melon at the side. Rightclick an animal to feed it melon seeds."), stack_max = 64, @@ -33,7 +32,7 @@ local melon_base_def = { } }, sounds = mcl_sounds.node_sound_wood_defaults(), - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, _mcl_hardness = 1, } diff --git a/mods/ITEMS/mcl_farming/potatoes.lua b/mods/ITEMS/mcl_farming/potatoes.lua index 2d8978df..0ffbd1fa 100644 --- a/mods/ITEMS/mcl_farming/potatoes.lua +++ b/mods/ITEMS/mcl_farming/potatoes.lua @@ -87,7 +87,6 @@ minetest.register_node("mcl_farming:potato", { minetest.register_craftitem("mcl_farming:potato_item", { description = S("Potato"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Potatoes are food items which can be eaten, cooked in the furnace and planted. Pigs like potatoes."), _doc_items_usagehelp = S("Hold it in your hand and rightclick to eat it. Place it on top of farmland to plant it. It grows in sunlight and grows faster on hydrated farmland. Rightclick an animal to feed it."), inventory_image = "farming_potato.png", @@ -118,7 +117,6 @@ minetest.register_craftitem("mcl_farming:potato_item_baked", { minetest.register_craftitem("mcl_farming:potato_item_poison", { description = S("Poisonous Potato"), - _tt_help = minetest.colorize("#FFFF00", S("60% chance of poisoning")), _doc_items_longdesc = S("This potato doesn't look too healthy. You can eat it to restore hunger points, but there's a 60% chance it will poison you briefly."), stack_max = 64, inventory_image = "farming_potato_poison.png", diff --git a/mods/ITEMS/mcl_farming/pumpkin.lua b/mods/ITEMS/mcl_farming/pumpkin.lua index 5fc9a4e3..d1043747 100644 --- a/mods/ITEMS/mcl_farming/pumpkin.lua +++ b/mods/ITEMS/mcl_farming/pumpkin.lua @@ -1,15 +1,8 @@ local S = minetest.get_translator("mcl_farming") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_simple -end - -- Seeds minetest.register_craftitem("mcl_farming:pumpkin_seeds", { description = S("Pumpkin Seeds"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Grows into a pumpkin stem which in turn grows pumpkins. Chickens like pumpkin seeds."), _doc_items_usagehelp = S("Place the pumpkin seeds on farmland (which can be created with a hoe) to plant a pumpkin stem. Pumpkin stems grow in sunlight and grow faster on hydrated farmland. When mature, the stem attempts to grow a pumpkin next to it. Rightclick an animal to feed it pumpkin seeds."), stack_max = 64, @@ -100,31 +93,24 @@ local pumpkin_base_def = { tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png"}, groups = {handy=1,axey=1, plant=1,building_block=1, dig_by_piston=1, enderman_takable=1}, sounds = mcl_sounds.node_sound_wood_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, _mcl_hardness = 1, } minetest.register_node("mcl_farming:pumpkin", pumpkin_base_def) local pumpkin_face_base_def = table.copy(pumpkin_base_def) pumpkin_face_base_def.description = S("Pumpkin") -pumpkin_face_base_def._doc_items_longdesc = S("A pumpkin can be worn as a helmet. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.") +pumpkin_face_base_def._doc_items_longdesc = S("A pumpkin can be worn as a helmet for fun, but it doesn't offer any protection. Pumpkins grow from pumpkin stems, which in turn grow from pumpkin seeds.") pumpkin_face_base_def._doc_items_usagehelp = nil pumpkin_face_base_def.tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face.png"} pumpkin_face_base_def.groups.armor_head=1 -pumpkin_face_base_def._mcl_armor_mob_range_factor = 0 -pumpkin_face_base_def._mcl_armor_mob_range_mob = "mobs_mc:enderman" pumpkin_face_base_def.groups.non_combat_armor=1 -if minetest.get_modpath("mcl_armor") then - pumpkin_face_base_def.on_secondary_use = armor.on_armor_use -end -minetest.register_node("mcl_farming:pumpkin_face", pumpkin_face_base_def) -- Register stem growth mcl_farming:add_plant("plant_pumpkin_stem", "mcl_farming:pumpkintige_unconnect", {"mcl_farming:pumpkin_1", "mcl_farming:pumpkin_2", "mcl_farming:pumpkin_3", "mcl_farming:pumpkin_4", "mcl_farming:pumpkin_5", "mcl_farming:pumpkin_6", "mcl_farming:pumpkin_7"}, 30, 5) -- Register actual pumpkin, connected stems and stem-to-pumpkin growth -mcl_farming:add_gourd("mcl_farming:pumpkintige_unconnect", "mcl_farming:pumpkintige_linked", "mcl_farming:pumpkintige_unconnect", stem_def, stem_drop, "mcl_farming:pumpkin", pumpkin_base_def, 30, 15, "mcl_farming_pumpkin_stem_connected.png^[colorize:#FFA800:127", +mcl_farming:add_gourd("mcl_farming:pumpkintige_unconnect", "mcl_farming:pumpkintige_linked", "mcl_farming:pumpkintige_unconnect", stem_def, stem_drop, "mcl_farming:pumpkin_face", pumpkin_face_base_def, 30, 15, "mcl_farming_pumpkin_stem_connected.png^[colorize:#FFA800:127", function(pos) -- Attempt to spawn iron golem or snow golem mobs_mc.tools.check_iron_golem_summon(pos) @@ -139,7 +125,8 @@ minetest.register_node("mcl_farming:pumpkin_face_light", { stack_max = 64, paramtype = "light", paramtype2 = "facedir", - light_source = minetest.LIGHT_MAX, + -- Real light level: 15 (Minetest caps at 14) + light_source = 14, tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_light.png"}, groups = {handy=1,axey=1, building_block=1, dig_by_piston=1 }, sounds = mcl_sounds.node_sound_wood_defaults(), @@ -148,8 +135,7 @@ minetest.register_node("mcl_farming:pumpkin_face_light", { mobs_mc.tools.check_iron_golem_summon(pos) mobs_mc.tools.check_snow_golem_summon(pos) end, - on_rotate = on_rotate, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, _mcl_hardness = 1, }) diff --git a/mods/ITEMS/mcl_farming/shared_functions.lua b/mods/ITEMS/mcl_farming/shared_functions.lua index 0c366af2..9844dd43 100644 --- a/mods/ITEMS/mcl_farming/shared_functions.lua +++ b/mods/ITEMS/mcl_farming/shared_functions.lua @@ -84,7 +84,7 @@ function mcl_farming:place_seed(itemstack, placer, pointed_thing, plantname) local place_s = minetest.get_node(pos) if string.find(farmland.name, "mcl_farming:soil") and string.find(place_s.name, "air") then - minetest.sound_play(minetest.registered_nodes[plantname].sounds.place, {pos = pos}, true) + minetest.sound_play(minetest.registered_nodes[plantname].sounds.place, {pos = pos}) minetest.add_node(pos, {name=plantname, param2 = minetest.registered_nodes[plantname].place_param2}) else return diff --git a/mods/ITEMS/mcl_farming/soil.lua b/mods/ITEMS/mcl_farming/soil.lua index 0c0e3b83..012a9659 100644 --- a/mods/ITEMS/mcl_farming/soil.lua +++ b/mods/ITEMS/mcl_farming/soil.lua @@ -3,7 +3,6 @@ local S = minetest.get_translator("mcl_farming") minetest.register_node("mcl_farming:soil", { tiles = {"mcl_farming_farmland_dry.png", "default_dirt.png"}, description = S("Farmland"), - _tt_help = S("Surface for crops").."\n"..S("Can become wet"), _doc_items_longdesc = S("Farmland is used for farming, a necessary surface to plant crops. It is created when a hoe is used on dirt or a similar block. Plants are able to grow on farmland, but slowly. Farmland will become hydrated farmland (on which plants grow faster) when it rains or a water source is nearby. This block will turn back to dirt when a solid block appears above it or a piston arm extends above it."), drop = "mcl_core:dirt", drawtype = "nodebox", @@ -21,7 +20,7 @@ minetest.register_node("mcl_farming:soil", { end, groups = {handy=1,shovely=1, dirtifies_below_solid=1, dirtifier=1, soil=2, soil_sapling=1, deco_block=1 }, sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) @@ -44,7 +43,7 @@ minetest.register_node("mcl_farming:soil_wet", { end, groups = {handy=1,shovely=1, not_in_creative_inventory=1, dirtifies_below_solid=1, dirtifier=1, soil=3, soil_sapling=1 }, sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) diff --git a/mods/ITEMS/mcl_farming/textures/farming_carrot_4.png b/mods/ITEMS/mcl_farming/textures/farming_carrot_4.png index 403257f4..d1017eee 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_carrot_4.png and b/mods/ITEMS/mcl_farming/textures/farming_carrot_4.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_melon_side.png b/mods/ITEMS/mcl_farming/textures/farming_melon_side.png index 0979b720..6630ce52 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_melon_side.png and b/mods/ITEMS/mcl_farming/textures/farming_melon_side.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_melon_top.png b/mods/ITEMS/mcl_farming/textures/farming_melon_top.png index 8738599c..770871c9 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_melon_top.png and b/mods/ITEMS/mcl_farming/textures/farming_melon_top.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_potato.png b/mods/ITEMS/mcl_farming/textures/farming_potato.png index 70e3a7e0..6614adcb 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_potato.png and b/mods/ITEMS/mcl_farming/textures/farming_potato.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_pumpkin_side.png b/mods/ITEMS/mcl_farming/textures/farming_pumpkin_side.png index a1a4fa9b..9ed67ca2 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_pumpkin_side.png and b/mods/ITEMS/mcl_farming/textures/farming_pumpkin_side.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_pumpkin_top.png b/mods/ITEMS/mcl_farming/textures/farming_pumpkin_top.png index 01cde9e9..73d1ef54 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_pumpkin_top.png and b/mods/ITEMS/mcl_farming/textures/farming_pumpkin_top.png differ diff --git a/mods/ITEMS/mcl_farming/textures/farming_tool_diamondhoe.png b/mods/ITEMS/mcl_farming/textures/farming_tool_diamondhoe.png index f74cc4af..0adc102a 100644 Binary files a/mods/ITEMS/mcl_farming/textures/farming_tool_diamondhoe.png and b/mods/ITEMS/mcl_farming/textures/farming_tool_diamondhoe.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_dry.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_dry.png index 44c956b6..4606f6fa 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_dry.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_dry.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_wet.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_wet.png index f5ebf2de..bad8fb00 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_wet.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_farmland_wet.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_hayblock_side.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_hayblock_side.png index 4d994067..ec51c0d7 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_hayblock_side.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_hayblock_side.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_pumpkin_seeds.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_pumpkin_seeds.png index 24e2c80c..52c239c7 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_pumpkin_seeds.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_pumpkin_seeds.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_2.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_2.png index 323cc830..3788a40d 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_2.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_2.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_3.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_3.png index 247c9e05..889a56d6 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_3.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_3.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_4.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_4.png index 7410aa01..91bdd2b3 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_4.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_4.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_6.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_6.png index 04221b43..6b2b2307 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_6.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_6.png differ diff --git a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_7.png b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_7.png index bff840d3..83d25927 100644 Binary files a/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_7.png and b/mods/ITEMS/mcl_farming/textures/mcl_farming_wheat_stage_7.png differ diff --git a/mods/ITEMS/mcl_farming/wheat.lua b/mods/ITEMS/mcl_farming/wheat.lua index 9a8a9f65..1a65d1d1 100644 --- a/mods/ITEMS/mcl_farming/wheat.lua +++ b/mods/ITEMS/mcl_farming/wheat.lua @@ -3,7 +3,6 @@ local S = minetest.get_translator("mcl_farming") minetest.register_craftitem("mcl_farming:wheat_seeds", { -- Original Minecraft name: “Seeds” description = S("Wheat Seeds"), - _tt_help = S("Grows on farmland"), _doc_items_longdesc = S("Grows into a wheat plant. Chickens like wheat seeds."), _doc_items_usagehelp = S("Place the wheat seeds on farmland (which can be created with a hoe) to plant a wheat plant. They grow in sunlight and grow faster on hydrated farmland. Rightclick an animal to feed it wheat seeds."), groups = { craftitem=1 }, @@ -131,12 +130,6 @@ minetest.register_craftitem("mcl_farming:bread", { on_secondary_use = minetest.item_eat(5), }) -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - minetest.register_node("mcl_farming:hay_block", { description = S("Hay Bale"), _doc_items_longdesc = S("Hay bales are decorative blocks made from wheat."), @@ -146,10 +139,9 @@ minetest.register_node("mcl_farming:hay_block", { paramtype2 = "facedir", is_ground_content = false, on_place = mcl_util.rotate_axis, - groups = {handy=1, flammable=2, fire_encouragement=60, fire_flammability=20, building_block=1, fall_damage_add_percent=-80}, + groups = {handy=1, flammable=2, building_block=1, fall_damage_add_percent=-80}, sounds = mcl_sounds.node_sound_leaves_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, }) diff --git a/mods/ITEMS/mcl_fences/init.lua b/mods/ITEMS/mcl_fences/init.lua index 650854f8..bb2ca0fc 100644 --- a/mods/ITEMS/mcl_fences/init.lua +++ b/mods/ITEMS/mcl_fences/init.lua @@ -1,3 +1,5 @@ +local init = os.clock() + local S = minetest.get_translator("mcl_fences") -- Node box @@ -100,11 +102,11 @@ mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, local tmp_node2 if state2 == 1 then state2 = 0 - minetest.sound_play(sound_close, {gain = sound_gain_close, max_hear_distance = 10, pos = pos}, true) + minetest.sound_play(sound_close, {gain = sound_gain_close, max_hear_distance = 10, pos = pos}) tmp_node2 = {name=gate_id, param1=node.param1, param2=node.param2} else state2 = 1 - minetest.sound_play(sound_open, {gain = sound_gain_open, max_hear_distance = 10, pos = pos}, true) + minetest.sound_play(sound_open, {gain = sound_gain_open, max_hear_distance = 10, pos = pos}) tmp_node2 = {name=open_gate_id, param1=node.param1, param2=node.param2} end update_gate(pos, tmp_node2) @@ -172,7 +174,6 @@ mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, cgroups_closed.mesecon_effector_off = nil minetest.register_node(gate_id, { description = fence_gate_name, - _tt_help = S("Openable by players and redstone power"), _doc_items_longdesc = S("Fence gates can be opened or closed and can't be jumped over. Fences will connect nicely to fence gates."), _doc_items_usagehelp = S("Right-click the fence gate to open or close it."), tiles = {texture}, @@ -246,7 +247,7 @@ mcl_fences.register_fence_and_fence_gate = function(id, fence_name, fence_gate_n return fence_id, gate_id, open_gate_id end -local wood_groups = {handy=1,axey=1, flammable=2,fence_wood=1, fire_encouragement=5, fire_flammability=20} +local wood_groups = {handy=1,axey=1, flammable=2,fence_wood=1} local wood_connect = {"group:fence_wood"} local wood_sounds = mcl_sounds.node_sound_wood_defaults() @@ -304,3 +305,8 @@ minetest.register_craft({ recipe = "group:fence_wood", burntime = 15, }) + +local time_to_load= os.clock() - init +print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load)) + + diff --git a/mods/ITEMS/mcl_fences/locale/mcl_fences.de.tr b/mods/ITEMS/mcl_fences/locale/mcl_fences.de.tr index 5a76fc59..a55eaebf 100644 --- a/mods/ITEMS/mcl_fences/locale/mcl_fences.de.tr +++ b/mods/ITEMS/mcl_fences/locale/mcl_fences.de.tr @@ -15,4 +15,3 @@ Dark Oak Fence Gate=Schwarzeichenzauntor Acacia Fence=Akazienzaun Acacia Fence Gate=Akazienzauntor Nether Brick Fence=Netherziegelzaun -Openable by players and redstone power=Zu öffnen von Spielern und Redstoneenergie diff --git a/mods/ITEMS/mcl_fences/locale/mcl_fences.es.tr b/mods/ITEMS/mcl_fences/locale/mcl_fences.es.tr deleted file mode 100644 index 1e8c3798..00000000 --- a/mods/ITEMS/mcl_fences/locale/mcl_fences.es.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_fences -Fences are structures which block the way. Fences will connect to each other and solid blocks. They cannot be jumped over with a simple jump.=Las cercas son estructuras que bloquean el camino. Las cercas se conectarán entre sí y con los bloques sólidos. No se pueden saltar con un simple salto. -Fence gates can be opened or closed and can't be jumped over. Fences will connect nicely to fence gates.=Las puertas de valla se pueden abrir o cerrar y no se pueden saltar. Las cercas se conectarán muy bien a las puertas de la cerca. -Right-click the fence gate to open or close it.=Haga clic derecho en la puerta de la cerca para abrirla o cerrarla. -Oak Fence=Valla de roble -Oak Fence Gate=Puerta de roble -Spruce Fence=Valla de abeto -Spruce Fence Gate=Puerta de abeto -Birch Fence=Valla de abedul -Birch Fence Gate=Puerta de abedul -Jungle Fence=Valla de la selva -Jungle Fence Gate=Puerta de valla de la selva -Dark Oak Fence=Valla de roble oscuro -Dark Oak Fence Gate=Puerta de roble oscuro -Acacia Fence=Valla de acacia -Acacia Fence Gate=Puerta de acacia -Nether Brick Fence=Valla de ladrillo abisal \ No newline at end of file diff --git a/mods/ITEMS/mcl_fences/locale/mcl_fences.fr.tr b/mods/ITEMS/mcl_fences/locale/mcl_fences.fr.tr deleted file mode 100644 index ccfb86d9..00000000 --- a/mods/ITEMS/mcl_fences/locale/mcl_fences.fr.tr +++ /dev/null @@ -1,18 +0,0 @@ -# textdomain: mcl_fences -Fences are structures which block the way. Fences will connect to each other and solid blocks. They cannot be jumped over with a simple jump.=Les barrières sont des structures qui bloquent le chemin. Les barrières se connecteront les unes aux autres et aux blocs solides. Ils ne peuvent pas être sautés par un simple saut. -Fence gates can be opened or closed and can't be jumped over. Fences will connect nicely to fence gates.=Les portillions peuvent être ouvertes ou fermées et ne peuvent pas être sautées. Les barrières se connecteront bien aux portillions. -Right-click the fence gate to open or close it.=Cliquez avec le bouton droit sur le portillion pour l'ouvrir ou la fermer. -Oak Fence=Barrière en bois de Chêne -Oak Fence Gate=Portillion en bois de Chêne -Spruce Fence=Barrière en bois de Sapin -Spruce Fence Gate=Portillion en bois de Sapin -Birch Fence=Barrière en bois de Bouleau -Birch Fence Gate=Portillion en bois de Bouleau -Jungle Fence=Barrière en bois d'Acajou -Jungle Fence Gate=Portillion en bois d'Acajou -Dark Oak Fence=Barrière en bois de Chêne Noir -Dark Oak Fence Gate=Portillion en bois de Chêne Noir -Acacia Fence=Barrière en bois d'Acacia -Acacia Fence Gate=Portillion en bois d'Acacia -Nether Brick Fence=Barrière en Brique du Nether -Openable by players and redstone power=Ouvrable par les joueurs et la puissance redstone diff --git a/mods/ITEMS/mcl_fences/locale/template.txt b/mods/ITEMS/mcl_fences/locale/template.txt index a4cd1cbe..3a5c14ae 100644 --- a/mods/ITEMS/mcl_fences/locale/template.txt +++ b/mods/ITEMS/mcl_fences/locale/template.txt @@ -15,4 +15,3 @@ Dark Oak Fence Gate= Acacia Fence= Acacia Fence Gate= Nether Brick Fence= -Openable by players and redstone power= diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_acacia.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_acacia.png index b62dd747..85dae567 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_acacia.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_acacia.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_big_oak.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_big_oak.png index 5068a71a..de8648e8 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_big_oak.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_big_oak.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_birch.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_birch.png index b52db65d..96121e12 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_birch.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_birch.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_gate_big_oak.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_gate_big_oak.png index 68a4323f..f7c0eccd 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_gate_big_oak.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_gate_big_oak.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_jungle.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_jungle.png index 4324b3ef..dbc5684a 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_jungle.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_jungle.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_mask.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_mask.png index 35d16291..dfa9b34d 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_mask.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_mask.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_nether_brick.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_nether_brick.png index 7f7c461b..f8160903 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_nether_brick.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_nether_brick.png differ diff --git a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_oak.png b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_oak.png index 90c36edf..6c48e53e 100644 Binary files a/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_oak.png and b/mods/ITEMS/mcl_fences/textures/mcl_fences_fence_oak.png differ diff --git a/mods/ITEMS/mcl_fire/README.txt b/mods/ITEMS/mcl_fire/README.txt index af46528a..1b32a4a0 100644 --- a/mods/ITEMS/mcl_fire/README.txt +++ b/mods/ITEMS/mcl_fire/README.txt @@ -30,5 +30,3 @@ http://www.freesound.org/people/Dynamicell/sounds/17548/ Benboncan (CC BY 3.0) https://www.freesound.org/people/Benboncan/sounds/66457/ fire_flint_and_steel.ogg - -Other sound files by Perttu Ahola (celeron55) (CC BY-SA 3.0). diff --git a/mods/ITEMS/mcl_fire/fire_charge.lua b/mods/ITEMS/mcl_fire/fire_charge.lua index 9f4f6bc0..58e86778 100644 --- a/mods/ITEMS/mcl_fire/fire_charge.lua +++ b/mods/ITEMS/mcl_fire/fire_charge.lua @@ -3,7 +3,6 @@ local S = minetest.get_translator("mcl_fire") -- Fire Charge minetest.register_craftitem("mcl_fire:fire_charge", { description = S("Fire Charge"), - _tt_help = S("Dispenser projectile").."\n"..S("Starts fires and ignites blocks"), _doc_items_longdesc = S("Fire charges are primarily projectiles which can be launched from dispensers, they will fly in a straight line and burst into a fire on impact. Alternatively, they can be used to ignite fires directly."), _doc_items_usagehelp = S("Put the fire charge into a dispenser and supply it with redstone power to launch it. To ignite a fire directly, simply place the fire charge on the ground, which uses it up."), inventory_image = "mcl_fire_fire_charge.png", @@ -31,10 +30,10 @@ minetest.register_craftitem("mcl_fire:fire_charge", { if nodedef and nodedef._on_ignite then local overwrite = nodedef._on_ignite(user, pointed_thing) if not overwrite then - mcl_fire.set_fire(pointed_thing, user, false) + mcl_fire.set_fire(pointed_thing, user) end else - mcl_fire.set_fire(pointed_thing, user, false) + mcl_fire.set_fire(pointed_thing, user) end if not minetest.settings:get_bool("creative_mode") then itemstack:take_item() diff --git a/mods/ITEMS/mcl_fire/flint_and_steel.lua b/mods/ITEMS/mcl_fire/flint_and_steel.lua index d8833840..6ca2132d 100644 --- a/mods/ITEMS/mcl_fire/flint_and_steel.lua +++ b/mods/ITEMS/mcl_fire/flint_and_steel.lua @@ -3,7 +3,6 @@ local S = minetest.get_translator("mcl_fire") -- Flint and Steel minetest.register_tool("mcl_fire:flint_and_steel", { description = S("Flint and Steel"), - _tt_help = S("Starts fires and ignites blocks"), _doc_items_longdesc = S("Flint and steel is a tool to start fires and ignite blocks."), _doc_items_usagehelp = S("Rightclick the surface of a block to attempt to light a fire in front of it or ignite the block. A few blocks have an unique reaction when ignited."), inventory_image = "mcl_fire_flint_and_steel.png", @@ -28,8 +27,7 @@ minetest.register_tool("mcl_fire:flint_and_steel", { local idef = itemstack:get_definition() minetest.sound_play( "fire_flint_and_steel", - {pos = pointed_thing.above, gain = 0.5, max_hear_distance = 8}, - true + {pos = pointed_thing.above, gain = 0.5, max_hear_distance = 8} ) local used = false if pointed_thing.type == "node" then @@ -37,15 +35,15 @@ minetest.register_tool("mcl_fire:flint_and_steel", { if nodedef and nodedef._on_ignite then local overwrite = nodedef._on_ignite(user, pointed_thing) if not overwrite then - mcl_fire.set_fire(pointed_thing, user, false) + mcl_fire.set_fire(pointed_thing, user) end else - mcl_fire.set_fire(pointed_thing, user, false) + mcl_fire.set_fire(pointed_thing, user) end used = true end if itemstack:get_count() == 0 and idef.sound and idef.sound.breaks then - minetest.sound_play(idef.sound.breaks, {pos=user:get_pos(), gain=0.5}, true) + minetest.sound_play(idef.sound.breaks, {pos=user:get_pos(), gain=0.5}) end if not minetest.settings:get_bool("creative_mode") and used == true then itemstack:add_wear(65535/65) -- 65 uses diff --git a/mods/ITEMS/mcl_fire/init.lua b/mods/ITEMS/mcl_fire/init.lua index 9ae8ce99..ea36d1ce 100644 --- a/mods/ITEMS/mcl_fire/init.lua +++ b/mods/ITEMS/mcl_fire/init.lua @@ -40,15 +40,6 @@ local fire_death_messages = { N("@1 died in a fire."), } -local fire_timer = function(pos) - minetest.get_node_timer(pos):start(math.random(3, 7)) -end - -local spawn_fire = function(pos, age) - minetest.set_node(pos, {name="mcl_fire:fire", param2 = age}) - minetest.check_single_for_falling({x=pos.x, y=pos.y+1, z=pos.z}) -end - minetest.register_node("mcl_fire:fire", { description = S("Fire"), _doc_items_longdesc = fire_help, @@ -66,7 +57,8 @@ minetest.register_node("mcl_fire:fire", { }, inventory_image = "fire_basic_flame.png", paramtype = "light", - light_source = minetest.LIGHT_MAX, + -- Real light level: 15 (but Minetest caps at 14) + light_source = 14, walkable = false, buildable_to = true, sunlight_propagates = true, @@ -76,84 +68,41 @@ minetest.register_node("mcl_fire:fire", { floodable = true, on_flood = function(pos, oldnode, newnode) if minetest.get_item_group(newnode.name, "water") ~= 0 then - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) end end, on_timer = function(pos) - local node = minetest.get_node(pos) - -- Age is a number from 0 to 15 and is increased every timer step. - -- "old" fire is more likely to be extinguished - local age = node.param2 - local flammables = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+4, z=pos.z+1}, {"group:flammable"}) - local below = minetest.get_node({x=pos.x, y=pos.z-1, z=pos.z}) - local below_is_flammable = minetest.get_item_group(below.name, "flammable") > 0 - -- Extinguish fire - if (not fire_enabled) and (math.random(1,3) == 1) then + local airs = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+4, z=pos.z+1}, {"air"}) + if (#airs == 0) or ((not fire_enabled) and math.random(1,3) == 1) then minetest.remove_node(pos) return end - if age == 15 and not below_is_flammable then - minetest.remove_node(pos) - return - elseif age > 3 and #flammables == 0 and not below_is_flammable and math.random(1,4) == 1 then - minetest.remove_node(pos) - return - end - local age_add = 1 - -- If fire spread is disabled, we have to skip the "destructive" code if (not fire_enabled) then - if age + age_add <= 15 then - node.param2 = age + age_add - minetest.set_node(pos, node) - end -- Restart timer - fire_timer(pos) + minetest.get_node_timer(pos):start(math.random(3, 7)) return end - -- Spawn fire to nearby flammable nodes - local is_next_to_flammable = minetest.find_node_near(pos, 2, {"group:flammable"}) ~= nil - if is_next_to_flammable and math.random(1,2) == 1 then - -- The fire we spawn copies the age of this fire. - -- This prevents fire from spreading infinitely far as the fire fire dies off - -- quicker the further it has spreaded. - local age_next = math.min(15, age + math.random(0, 1)) - -- Select random type of fire spread - local burntype = math.random(1,2) - if burntype == 1 then - -- Spawn fire in air - local nodes = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+4, z=pos.z+1}, {"air"}) - while #nodes > 0 do - local r = math.random(1, #nodes) - if minetest.find_node_near(nodes[r], 1, {"group:flammable"}) then - spawn_fire(nodes[r], age_next) - break - else - table.remove(nodes, r) - end - end - else - -- Burn flammable block - local nodes = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y-1, z=pos.z-1}, {x=pos.x+1, y=pos.y+4, z=pos.z+1}, {"group:flammable"}) - if #nodes > 0 then - local r = math.random(1, #nodes) - local nn = minetest.get_node(nodes[r]).name - local ndef = minetest.registered_nodes[nn] - local fgroup = minetest.get_item_group(nn, "flammable") - if ndef and ndef._on_burn then - ndef._on_burn(nodes[r]) - elseif fgroup ~= -1 then - spawn_fire(nodes[r], age_next) - end + local burned = false + if math.random(1,2) == 1 then + while #airs > 0 do + local r = math.random(1, #airs) + if minetest.find_node_near(airs[r], 1, {"group:flammable"}) then + minetest.set_node(airs[r], {name="mcl_fire:fire"}) + burned = true + break + else + table.remove(airs, r) end end end - -- Regular age increase - if age + age_add <= 15 then - node.param2 = age + age_add - minetest.set_node(pos, node) + if not burned then + if math.random(1,3) == 1 then + minetest.remove_node(pos) + return + end end -- Restart timer - fire_timer(pos) + minetest.get_node_timer(pos):start(math.random(3, 7)) end, drop = "", sounds = {}, @@ -171,7 +120,7 @@ minetest.register_node("mcl_fire:fire", { mcl_portals.light_nether_portal(pos) end - fire_timer(pos) + minetest.get_node_timer(pos):start(math.random(3, 7)) end, _mcl_blast_resistance = 0, }) @@ -193,7 +142,8 @@ minetest.register_node("mcl_fire:eternal_fire", { }, inventory_image = "fire_basic_flame.png", paramtype = "light", - light_source = minetest.LIGHT_MAX, + -- Real light level: 15 (but Minetest caps at 14) + light_source = 14, walkable = false, buildable_to = true, sunlight_propagates = true, @@ -203,7 +153,7 @@ minetest.register_node("mcl_fire:eternal_fire", { floodable = true, on_flood = function(pos, oldnode, newnode) if minetest.get_item_group(newnode.name, "water") ~= 0 then - minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}, true) + minetest.sound_play("fire_extinguish_flame", {pos = pos, gain = 0.25, max_hear_distance = 16}) end end, on_timer = function(pos) @@ -212,7 +162,7 @@ minetest.register_node("mcl_fire:eternal_fire", { while #airs > 0 do local r = math.random(1, #airs) if minetest.find_node_near(airs[r], 1, {"group:flammable"}) then - spawn_fire(airs[r], age_next) + minetest.set_node(airs[r], {name="mcl_fire:fire"}) break else table.remove(airs, r) @@ -220,11 +170,11 @@ minetest.register_node("mcl_fire:eternal_fire", { end end -- Restart timer - fire_timer(pos) + minetest.get_node_timer(pos):start(math.random(3, 7)) end, -- Start burning timer and light Nether portal (if possible) on_construct = function(pos) - fire_timer(pos) + minetest.get_node_timer(pos):start(math.random(3, 7)) if minetest.get_modpath("mcl_portals") then mcl_portals.light_nether_portal(pos) @@ -353,7 +303,7 @@ end -- Extinguish all flames quickly with water and such minetest.register_abm({ - label = "Extinguish fire", + label = "Extinguish flame", nodenames = {"mcl_fire:fire", "mcl_fire:eternal_fire"}, neighbors = {"group:puts_out_fire"}, interval = 3, @@ -362,7 +312,7 @@ minetest.register_abm({ action = function(pos, node, active_object_count, active_object_count_wider) minetest.remove_node(pos) minetest.sound_play("fire_extinguish_flame", - {pos = pos, max_hear_distance = 16, gain = 0.15}, true) + {pos = pos, max_hear_distance = 16, gain = 0.15}) end, }) @@ -402,7 +352,7 @@ else -- Fire enabled while #airs > 0 do local r = math.random(1, #airs) if minetest.find_node_near(airs[r], 1, {"group:flammable"}) then - spawn_fire(airs[r]) + minetest.set_node(airs[r], {name="mcl_fire:fire"}) return true else table.remove(airs, r) @@ -411,12 +361,33 @@ else -- Fire enabled return false end local airs1 = minetest.find_nodes_in_area({x=pos.x-1, y=pos.y+1, z=pos.z-1}, {x=pos.x+1, y=pos.y+1, z=pos.z+1}, {"air"}) - local h = math.random(1, 2) - if h == 2 and #airs1 > 0 then + local ok = try_ignite(airs1) + if not ok then local airs2 = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y+2, z=pos.z-2}, {x=pos.x+2, y=pos.y+2, z=pos.z+2}, {"air"}) try_ignite(airs2) - else - try_ignite(airs1) + end + end, + }) + + -- Turn flammable nodes around fire into fire + minetest.register_abm({ + label = "Remove flammable nodes", + nodenames = {"group:fire"}, + neighbors = {"group:flammable"}, + interval = 5, + chance = 18, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = minetest.find_node_near(pos, 1, {"group:flammable"}) + if p then + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.set_node(p, {name="mcl_fire:fire"}) + minetest.check_for_falling(p) + end end end, }) @@ -426,8 +397,7 @@ end -- Set pointed_thing on (normal) fire. -- * pointed_thing: Pointed thing to ignite -- * player: Player who sets fire or nil if nobody --- * allow_on_fire: If false, can't ignite fire on fire (default: true) -mcl_fire.set_fire = function(pointed_thing, player, allow_on_fire) +mcl_fire.set_fire = function(pointed_thing, player) local pname if player == nil then pname = "" @@ -435,10 +405,6 @@ mcl_fire.set_fire = function(pointed_thing, player, allow_on_fire) pname = player:get_player_name() end local n = minetest.get_node(pointed_thing.above) - local nu = minetest.get_node(pointed_thing.under) - if allow_on_fire == false and minetest.get_item_group(nu.name, "fire") ~= 0 then - return - end if minetest.is_protected(pointed_thing.above, pname) then minetest.record_protection_violation(pointed_thing.above, pname) return diff --git a/mods/ITEMS/mcl_fire/locale/mcl_fire.de.tr b/mods/ITEMS/mcl_fire/locale/mcl_fire.de.tr index e3c30880..22d91a5b 100644 --- a/mods/ITEMS/mcl_fire/locale/mcl_fire.de.tr +++ b/mods/ITEMS/mcl_fire/locale/mcl_fire.de.tr @@ -15,5 +15,3 @@ Eternal fire is a damaging block. Eternal fire can be extinguished by punches an @1 died in a fire.=@1 starb in einem Feuer. Fire=Feuer Eternal Fire=Ewiges Feuer -Dispenser projectile=Werferprojektil -Starts fires and ignites blocks=Entfacht Feuer und zündet Blöcke an diff --git a/mods/ITEMS/mcl_fire/locale/mcl_fire.es.tr b/mods/ITEMS/mcl_fire/locale/mcl_fire.es.tr deleted file mode 100644 index 6f36b293..00000000 --- a/mods/ITEMS/mcl_fire/locale/mcl_fire.es.tr +++ /dev/null @@ -1,17 +0,0 @@ -# textdomain: mcl_fire -Fire Charge=Carga de fuego -Fire charges are primarily projectiles which can be launched from dispensers, they will fly in a straight line and burst into a fire on impact. Alternatively, they can be used to ignite fires directly.=Las cargas de fuego son principalmente proyectiles que se pueden lanzar desde dispensadores, volarán en línea recta y estallarán en un incendio al impactar. Alternativamente, se pueden usar para encender incendios directamente. -Put the fire charge into a dispenser and supply it with redstone power to launch it. To ignite a fire directly, simply place the fire charge on the ground, which uses it up.=Ponga la carga de fuego en un dispensador y suminístrele poder de redstone para lanzarlo. Para encender un fuego directamente, simplemente coloque la carga de fuego en el suelo, que la usa. -Flint and Steel=Mechero -Flint and steel is a tool to start fires and ignite blocks.=El mechero es una herramienta para iniciar incendios y encender bloques. -Rightclick the surface of a block to attempt to light a fire in front of it or ignite the block. A few blocks have an unique reaction when ignited.=Haga clic derecho en la superficie de un bloque para intentar encender un fuego frente a él o encender el bloque. Unos pocos bloques tienen una reacción única cuando se encienden. -Fire is a damaging and destructive but short-lived kind of block. It will destroy and spread towards near flammable blocks, but fire will disappear when there is nothing to burn left. It will be extinguished by nearby water and rain. Fire can be destroyed safely by punching it, but it is hurtful if you stand directly in it. If a fire is started above netherrack or a magma block, it will immediately turn into an eternal fire.=El fuego es un tipo de bloque dañino y destructivo pero de corta duración. Destruirá y se extenderá hacia bloques casi inflamables, pero el fuego desaparecerá cuando no quede nada para quemar. Se extinguirá por el agua y la lluvia cercanas. El fuego puede destruirse de manera segura golpeándolo, pero es doloroso si te paras directamente en él. Si se inicia un fuego por encima de la base o un bloque de magma, se convertirá inmediatamente en un fuego eterno. -Fire is a damaging but non-destructive short-lived kind of block. It will disappear when there is no flammable block around. Fire does not destroy blocks, at least not in this world. It will be extinguished by nearby water and rain. Fire can be destroyed safely by punching it, but it is hurtful if you stand directly in it. If a fire is started above netherrack or a magma block, it will immediately turn into an eternal fire.=El fuego es un tipo de bloque dañino pero no destructivo de corta duración. Desaparecerá cuando no haya un bloque inflamable alrededor. El fuego no destruye bloques, al menos no en este mundo. Se extinguirá por el agua y la lluvia cercanas. El fuego puede destruirse de manera segura golpeándolo, pero es doloroso si te paras directamente en él. Si se inicia un fuego por encima de la base o un bloque de magma, se convertirá inmediatamente en un fuego eterno. -Eternal fire is a damaging block that might create more fire. It will create fire around it when flammable blocks are nearby. Eternal fire can be extinguished by punches and nearby water blocks. Other than (normal) fire, eternal fire does not get extinguished on its own and also continues to burn under rain. Punching eternal fire is safe, but it hurts if you stand inside.=El fuego eterno es un bloque dañino que podría crear más fuego. Creará fuego alrededor cuando haya bloques inflamables cerca. El fuego eterno se puede extinguir con golpes y bloques de agua cercanos. Aparte del fuego (normal), el fuego eterno no se extingue por sí solo y también continúa ardiendo bajo la lluvia. Golpear el fuego eterno es seguro, pero duele si te paras dentro. -Eternal fire is a damaging block. Eternal fire can be extinguished by punches and nearby water blocks. Other than (normal) fire, eternal fire does not get extinguished on its own and also continues to burn under rain. Punching eternal fire is safe, but it hurts if you stand inside.=El fuego eterno es un bloque dañino. El fuego eterno se puede extinguir con golpes y bloques de agua cercanos. Aparte del fuego (normal), el fuego eterno no se extingue por sí solo y también continúa ardiendo bajo la lluvia. Golpear el fuego eterno es seguro, pero duele si te paras dentro. -@1 has been cooked crisp.=@1 se ha cocinado crujientemente. -@1 felt the burn.=@1 sintió la quemadura. -@1 died in the flames.=@1 murió en las llamas. -@1 died in a fire.=@ 1 murió en un incendio. -Fire=Fuego -Eternal Fire=Fuego eterno diff --git a/mods/ITEMS/mcl_fire/locale/mcl_fire.fr.tr b/mods/ITEMS/mcl_fire/locale/mcl_fire.fr.tr deleted file mode 100644 index 60b6ffd0..00000000 --- a/mods/ITEMS/mcl_fire/locale/mcl_fire.fr.tr +++ /dev/null @@ -1,19 +0,0 @@ -# textdomain: mcl_fire -Fire Charge=Boule de Feu -Fire charges are primarily projectiles which can be launched from dispensers, they will fly in a straight line and burst into a fire on impact. Alternatively, they can be used to ignite fires directly.=Les boules de feu sont principalement des projectiles qui peuvent être lancés à partir de distributeurs, ils voleront en ligne droite et éclateront en feu à l'impact. Alternativement, ils peuvent être utilisés pour allumer des incendies directement. -Put the fire charge into a dispenser and supply it with redstone power to launch it. To ignite a fire directly, simply place the fire charge on the ground, which uses it up.=Mettez la boule de feu dans un distributeur et alimentez-la en redstone pour la lancer. Pour allumer un feu directement, placez simplement la charge de feu sur le sol, et utiliser le. -Flint and Steel=Briquet -Flint and steel is a tool to start fires and ignite blocks.=Le Briquet est uo outil pour allumer un feu ou allumer des blocs. -Rightclick the surface of a block to attempt to light a fire in front of it or ignite the block. A few blocks have an unique reaction when ignited.=Cliquez avec le bouton droit sur la surface d'un bloc pour tenter d'allumer un feu devant lui ou d'allumer le bloc. Quelques blocs ont une réaction unique lorsqu'ils sont enflammés. -Fire is a damaging and destructive but short-lived kind of block. It will destroy and spread towards near flammable blocks, but fire will disappear when there is nothing to burn left. It will be extinguished by nearby water and rain. Fire can be destroyed safely by punching it, but it is hurtful if you stand directly in it. If a fire is started above netherrack or a magma block, it will immediately turn into an eternal fire.=Le feu est un type de bloc dommageable et destructeur mais de courte durée. Il se détruira et se propagera vers des blocs proches de produits inflammables, mais le feu disparaîtra lorsqu'il n'y aura plus rien à brûler. Il sera éteint par l'eau et la pluie à proximité. Le feu peut être détruit en toute sécurité en le frappant, mais il est blessant si vous vous tenez directement dedans. Si un feu est déclenché au-dessus d'un netherrack ou d'un bloc de magma, il se transformera immédiatement en un feu éternel. -Fire is a damaging but non-destructive short-lived kind of block. It will disappear when there is no flammable block around. Fire does not destroy blocks, at least not in this world. It will be extinguished by nearby water and rain. Fire can be destroyed safely by punching it, but it is hurtful if you stand directly in it. If a fire is started above netherrack or a magma block, it will immediately turn into an eternal fire.=Le feu est un type de bloc éphémère mais non destructif de courte durée. Il disparaîtra en l'absence de bloc inflammable. Le feu ne détruit pas les blocs, du moins pas dans ce monde. Il sera éteint par l'eau et la pluie à proximité. Le feu peut être détruit en toute sécurité en le frappant, mais il est blessant si vous vous tenez directement dedans. Si un feu est déclenché au-dessus d'un netherrack ou d'un bloc de magma, il se transformera immédiatement en un feu éternel. -Eternal fire is a damaging block that might create more fire. It will create fire around it when flammable blocks are nearby. Eternal fire can be extinguished by punches and nearby water blocks. Other than (normal) fire, eternal fire does not get extinguished on its own and also continues to burn under rain. Punching eternal fire is safe, but it hurts if you stand inside.=Le feu éternel est un bloc endommageant qui pourrait créer plus de feu. Il créera du feu autour de lui lorsque des blocs inflammables sont à proximité. Le feu éternel peut être éteint par des coups de poing et des blocs d'eau à proximité. À part le feu (normal), le feu éternel ne s'éteint pas tout seul et continue de brûler sous la pluie. Frapper le feu éternel est sûr, mais ça fait mal si vous vous tenez à l'intérieur. -Eternal fire is a damaging block. Eternal fire can be extinguished by punches and nearby water blocks. Other than (normal) fire, eternal fire does not get extinguished on its own and also continues to burn under rain. Punching eternal fire is safe, but it hurts if you stand inside.=Le feu éternel est un bloc dommageable. Le feu éternel peut être éteint par des coups de poing et des blocs d'eau à proximité. À part le feu (normal), le feu éternel ne s'éteint pas tout seul et continue de brûler sous la pluie. Frapper le feu éternel est sûr, mais ça fait mal si vous vous tenez à l'intérieur. -@1 has been cooked crisp.=@1 a été cuit croustillant. -@1 felt the burn.=@1 sent le brûler. -@1 died in the flames.=@1 est mort dans les flammes. -@1 died in a fire.=@1 est mort dans un incendie. -Fire=Feu -Eternal Fire=Feu Eternel -Dispenser projectile=Distributeur de Projectile -Starts fires and ignites blocks=Démarre les incendies et allume les blocs diff --git a/mods/ITEMS/mcl_fire/locale/template.txt b/mods/ITEMS/mcl_fire/locale/template.txt index 0bc7d254..065135ef 100644 --- a/mods/ITEMS/mcl_fire/locale/template.txt +++ b/mods/ITEMS/mcl_fire/locale/template.txt @@ -15,5 +15,3 @@ Eternal fire is a damaging block. Eternal fire can be extinguished by punches an @1 died in a fire.= Fire= Eternal Fire= -Dispenser projectile= -Starts fires and ignites blocks= diff --git a/mods/ITEMS/mcl_fire/textures/fire_basic_flame.png b/mods/ITEMS/mcl_fire/textures/fire_basic_flame.png index f87969a3..5ed32ec0 100644 Binary files a/mods/ITEMS/mcl_fire/textures/fire_basic_flame.png and b/mods/ITEMS/mcl_fire/textures/fire_basic_flame.png differ diff --git a/mods/ITEMS/mcl_fishing/init.lua b/mods/ITEMS/mcl_fishing/init.lua index 53eefdad..fd469781 100644 --- a/mods/ITEMS/mcl_fishing/init.lua +++ b/mods/ITEMS/mcl_fishing/init.lua @@ -65,7 +65,7 @@ local fish = function(itemstack, player) { itemstring = "mcl_core:bowl", weight = 10 }, { itemstring = "mcl_fishing:fishing_rod", weight = 2, wear_min = 6554, wear_max = 65535 }, -- 10%-100% damage { itemstring = "mcl_mobitems:leather", weight = 10 }, - { itemstring = "mcl_armor:boots_leather", weight = 10, wear_min = 6554, wear_max = 65535 }, -- 10%-100% damage + { itemstring = "3d_armor:boots_leather", weight = 10, wear_min = 6554, wear_max = 65535 }, -- 10%-100% damage { itemstring = "mcl_mobitems:rotten_flesh", weight = 10 }, { itemstring = "mcl_core:stick", weight = 5 }, { itemstring = "mcl_mobitems:string", weight = 5 }, @@ -105,7 +105,7 @@ local fish = function(itemstack, player) local idef = itemstack:get_definition() itemstack:add_wear(65535/65) -- 65 uses if itemstack:get_count() == 0 and idef.sound and idef.sound.breaks then - minetest.sound_play(idef.sound.breaks, {pos=player:get_pos(), gain=0.5}, true) + minetest.sound_play(idef.sound.breaks, {pos=player:get_pos(), gain=0.5}) end end end @@ -119,7 +119,7 @@ local fish = function(itemstack, player) local idef = itemstack:get_definition() itemstack:add_wear((65535/65)*2) -- if so and not creative then wear double like in MC. if itemstack:get_count() == 0 and idef.sound and idef.sound.breaks then - minetest.sound_play(idef.sound.breaks, {pos=player:get_pos(), gain=0.5}, true) + minetest.sound_play(idef.sound.breaks, {pos=player:get_pos(), gain=0.5}) end end end @@ -308,13 +308,10 @@ end) -- Fishing Rod minetest.register_tool("mcl_fishing:fishing_rod", { description = S("Fishing Rod"), - _tt_help = S("Catches fish in water"), _doc_items_longdesc = S("Fishing rods can be used to catch fish."), _doc_items_usagehelp = S("Rightclick to launch the bobber. When it sinks right-click again to reel in an item. Who knows what you're going to catch?"), groups = { tool=1 }, inventory_image = "mcl_fishing_fishing_rod.png", - wield_image = "mcl_fishing_fishing_rod.png^[transformR270", - wield_scale = { x = 1.5, y = 1.5, z = 1 }, stack_max = 1, on_place = fish, on_secondary_use = fish, @@ -420,7 +417,6 @@ minetest.register_craftitem("mcl_fishing:clownfish_raw", { -- TODO: Add real status effect minetest.register_craftitem("mcl_fishing:pufferfish_raw", { description = S("Pufferfish"), - _tt_help = minetest.colorize("#FFFF00", S("Very poisonous")), _doc_items_longdesc = S("Pufferfish are a common species of fish and can be obtained by fishing. They can technically be eaten, but they are very bad for humans. Eating a pufferfish only restores 1 hunger point and will poison you very badly (which drains your health non-fatally) and causes serious food poisoning (which increases your hunger)."), inventory_image = "mcl_fishing_pufferfish_raw.png", on_place = minetest.item_eat(1), diff --git a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.de.tr b/mods/ITEMS/mcl_fishing/locale/mcl_fishing.de.tr index 10f90859..75120cd3 100644 --- a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.de.tr +++ b/mods/ITEMS/mcl_fishing/locale/mcl_fishing.de.tr @@ -14,5 +14,3 @@ Clownfish=Clownfisch Clownfish may be obtained by fishing (and luck) and is a food item which can be eaten safely.=Einen Clownfisch kann man beim Angeln mit etwas Glück fangen. Er ist ein Lebensmittel, der sicher verzehrt werden kann. Pufferfish=Kugelfisch Pufferfish are a common species of fish and can be obtained by fishing. They can technically be eaten, but they are very bad for humans. Eating a pufferfish only restores 1 hunger point and will poison you very badly (which drains your health non-fatally) and causes serious food poisoning (which increases your hunger).=Kugelfische sind eine verbreitete Fischart, die geangelt werden können. Sie können theoretisch gegessen werden, aber sie sind sehr schlecht für Menschen. Es gibt nur 1 Hungerpunkt und es wird Sie schwer vergiften (was Ihre Gesundheit verringert, aber nicht bis zum Tod) und Ihr Hungerpegel wird aufgrund der schweren Lebensmittelvergiftung stark ansteigen. -Catches fish in water=Fängt Fische im Wasser -Very poisonous=Sehr giftig diff --git a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.es.tr b/mods/ITEMS/mcl_fishing/locale/mcl_fishing.es.tr deleted file mode 100644 index 27972dce..00000000 --- a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.es.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_fishing -Fishing Rod=Caña de pescar -Fishing rods can be used to catch fish.=Las cañas de pescar se pueden utilizar para pescar. -Rightclick to launch the bobber. When it sinks right-click again to reel in an item. Who knows what you're going to catch?=Haga clic derecho para iniciar el bobber. Cuando se hunda, haga clic derecho nuevamente para enrollar un elemento. ¿Quién sabe lo que vas a atrapar? -Raw Fish=Bacalao crudo -Raw fish is obtained by fishing and is a food item which can be eaten safely. Cooking it improves its nutritional value.=El bacalao crudo se obtiene pescando y es un alimento que se puede comer de forma segura. Cocinarlo mejora su valor nutricional. -Cooked Fish=Bacalao cocinado -Mmh, fish! This is a healthy food item.=Mmh, ¡pez! Este es un alimento saludable. -Raw Salmon=Salmón crudo -Raw salmon is obtained by fishing and is a food item which can be eaten safely. Cooking it improves its nutritional value.=El salmón crudo se obtiene pescando y es un alimento que se puede comer de manera segura. Cocinarlo mejora su valor nutricional. -Cooked Salmon=Salmón cocinado -This is a healthy food item which can be eaten.=Este es un alimento saludable que se puede comer. -Clownfish=Pez tropical -Clownfish may be obtained by fishing (and luck) and is a food item which can be eaten safely.=El pez tropical se puede obtener pescando (y por suerte) y es un alimento que se puede comer de forma segura. -Pufferfish=Pez globo -Pufferfish are a common species of fish and can be obtained by fishing. They can technically be eaten, but they are very bad for humans. Eating a pufferfish only restores 1 hunger point and will poison you very badly (which drains your health non-fatally) and causes serious food poisoning (which increases your hunger).=El pez globo es una especie común de pescado y se puede obtener mediante la pesca. Técnicamente se pueden comer, pero son muy malos para los humanos. Comer un pez globo solo restaura 1 punto de hambre y te envenena mucho (lo que drena tu salud de manera no fatal) y causa una intoxicación alimentaria grave (lo que aumenta tu hambre). diff --git a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.fr.tr b/mods/ITEMS/mcl_fishing/locale/mcl_fishing.fr.tr deleted file mode 100644 index 2bac42bb..00000000 --- a/mods/ITEMS/mcl_fishing/locale/mcl_fishing.fr.tr +++ /dev/null @@ -1,18 +0,0 @@ -# textdomain: mcl_fishing -Fishing Rod=Canne à pêche -Fishing rods can be used to catch fish.=Les cannes à pêche peuvent être utilisées pour attraper du poisson. -Rightclick to launch the bobber. When it sinks right-click again to reel in an item. Who knows what you're going to catch?=Clic droit pour lancer le bouchon. Lorsqu'il s'enfonce, cliquez de nouveau avec le bouton droit pour rembobiner. Qui sait ce que tu vas attraper? -Raw Fish=Poisson Cru -Raw fish is obtained by fishing and is a food item which can be eaten safely. Cooking it improves its nutritional value.=Le poisson cru est obtenu par la pêche et est un aliment qui peut être mangé en toute sécurité. La cuisson améliore sa valeur nutritive. -Cooked Fish=Poisson cuit -Mmh, fish! This is a healthy food item.=Mmh, poisson! Il s'agit d'un aliment sain. -Raw Salmon=Saumon cru -Raw salmon is obtained by fishing and is a food item which can be eaten safely. Cooking it improves its nutritional value.=Le saumon cru est obtenu par la pêche et est un aliment qui peut être consommé en toute sécurité. La cuisson améliore sa valeur nutritive. -Cooked Salmon=Saumon cuit -This is a healthy food item which can be eaten.=Il s'agit d'un aliment sain qui peut être consommé. -Clownfish=Poisson-Clown -Clownfish may be obtained by fishing (and luck) and is a food item which can be eaten safely.=Le poisson-clown peut être obtenu par la pêche (et la chance) et est un aliment qui peut être mangé en toute sécurité. -Pufferfish=Poisson-Globe -Pufferfish are a common species of fish and can be obtained by fishing. They can technically be eaten, but they are very bad for humans. Eating a pufferfish only restores 1 hunger point and will poison you very badly (which drains your health non-fatally) and causes serious food poisoning (which increases your hunger).=Le poisson-globe est une espèce de poisson commune et peut être obtenu par la pêche. Ils peuvent techniquement être mangés, mais ils sont très mauvais pour les humains. Manger un poisson-globe ne restaure que 1 point de faim et vous empoisonnera fortement (ce qui draine votre santé de manière non fatale) et provoque une grave intoxication alimentaire (qui augmente votre faim). -Catches fish in water=Attrape les poissons dans l'eau -Very poisonous=Très toxique diff --git a/mods/ITEMS/mcl_fishing/locale/template.txt b/mods/ITEMS/mcl_fishing/locale/template.txt index a1544666..d2bac980 100644 --- a/mods/ITEMS/mcl_fishing/locale/template.txt +++ b/mods/ITEMS/mcl_fishing/locale/template.txt @@ -14,5 +14,3 @@ Clownfish= Clownfish may be obtained by fishing (and luck) and is a food item which can be eaten safely.= Pufferfish= Pufferfish are a common species of fish and can be obtained by fishing. They can technically be eaten, but they are very bad for humans. Eating a pufferfish only restores 1 hunger point and will poison you very badly (which drains your health non-fatally) and causes serious food poisoning (which increases your hunger).= -Catches fish in water= -Very poisonous= diff --git a/mods/ITEMS/mcl_fishing/textures/mcl_fishing_bobber.png b/mods/ITEMS/mcl_fishing/textures/mcl_fishing_bobber.png index 6086ecad..0c93fd4f 100644 Binary files a/mods/ITEMS/mcl_fishing/textures/mcl_fishing_bobber.png and b/mods/ITEMS/mcl_fishing/textures/mcl_fishing_bobber.png differ diff --git a/mods/ITEMS/mcl_fishing/textures/mcl_fishing_fishing_rod.png b/mods/ITEMS/mcl_fishing/textures/mcl_fishing_fishing_rod.png index 580e974a..2fbcc734 100644 Binary files a/mods/ITEMS/mcl_fishing/textures/mcl_fishing_fishing_rod.png and b/mods/ITEMS/mcl_fishing/textures/mcl_fishing_fishing_rod.png differ diff --git a/mods/ITEMS/mcl_flowerpots/init.lua b/mods/ITEMS/mcl_flowerpots/init.lua index d2c634bd..3131abd1 100644 --- a/mods/ITEMS/mcl_flowerpots/init.lua +++ b/mods/ITEMS/mcl_flowerpots/init.lua @@ -29,7 +29,6 @@ local cubes = { minetest.register_node("mcl_flowerpots:flower_pot", { description = S("Flower Pot"), - _tt_help = S("Can hold a small flower or plant"), _doc_items_longdesc = S("Flower pots are decorative blocks in which flowers and other small plants can be placed."), _doc_items_usagehelp = S("Just place a plant on the flower pot. Flower pots can hold small flowers (not higher than 1 block), saplings, ferns, dead bushes, mushrooms and cacti. Rightclick a potted plant to retrieve the plant."), drawtype = "mesh", diff --git a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.de.tr b/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.de.tr index 3031e38d..321725ab 100644 --- a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.de.tr +++ b/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.de.tr @@ -23,4 +23,3 @@ Cactus Flower Pot=Blumentopf mit Kaktus Flower Pot=Blumentopf Flower pots are decorative blocks in which flowers and other small plants can be placed.=Blumentöpfe sind dekorative Blöcke, in die Blumen und andere kleine Pflanzen platziert werden können. Just place a plant on the flower pot. Flower pots can hold small flowers (not higher than 1 block), saplings, ferns, dead bushes, mushrooms and cacti. Rightclick a potted plant to retrieve the plant.=Platzieren Sie einfach eine Pflanze auf den Blumentopf. Blumentöpfe können kleine Blumen (nicht höher als 1 Block), Setzlinge, Farne, tote Büsche, Pilze und Kakteen halten. Rechtsklicken Sie auf eine Topfpflanze, um sie zurück zu erhalten. -Can hold a small flower or plant=Hält eine kleine Blume oder Pflanze diff --git a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.es.tr b/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.es.tr deleted file mode 100644 index b303194b..00000000 --- a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.es.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_flowerpots -Dandelion Flower Pot=Maceta con diente de león -Poppy Floer Pot=Maceta con amapola -Blue Orchid Flower Pot=Maceta con orquídeas azules -Allium Flower Pot=Maceta con puerro -Azure Bluet Flower Pot=Maceta con flor azul celeste -Red Tulip Flower Pot=Maceta con tulipán rojo -Pink Tulip Flower Pot=Maceta con tulipán rosa -White Tulip Flower Pot=Maceta con tulipán blanco -Orange Tulip Flower Pot=Maceta con tulipán naranja -Oxeye Daisy Flower Pot=Maceta con margarita -Brown Mushroom Flower Pot=Maceta con seta marrón -Red Mushroom Flower Pot=Maceta con seta roja -Oak Sapling Flower Pot=Maceta con roble joven -Acacia Sapling Flower Pot=Maceta con acacia -Jungle Sapling Flower Pot=Maceta con la jungla -Dark Oak Sapling Flower Pot=Maceta con roble oscuro -Spruce Sapling Flower Pot=Maceta con abeto -Birch Sapling Flower Pot=Maceta con abedul -Dead Bush Flower Pot=Maceta con arbusto muerto -Fern Flower Pot=Maceta con helecho -Cactus Flower Pot=Maceta con cactus -Flower Pot=Maceta -Flower pots are decorative blocks in which flowers and other small plants can be placed.=Las macetas son bloques decorativos en los que se pueden colocar flores y otras plantas pequeñas. -Just place a plant on the flower pot. Flower pots can hold small flowers (not higher than 1 block), saplings, ferns, dead bushes, mushrooms and cacti. Rightclick a potted plant to retrieve the plant.=Simplemente coloque una planta en la maceta. Las macetas pueden contener flores pequeñas (no más de 1 bloque), árboles jóvenes, helechos, arbustos muertos, hongos y cactus. Haga clic derecho en una planta en maceta para recuperar la planta. \ No newline at end of file diff --git a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.fr.tr b/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.fr.tr deleted file mode 100644 index d8049711..00000000 --- a/mods/ITEMS/mcl_flowerpots/locale/mcl_flowerpots.fr.tr +++ /dev/null @@ -1,26 +0,0 @@ -# textdomain: mcl_flowerpots -Dandelion Flower Pot=Pissenlit en Pot -Poppy Flower Pot=Coquelicot en Pot -Blue Orchid Flower Pot=Orchidée Bleue en Pot -Allium Flower Pot=Allium en Pot -Azure Bluet Flower Pot=Houstonie Bleue en Pot -Red Tulip Flower Pot=Tulipe Rouge en Pot -Pink Tulip Flower Pot=Tulipe Rose en Pot -White Tulip Flower Pot=Tulipe Blanche en Pot -Orange Tulip Flower Pot=Tulipe Orange en Pot -Oxeye Daisy Flower Pot=Marguerite en Pot -Brown Mushroom Flower Pot=Champignon Marron en Pot -Red Mushroom Flower Pot=Champignon Rouge en Pot -Oak Sapling Flower Pot=Pousse de Chêne en Pot -Acacia Sapling Flower Pot=Pousse d'Acacia en Pot -Jungle Sapling Flower Pot=Pousse d'Acajou en Pot -Dark Oak Sapling Flower Pot=Pousse de Chêne Noir en Pot -Spruce Sapling Flower Pot=Pousse de Sapin en Pot -Birch Sapling Flower Pot=Pousse de Bouleau en Pot -Dead Bush Flower Pot=Arbuste Mort en Pot -Fern Flower Pot=Fougère en Pot -Cactus Flower Pot=Cactus en Pot -Flower Pot=Pot de Fleurs -Flower pots are decorative blocks in which flowers and other small plants can be placed.=Les pots de fleurs sont des blocs décoratifs dans lesquels des fleurs et d'autres petites plantes peuvent être placées. -Just place a plant on the flower pot. Flower pots can hold small flowers (not higher than 1 block), saplings, ferns, dead bushes, mushrooms and cacti. Rightclick a potted plant to retrieve the plant.=Placez simplement une plante sur le pot de fleurs. Les pots de fleurs peuvent contenir de petites fleurs (pas plus d'un bloc), des pousses, des fougères, des buissons morts, des champignons et des cactus. Cliquez avec le bouton droit sur une plante en pot pour récupérer la plante. -Can hold a small flower or plant=Peut contenir une petite fleur ou plante diff --git a/mods/ITEMS/mcl_flowerpots/locale/template.txt b/mods/ITEMS/mcl_flowerpots/locale/template.txt index fcdf7d21..c68a07e7 100644 --- a/mods/ITEMS/mcl_flowerpots/locale/template.txt +++ b/mods/ITEMS/mcl_flowerpots/locale/template.txt @@ -23,4 +23,3 @@ Cactus Flower Pot= Flower Pot= Flower pots are decorative blocks in which flowers and other small plants can be placed.= Just place a plant on the flower pot. Flower pots can hold small flowers (not higher than 1 block), saplings, ferns, dead bushes, mushrooms and cacti. Rightclick a potted plant to retrieve the plant.= -Can hold a small flower or plant= diff --git a/mods/ITEMS/mcl_flowers/depends.txt b/mods/ITEMS/mcl_flowers/depends.txt index a7a7b9cd..e52e9ac0 100644 --- a/mods/ITEMS/mcl_flowers/depends.txt +++ b/mods/ITEMS/mcl_flowers/depends.txt @@ -1,5 +1,4 @@ mcl_core mcl_util mcl_sounds -screwdriver? doc? diff --git a/mods/ITEMS/mcl_flowers/init.lua b/mods/ITEMS/mcl_flowers/init.lua index 68ad9538..c2708500 100644 --- a/mods/ITEMS/mcl_flowers/init.lua +++ b/mods/ITEMS/mcl_flowers/init.lua @@ -1,25 +1,13 @@ local S = minetest.get_translator("mcl_flowers") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. +local init = os.clock() -- Simple flower template local smallflowerlongdesc = S("This is a small flower. Small flowers are mainly used for dye production and can also be potted.") local plant_usage_help = S("It can only be placed on a block on which it would also survive.") -local get_palette_color_from_pos = function(pos) - local biome_data = minetest.get_biome_data(pos) - local index = 0 - if biome_data then - local biome = biome_data.biome - local biome_name = minetest.get_biome_name(biome) - local reg_biome = minetest.registered_biomes[biome_name] - if reg_biome then - index = reg_biome._mcl_palette_index - end - end - return index -end - -- on_place function for flowers local on_place_flower = mcl_util.generate_on_place_plant_function(function(pos, node, itemstack) local below = {x=pos.x, y=pos.y-1, z=pos.z} @@ -29,7 +17,7 @@ local on_place_flower = mcl_util.generate_on_place_plant_function(function(pos, local has_palette = minetest.registered_nodes[itemstack:get_name()].palette ~= nil local colorize if has_palette then - colorize = get_palette_color_from_pos(pos) + colorize = minetest.registered_nodes[soil_node.name]._mcl_grass_palette_index end if not colorize then colorize = 0 @@ -65,7 +53,7 @@ local function add_simple_flower(name, desc, image, simple_selection_box) paramtype = "light", walkable = false, stack_max = 64, - groups = {dig_immediate=3,flammable=2,fire_encouragement=60,fire_flammability=100,plant=1,flower=1,place_flowerlike=1,non_mycelium_plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, + groups = {dig_immediate=3,flammable=2,plant=1,flower=1,place_flowerlike=1,non_mycelium_plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,enderman_takable=1,deco_block=1}, sounds = mcl_sounds.node_sound_leaves_defaults(), node_placement_prediction = "", on_place = on_place_flower, @@ -122,7 +110,7 @@ local def_tallgrass = { walkable = false, buildable_to = true, is_ground_content = true, - groups = {handy=1,shearsy=1, flammable=3,fire_encouragement=60,fire_flammability=100,attached_node=1,plant=1,place_flowerlike=2,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1}, + groups = {handy=1,shearsy=1, flammable=3,attached_node=1,plant=1,place_flowerlike=2,non_mycelium_plant=1,dig_by_water=1,destroy_by_lava_flow=1,deco_block=1}, sounds = mcl_sounds.node_sound_leaves_defaults(), drop = wheat_seed_drop, _mcl_shears_drop = true, @@ -157,7 +145,7 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im is_flower = true end - local bottom_groups = {flammable=2,fire_encouragement=60,fire_flammability=100, non_mycelium_plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1, plant=1,double_plant=1,deco_block=1,not_in_creative_inventory=noncreative} + local bottom_groups = {flammable=2,non_mycelium_plant=1,attached_node=1, dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1, plant=1,double_plant=1,deco_block=1,not_in_creative_inventory=noncreative} if is_flower then bottom_groups.flower = 1 bottom_groups.place_flowerlike = 1 @@ -238,8 +226,8 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im local top = { x = bottom.x, y = bottom.y + 1, z = bottom.z } local bottom_buildable = minetest.registered_nodes[minetest.get_node(bottom).name].buildable_to local top_buildable = minetest.registered_nodes[minetest.get_node(top).name].buildable_to - local floor = minetest.get_node({x=bottom.x, y=bottom.y-1, z=bottom.z}) - if not minetest.registered_nodes[floor.name] then + local floorname = minetest.get_node({x=bottom.x, y=bottom.y-1, z=bottom.z}).name + if not minetest.registered_nodes[floorname] then return itemstack end @@ -255,13 +243,13 @@ local function add_large_plant(name, desc, longdesc, bottom_img, top_img, inv_im -- * If not a flower, also allowed on podzol and coarse dirt -- * Only with light level >= 8 -- * Only if two enough space - if (floor.name == "mcl_core:dirt" or minetest.get_item_group(floor.name, "grass_block") == 1 or (not is_flower and (floor.name == "mcl_core:coarse_dirt" or floor.name == "mcl_core:podzol" or floor.name == "mcl_core:podzol_snow"))) and bottom_buildable and top_buildable and light_ok then + if (floorname == "mcl_core:dirt" or minetest.get_item_group(floorname, "grass_block") == 1 or (not is_flower and (floorname == "mcl_core:coarse_dirt" or floorname == "mcl_core:podzol" or floorname == "mcl_core:podzol_snow"))) and bottom_buildable and top_buildable and light_ok then local param2 if grass_color then - param2 = get_palette_color_from_pos(bottom) + param2 = minetest.registered_nodes[floorname]._mcl_grass_palette_index end -- Success! We can now place the flower - minetest.sound_play(minetest.registered_nodes[itemstring].sounds.place, {pos = bottom, gain=1}, true) + minetest.sound_play(minetest.registered_nodes[itemstring].sounds.place, {pos = bottom, gain=1}) minetest.set_node(bottom, {name=itemstring, param2=param2}) minetest.set_node(top, {name=itemstring.."_top", param2=param2}) if not minetest.settings:get_bool("creative_mode") then @@ -359,10 +347,6 @@ minetest.register_abm({ end, }) -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_simple -end -- Lily Pad minetest.register_node("mcl_flowers:waterlily", { @@ -416,7 +400,7 @@ minetest.register_node("mcl_flowers:waterlily", { local idef = itemstack:get_definition() if idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=pointed_thing.above, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=pointed_thing.above, gain=1}) end if not minetest.settings:get_bool("creative_mode") then @@ -429,9 +413,12 @@ minetest.register_node("mcl_flowers:waterlily", { end return itemstack - end, - on_rotate = on_rotate, + end }) -- Legacy support minetest.register_alias("mcl_core:tallgrass", "mcl_flowers:tallgrass") + +-- Show loading time +local time_to_load= os.clock() - init +print(string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load)) diff --git a/mods/ITEMS/mcl_flowers/locale/mcl_flowers.es.tr b/mods/ITEMS/mcl_flowers/locale/mcl_flowers.es.tr deleted file mode 100644 index 6b9734b0..00000000 --- a/mods/ITEMS/mcl_flowers/locale/mcl_flowers.es.tr +++ /dev/null @@ -1,32 +0,0 @@ -# textdomain: mcl_flowers -This is a small flower. Small flowers are mainly used for dye production and can also be potted.=Esta es una pequeña flor. Las flores pequeñas se utilizan principalmente para la producción de tinte y también se pueden macetas. -It can only be placed on a block on which it would also survive.=Solo se puede colocar en un bloque en el que también sobreviviría. -Poppy=Amapola -Dandelion=Diente de león -Oxeye Daisy=Margarita -Orange Tulip=Tulipán naranja -Pink Tulip=Tulipán rosa -Red Tulip=Tulipán rojo -White Tulip=Tulipán blanco -Allium=Allium -Azure Bluet=Azul celeste -Blue Orchid=Orquídea azul -Tall Grass=Cesped alto -Tall grass is a small plant which often occurs on the surface of grasslands. It can be harvested for wheat seeds. By using bone meal, tall grass can be turned into double tallgrass which is two blocks high.=El cesped alto es una planta pequeña que a menudo se encuentra en la superficie de los pastizales. Se puede cosechar para semillas de trigo. Mediante el uso de harina de hueso, la hierba alta se puede convertir en hierba alta doble que tiene dos bloques de altura. -Fern=Helecho -Ferns are small plants which occur naturally in jungles and taigas. They can be harvested for wheat seeds. By using bone meal, a fern can be turned into a large fern which is two blocks high.=Los helechos son plantas pequeñas que se producen naturalmente en las selvas y taigas. Se pueden cosechar para semillas de trigo. Al usar harina de hueso, un helecho se puede convertir en un helecho grande que tiene dos bloques de altura. -(Top Part)=(Parte superior) -Peony=Peonía -A peony is a large plant which occupies two blocks. It is mainly used in dye protection.=Una peonía es una planta grande que ocupa dos bloques. Se utiliza principalmente en la protección del tinte. -Rose Bush=Rosal -A rose bush is a large plant which occupies two blocks. It is safe to touch it. Rose bushes are mainly used in dye protection.=Un rosal es una planta grande que ocupa dos bloques. Es seguro tocarlo. Los rosales se utilizan principalmente en la protección del tinte. -Lilac=Lila -A lilac is a large plant which occupies two blocks. It is mainly used in dye production.=Una lila es una planta grande que ocupa dos bloques. Se utiliza principalmente en la producción de tintes. -Sunflower=Girasol -A sunflower is a large plant which occupies two blocks. It is mainly used in dye production.=Un girasol es una planta grande que ocupa dos bloques. Se utiliza principalmente en la producción de tintes. -Double tallgrass a variant of tall grass and occupies two blocks. It can be harvested for wheat seeds.=Doble hierba alta una variante de hierba alta y ocupa dos bloques. Se puede cosechar para semillas de trigo. -Large fern is a variant of fern and occupies two blocks. It can be harvested for wheat seeds.=El helecho grande es una variante del helecho y ocupa dos bloques. Se puede cosechar para semillas de trigo. -Double Tallgrass=Doble hierba alta -Large Fern=Helecho grande -Lily Pad=Nenúfar -A lily pad is a flat plant block which can be walked on. They can be placed on water sources, ice and frosted ice.=Un nenúfar es un bloque de planta plano sobre el que se puede caminar. Se pueden colocar en fuentes de agua y hielo. diff --git a/mods/ITEMS/mcl_flowers/locale/mcl_flowers.fr.tr b/mods/ITEMS/mcl_flowers/locale/mcl_flowers.fr.tr deleted file mode 100644 index e038063c..00000000 --- a/mods/ITEMS/mcl_flowers/locale/mcl_flowers.fr.tr +++ /dev/null @@ -1,32 +0,0 @@ -# textdomain: mcl_flowers -This is a small flower. Small flowers are mainly used for dye production and can also be potted.=Ceci est une petite fleur. Les petites fleurs sont principalement utilisées pour la production de teintures et peuvent également être mises en pot. -It can only be placed on a block on which it would also survive.=Elles ne peuvent être placées que sur un bloc sur lequel elles survivraient également. -Poppy=Coquelicot -Dandelion=Pisselit -Oxeye Daisy=Marguerite -Orange Tulip=Tulipe Orange -Pink Tulip=Tulipe Rose -Red Tulip=Tulipe Rouge -White Tulip=Tulipe Blanche -Allium=Allium -Azure Bluet=Houstonie Bleue -Blue Orchid=Orchidée Bleue -Tall Grass=Hautes herbes -Tall grass is a small plant which often occurs on the surface of grasslands. It can be harvested for wheat seeds. By using bone meal, tall grass can be turned into double tallgrass which is two blocks high.=L'herbe haute est une petite plante qui se rencontre souvent à la surface des prairies. Il peut être récolté pour les graines de blé. En utilisant de la farine d'os, les hautes herbes peuvent être transformées en herbes hautes doubles de deux blocs de hauteur. -Fern=Fougère -Ferns are small plants which occur naturally in jungles and taigas. They can be harvested for wheat seeds. By using bone meal, a fern can be turned into a large fern which is two blocks high.=Les fougères sont de petites plantes qui se produisent naturellement dans les jungles et les taigas. Ils peuvent être récoltés pour les graines de blé. En utilisant de la farine d'os, une fougère peut être transformée en une grande fougère haute de deux blocs. -(Top Part)=(Partie supérieure) -Peony=Pivoine -A peony is a large plant which occupies two blocks. It is mainly used in dye protection.=Une pivoine est une grande plante qui occupe deux blocs. Il est principalement utilisé dans la protection des colorants. -Rose Bush=Rosier -A rose bush is a large plant which occupies two blocks. It is safe to touch it. Rose bushes are mainly used in dye protection.=Un rosier est une grande plante qui occupe deux blocs. Il n'y a pas de danger à le toucher. Les rosiers sont principalement utilisés dans la protection des colorants. -Lilac=Lilas -A lilac is a large plant which occupies two blocks. It is mainly used in dye production.=Un lilas est une grande plante qui occupe deux blocs. Il est principalement utilisé dans la production de colorants. -Sunflower=Tournesol -A sunflower is a large plant which occupies two blocks. It is mainly used in dye production.=Un tournesol est une grande plante qui occupe deux blocs. Il est principalement utilisé dans la production de colorants. -Double tallgrass a variant of tall grass and occupies two blocks. It can be harvested for wheat seeds.=La grande herbe haute une variante de l'herbe haute et occupe deux blocs. Elle peut être récoltée pour les graines de blé. -Large fern is a variant of fern and occupies two blocks. It can be harvested for wheat seeds.=La grande fougère est une variante de la fougère et occupe deux blocs. Elle peut être récoltée pour les graines de blé. -Double Tallgrass=Grande Herbe -Large Fern=Grande Fougère -Lily Pad=Nénuphar -A lily pad is a flat plant block which can be walked on. They can be placed on water sources, ice and frosted ice.=Un nénuphar est un bloc de plante plat sur lequel on peut marcher. Ils peuvent être placés sur des sources d'eau, de la glace et de la glace givrée. diff --git a/mods/ITEMS/mcl_flowers/textures/flowers_waterlily.png b/mods/ITEMS/mcl_flowers/textures/flowers_waterlily.png index f3ca54b1..53b13f25 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/flowers_waterlily.png and b/mods/ITEMS/mcl_flowers/textures/flowers_waterlily.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_blue_orchid.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_blue_orchid.png index 60f9df1a..c5ddf11c 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_blue_orchid.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_blue_orchid.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png index 2a2be226..baf21de3 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_bottom.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_inv.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_inv.png index f59bff0b..c44d03d3 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_inv.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_inv.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_top.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_top.png index 860b4fee..6ae47a1b 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_top.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_fern_top.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_bottom.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_bottom.png index a5f25ef6..568e3de6 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_bottom.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_bottom.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_inv.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_inv.png index 974b21a7..ddfff3bd 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_inv.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_inv.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top.png index ef60144b..2d10b658 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_grass_top.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_rose_bottom.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_rose_bottom.png index a8f5df22..13170e66 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_rose_bottom.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_rose_bottom.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_back.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_back.png index c1222611..3bf37177 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_back.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_back.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_bottom.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_bottom.png index e84fc241..4f169a84 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_bottom.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_sunflower_bottom.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_syringa_top.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_syringa_top.png index aaf72811..ca478a3f 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_syringa_top.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_double_plant_syringa_top.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png index 840d6663..9e3dc2da 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern_inv.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern_inv.png index 1f5980ee..66a58b7b 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern_inv.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_fern_inv.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png index 1088bd19..4828e156 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass.png differ diff --git a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass_inv.png b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass_inv.png index 0e075add..cce0eba7 100644 Binary files a/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass_inv.png and b/mods/ITEMS/mcl_flowers/textures/mcl_flowers_tallgrass_inv.png differ diff --git a/mods/ITEMS/mcl_furnaces/README.md b/mods/ITEMS/mcl_furnaces/README.md index c7282124..7bdcae46 100644 --- a/mods/ITEMS/mcl_furnaces/README.md +++ b/mods/ITEMS/mcl_furnaces/README.md @@ -9,4 +9,4 @@ Modified by Wuzzy. License of media ---------------- -See the main MineClone 2 README.md file. +MIT License diff --git a/mods/ITEMS/mcl_furnaces/depends.txt b/mods/ITEMS/mcl_furnaces/depends.txt index 365076c1..441fdfde 100644 --- a/mods/ITEMS/mcl_furnaces/depends.txt +++ b/mods/ITEMS/mcl_furnaces/depends.txt @@ -1,5 +1,4 @@ mcl_init -mcl_formspec mcl_core mcl_sounds mcl_craftguide diff --git a/mods/ITEMS/mcl_furnaces/init.lua b/mods/ITEMS/mcl_furnaces/init.lua index c76b379e..8b817312 100644 --- a/mods/ITEMS/mcl_furnaces/init.lua +++ b/mods/ITEMS/mcl_furnaces/init.lua @@ -7,26 +7,21 @@ local S = minetest.get_translator("mcl_furnaces") local function active_formspec(fuel_percent, item_percent) return "size[9,8.75]".. + "background[-0.19,-0.25;9.41,9.49;crafting_inventory_furnace.png]".. + mcl_vars.inventory_header.. "label[0,4;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "label[2.75,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Furnace"))).."]".. "list[current_name;src;2.75,0.5;1,1;]".. - mcl_formspec.get_itemslot_bg(2.75,0.5,1,1).. "list[current_name;fuel;2.75,2.5;1,1;]".. - mcl_formspec.get_itemslot_bg(2.75,2.5,1,1).. "list[current_name;dst;5.75,1.5;1,1;]".. - mcl_formspec.get_itemslot_bg(5.75,1.5,1,1).. "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. (100-fuel_percent)..":default_furnace_fire_fg.png]".. "image[4.1,1.5;1.5,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. - -- Craft guide button temporarily removed due to Minetest bug. - -- TODO: Add it back when the Minetest bug is fixed. - --"image_button[8,0;1,1;craftguide_book.png;craftguide;]".. - --"tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]".. + "image_button[8,0;1,1;craftguide_book.png;craftguide;]".. + "tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]".. "listring[current_name;dst]".. "listring[current_player;main]".. "listring[current_name;src]".. @@ -36,24 +31,19 @@ local function active_formspec(fuel_percent, item_percent) end local inactive_formspec = "size[9,8.75]".. + "background[-0.19,-0.25;9.41,9.49;crafting_inventory_furnace.png]".. + mcl_vars.inventory_header.. "label[0,4;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,4.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,4.5,9,3).. "list[current_player;main;0,7.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,7.74,9,1).. "label[2.75,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Furnace"))).."]".. "list[current_name;src;2.75,0.5;1,1;]".. - mcl_formspec.get_itemslot_bg(2.75,0.5,1,1).. "list[current_name;fuel;2.75,2.5;1,1;]".. - mcl_formspec.get_itemslot_bg(2.75,2.5,1,1).. "list[current_name;dst;5.75,1.5;1,1;]".. - mcl_formspec.get_itemslot_bg(5.75,1.5,1,1).. "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. "image[4.1,1.5;1.5,1;gui_furnace_arrow_bg.png^[transformR270]".. - -- Craft guide button temporarily removed due to Minetest bug. - -- TODO: Add it back when the Minetest bug is fixed. - --"image_button[8,0;1,1;craftguide_book.png;craftguide;]".. - --"tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]".. + "image_button[8,0;1,1;craftguide_book.png;craftguide;]".. + "tooltip[craftguide;"..minetest.formspec_escape(S("Recipe book")).."]".. "listring[current_name;dst]".. "listring[current_player;main]".. "listring[current_name;src]".. @@ -305,7 +295,6 @@ end minetest.register_node("mcl_furnaces:furnace", { description = S("Furnace"), - _tt_help = S("Uses fuel to smelt or cook items"), _doc_items_longdesc = S("Furnaces cook or smelt several items, using a furnace fuel, into something else."), _doc_items_usagehelp = S("Use the furnace to open the furnace menu. Place a furnace fuel in the lower slot and the source material in the upper slot. The furnace will slowly use its fuel to smelt the item. The result will be placed into the output slot at the right side.").."\n".. @@ -359,7 +348,7 @@ minetest.register_node("mcl_furnaces:furnace", { allow_metadata_inventory_take = allow_metadata_inventory_take, on_metadata_inventory_take = on_metadata_inventory_take, on_receive_fields = receive_fields, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, on_rotate = on_rotate, }) @@ -402,7 +391,7 @@ minetest.register_node("mcl_furnaces:furnace_active", { allow_metadata_inventory_take = allow_metadata_inventory_take, on_metadata_inventory_take = on_metadata_inventory_take, on_receive_fields = receive_fields, - _mcl_blast_resistance = 3.5, + _mcl_blast_resistance = 17.5, _mcl_hardness = 3.5, on_rotate = on_rotate, }) @@ -421,15 +410,3 @@ if minetest.get_modpath("doc") then doc.add_entry_alias("nodes", "mcl_furnaces:furnace", "nodes", "mcl_furnaces:furnace_active") end --- Legacy -minetest.register_lbm({ - label = "Update furnace formspecs (0.60.0", - name = "mcl_furnaces:update_formspecs_0_60_0", - -- Only update inactive furnaces because active ones should update themselves - nodenames = { "mcl_furnaces:furnace" }, - run_at_every_load = false, - action = function(pos, node) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", inactive_formspec) - end, -}) diff --git a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.de.tr b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.de.tr index 5e55af7f..90cc5017 100644 --- a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.de.tr +++ b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.de.tr @@ -6,4 +6,3 @@ Use the recipe book to see what you can smelt, what you can use as fuel and how Burning Furnace=Aktiver Ofen Recipe book=Fertigungsbuch Inventory=Inventar -Uses fuel to smelt or cook items=Benutzt Brennstoff, um Dinge zu schmelzen oder zu kochen diff --git a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.es.tr b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.es.tr deleted file mode 100644 index 10378c2d..00000000 --- a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_furnaces -Furnace=Horno -Furnaces cook or smelt several items, using a furnace fuel, into something else.=Los hornos cocinan u funden varios elementos, utilizando un combustible de horno, en otra cosa. -Use the furnace to open the furnace menu. Place a furnace fuel in the lower slot and the source material in the upper slot. The furnace will slowly use its fuel to smelt the item. The result will be placed into the output slot at the right side.=Use el horno para abrir el menú del horno. Coloque un combustible de horno en la ranura inferior y el material de origen en la ranura superior. El horno usará lentamente su combustible para fundir el artículo. El resultado se colocará en la ranura de salida en el lado derecho. -Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.=Use el libro de recetas para ver qué puede crear, qué puede usar como combustible y durante cuánto tiempo se quemará. -Burning Furnace=Horno ardiente -Recipe book=Libro de recetas -Inventory=Inventario diff --git a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr b/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr deleted file mode 100644 index deec7981..00000000 --- a/mods/ITEMS/mcl_furnaces/locale/mcl_furnaces.fr.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_furnaces -Furnace=Four -Furnaces cook or smelt several items, using a furnace fuel, into something else.=Les fours cuisent ou fondent plusieurs articles, en utilisant un combustible de four, dans quelque chose d'autre. -Use the furnace to open the furnace menu. Place a furnace fuel in the lower slot and the source material in the upper slot. The furnace will slowly use its fuel to smelt the item. The result will be placed into the output slot at the right side.=Utilisez le four pour ouvrir le menu du four. Placez un combustible de four dans la fente inférieure et le matériau source dans la fente supérieure. Le four utilisera lentement son combustible pour fondre l'article. Le résultat sera placé dans la fente de sortie du côté droit. -Use the recipe book to see what you can smelt, what you can use as fuel and how long it will burn.=Utilisez le livre de recettes pour voir ce que vous pouvez cuire, ce que vous pouvez utiliser comme carburant et combien de temps il brûlera. -Burning Furnace=Four Allumé -Recipe book=Livre de Recette -Inventory=Inventaire -Uses fuel to smelt or cook items=Utilise du carburant pour fondre ou cuire des articles diff --git a/mods/ITEMS/mcl_furnaces/locale/template.txt b/mods/ITEMS/mcl_furnaces/locale/template.txt index 4f88824b..a3922621 100644 --- a/mods/ITEMS/mcl_furnaces/locale/template.txt +++ b/mods/ITEMS/mcl_furnaces/locale/template.txt @@ -6,4 +6,3 @@ Use the recipe book to see what you can smelt, what you can use as fuel and how Burning Furnace= Recipe book= Inventory= -Uses fuel to smelt or cook items= diff --git a/mods/ITEMS/mcl_furnaces/textures/crafting_inventory_furnace.png b/mods/ITEMS/mcl_furnaces/textures/crafting_inventory_furnace.png new file mode 100644 index 00000000..688ae6ed Binary files /dev/null and b/mods/ITEMS/mcl_furnaces/textures/crafting_inventory_furnace.png differ diff --git a/mods/ITEMS/mcl_furnaces/textures/default_furnace_bottom.png b/mods/ITEMS/mcl_furnaces/textures/default_furnace_bottom.png index c8efce2f..7844072d 100644 Binary files a/mods/ITEMS/mcl_furnaces/textures/default_furnace_bottom.png and b/mods/ITEMS/mcl_furnaces/textures/default_furnace_bottom.png differ diff --git a/mods/ITEMS/mcl_furnaces/textures/default_furnace_front_active.png b/mods/ITEMS/mcl_furnaces/textures/default_furnace_front_active.png index 3b6e1056..c425604d 100644 Binary files a/mods/ITEMS/mcl_furnaces/textures/default_furnace_front_active.png and b/mods/ITEMS/mcl_furnaces/textures/default_furnace_front_active.png differ diff --git a/mods/ITEMS/mcl_furnaces/textures/default_furnace_side.png b/mods/ITEMS/mcl_furnaces/textures/default_furnace_side.png index 2c364db5..c154414b 100644 Binary files a/mods/ITEMS/mcl_furnaces/textures/default_furnace_side.png and b/mods/ITEMS/mcl_furnaces/textures/default_furnace_side.png differ diff --git a/mods/ITEMS/mcl_furnaces/textures/default_furnace_top.png b/mods/ITEMS/mcl_furnaces/textures/default_furnace_top.png index c8efce2f..7844072d 100644 Binary files a/mods/ITEMS/mcl_furnaces/textures/default_furnace_top.png and b/mods/ITEMS/mcl_furnaces/textures/default_furnace_top.png differ diff --git a/mods/ITEMS/mcl_heads/README.txt b/mods/ITEMS/mcl_heads/README.txt new file mode 100644 index 00000000..96eb30d8 --- /dev/null +++ b/mods/ITEMS/mcl_heads/README.txt @@ -0,0 +1,4 @@ +All textures from Faithful Vanilla texture pack. + +The mcl_heads_* texture were created by kingoscargames, +based on aforementioned texture pack. diff --git a/mods/ITEMS/mcl_heads/depends.txt b/mods/ITEMS/mcl_heads/depends.txt index 01846722..976f16ae 100644 --- a/mods/ITEMS/mcl_heads/depends.txt +++ b/mods/ITEMS/mcl_heads/depends.txt @@ -1,4 +1,2 @@ mcl_sounds -mcl_armor? screwdriver? -doc? diff --git a/mods/ITEMS/mcl_heads/init.lua b/mods/ITEMS/mcl_heads/init.lua index cb83ed1f..ba365440 100644 --- a/mods/ITEMS/mcl_heads/init.lua +++ b/mods/ITEMS/mcl_heads/init.lua @@ -1,45 +1,22 @@ local S = minetest.get_translator("mcl_heads") -local mod_doc = minetest.get_modpath("doc") -local mod_screwdriver = minetest.get_modpath("screwdriver") - -local equip_armor -if minetest.get_modpath("mcl_armor") then - equip_armor = armor.on_armor_use -end - -- Heads system -local function addhead(name, texture, desc, longdesc, rangemob, rangefactor) - local on_rotate_floor, on_rotate_wall - if mod_screwdriver then - on_rotate_floor = function(pos, node, user, mode, new_param2) - if mode == screwdriver.ROTATE_AXIS then - node.name = node.name .. "_wall" - node.param2 = minetest.dir_to_wallmounted(minetest.facedir_to_dir(node.param2)) - minetest.set_node(pos, node) - return true - end - end - on_rotate_wall = function(pos, node, user, mode, new_param2) - if mode == screwdriver.ROTATE_AXIS then - node.name = string.sub(node.name, 1, string.len(node.name)-5) - node.param2 = minetest.dir_to_facedir(minetest.wallmounted_to_dir(node.param2)) - minetest.set_node(pos, node) - return true - end - end +local function addhead(name, texture, desc, longdesc) + local on_rotate + if minetest.get_modpath("screwdriver") then + on_rotate = screwdriver.rotate_simple end minetest.register_node("mcl_heads:"..name, { description = desc, _doc_items_longdesc = longdesc, - drawtype = "nodebox", + drawtype = "nodebox", is_ground_content = false, node_box = { type = "fixed", - fixed = { - { -0.25, -0.5, -0.25, 0.25, 0.0, 0.25, }, + fixed = { + { -0.25, -0.5, -0.25, 0.25, 0.0, 0.25, }, }, }, groups = {handy=1, armor_head=1,non_combat_armor=1, head=1, deco_block=1, dig_by_piston=1}, @@ -53,7 +30,7 @@ local function addhead(name, texture, desc, longdesc, rangemob, rangefactor) "[combine:16x16:4,0="..texture, -- right "[combine:16x16:-20,0="..texture, -- back "[combine:16x16:-4,0="..texture, -- front - }, + }, paramtype = "light", stack_max = 64, paramtype2 = "facedir", @@ -66,99 +43,16 @@ local function addhead(name, texture, desc, longdesc, rangemob, rangefactor) sounds = mcl_sounds.node_sound_defaults({ footstep = {name="default_hard_footstep", gain=0.3} }), - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" then - -- no interaction possible with entities, for now. - return itemstack - end - - local under = pointed_thing.under - local node = minetest.get_node(under) - local def = minetest.registered_nodes[node.name] - if not def then return itemstack end - - -- Call on_rightclick if the pointed node defines it - if placer and not placer:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(under, node, placer, itemstack) or itemstack - end - end - - local above = pointed_thing.above - local diff = {x = under.x - above.x, y = under.y - above.y, z = under.z - above.z} - local wdir = minetest.dir_to_wallmounted(diff) - - local itemstring = itemstack:get_name() - local fakestack = ItemStack(itemstack) - local idef = fakestack:get_definition() - local retval - if wdir == 0 or wdir == 1 then - return minetest.item_place(itemstack, placer, pointed_thing) - else - retval = fakestack:set_name("mcl_heads:"..name.."_wall") - end - if not retval then - return itemstack - end - - local success - itemstack, success = minetest.item_place(fakestack, placer, pointed_thing, wdir) - itemstack:set_name(itemstring) - return itemstack - end, - on_secondary_use = equip_armor, - - on_rotate = on_rotate_floor, - - _mcl_armor_mob_range_mob = rangemob, - _mcl_armor_mob_range_factor = rangefactor, - _mcl_blast_resistance = 1, + on_rotate = on_rotate, + _mcl_blast_resistance = 5, _mcl_hardness = 1, }) - - minetest.register_node("mcl_heads:"..name.."_wall", { - _doc_items_create_entry = false, - drawtype = "nodebox", - is_ground_content = false, - node_box = { - type = "wallmounted", - wall_bottom = { -0.25, -0.5, -0.25, 0.25, 0.0, 0.25, }, - wall_top = { -0.25, 0.0, -0.25, 0.25, 0.5, 0.25, }, - wall_side = { -0.5, -0.25, -0.25, 0.0, 0.25, 0.25, }, - }, - groups = {handy=1, head=1, deco_block=1, dig_by_piston=1, not_in_creative_inventory=1}, - -- The head textures are based off the textures of an actual mob. - tiles = { - { name = "[combine:16x16:-4,-4="..texture, align_style = "world" }, -- front - { name = "[combine:16x16:-20,-4="..texture, align_style = "world" }, -- back - { name = "[combine:16x16:-8,-4="..texture, align_style = "world" }, -- left - { name = "[combine:16x16:0,-4="..texture, align_style = "world" }, -- right - { name = "([combine:16x16:-4,0="..texture..")^[transformR180", align_style = "node" }, -- top - { name = "([combine:16x16:-4,8="..texture..")^([combine:16x16:-12,8="..texture..")", align_style = "node" }, -- bottom - }, - paramtype = "light", - stack_max = 64, - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = true, - sounds = mcl_sounds.node_sound_defaults({ - footstep = {name="default_hard_footstep", gain=0.3} - }), - drop = "mcl_heads:"..name, - on_rotate = on_rotate_wall, - _mcl_blast_resistance = 1, - _mcl_hardness = 1, - }) - - if mod_doc then - doc.add_entry_alias("nodes", "mcl_heads:" .. name, "nodes", "mcl_heads:" .. name .. "_wall") - end end -- Add heads -addhead("zombie", "mcl_heads_zombie_node.png", S("Zombie Head"), S("A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet, which reduces the detection range of zombies by 50%."), "mobs_mc:zombie", 0.5) -addhead("creeper", "mcl_heads_creeper_node.png", S("Creeper Head"), S("A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet, which reduces the detection range of creepers by 50%."), "mobs_mc:creeper", 0.5) +addhead("zombie", "mcl_heads_zombie_node.png", S("Zombie Head"), S("A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet for fun, but does not offer any protection.")) +addhead("creeper", "mcl_heads_creeper_node.png", S("Creeper Head"), S("A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet for fun, but does not offer any protection.")) -- Original Minecraft name: “Head” addhead("steve", "mcl_heads_steve_node.png", S("Human Head"), S("A human head is a small decorative block which resembles the head of a human (i.e. a player character). It can also be worn as a helmet for fun, but does not offer any protection.")) -addhead("skeleton", "mcl_heads_skeleton_node.png", S("Skeleton Skull"), S("A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet, which reduces the detection range of skeletons by 50%."), "mobs_mc:skeleton", 0.5) +addhead("skeleton", "mcl_heads_skeleton_node.png", S("Skeleton Skull"), S("A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet for fun, but does not offer any protection.")) addhead("wither_skeleton", "mcl_heads_wither_skeleton_node.png", S("Wither Skeleton Skull"), S("A wither skeleton skull is a small decorative block which resembles the skull of a wither skeleton. It can also be worn as a helmet for fun, but does not offer any protection.")) diff --git a/mods/ITEMS/mcl_heads/locale/mcl_heads.de.tr b/mods/ITEMS/mcl_heads/locale/mcl_heads.de.tr index 75e92aef..0adb187d 100644 --- a/mods/ITEMS/mcl_heads/locale/mcl_heads.de.tr +++ b/mods/ITEMS/mcl_heads/locale/mcl_heads.de.tr @@ -1,11 +1,11 @@ # textdomain: mcl_heads Zombie Head=Zombiekopf -A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet, which reduces the detection range of zombies by 50%.=Ein Zombiekopf ist ein kleiner dekorativer Block, der so wie ein Kopf eines Zombies aussieht. Er kann auch als Helm getragen werden, was den Erkennungsradius von Zombies um 50% verringert. +A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet for fun, but does not offer any protection.=Ein Zombiekopf ist ein kleiner dekorativer Block, der so wie ein Kopf eines Zombies aussieht. Er kann auch als Helm zum Spaß getragen werden, aber er bietet keinerlei Schutz. Creeper Head=Creeper-Kopf -A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet, which reduces the detection range of creepers by 50%.=Ein Creeperkopf ist ein kleiner dekorativer Block, der so wie ein Kopf eines Creepers aussieht. Er kann auch als Helm getragen werden, was den Erkennungsradius von Creepern um 50% verringert. +A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet for fun, but does not offer any protection.=Ein Creeper-Kopf ist ein kleiner dekorativer Block, der so wie ein Kopf eines Creepers aussieht. Er kann auch als Helm zum Spaß getragen werden, aber er bietet keinerlei Schutz. Human Head=Menschenkopf A human head is a small decorative block which resembles the head of a human (i.e. a player character). It can also be worn as a helmet for fun, but does not offer any protection.=Ein Menschenkopf ist ein kleiner dekorativer Block, der so wie der Kopf eines Menschen (das heißt, einer Spielerfigur) aussieht. Er kann auch als Helm zum Spaß getragen werden, aber er bietet keinerlei Schutz. Skeleton Skull=Skelettschädel -A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet, which reduces the detection range of skeletons by 50%.=Ein Skelettschädel ist ein kleiner dekorativer Block, der so wie ein Schädel eines Skeletts aussieht. Er kann auch als Helm getragen werden, was den Erkennungsradius von Skeletten um 50% verringert. +A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet for fun, but does not offer any protection.=Ein Skelettschädel ist ein kleiner dekorativer Block, der so wie ein Schädel eines Skeletts aussieht. Er kann auch als Helm zum Spaß getragen werden, aber er bietet keinerlei Schutz. Wither Skeleton Skull=Witherskelettschädel A wither skeleton skull is a small decorative block which resembles the skull of a wither skeleton. It can also be worn as a helmet for fun, but does not offer any protection.=Ein Witherskelettschädel ist ein kleiner dekorativer Block, der so wie ein Schädel eines Witherskeletts aussieht. Er kann auch als Helm zum Spaß getragen werden, aber er bietet keinerlei Schutz. diff --git a/mods/ITEMS/mcl_heads/locale/mcl_heads.es.tr b/mods/ITEMS/mcl_heads/locale/mcl_heads.es.tr deleted file mode 100644 index 308dd8b2..00000000 --- a/mods/ITEMS/mcl_heads/locale/mcl_heads.es.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_heads -Zombie Head=Cabeza de zombie -A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet for fun, but does not offer any protection.=Una cabeza de zombie es un pequeño bloque decorativo que se asemeja a la cabeza de un zombie. También se puede usar como casco por diversión, pero no ofrece ninguna protección. -Creeper Head=Cabeza de creeper -A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet for fun, but does not offer any protection.=Una cabeza de creeper es un pequeño bloque decorativo que se asemeja a la cabeza de un creeper. También se puede usar como casco por diversión, pero no ofrece ninguna protección. -Human Head=Cabeza humana -A human head is a small decorative block which resembles the head of a human (i.e. a player character). It can also be worn as a helmet for fun, but does not offer any protection.=Una cabeza humana es un pequeño bloque decorativo que se asemeja a la cabeza de un humano (es decir, un personaje jugador). También se puede usar como casco por diversión, pero no ofrece ninguna protección. -Skeleton Skull=Calavera de esqueleto -A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet for fun, but does not offer any protection.=Una cabeza de esqueleto es un pequeño bloque decorativo que se asemeja al cráneo de un esqueleto. También se puede usar como casco por diversión, pero no ofrece ninguna protección. -Wither Skeleton Skull=Calavera de esqueleto Wither -A wither skeleton skull is a small decorative block which resembles the skull of a wither skeleton. It can also be worn as a helmet for fun, but does not offer any protection.=Una cabeza de esqueleto marchito es un pequeño bloque decorativo que se asemeja al cráneo de un esqueleto marchito. También se puede usar como casco por diversión, pero no ofrece ninguna protección. diff --git a/mods/ITEMS/mcl_heads/locale/mcl_heads.fr.tr b/mods/ITEMS/mcl_heads/locale/mcl_heads.fr.tr deleted file mode 100644 index 56436f51..00000000 --- a/mods/ITEMS/mcl_heads/locale/mcl_heads.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_heads -Zombie Head=Tête de Zombie -A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet, which reduces the detection range of zombies by 50%.=Une tête de zombie est un petit bloc décoratif qui ressemble à la tête d'un zombie. Il peut également être porté comme un casque, ce qui réduit la plage de détection des zombies de 50%. -Creeper Head=Tête de Creeper -A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet, which reduces the detection range of creepers by 50%.=Une tête de creepers est un petit bloc décoratif qui ressemble à la tête d'un creeper. Il peut également être porté comme un casque, ce qui réduit la plage de détection des creepers de 50%. -Human Head=Tête de Joueur -A human head is a small decorative block which resembles the head of a human (i.e. a player character). It can also be worn as a helmet for fun, but does not offer any protection.=Une tête de joueur est un petit bloc décoratif qui ressemble à la tête d'un humain (c'est-à-dire un personnage de joueur). Il peut également être porté comme un casque pour le plaisir, mais n'offre aucune protection. -Skeleton Skull=Crâne de Squelette -A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet, which reduces the detection range of skeletons by 50%.=Un crâne squelette est un petit bloc décoratif qui ressemble au crâne d'un squelette. Il peut également être porté comme un casque, ce qui réduit la plage de détection des squelettes de 50%. -Wither Skeleton Skull=Crâne de Squelette Wither -A wither skeleton skull is a small decorative block which resembles the skull of a wither skeleton. It can also be worn as a helmet for fun, but does not offer any protection.=Un crâne squelette wither est un petit bloc décoratif qui ressemble au crâne d'un squelette wither. Il peut également être porté comme un casque pour le plaisir, mais n'offre aucune protection. diff --git a/mods/ITEMS/mcl_heads/locale/template.txt b/mods/ITEMS/mcl_heads/locale/template.txt index 27a4513a..7ff69df4 100644 --- a/mods/ITEMS/mcl_heads/locale/template.txt +++ b/mods/ITEMS/mcl_heads/locale/template.txt @@ -1,11 +1,11 @@ # textdomain: mcl_heads Zombie Head= -A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet, which reduces the detection range of zombies by 50%. +A zombie head is a small decorative block which resembles the head of a zombie. It can also be worn as a helmet for fun, but does not offer any protection.= Creeper Head= -A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet, which reduces the detection range of creepers by 50%. +A creeper head is a small decorative block which resembles the head of a creeper. It can also be worn as a helmet for fun, but does not offer any protection.= Human Head= A human head is a small decorative block which resembles the head of a human (i.e. a player character). It can also be worn as a helmet for fun, but does not offer any protection.= Skeleton Skull= -A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet, which reduces the detection range of skeletons by 50%. +A skeleton skull is a small decorative block which resembles the skull of a skeleton. It can also be worn as a helmet for fun, but does not offer any protection.= Wither Skeleton Skull= A wither skeleton skull is a small decorative block which resembles the skull of a wither skeleton. It can also be worn as a helmet for fun, but does not offer any protection.= diff --git a/mods/ITEMS/mcl_hoppers/depends.txt b/mods/ITEMS/mcl_hoppers/depends.txt index 67a60d4d..dbefba43 100644 --- a/mods/ITEMS/mcl_hoppers/depends.txt +++ b/mods/ITEMS/mcl_hoppers/depends.txt @@ -1,5 +1,4 @@ mcl_core -mcl_formspec mcl_sounds mcl_util doc? diff --git a/mods/ITEMS/mcl_hoppers/init.lua b/mods/ITEMS/mcl_hoppers/init.lua index 52cb6087..39f5f3e5 100644 --- a/mods/ITEMS/mcl_hoppers/init.lua +++ b/mods/ITEMS/mcl_hoppers/init.lua @@ -1,17 +1,18 @@ local S = minetest.get_translator("mcl_hoppers") +local chest = minetest.get_content_id("mcl_chests:chest") + --[[ BEGIN OF NODE DEFINITIONS ]] local mcl_hoppers_formspec = "size[9,7]".. + "background[-0.19,-0.25;9.41,10.48;mcl_hoppers_inventory.png]".. + mcl_vars.inventory_header.. "label[2,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Hopper"))).."]".. "list[current_name;main;2,0.5;5,1;]".. - mcl_formspec.get_itemslot_bg(2,0.5,5,1).. "label[0,2;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]".. "list[current_player;main;0,2.5;9,3;9]".. - mcl_formspec.get_itemslot_bg(0,2.5,9,3).. "list[current_player;main;0,5.74;9,1;]".. - mcl_formspec.get_itemslot_bg(0,5.74,9,1).. "listring[current_name;main]".. "listring[current_player;main]" @@ -20,7 +21,7 @@ local mcl_hoppers_formspec = local def_hopper = { inventory_image = "mcl_hoppers_item.png", wield_image = "mcl_hoppers_item.png", - groups = {pickaxey=1, container=2,deco_block=1,hopper=1}, + groups = {pickaxey=1, container=2,deco_block=1,}, drawtype = "nodebox", paramtype = "light", -- FIXME: mcl_hoppers_hopper_inside.png is unused by hoppers. @@ -114,7 +115,7 @@ local def_hopper = { end, sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 4.8, + _mcl_blast_resistance = 24, _mcl_hardness = 3, } @@ -124,7 +125,6 @@ local def_hopper = { -- Enabled downwards hopper local def_hopper_enabled = table.copy(def_hopper) def_hopper_enabled.description = S("Hopper") -def_hopper_enabled._tt_help = S("5 inventory slots").."\n"..S("Collects items from above, moves items to container below").."\n"..S("Can be disabled with redstone power") def_hopper_enabled._doc_items_longdesc = S("Hoppers are containers with 5 inventory slots. They collect dropped items from above, take items from a container above and attempt to put its items it into an adjacent container. Hoppers can go either downwards or sideways. Hoppers interact with chests, droppers, dispensers, shulker boxes, furnaces and hoppers.").."\n\n".. S("Hoppers interact with containers the following way:").."\n".. @@ -183,7 +183,6 @@ minetest.register_node("mcl_hoppers:hopper", def_hopper_enabled) -- Disabled downwards hopper local def_hopper_disabled = table.copy(def_hopper) def_hopper_disabled.description = S("Disabled Hopper") -def_hopper_disabled.inventory_image = nil def_hopper_disabled._doc_items_create_entry = false def_hopper_disabled.groups.not_in_creative_inventory = 1 def_hopper_disabled.drop = "mcl_hoppers:hopper" @@ -208,7 +207,7 @@ end local def_hopper_side = { _doc_items_create_entry = false, drop = "mcl_hoppers:hopper", - groups = {pickaxey=1, container=2,not_in_creative_inventory=1,hopper=2}, + groups = {pickaxey=1, container=2,not_in_creative_inventory=1}, drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", @@ -303,7 +302,7 @@ local def_hopper_side = { on_rotate = on_rotate, sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 4.8, + _mcl_blast_resistance = 24, _mcl_hardness = 3, } @@ -444,7 +443,7 @@ minetest.register_abm({ local abovenode = minetest.get_node(above) if not minetest.registered_nodes[abovenode.name] then return end local g = minetest.registered_nodes[abovenode.name].groups.container - local sucked = mcl_util.move_item_container(above, pos) + mcl_util.move_item_container(above, pos) -- Also suck in non-fuel items from furnace fuel slot if not sucked and g == 4 then @@ -486,14 +485,3 @@ end -- Legacy minetest.register_alias("mcl_hoppers:hopper_item", "mcl_hoppers:hopper") - -minetest.register_lbm({ - label = "Update hopper formspecs (0.60.0", - name = "mcl_hoppers:update_formspec_0_60_0", - nodenames = { "group:hopper" }, - run_at_every_load = false, - action = function(pos, node) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", mcl_hoppers_formspec) - end, -}) diff --git a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.de.tr b/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.de.tr index f0cc90d2..cd752118 100644 --- a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.de.tr +++ b/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.de.tr @@ -11,6 +11,3 @@ Disabled Hopper=Deaktivierter Trichter Side Hopper=Seitwärtstrichter Disabled Side Hopper=Deaktivierter Seitwärtstrichter Inventory=Inventar -5 inventory slots=5 Inventarplätze -Collects items from above, moves items to container below=Sammelt Gegenstände von oben, legt Gegenstände in Behälter unterhalb ab -Can be disabled with redstone power=Kann mit Redstoneenergie deaktiviert werden diff --git a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.es.tr b/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.es.tr deleted file mode 100644 index 3f819ca9..00000000 --- a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.es.tr +++ /dev/null @@ -1,13 +0,0 @@ -# textdomain: mcl_hoppers -Hopper=Tolva -Hoppers are containers with 5 inventory slots. They collect dropped items from above, take items from a container above and attempt to put its items it into an adjacent container. Hoppers can go either downwards or sideways. Hoppers interact with chests, droppers, dispensers, shulker boxes, furnaces and hoppers.=Las tolvas son contenedores con 5 ranuras de inventario. Recogen los artículos que se cayeron desde arriba, toman los artículos de un contenedor de arriba e intentan colocarlos en un contenedor adyacente. Las tolvas pueden ir hacia abajo o hacia los lados. Las tolvas interactúan con cofres, goteros, dispensadores, cajas de shulker, hornos y tolvas. -Hoppers interact with containers the following way:=Las tolvas interactúan con los contenedores de la siguiente manera: -• Furnaces: Hoppers from above will put items into the source slot. Hoppers from below take items from the output slot. They also take items from the fuel slot when they can't be used as a fuel. Sideway hoppers that point to the furnace put items into the fuel slot=• Hornos: las tolvas de arriba colocarán elementos en la ranura de origen. Las tolvas de abajo toman artículos de la ranura de salida. También toman artículos de la ranura de combustible cuando no se pueden usar como combustible. Las tolvas laterales que apuntan al horno colocan elementos en la ranura de combustible -• Ender chests: No interaction.=• Cofres Ender: Sin interacción. -• Other containers: Normal interaction.=• Otros contenedores: interacción normal. -Hoppers can be disabled when supplied with redstone power. Disabled hoppers don't move items.=Las tolvas se pueden desactivar cuando se les suministra energía de redstone. Las tolvas deshabilitadas no mueven artículos. -To place a hopper vertically, place it on the floor or a ceiling. To place it sideways, place it at the side of a block. Use the hopper to access its inventory.=Para colocar una tolva verticalmente, colóquela en el suelo o en el techo. Para colocarlo de lado, colóquelo al lado de un bloque. Use la tolva para acceder a su inventario. -Disabled Hopper=Tolva desactivada -Side Hopper=Tolva lateral -Disabled Side Hopper=Tolva lateral desactivada -Inventory=Inventario diff --git a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.fr.tr b/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.fr.tr deleted file mode 100644 index 40795d09..00000000 --- a/mods/ITEMS/mcl_hoppers/locale/mcl_hoppers.fr.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_hoppers -Hopper=Entonnoir -Hoppers are containers with 5 inventory slots. They collect dropped items from above, take items from a container above and attempt to put its items it into an adjacent container. Hoppers can go either downwards or sideways. Hoppers interact with chests, droppers, dispensers, shulker boxes, furnaces and hoppers.=Les entonoirs sont des conteneurs avec 5 emplacements d'inventaire. Ils récupèrent les objets déposés par le haut, prennent les objets d'un conteneur au-dessus et tentent de les placer dans un conteneur adjacent. Les entonnoirs peuvent aller vers le bas ou sur le côté. Les entonnoirs interagissent avec les coffres, les compte-gouttes, les distributeurs, les boites de shulker, les fours et les entonnoirs. -Hoppers interact with containers the following way:=Les entonnoirs interagissent avec les conteneurs de la manière suivante: -• Furnaces: Hoppers from above will put items into the source slot. Hoppers from below take items from the output slot. They also take items from the fuel slot when they can't be used as a fuel. Sideway hoppers that point to the furnace put items into the fuel slot=• Fours: les entonoires d'en haut placent les objets dans l'emplacement source. Les entonoires d'en bas prennent les éléments de la fente de sortie. Ils prennent également des objets de la fente de carburant lorsqu'ils ne peuvent pas être utilisés comme carburant. Des entonaires latérales qui pointent vers le four mettent des objets dans la fente de combustible -• Ender chests: No interaction.=• Coffres Ender: Aucune interaction. -• Other containers: Normal interaction.=• Autres conteneurs: interaction normale. -Hoppers can be disabled when supplied with redstone power. Disabled hoppers don't move items.=Les entonoires peuvent être désactivées lorsqu'elles sont alimentées en redstone. Les trémies désactivées ne déplacent pas les objets. -To place a hopper vertically, place it on the floor or a ceiling. To place it sideways, place it at the side of a block. Use the hopper to access its inventory.=Pour placer un entonoire verticalement, placez-la au sol ou au plafond. Pour le placer sur le côté, placez-le sur le côté d'un bloc. Utilisez l'entonoire pour accéder à son inventaire. -Disabled Hopper=Entonoir Désactivé -Side Hopper=Entonoir Latéral -Disabled Side Hopper=Entonoir Latéral Désactivé -Inventory=Inventaire -5 inventory slots=5 emplacements d'inventaire -Collects items from above, moves items to container below=Collecte les éléments d'en haut, déplace les éléments vers le conteneur ci-dessous -Can be disabled with redstone power=Peut être désactivé par la puissance Redstone diff --git a/mods/ITEMS/mcl_hoppers/locale/template.txt b/mods/ITEMS/mcl_hoppers/locale/template.txt index bc614d47..df66e4ce 100644 --- a/mods/ITEMS/mcl_hoppers/locale/template.txt +++ b/mods/ITEMS/mcl_hoppers/locale/template.txt @@ -11,6 +11,3 @@ Disabled Hopper= Side Hopper= Disabled Side Hopper= Inventory= -5 inventory slots= -Collects items from above, moves items to container below= -Can be disabled with redstone power= diff --git a/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_hopper_top.png b/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_hopper_top.png index dbef0750..918e58f5 100644 Binary files a/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_hopper_top.png and b/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_hopper_top.png differ diff --git a/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_inventory.png b/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_inventory.png new file mode 100644 index 00000000..409cdb27 Binary files /dev/null and b/mods/ITEMS/mcl_hoppers/textures/mcl_hoppers_inventory.png differ diff --git a/mods/ITEMS/mcl_itemframes/init.lua b/mods/ITEMS/mcl_itemframes/init.lua index b9fa7048..2d5ec5c0 100644 --- a/mods/ITEMS/mcl_itemframes/init.lua +++ b/mods/ITEMS/mcl_itemframes/init.lua @@ -101,7 +101,6 @@ end minetest.register_node("mcl_itemframes:item_frame",{ description = S("Item Frame"), - _tt_help = S("Can hold an item"), _doc_items_longdesc = S("Item frames are decorative blocks in which items can be placed."), _doc_items_usagehelp = S("Just place any item on the item frame. Use the item frame again to retrieve the item."), drawtype = "mesh", diff --git a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.de.tr b/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.de.tr index 07d7812f..81a3f75b 100644 --- a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.de.tr +++ b/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.de.tr @@ -2,4 +2,4 @@ Item Frame=Rahmen Item frames are decorative blocks in which items can be placed.=Rahmen sind dekorative Blöcke, in denen man Gegenstände platzieren kann. Just place any item on the item frame. Use the item frame again to retrieve the item.=Platzieren Sie einfach einen beliebigen Gegenstand in den Rahmen. Benutzen Sie den Rahmen erneut, um den Gegenstand zurück zu erhalten. -Can hold an item=Kann einen Gegenstand halten + diff --git a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.es.tr b/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.es.tr deleted file mode 100644 index 0803234b..00000000 --- a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.es.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_itemframes -Item Frame=Marco -Item frames are decorative blocks in which items can be placed.=Los marcos de elementos son bloques decorativos en los que se pueden colocar elementos. -Just place any item on the item frame. Use the item frame again to retrieve the item.=Simplemente coloque cualquier artículo en el marco del artículo. Use el marco del artículo nuevamente para recuperar el artículo. - diff --git a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.fr.tr b/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.fr.tr deleted file mode 100644 index 180c5555..00000000 --- a/mods/ITEMS/mcl_itemframes/locale/mcl_itemframes.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_itemframes -Item Frame=Cadre -Item frames are decorative blocks in which items can be placed.=Les cadres sont des blocs décoratifs dans lesquels les objets peuvent être placés. -Just place any item on the item frame. Use the item frame again to retrieve the item.=Placez simplement n'importe quel objet sur le cadre. Utilisez à nouveau le cadre décoré pour récupérer l'élément. -Can hold an item=Peut contenir un objet diff --git a/mods/ITEMS/mcl_itemframes/locale/template.txt b/mods/ITEMS/mcl_itemframes/locale/template.txt index bacbfaa6..55ff580f 100644 --- a/mods/ITEMS/mcl_itemframes/locale/template.txt +++ b/mods/ITEMS/mcl_itemframes/locale/template.txt @@ -2,4 +2,3 @@ Item Frame= Item frames are decorative blocks in which items can be placed.= Just place any item on the item frame. Use the item frame again to retrieve the item.= -Can hold an item= diff --git a/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png b/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png index b5ed97ee..27474991 100644 Binary files a/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png and b/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_item_frame.png differ diff --git a/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_itemframe_background.png b/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_itemframe_background.png index 236f3630..d48cf26c 100644 Binary files a/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_itemframe_background.png and b/mods/ITEMS/mcl_itemframes/textures/mcl_itemframes_itemframe_background.png differ diff --git a/mods/ITEMS/mcl_jukebox/README.md b/mods/ITEMS/mcl_jukebox/README.md index bc261270..7703e4d9 100644 --- a/mods/ITEMS/mcl_jukebox/README.md +++ b/mods/ITEMS/mcl_jukebox/README.md @@ -1,34 +1,22 @@ -# Jukebox mod for MineClone 2. +Jukebox mod for MineClone 2. -Based on the `jdukebox` mod by Jordach. This adds a jukebox block and -music disc. Just place a music disc in a jukebox and music starts -to play. And that's it! +--- -## Track list +Licenced as GPLv3. -`mcl_jukebox_track_1.ogg`: “The Evil Sister (Jordach's Mix)” by SoundHelix (CC0) -`mcl_jukebox_track_2.ogg`: “The Energetic Rat (Jordach's Mix)” by SoundHelix (CC0) -`mcl_jukebox_track_3.ogg`: “Eastern Feeling” by Jordach (CC0) -`mcl_jukebox_track_4.ogg`: “Minetest” by Jordach (CC0) -`mcl_jukebox_track_5.ogg`: “Credit Roll (Jordach's HD Mix)” by Junichi Masuda (CC0) -`mcl_jukebox_track_6.ogg`: “Winter Feeling" by Tom Peter (CC BY-SA 3.0) -`mcl_jukebox_track_7.ogg`: “Synthgroove (Jordach's Mix)” by HeroOfTheWinds (CC0) -`mcl_jukebox_track_8.ogg`: “The Clueless Frog (Jordach's Mix)” by SoundHelix (CC0) +Based on the jdukebox mod by Jordach. +Music by Jordach, HeroOfTheWinds and Junichi Masuda +(see in-game item tooltip for details). -Note: 9 tracks are included. 3 music disc textures are currently unused. +`mcl_jukebox_track_6.ogg` +“Winter Feeling”, by Tom Peter +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Source: -### Sources -* “Winter Feeling”: -* Other tracks: +--- -### License +Textures from Faithful texture pack. -Code licenced as GPLv3. Music under individual licenses (see abbreviations -above). Texture license: See main MineClone 2 README.md file. - -See here for the full license texts: - -* CC0: -* CC BY-SA 3.0: -* GPLv3: +9 tracks are included. +3 music disc textures are currently unused. diff --git a/mods/ITEMS/mcl_jukebox/init.lua b/mods/ITEMS/mcl_jukebox/init.lua index bace6dd2..fb495e78 100644 --- a/mods/ITEMS/mcl_jukebox/init.lua +++ b/mods/ITEMS/mcl_jukebox/init.lua @@ -70,7 +70,6 @@ local function now_playing(player, track_id) size = { x=100, y=100}, number = 0x55FFFF, text = text, - z_index = 100, }) active_huds[playername] = id end @@ -127,12 +126,11 @@ end -- Jukebox minetest.register_node("mcl_jukebox:jukebox", { description = S("Jukebox"), - _tt_help = S("Uses music discs to play music"), _doc_items_longdesc = S("Jukeboxes play music when they're supplied with a music disc."), _doc_items_usagehelp = S("Place a music disc into an empty jukebox to insert the music disc and play music. If the jukebox already has a music disc, you will retrieve this music disc first. The music can only be heard by you, not by other players."), tiles = {"mcl_jukebox_top.png", "mcl_jukebox_side.png", "mcl_jukebox_side.png"}, sounds = mcl_sounds.node_sound_wood_defaults(), - groups = {handy=1,axey=1, container=7, deco_block=1, material_wood=1, flammable=-1}, + groups = {handy=1,axey=1, container=7, deco_block=1, material_wood=1}, is_ground_content = false, on_construct = function(pos) local meta = minetest.get_meta(pos) @@ -227,7 +225,7 @@ minetest.register_node("mcl_jukebox:jukebox", { end meta:from_table(meta2:to_table()) end, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) diff --git a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.de.tr b/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.de.tr index 5f5aea19..60dea78d 100644 --- a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.de.tr +++ b/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.de.tr @@ -8,4 +8,3 @@ Jukebox=Musikbox Jukeboxes play music when they're supplied with a music disc.=Musikboxen spielen Musik, wenn man ihnen eine Musikplatte gibt. Place a music disc into an empty jukebox to insert the music disc and play music. If the jukebox already has a music disc, you will retrieve this music disc first. The music can only be heard by you, not by other players.=Platzieren Sie eine Musikplatte in eine leere Musikbox, um die Musikplatte einzulegen und Musik zu spielen. Wenn die Musikbox schon eine Musikplatte hat, werden Sie zuerst diese Musikplatte erhalten. Die Musik kann nur von Ihnen gehört werden, aber nicht von anderen Spielern. Now playing: @1—@2=Sie hören: @1 – @2 -Uses music discs to play music=Benutzt Musikplatten, um Musik zu spielen diff --git a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.es.tr b/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.es.tr deleted file mode 100644 index d1a63976..00000000 --- a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.es.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_jukebox -Music Disc=Disco de música -A music disc holds a single music track which can be used in a jukebox to play music.=Un disco de música contiene una sola pista que se puede usar en una máquina de discos para reproducirla. -Place a music dict into an empty jukebox to play the music. Use the jukebox again to retrieve the music disc. The music can only be heard by you, not by other players.=Coloque un disco de música en una máquina de discos vacía para reproducir la música. Use la máquina de discos nuevamente para recuperar el disco de música. La música solo puede ser escuchada por ti, no por otros jugadores. -Music Disc=Disco de música -@1—@2=@1 – @2 -Jukebox=Tocadiscos -Jukeboxes play music when they're supplied with a music disc.=Los tocadiscos reproducen música cuando se les inserta un disco de música. -Place a music disc into an empty jukebox to insert the music disc and play music. If the jukebox already has a music disc, you will retrieve this music disc first. The music can only be heard by you, not by other players.=Coloque un disco de música en una máquina de discos vacía para insertar el disco de música y reproducir música. Si el jukebox ya tiene un disco de música, primero recuperará este disco de música. La música solo puede ser escuchada por ti, no por otros jugadores. -Now playing: @1—@2=Reproduciendo actualmente: @1 – @2 diff --git a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.fr.tr b/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.fr.tr deleted file mode 100644 index d843acc5..00000000 --- a/mods/ITEMS/mcl_jukebox/locale/mcl_jukebox.fr.tr +++ /dev/null @@ -1,11 +0,0 @@ -# textdomain: mcl_jukebox -Music Disc=Disque de musique -A music disc holds a single music track which can be used in a jukebox to play music.=Un disque de musique contient une seule piste musicale qui peut être utilisée dans un juke-box pour lire de la musique. -Place a music dict into an empty jukebox to play the music. Use the jukebox again to retrieve the music disc. The music can only be heard by you, not by other players.=Placez un disque de musique dans un juke-box vide pour lire la musique. Utilisez à nouveau le juke-box pour récupérer le disque de musique. La musique ne peut être entendue que par vous, pas par les autres joueurs. -Music Disc=Disque de musique -@1—@2=@1—@2 -Jukebox=Juke-box -Jukeboxes play music when they're supplied with a music disc.=Les juke-box diffusent de la musique lorsqu'ils sont fournis avec un disque de musique. -Place a music disc into an empty jukebox to insert the music disc and play music. If the jukebox already has a music disc, you will retrieve this music disc first. The music can only be heard by you, not by other players.=Placez un disque de musique dans un juke-box vide pour insérer le disque de musique et lire de la musique. Si le juke-box possède déjà un disque de musique, vous allez d'abord récupérer ce disque de musique. La musique ne peut être entendue que par vous, pas par les autres joueurs. -Now playing: @1—@2=En cours de lecture: @1—@2 -Uses music discs to play music=Utilise des disques de musique pour lire de la musique diff --git a/mods/ITEMS/mcl_jukebox/locale/template.txt b/mods/ITEMS/mcl_jukebox/locale/template.txt index 7189ba0e..5b46ce08 100644 --- a/mods/ITEMS/mcl_jukebox/locale/template.txt +++ b/mods/ITEMS/mcl_jukebox/locale/template.txt @@ -8,4 +8,3 @@ Jukebox= Jukeboxes play music when they're supplied with a music disc.= Place a music disc into an empty jukebox to insert the music disc and play music. If the jukebox already has a music disc, you will retrieve this music disc first. The music can only be heard by you, not by other players.= Now playing: @1—@2= -Uses music discs to play music= diff --git a/mods/ITEMS/mcl_jukebox/textures/mcl_jukebox_top.png b/mods/ITEMS/mcl_jukebox/textures/mcl_jukebox_top.png index 2294972d..66c3332e 100644 Binary files a/mods/ITEMS/mcl_jukebox/textures/mcl_jukebox_top.png and b/mods/ITEMS/mcl_jukebox/textures/mcl_jukebox_top.png differ diff --git a/mods/ITEMS/mcl_maps/init.lua b/mods/ITEMS/mcl_maps/init.lua index 4c919c34..ceca739b 100644 --- a/mods/ITEMS/mcl_maps/init.lua +++ b/mods/ITEMS/mcl_maps/init.lua @@ -28,6 +28,29 @@ minetest.register_craftitem("mcl_maps:empty_map", { stack_max = 64, }) +-- Enables minimap if carried in hotbar. +-- If this item is NOT in the hotbar, the minimap is unavailable +-- Note: This is not at all like Minecraft right now. Minetest's minimap is pretty overpowered, it +-- has a very greatly zoomed-out version and even a radar mode +minetest.register_craftitem("mcl_maps:filled_map", { + description = S("Map"), + _doc_items_longdesc = S("Maps show your surroundings as you explore the world."), + _doc_items_usagehelp = S("Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).").."\n".. + S("In Creative Mode, you don't need this item; the minimap is always available."), + groups = { tool = 1 }, + inventory_image = "mcl_maps_map_filled.png^(mcl_maps_map_filled_markings.png^[colorize:#000000)", + stack_max = 1, +}) + +minetest.register_craft({ + output = "mcl_maps:filled_map", + recipe = { + { "mcl_core:paper", "mcl_core:paper", "mcl_core:paper" }, + { "mcl_core:paper", "group:compass", "mcl_core:paper" }, + { "mcl_core:paper", "mcl_core:paper", "mcl_core:paper" }, + } +}) + local function has_item_in_hotbar(player, item) -- Requirement: player carries the tool in the hotbar local inv = player:get_inventory() @@ -54,41 +77,6 @@ local function update_minimap(player) end end --- Remind player how to use the minimap correctly -local function use_minimap(itemstack, player, pointed_thing) - if player and player:is_player() then - update_minimap(player) - minetest.chat_send_player(player:get_player_name(), S("Use the minimap key to show the map.")) - end -end - --- Enables minimap if carried in hotbar. --- If this item is NOT in the hotbar, the minimap is unavailable --- Note: This is not at all like Minecraft right now. Minetest's minimap is pretty overpowered, it --- has a very greatly zoomed-out version and even a radar mode -minetest.register_craftitem("mcl_maps:filled_map", { - description = S("Map"), - _tt_help = S("Enables minimap"), - _doc_items_longdesc = S("Maps show your surroundings as you explore the world."), - _doc_items_usagehelp = S("Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).").."\n".. - S("In Creative Mode, you don't need this item; the minimap is always available."), - groups = { tool = 1 }, - inventory_image = "mcl_maps_map_filled.png^(mcl_maps_map_filled_markings.png^[colorize:#000000)", - stack_max = 1, - - on_use = use_minimap, - on_secondary_use = use_minimap, -}) - -minetest.register_craft({ - output = "mcl_maps:filled_map", - recipe = { - { "mcl_core:paper", "mcl_core:paper", "mcl_core:paper" }, - { "mcl_core:paper", "group:compass", "mcl_core:paper" }, - { "mcl_core:paper", "mcl_core:paper", "mcl_core:paper" }, - } -}) - minetest.register_on_joinplayer(function(player) update_minimap(player) end) diff --git a/mods/ITEMS/mcl_maps/locale/mcl_maps.de.tr b/mods/ITEMS/mcl_maps/locale/mcl_maps.de.tr index 6d1836b4..3e7071e6 100644 --- a/mods/ITEMS/mcl_maps/locale/mcl_maps.de.tr +++ b/mods/ITEMS/mcl_maps/locale/mcl_maps.de.tr @@ -6,5 +6,3 @@ Map=Karte Maps show your surroundings as you explore the world.=Karten zeigen Ihre Umgebung, während Sie die Welt erkunden. Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).=Halten Sie die Karte in einen beliebigen Platz in der Schnellleiste. Damit können Sie jetzt die Übersichtskarte aktivieren, indem Sie die Taste zum Umschalten der Karte drücken (siehe Tastenbelegung). In Creative Mode, you don't need this item; the minimap is always available.=Im Kreativmodus brauchen Sie diesen Gegenstand nicht; die Übersichtskarte ist immer verfügbar. -Enables minimap=Aktiviert Übersichtskarte -Use the minimap key to show the map.=Taste „Karte an/aus“ benutzen, um die Karte zu betrachten. diff --git a/mods/ITEMS/mcl_maps/locale/mcl_maps.es.tr b/mods/ITEMS/mcl_maps/locale/mcl_maps.es.tr deleted file mode 100644 index 513eab13..00000000 --- a/mods/ITEMS/mcl_maps/locale/mcl_maps.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_maps -Empty Map=Mapa vacio -Empty maps are not useful as maps, but they can be stacked and turned to maps which can be used.=Los mapas vacíos no son útiles como mapas, pero se pueden apilar y convertir en mapas que se pueden usar. -Rightclick to start using the map (which can't be stacked anymore).=Haga clic derecho para comenzar a usar el mapa (que ya no se puede apilar). -Map=Mapa -Maps show your surroundings as you explore the world.=Los mapas muestran tu entorno mientras exploras el mundo. -Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).=Mantenga el mapa en cualquiera de las ranuras de la barra de acceso directo. Esto le permite acceder al minimapa presionando la tecla del minimapa (consulte la configuración de los controles). -In Creative Mode, you don't need this item; the minimap is always available.=En el modo creativo, no necesita este elemento; El minimapa siempre está disponible. diff --git a/mods/ITEMS/mcl_maps/locale/mcl_maps.fr.tr b/mods/ITEMS/mcl_maps/locale/mcl_maps.fr.tr deleted file mode 100644 index 6feb253a..00000000 --- a/mods/ITEMS/mcl_maps/locale/mcl_maps.fr.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_maps -Empty Map=Carte Vierge -Empty maps are not useful as maps, but they can be stacked and turned to maps which can be used.=Les cartes vierges ne sont pas utiles en tant que cartes, mais elles peuvent être empilées et transformées en cartes utilisables. -Rightclick to start using the map (which can't be stacked anymore).=Clic droit pour commencer à utiliser la carte (qui ne peut plus être empilée). -Map=Carte -Maps show your surroundings as you explore the world.=Les cartes montrent votre environnement lorsque vous explorez le monde. -Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).=Tenez la carte dans l'un des emplacements de la barre de raccourci. Cela vous permet d'accéder à la mini-carte en appuyant sur la touche de la mini-carte (voir les paramètres des commandes). -In Creative Mode, you don't need this item; the minimap is always available.=En mode créatif, vous n'avez pas besoin de cet élément; la minicarte est toujours disponible. -Enables minimap=Active la minicarte -Use the minimap key to show the map.=Utilisez la touche mini-carte pour afficher la carte. diff --git a/mods/ITEMS/mcl_maps/locale/template.txt b/mods/ITEMS/mcl_maps/locale/template.txt index 061ed45e..1db127f4 100644 --- a/mods/ITEMS/mcl_maps/locale/template.txt +++ b/mods/ITEMS/mcl_maps/locale/template.txt @@ -6,5 +6,3 @@ Map= Maps show your surroundings as you explore the world.= Hold the map in any of the hotbar slots. This allows you to access the minimap by pressing the minimap key (see controls settings).= In Creative Mode, you don't need this item; the minimap is always available.= -Enables minimap= -Use the minimap key to show the map.= diff --git a/mods/ITEMS/mcl_mobitems/init.lua b/mods/ITEMS/mcl_mobitems/init.lua index 3e6aef48..8a670766 100644 --- a/mods/ITEMS/mcl_mobitems/init.lua +++ b/mods/ITEMS/mcl_mobitems/init.lua @@ -4,7 +4,6 @@ local S = minetest.get_translator("mcl_mobitems") minetest.register_craftitem("mcl_mobitems:rotten_flesh", { description = S("Rotten Flesh"), - _tt_help = minetest.colorize("#FFFF00", S("80% chance of food poisoning")), _doc_items_longdesc = S("Yuck! This piece of flesh clearly has seen better days. If you're really desperate, you can eat it to restore a few hunger points, but there's a 80% chance it causes food poisoning, which increases your hunger for a while."), inventory_image = "mcl_mobitems_rotten_flesh.png", wield_image = "mcl_mobitems_rotten_flesh.png", @@ -65,7 +64,6 @@ minetest.register_craftitem("mcl_mobitems:cooked_beef", { minetest.register_craftitem("mcl_mobitems:chicken", { description = S("Raw Chicken"), - _tt_help = minetest.colorize("#FFFF00", S("30% chance of food poisoning")), _doc_items_longdesc = S("Raw chicken is a food item which is not safe to consume. You can eat it to restore a few hunger points, but there's a 30% chance to suffer from food poisoning, which increases your hunger rate for a while. Cooking raw chicken will make it safe to eat and increases its nutritional value."), inventory_image = "mcl_mobitems_chicken_raw.png", wield_image = "mcl_mobitems_chicken_raw.png", @@ -148,7 +146,6 @@ end -- TODO: Clear *all* status effects minetest.register_craftitem("mcl_mobitems:milk_bucket", { description = S("Milk"), - _tt_help = minetest.colorize("#00FF00", S("Cures poison")), _doc_items_longdesc = S("Milk is very refreshing and can be obtained by using a bucket on a cow. Drinking it will cure all forms of poisoning, but restores no hunger points."), _doc_items_usagehelp = "Rightclick to drink the milk.", inventory_image = "mcl_mobitems_bucket_milk.png", @@ -162,7 +159,6 @@ minetest.register_craftitem("mcl_mobitems:milk_bucket", { minetest.register_craftitem("mcl_mobitems:spider_eye", { description = S("Spider Eye"), - _tt_help = minetest.colorize("#FFFF00", S("Poisonous")), _doc_items_longdesc = S("Spider eyes are used mainly in crafting. If you're really desperate, you can eat a spider eye, but it will poison you briefly."), inventory_image = "mcl_mobitems_spider_eye.png", wield_image = "mcl_mobitems_spider_eye.png", @@ -276,7 +272,6 @@ minetest.register_craftitem("mcl_mobitems:rabbit_foot", { minetest.register_craftitem("mcl_mobitems:saddle", { description = S("Saddle"), - _tt_help = S("Can be placed on animals to ride them"), _doc_items_longdesc = S("Saddles can be put on some animals in order to mount them."), _doc_items_usagehelp = "Rightclick an animal (with the saddle in your hand) to try put on the saddle. Saddles fit on horses, mules, donkeys and pigs. Horses, mules and donkeys need to be tamed first, otherwise they'll reject the saddle. Saddled animals can be mounted by rightclicking them again.", wield_image = "mcl_mobitems_saddle.png", @@ -321,7 +316,6 @@ minetest.register_craftitem("mcl_mobitems:gunpowder", { minetest.register_tool("mcl_mobitems:carrot_on_a_stick", { description = S("Carrot on a Stick"), - _tt_help = S("Lets you ride a saddled pig"), _doc_items_longdesc = S("A carrot on a stick can be used on saddled pigs to ride them."), _doc_items_usagehelp = S("Place it on a saddled pig to mount it. You can now ride the pig like a horse. Pigs will also walk towards you when you just wield the carrot on a stick."), wield_image = "mcl_mobitems_carrot_on_a_stick.png", diff --git a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.de.tr b/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.de.tr index dcb605d2..a392ffc2 100644 --- a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.de.tr +++ b/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.de.tr @@ -60,9 +60,3 @@ Carrot on a Stick=Karottenrute A carrot on a stick can be used on saddled pigs to ride them.=Eine Karottenrute kann auf gesattelten Schweinen angewendet werden, um sie zu reiten. Place it on a saddled pig to mount it. You can now ride the pig like a horse. Pigs will also walk towards you when you just wield the carrot on a stick.=Platzieren Sie sie auf einem Schwein mit Sattel, um sich aufzusatteln. Sie können nun das Schwein wie ein Pferd reiten. Schweine werden auch auf Sie zugehen, wenn Sie einfach nur die Karottenrute halten. Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Halten Sie den Knochen in der Nähe von Wölfen, um sie anzulocken. Benutzen Sie die „Platzieren“-Taste auf dem Wolf, um ihm den Knochen zu geben und ihn zu zähmen. Sie können dem gezähmten Wolf Befehle erteilen, indem Sie die „Platzieren“-Taste auf ihm benutzen. -Lets you ride a saddled pig=Um auf gesattelten Schweinen zu reiten -30% chance of food poisoning=30% Wahrscheinlichkeit von Lebensmittelvergiftung -80% chance of food poisoning=80% Wahrscheinlichkeit von Lebensmittelvergiftung -Cures poison=Kuriert Vergiftung -Can be placed on animals to ride them=Kann auf Tieren platziert werden, um sie zu reiten -Poisonous=Giftig diff --git a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.es.tr b/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.es.tr deleted file mode 100644 index e56ef9ee..00000000 --- a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.es.tr +++ /dev/null @@ -1,62 +0,0 @@ -# textdomain: mcl_mobitems -Rotten Flesh=Carne podrida -Yuck! This piece of flesh clearly has seen better days. If you're really desperate, you can eat it to restore a few hunger points, but there's a 80% chance it causes food poisoning, which increases your hunger for a while.=¡Qué asco! Este pedazo de carne claramente ha tenido días mejores. Si está realmente estas desesperado, puedes comerlo para restablecer algunos puntos de hambre, pero hay un 80% de posibilidades de que cause intoxicación alimentaria, lo que aumenta su hambre por un tiempo. -Raw Mutton=Cordero crudo -Raw mutton is the flesh from a sheep and can be eaten safely. Cooking it will greatly increase its nutritional value.=El cordero crudo es la carne de una oveja y se puede comer de manera segura. Cocinarlo aumentará en gran medida su valor nutricional. -Cooked Mutton=Cordero cocinado -Cooked mutton is the cooked flesh from a sheep and is used as food.=El cordero cocinado es la carne cocinada de oveja y se usa como alimento. -Raw Beef=Filete crudo -Raw beef is the flesh from cows and can be eaten safely. Cooking it will greatly increase its nutritional value.=La carne cruda es la carne de las vacas y se puede comer de manera segura. Cocinarlo aumentará en gran medida su valor nutricional. -Steak=Filete cocinado -Steak is cooked beef from cows and can be eaten.=El filete cocinado se cocina con filetes crudos de vaca y se puede comer. -Raw Chicken=Pollo crudo -Raw chicken is a food item which is not safe to consume. You can eat it to restore a few hunger points, but there's a 30% chance to suffer from food poisoning, which increases your hunger rate for a while. Cooking raw chicken will make it safe to eat and increases its nutritional value.=El pollo crudo es un alimento que no es seguro consumir. Puedes comerlo para restaurar algunos puntos de hambre, pero hay un 30% de posibilidades de sufrir intoxicación alimentaria, lo que aumenta su tasa de hambre por un tiempo. Cocinar pollo crudo hará que sea seguro comerlo y aumentará su valor nutricional. -Cooked Chicken=Pollo cocinado -A cooked chicken is a healthy food item which can be eaten.=Un pollo cocinado es un alimento saludable que se puede comer. -Raw Porkchop=Chuleta de cerdo cruda -A raw porkchop is the flesh from a pig and can be eaten safely. Cooking it will greatly increase its nutritional value.=Una chuleta de cerdo cruda es la carne de un cerdo y se puede comer de manera segura. Cocinarlo aumentará en gran medida su valor nutricional. -Cooked Porkchop=Chuleta de cerdo cocinada -Cooked porkchop is the cooked flesh of a pig and is used as food.=La chuleta de cerdo cocinada es la carne cocida de un cerdo y se usa como alimento. -Raw Rabbit=Conejo crudo -Raw rabbit is a food item from a dead rabbit. It can be eaten safely. Cooking it will increase its nutritional value.=El conejo crudo es un alimento de un conejo muerto. Se puede comer de forma segura. Cocinar aumentará su valor nutricional. -Cooked Rabbit=Conejo cocinado -This is a food item which can be eaten.=Este es un alimento que se puede comer. -Milk=Leche -Milk is very refreshing and can be obtained by using a bucket on a cow. Drinking it will cure all forms of poisoning, but restores no hunger points.=La leche es muy refrescante y se puede obtener usando un cubo en una vaca. Beberlo curará todas las formas de envenenamiento, pero no restaura los puntos de hambre. -Spider Eye=Ojo de araña -Spider eyes are used mainly in crafting. If you're really desperate, you can eat a spider eye, but it will poison you briefly.=Los ojos de araña se utilizan principalmente en la elaboración. Si estás realmente desesperado, puedes comerte un ojo de araña, pero te envenenará brevemente. -Bone=Hueso -Bones can be used to tame wolves so they will protect you. They are also useful as a crafting ingredient.=Los huesos se pueden usar para domar a los lobos para que te protejan. También son útiles como ingrediente de elaboración. -String=Cuerda -Strings are used in crafting.=Las cuerdas se usan en la elaboración. -Blaze Rod=Vara de blaze -This is a crafting component dropped from dead blazes.=Este es un componente de artesanía caído de llamas muertas. -Blaze Powder=Polvo de blaze -This item is mainly used for crafting.=Este artículo se usa principalmente para la elaboración. -Magma Cream=Crema de magma -Magma cream is a crafting component.=La crema de magma es un componente de elaboración. -Ghast Tear=Lágrima espectral -Place this item in an item frame as decoration.=Coloque este artículo en un marco de artículo como decoración. -Nether Star=Estrella del Nether -A nether star is dropped when the Wither dies. Place it in an item frame to show the world how hardcore you are! Or just as decoration.=Se cae una estrella cuando muere un Wither. ¡Colócalo en el marco de un objeto para mostrarle al mundo lo duro que eres! O simplemente como decoración. -Leather=Cuero -Leather is a versatile crafting component.=El cuero es un componente de elaboración versátil. -Feather=Pluma -Feathers are used in crafting and are dropped from chickens.=Las plumas se usan en la elaboración y se sueltan de los pollos. -Rabbit Hide=Piel de conejo -Rabbit hide is used to create leather.=La piel de conejo se usa para crear cuero. -Rabbit's Foot=Pata de conejo -Must be your lucky day! Place this item in an item frame for decoration.=¡Debe ser tu día de suerte! Coloque este artículo en un marco de artículos para la decoración. -Saddle=Montura -Saddles can be put on some animals in order to mount them.=Se pueden poner monturas en algunos animales para montarlos. -Rabbit Stew=Estofado de conejo -Rabbit stew is a very nutricious food item.=El estofado de conejo es un alimento muy nutritivo. -Shulker Shell=Caparazón de shulker -Shulker shells are used in crafting. They are dropped from dead shulkers.=Los caparazones de shulker se usan en la fabricación. Son obtenidos de shulkers muertos. -Slimeball=Bola de slime -Slimeballs are used in crafting. They are dropped from slimes.=Las bolas de slime se usan en la elaboración. Se obtienen de slimes. -Gunpowder=Pólvora -Carrot on a Stick=Caña con zanahoria -A carrot on a stick can be used on saddled pigs to ride them.=La caña con zanahoria se puede usar en cerdos ensillados para montarlos. -Place it on a saddled pig to mount it. You can now ride the pig like a horse. Pigs will also walk towards you when you just wield the carrot on a stick.=Colóquelo sobre un cerdo ensillado para montarlo. Ahora puedes montar el cerdo como un caballo. Los cerdos también caminarán hacia ti cuando solo manejes la zanahoria en un palo. -Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Empuña el hueso cerca de los lobos para atraerlos. Usa la tecla "Colocar" en el lobo para darle un hueso y domesticarlo. Luego puede dar órdenes al lobo domesticado utilizando la tecla "Colocar". diff --git a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.fr.tr b/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.fr.tr deleted file mode 100644 index b7c92d83..00000000 --- a/mods/ITEMS/mcl_mobitems/locale/mcl_mobitems.fr.tr +++ /dev/null @@ -1,68 +0,0 @@ -# textdomain: mcl_mobitems -Rotten Flesh=Chair Putréfiée -Yuck! This piece of flesh clearly has seen better days. If you're really desperate, you can eat it to restore a few hunger points, but there's a 80% chance it causes food poisoning, which increases your hunger for a while.=Beurk! Ce morceau de chair a clairement connu des jours meilleurs. Si vous êtes vraiment désespéré, vous pouvez le manger pour restaurer quelques points de faim, mais il y a 80% de chances qu'il provoque une intoxication alimentaire, ce qui augmente votre faim pendant un certain temps. -Raw Mutton=Mouton Cru -Raw mutton is the flesh from a sheep and can be eaten safely. Cooking it will greatly increase its nutritional value.=Le mouton cru est la chair d'un mouton et peut être mangé en toute sécurité. La cuisson augmentera considérablement sa valeur nutritive. -Cooked Mutton=Mouton Cuit -Cooked mutton is the cooked flesh from a sheep and is used as food.=Le mouton cuit est la chair cuite d'un mouton et est utilisé comme nourriture. -Raw Beef=Boeuf Cru -Raw beef is the flesh from cows and can be eaten safely. Cooking it will greatly increase its nutritional value.=Le boeuf cru est la chair des vaches et peut être mangé en toute sécurité. La cuisson augmentera considérablement sa valeur nutritive. -Steak=Steak -Steak is cooked beef from cows and can be eaten.=Le steak est du boeuf cuit et peut être mangé. -Raw Chicken=Poulet Cru -Raw chicken is a food item which is not safe to consume. You can eat it to restore a few hunger points, but there's a 30% chance to suffer from food poisoning, which increases your hunger rate for a while. Cooking raw chicken will make it safe to eat and increases its nutritional value.=Le poulet cru est un aliment qui n'est pas sûr à consommer. Vous pouvez le manger pour restaurer quelques points de faim, mais il y a 30% de chances de souffrir d'intoxication alimentaire, ce qui augmente votre taux de faim pendant un certain temps. La cuisson du poulet cru le rendra sûr à manger et augmentera sa valeur nutritive. -Cooked Chicken=Poulet Cuit -A cooked chicken is a healthy food item which can be eaten.=Un poulet cuit est un aliment sain qui peut être mangé. -Raw Porkchop=Porc Cru -A raw porkchop is the flesh from a pig and can be eaten safely. Cooking it will greatly increase its nutritional value.=Un porc cru est la chair d'un porc et peut être mangée en toute sécurité. La cuisson augmentera considérablement sa valeur nutritive. -Cooked Porkchop=Parc Cuit -Cooked porkchop is the cooked flesh of a pig and is used as food.=Le porc cuit est la chair cuite d'un porc et est utilisé comme aliment. -Raw Rabbit=Lapin Cru -Raw rabbit is a food item from a dead rabbit. It can be eaten safely. Cooking it will increase its nutritional value.=Le lapin cru est un aliment provenant d'un lapin mort. Il peut être mangé en toute sécurité. La cuisson augmentera sa valeur nutritive. -Cooked Rabbit=Lapin Cuit -This is a food item which can be eaten.=Il s'agit d'un aliment qui peut être mangé. -Milk=Lait -Milk is very refreshing and can be obtained by using a bucket on a cow. Drinking it will cure all forms of poisoning, but restores no hunger points.=Le lait est très rafraîchissant et peut être obtenu en utilisant un seau sur une vache. Le boire guérira toutes les formes d'empoisonnement, mais ne restaure pas de points de faim. -Spider Eye=Oeil d'Araignée -Spider eyes are used mainly in crafting. If you're really desperate, you can eat a spider eye, but it will poison you briefly.=Les yeux d'araignée sont utilisés principalement dans l'artisanat. Si vous êtes vraiment désespéré, vous pouvez manger un œil d'araignée, mais cela vous empoisonnera brièvement. -Bone=Os -Bones can be used to tame wolves so they will protect you. They are also useful as a crafting ingredient.=Les os peuvent être utilisés pour apprivoiser les loups afin de vous protéger. Ils sont également utiles comme ingrédient d'artisanat. -String=Ficelle -Strings are used in crafting.=Les ficelles sont utilisées dans l'artisanat. -Blaze Rod=Bâton de Blaze -This is a crafting component dropped from dead blazes.=Il s'agit d'un composant d'artisanat tombé des Blazes morts. -Blaze Powder=Poudre de Blaze -This item is mainly used for crafting.=Cet objet est principalement utilisé pour l'artisanat. -Magma Cream=Crème de Magma -Magma cream is a crafting component.=La crème de magma est un composant artisanal. -Ghast Tear=Larme de Ghast -Place this item in an item frame as decoration.=Placez cet article dans un cadre d'article comme décoration. -Nether Star=Étoile du Nether -A nether star is dropped when the Wither dies. Place it in an item frame to show the world how hardcore you are! Or just as decoration.=Une étoile du Nether est lâchée lorsque le Wither meurt. Placez-le dans un cadre d'objet pour montrer au monde à quel point vous êtes génial! Ou tout simplement comme décoration. -Leather=Cuir -Leather is a versatile crafting component.=Le cuir est un élément d'artisanat polyvalent. -Feather=Plume -Feathers are used in crafting and are dropped from chickens.=Les plumes sont utilisées dans l'artisanat et tombent des poulets. -Rabbit Hide=Peau de Lapin -Rabbit hide is used to create leather.=La peau de lapin est utilisée pour créer du cuir. -Rabbit's Foot=Patte de Lapin -Must be your lucky day! Place this item in an item frame for decoration.=Ce doit être votre jour de chance! Placez cet article dans un cadre d'article pour la décoration. -Saddle=Selle -Saddles can be put on some animals in order to mount them.=Des selles peuvent être posées sur certains animaux afin de les monter. -Rabbit Stew=Ragout de Lapin -Rabbit stew is a very nutricious food item.=Le ragoût de lapin est un aliment très nutritif. -Shulker Shell=Carapace de Shulker -Shulker shells are used in crafting. They are dropped from dead shulkers.=Les carapaces Shulker sont utilisés dans l'artisanat. Ils sont lâchés de shulkers morts. -Slimeball=Boule de Slime -Slimeballs are used in crafting. They are dropped from slimes.=Les boules de slime sont utilisées dans l'artisanat. Ils sont lâchés par les Slimes. -Gunpowder=Poudre à canon -Carrot on a Stick=Carotte sur un Batôn -A carrot on a stick can be used on saddled pigs to ride them.=Une carotte sur un bâton peut être utilisée sur les porcs sellés pour les monter. -Place it on a saddled pig to mount it. You can now ride the pig like a horse. Pigs will also walk towards you when you just wield the carrot on a stick.=Placez-le sur un cochon sellé pour le monter. Vous pouvez maintenant monter le cochon comme un cheval. Les porcs marcheront également vers vous lorsque vous brandirez la carotte sur un bâton. -Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.=Maniez l'os près des loups pour les attirer. Utilisez la touche «Placer» sur le loup pour lui donner un os et l'apprivoiser. Vous pouvez ensuite donner des commandes au loup apprivoisé en utilisant la touche "Placer" sur celui-ci. -Lets you ride a saddled pig=Vous permet de monter un cochon sellé -30% chance of food poisoning=30% de chances d'intoxication alimentaire -80% chance of food poisoning=80% de chances d'intoxication alimentaire -Cures poison=Guérit le poison -Can be placed on animals to ride them=Peut être placé sur les animaux pour les monter -Poisonous=Toxique diff --git a/mods/ITEMS/mcl_mobitems/locale/template.txt b/mods/ITEMS/mcl_mobitems/locale/template.txt index e5cf32e4..2c2c15d1 100644 --- a/mods/ITEMS/mcl_mobitems/locale/template.txt +++ b/mods/ITEMS/mcl_mobitems/locale/template.txt @@ -60,9 +60,3 @@ Carrot on a Stick= A carrot on a stick can be used on saddled pigs to ride them.= Place it on a saddled pig to mount it. You can now ride the pig like a horse. Pigs will also walk towards you when you just wield the carrot on a stick.= Wield the bone near wolves to attract them. Use the “Place” key on the wolf to give it a bone and tame it. You can then give commands to the tamed wolf by using the “Place” key on it.= -Lets you ride a saddled pig= -30% chance of food poisoning= -80% chance of food poisoning= -Cures poison= -Can be placed on animals to ride them= -Poisonous= diff --git a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_bucket_milk.png b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_bucket_milk.png index 249fc1a9..2ba089a5 100644 Binary files a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_bucket_milk.png and b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_bucket_milk.png differ diff --git a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_carrot_on_a_stick.png b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_carrot_on_a_stick.png index 8fa01c75..ff85a30d 100644 Binary files a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_carrot_on_a_stick.png and b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_carrot_on_a_stick.png differ diff --git a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_rabbit_hide.png b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_rabbit_hide.png index e36cad4d..39e1f221 100644 Binary files a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_rabbit_hide.png and b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_rabbit_hide.png differ diff --git a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_slimeball.png b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_slimeball.png index 1dd8a6cb..e984e9b9 100644 Binary files a/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_slimeball.png and b/mods/ITEMS/mcl_mobitems/textures/mcl_mobitems_slimeball.png differ diff --git a/mods/ITEMS/mcl_mobspawners/init.lua b/mods/ITEMS/mcl_mobspawners/init.lua index 39abd722..632e4fa7 100644 --- a/mods/ITEMS/mcl_mobspawners/init.lua +++ b/mods/ITEMS/mcl_mobspawners/init.lua @@ -266,7 +266,6 @@ minetest.register_node("mcl_mobspawners:spawner", { paramtype = "light", walkable = true, description = S("Mob Spawner"), - _tt_help = S("Makes mobs appear"), _doc_items_longdesc = S("A mob spawner regularily causes mobs to appear around it while a player is nearby. Some mob spawners are disabled while in light."), _doc_items_usagehelp = S("If you have a spawn egg, you can use it to change the mob to spawn. Just place the item on the mob spawner. Player-set mob spawners always spawn mobs regardless of the light level."), groups = {pickaxey=1, material_stone=1, deco_block=1}, @@ -323,7 +322,7 @@ minetest.register_node("mcl_mobspawners:spawner", { sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 5, + _mcl_blast_resistance = 25, _mcl_hardness = 5, }) diff --git a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.de.tr b/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.de.tr index 315b432c..84a849ed 100644 --- a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.de.tr +++ b/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.de.tr @@ -2,4 +2,3 @@ Mob Spawner=Mobspawner A mob spawner regularily causes mobs to appear around it while a player is nearby. Some mob spawners are disabled while in light.=Ein Mobspawner lässt regelmäßig Mobs um ihn herum auftauchen, wenn sich ein Spieler in der Nähe befindet. Einige Mobspawner werden inaktiv, wenn sie sich im Licht befinden. If you have a spawn egg, you can use it to change the mob to spawn. Just place the item on the mob spawner. Player-set mob spawners always spawn mobs regardless of the light level.=Wenn Sie ein Spawn-Ei haben, können Sie es benutzen, um den Mobtyp, der erzeugt wird, zu ändern. Platzieren Sie den Gegenstand einfach auf dem Mobspawner. Von Spielern manipulierte Mobspawner erzeugen immer Mobs, unabhängig von der Helligkeit. -Makes mobs appear=Lässt Mobs auftauchen diff --git a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.es.tr b/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.es.tr deleted file mode 100644 index 2b6ff977..00000000 --- a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_mobspawners -Mob Spawner=Generador de criaturas -A mob spawner regularily causes mobs to appear around it while a player is nearby. Some mob spawners are disabled while in light.=Un generador de criaturas regularmente hace que aparezcan mobs a su alrededor mientras un jugador está cerca. Algunos reproductores de las criaturas están deshabilitados mientras están a la luz. -If you have a spawn egg, you can use it to change the mob to spawn. Just place the item on the mob spawner. Player-set mob spawners always spawn mobs regardless of the light level.=Si tienes un huevo de desove, puedes usarlo para cambiar las criaturas a desovar. Simplemente coloque el artículo en el generador de criaturas. Los generadores de criaturas establecidos por el jugador siempre generan monstruos independientemente del nivel de luz. diff --git a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.fr.tr b/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.fr.tr deleted file mode 100644 index f008ad83..00000000 --- a/mods/ITEMS/mcl_mobspawners/locale/mcl_mobspawners.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_mobspawners -Mob Spawner=Générateur de Mob -A mob spawner regularily causes mobs to appear around it while a player is nearby. Some mob spawners are disabled while in light.=Un générateur de mob fait régulièrement apparaître des mobs autour de lui tandis qu'un joueur est à proximité. Certains générateurs de mob sont désactivés lorsqu'ils sont en lumière. -If you have a spawn egg, you can use it to change the mob to spawn. Just place the item on the mob spawner. Player-set mob spawners always spawn mobs regardless of the light level.=Si vous avez un oeuf d'apparition, vous pouvez l'utiliser pour changer le mob qui apparait. Placez simplement l'objet sur le générateur de mob. Les générateurs de mobs créés par les joueurs engendrent toujours des mobs quel que soit le niveau de lumière. -Makes mobs appear=Fait apparaître les mobs diff --git a/mods/ITEMS/mcl_mobspawners/locale/template.txt b/mods/ITEMS/mcl_mobspawners/locale/template.txt index 82357e5f..6a660585 100644 --- a/mods/ITEMS/mcl_mobspawners/locale/template.txt +++ b/mods/ITEMS/mcl_mobspawners/locale/template.txt @@ -2,4 +2,3 @@ Mob Spawner= A mob spawner regularily causes mobs to appear around it while a player is nearby. Some mob spawners are disabled while in light.= If you have a spawn egg, you can use it to change the mob to spawn. Just place the item on the mob spawner. Player-set mob spawners always spawn mobs regardless of the light level.= -Makes mobs appear= diff --git a/mods/ITEMS/mcl_mobspawners/textures/mob_spawner.png b/mods/ITEMS/mcl_mobspawners/textures/mob_spawner.png index 069a015e..8464193c 100644 Binary files a/mods/ITEMS/mcl_mobspawners/textures/mob_spawner.png and b/mods/ITEMS/mcl_mobspawners/textures/mob_spawner.png differ diff --git a/mods/ITEMS/mcl_monster_eggs/init.lua b/mods/ITEMS/mcl_monster_eggs/init.lua index a4c0144d..1f7244cb 100644 --- a/mods/ITEMS/mcl_monster_eggs/init.lua +++ b/mods/ITEMS/mcl_monster_eggs/init.lua @@ -23,10 +23,9 @@ local register_block = function(subname, description, tiles, is_ground_content) is_ground_content = false, sounds = mcl_sounds.node_sound_stone_defaults(), after_dig_node = spawn_silverfish, - _tt_help = S("Hides a silverfish"), _doc_items_longdesc = S("An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart."), _mcl_hardness = 0, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 3.75, }) end diff --git a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.de.tr b/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.de.tr index 78c26bf7..61145497 100644 --- a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.de.tr +++ b/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.de.tr @@ -6,4 +6,3 @@ Infested Stone Bricks=Verseuchte Steinziegel Infested Cracked Stone Bricks=Verseuchte rissige Steinziegel Infested Mossy Stone Bricks=Verseuchte moosige Steinziegel Infested Chiseled Stone Bricks=Verseuchte gemeißelte Steinziegel -Hides a silverfish=Verbirgt ein Silberfischchen diff --git a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.es.tr b/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.es.tr deleted file mode 100644 index f35b4563..00000000 --- a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_monster_eggs -An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart.=Un bloque infestado es un bloque del que saldrá un pez plateado cuando se rompa. Se ve idéntico a su contraparte normal. -Infested Stone=Piedra infestada -Infested Cobblestone=Roca infestada -Infested Stone Bricks=Ladrillos de piedra infestados -Infested Cracked Stone Bricks=Ladrillos de piedra agrietados infestados -Infested Mossy Stone Bricks=Ladrillos de piedra musgosos infestados -Infested Chiseled Stone Bricks=Ladrillos de piedra cincelados infestados diff --git a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.fr.tr b/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.fr.tr deleted file mode 100644 index fa2d204b..00000000 --- a/mods/ITEMS/mcl_monster_eggs/locale/mcl_monster_eggs.fr.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_monster_eggs -An infested block is a block from which a silverfish will pop out when it is broken. It looks identical to its normal counterpart.=Un bloc infesté est un bloc à partir duquel un Poisson d'Argent sortira lorsqu'il sera brisé. Il semble identique à son homologue normal. -Infested Stone=Roche Infestée -Infested Cobblestone=Pierre Infestée -Infested Stone Bricks=Pierre Taillée Infestée -Infested Cracked Stone Bricks=Pierre Taillée Craquelée Infestée -Infested Mossy Stone Bricks=Pierre Taillée Moussue Infestée -Infested Chiseled Stone Bricks=Pierre sculptée Infestée -Hides a silverfish=Cache un Poisson d'Argent diff --git a/mods/ITEMS/mcl_monster_eggs/locale/template.txt b/mods/ITEMS/mcl_monster_eggs/locale/template.txt index 8f420b61..ce40fa8b 100644 --- a/mods/ITEMS/mcl_monster_eggs/locale/template.txt +++ b/mods/ITEMS/mcl_monster_eggs/locale/template.txt @@ -6,4 +6,3 @@ Infested Stone Bricks= Infested Cracked Stone Bricks= Infested Mossy Stone Bricks= Infested Chiseled Stone Bricks= -Hides a silverfish= diff --git a/mods/ITEMS/mcl_mushrooms/huge.lua b/mods/ITEMS/mcl_mushrooms/huge.lua index 6f962b27..54e719a5 100644 --- a/mods/ITEMS/mcl_mushrooms/huge.lua +++ b/mods/ITEMS/mcl_mushrooms/huge.lua @@ -1,10 +1,10 @@ local S = minetest.get_translator("mcl_mushrooms") local template = { - groups = {handy=1,axey=1, building_block = 1, material_wood = 1, flammable = -1 }, + groups = {handy=1,axey=1, building_block = 1, material_wood = 1 }, sounds = mcl_sounds.node_sound_wood_defaults(), is_ground_content = true, - _mcl_blast_resistance = 0.2, + _mcl_blast_resistance = 1, _mcl_hardness = 0.2, } diff --git a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushroom.fr.tr b/mods/ITEMS/mcl_mushrooms/locale/mcl_mushroom.fr.tr deleted file mode 100644 index 647b3644..00000000 --- a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushroom.fr.tr +++ /dev/null @@ -1,24 +0,0 @@ -# textdomain: mcl_mushrooms -This decorative block is like a huge mushroom stem, but with the stem texture on all sides.=Ce bloc décoratif ressemble à une tige de champignon géant, mais avec la texture de la tige de tous les côtés. -Huge red mushroom blocks are the cap parts of huge red mushrooms. It consists of a red skin and can have pores on each of its sides.=Blocs de champignons rouges géants sont les parties du chapeau d'énormes champignons rouges. Il se compose d'une peau rouge et peut avoir des pores sur chacun de ses côtés. -The stem part of a huge red mushroom.=La partie tige d'un énorme champignon rouge. -Huge Red Mushroom Block=Bloc de Champignon Rouge Géant -Huge Red Mushroom Stem=Tige de Champignon Rouge Géant -Huge Red Mushroom All-Faces Stem=Tige de Champignon Rouge Géant avec Pores -Huge brown mushroom blocks are the cap parts of huge brown mushrooms. It consists of a brown skin and can have pores on each of its sides.=D'énormes blocs de champignons bruns sont les parties du chapeau d'énormes champignons bruns. Il se compose d'une peau brune et peut avoir des pores sur chacun de ses côtés. -The stem part of a huge brown mushroom.=La partie tige d'un énorme champignon brun. -Huge Brown Mushroom Block=Bloc de Champignon Marron Géant -Huge Brown Mushroom Stem=Tige de Champignon Marron Géant -Huge Brown Mushroom All-Faces Stem=Tige de Champignon Marron Géant avec Pores -Brown mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.=Les champignons bruns sont des champignons qui poussent et se propagent dans l'obscurité, mais sont sensibles à la lumière. Ils sont non comestibles en tant que tels, mais ils peuvent être utilisés pour fabriquer des aliments. -Red mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.=Les champignons rouges sont des champignons qui poussent et se propagent dans l'obscurité, mais sont sensibles à la lumière. Ils sont non comestibles en tant que tels, mais ils peuvent être utilisés pour fabriquer des aliments. -A single mushroom of this species will slowly spread over time towards a random solid opaque block with a light level of 12 or lower in a 3×3×3 cube around the mushroom. It stops spreading when there are 5 or more mushrooms of the same species within an area of 9×3×9 blocks around the mushroom.=Un seul champignon de cette espèce se propagera lentement au fil du temps vers un bloc opaque solide aléatoire avec un niveau de lumière de 12 ou moins dans un cube 3×3×3 autour du champignon. Il cesse de se propager lorsqu'il y a 5 champignons ou plus de la même espèce dans une zone de 9×3×9 blocs autour du champignon. -Mushrooms will eventually uproot at a light level of 12 or higher. On mycelium or podzol, they survive and spread at any light level.=Les champignons finiront par déraciner à un niveau de lumière de 12 ou plus. Sur le mycélium ou le podzol, ils survivent et se propagent à n'importe quel niveau de lumière. -This mushroom can be placed on mycelium and podzol at any light level. It can also be placed on blocks which are both solid and opaque, as long as the light level at daytime is not higher than 12.=Ce champignon peut être placé sur le mycélium et le podzol à n'importe quel niveau de lumière. Il peut également être placé sur des blocs à la fois solides et opaques, tant que le niveau de lumière pendant la journée n'est pas supérieur à 12. -Brown Mushroom=Champignon Marron -Red Mushroom=Champignon Rouge -Mushroom Stew=Ragoût de Champignon -Mushroom stew is a healthy soup which can be consumed to restore some hunger points.=Le ragoût de champignons est une soupe saine qui peut être consommée pour restaurer certains points de faim. -By placing huge mushroom blocks of the same species next to each other, the sides that touch each other will turn into pores permanently.=En plaçant d'énormes blocs de champignons de la même espèce les uns à côté des autres, les côtés qui se touchent se transformeront en pores de façon permanente. -Grows on podzol, mycelium and other blocks=Pousse sur podzol, mycélium et autres blocs -Spreads in darkness=Se propage dans l'obscurité diff --git a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.de.tr b/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.de.tr index 55996ed4..8402e280 100644 --- a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.de.tr +++ b/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.de.tr @@ -20,5 +20,3 @@ Red Mushroom=Roter Pilz Mushroom Stew=Pilzsuppe Mushroom stew is a healthy soup which can be consumed to restore some hunger points.=Pilzsuppe ist eine gesunde Suppe, die für ein paar Hungerpunkte konsumiert werden kann. By placing huge mushroom blocks of the same species next to each other, the sides that touch each other will turn into pores permanently.=Wenn Riesenpilzblöcke der selben Art nebeneinander platziert werden, werden sich die Seiten, die sich berühren, dauerhaft zu Poren verwandeln. -Grows on podzol, mycelium and other blocks=Wächst auf Podsol, Myzel und anderen Blöcken -Spreads in darkness=Breitet sich in der Dunkelheit aus diff --git a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.es.tr b/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.es.tr deleted file mode 100644 index fc81adf9..00000000 --- a/mods/ITEMS/mcl_mushrooms/locale/mcl_mushrooms.es.tr +++ /dev/null @@ -1,22 +0,0 @@ -# textdomain: mcl_mushrooms -This decorative block is like a huge mushroom stem, but with the stem texture on all sides.=Este bloque decorativo es como un gran tallo de hongo, pero con la textura del tallo en todos los lados. -Huge red mushroom blocks are the cap parts of huge red mushrooms. It consists of a red skin and can have pores on each of its sides.=Enormes bloques de hongos rojos son las partes de la tapa de enormes hongos rojos. Consiste en una piel roja y puede tener poros en cada uno de sus lados. -The stem part of a huge red mushroom.=La parte del tallo de un champiñón rojo enorme. -Huge Red Mushroom Block=Bloque de champiñón rojo -Huge Red Mushroom Stem=Tallo de champiñón rojo -Huge Red Mushroom All-Faces Stem=Tallo de champiñón rojo (Todas las caras) -Huge brown mushroom blocks are the cap parts of huge brown mushrooms. It consists of a brown skin and can have pores on each of its sides.=Braune Riesenpilzblöcke sind die Kappenteile von braunen Riesenpilzen. Sie bestehen aus einer braunen Haut und können Poren an jede ihrer Seiten haben. -The stem part of a huge brown mushroom.=Der Stängelteil eines braunen Riesenpilzes. -Huge Brown Mushroom Block=Bloque de champiñón marrón -Huge Brown Mushroom Stem=Tallo de champiñón marrón -Huge Brown Mushroom All-Faces Stem=Tallo de champiñón marrón (Todas las caras) -Brown mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.=Los hongos marrones son hongos que crecen y se propagan en la oscuridad, pero son sensibles a la luz. No son comestibles como tales, pero pueden usarse para fabricar alimentos. -Red mushrooms are fungi which grow and spread in darkness, but are sensitive to light. They are inedible as such, but they can be used to craft food items.=Los hongos rojos son hongos que crecen y se propagan en la oscuridad, pero son sensibles a la luz. No son comestibles como tales, pero pueden usarse para fabricar alimentos. -A single mushroom of this species will slowly spread over time towards a random solid opaque block with a light level of 12 or lower in a 3×3×3 cube around the mushroom. It stops spreading when there are 5 or more mushrooms of the same species within an area of 9×3×9 blocks around the mushroom.=Un solo hongo de esta especie se extenderá lentamente con el tiempo hacia un bloque opaco sólido aleatorio con un nivel de luz de 12 o menos en un cubo de 3 × 3 × 3 alrededor del hongo. Se detiene cuando hay 5 o más hongos de la misma especie dentro de un área de 9 × 3 × 9 bloques alrededor del hongo. -Mushrooms will eventually uproot at a light level of 12 or higher. On mycelium or podzol, they survive and spread at any light level.=Los hongos eventualmente se desarraigarán a un nivel de luz de 12 o más. En micelio o podzol, sobreviven y se propagan a cualquier nivel de luz. -This mushroom can be placed on mycelium and podzol at any light level. It can also be placed on blocks which are both solid and opaque, as long as the light level at daytime is not higher than 12.=Este hongo se puede colocar sobre micelio y podzol a cualquier nivel de luz. También se puede colocar en bloques que sean sólidos y opacos, siempre que el nivel de luz durante el día no sea superior a 12. -Brown Mushroom=Champiñón marrón -Red Mushroom=Champiñón rojo -Mushroom Stew=Estofado de champiñones -Mushroom stew is a healthy soup which can be consumed to restore some hunger points.=El estofado de champiñones es una sopa saludable que se puede consumir para restaurar algunos puntos de hambre. -By placing huge mushroom blocks of the same species next to each other, the sides that touch each other will turn into pores permanently.=Al colocar enormes bloques de hongos de la misma especie uno al lado del otro, los lados que se tocan se convertirán en poros permanentemente. diff --git a/mods/ITEMS/mcl_mushrooms/locale/template.txt b/mods/ITEMS/mcl_mushrooms/locale/template.txt index 41ebdaa8..cbd1f600 100644 --- a/mods/ITEMS/mcl_mushrooms/locale/template.txt +++ b/mods/ITEMS/mcl_mushrooms/locale/template.txt @@ -20,5 +20,3 @@ Red Mushroom= Mushroom Stew= Mushroom stew is a healthy soup which can be consumed to restore some hunger points.= By placing huge mushroom blocks of the same species next to each other, the sides that touch each other will turn into pores permanently.= -Grows on podzol, mycelium and other blocks= -Spreads in darkness= diff --git a/mods/ITEMS/mcl_mushrooms/small.lua b/mods/ITEMS/mcl_mushrooms/small.lua index 8105386f..75bdeeec 100644 --- a/mods/ITEMS/mcl_mushrooms/small.lua +++ b/mods/ITEMS/mcl_mushrooms/small.lua @@ -23,15 +23,12 @@ local longdesc_intro_red = S("Red mushrooms are fungi which grow and spread in d local longdesc_append = S("A single mushroom of this species will slowly spread over time towards a random solid opaque block with a light level of 12 or lower in a 3×3×3 cube around the mushroom. It stops spreading when there are 5 or more mushrooms of the same species within an area of 9×3×9 blocks around the mushroom.").."\n".. S("Mushrooms will eventually uproot at a light level of 12 or higher. On mycelium or podzol, they survive and spread at any light level.") -local tt_help = S("Grows on podzol, mycelium and other blocks").."\n"..S("Spreads in darkness") - local usagehelp = S("This mushroom can be placed on mycelium and podzol at any light level. It can also be placed on blocks which are both solid and opaque, as long as the light level at daytime is not higher than 12.") minetest.register_node("mcl_mushrooms:mushroom_brown", { description = S("Brown Mushroom"), _doc_items_longdesc = longdesc_intro_brown .. "\n\n" .. longdesc_append, _doc_items_usagehelp = usagehelp, - _tt_help = tt_help, drawtype = "plantlike", tiles = { "farming_mushroom_brown.png" }, inventory_image = "farming_mushroom_brown.png", @@ -55,7 +52,6 @@ minetest.register_node("mcl_mushrooms:mushroom_red", { description = S("Red Mushroom"), _doc_items_longdesc = longdesc_intro_red .. "\n\n" .. longdesc_append, _doc_items_usagehelp = usagehelp, - _tt_help = tt_help, drawtype = "plantlike", tiles = { "farming_mushroom_red.png" }, inventory_image = "farming_mushroom_red.png", diff --git a/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_brown.png b/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_brown.png index 15a35d5f..37e1d11e 100644 Binary files a/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_brown.png and b/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_brown.png differ diff --git a/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_red.png b/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_red.png index aab88ed2..5f913586 100644 Binary files a/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_red.png and b/mods/ITEMS/mcl_mushrooms/textures/farming_mushroom_red.png differ diff --git a/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_inside.png b/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_inside.png index ccbad3d1..06377fee 100644 Binary files a/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_inside.png and b/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_inside.png differ diff --git a/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_skin_brown.png b/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_skin_brown.png index 9ce7af38..65d27c4c 100644 Binary files a/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_skin_brown.png and b/mods/ITEMS/mcl_mushrooms/textures/mcl_mushrooms_mushroom_block_skin_brown.png differ diff --git a/mods/ITEMS/mcl_nether/depends.txt b/mods/ITEMS/mcl_nether/depends.txt index 96f253aa..273e76e1 100644 --- a/mods/ITEMS/mcl_nether/depends.txt +++ b/mods/ITEMS/mcl_nether/depends.txt @@ -5,4 +5,3 @@ walkover mcl_death_messages? doc_items doc? -screwdriver? diff --git a/mods/ITEMS/mcl_nether/init.lua b/mods/ITEMS/mcl_nether/init.lua index e7612c90..116fe789 100644 --- a/mods/ITEMS/mcl_nether/init.lua +++ b/mods/ITEMS/mcl_nether/init.lua @@ -1,11 +1,6 @@ local S = minetest.get_translator("mcl_nether") local mod_death_messages = minetest.get_modpath("mcl_death_messages") -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end minetest.register_node("mcl_nether:glowstone", { description = S("Glowstone"), @@ -23,9 +18,10 @@ minetest.register_node("mcl_nether:glowstone", { } }, paramtype = "light", - light_source = minetest.LIGHT_MAX, + -- Real light level: 15 (but Minetest caps at 14) + light_source = 14, sounds = mcl_sounds.node_sound_glass_defaults(), - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) @@ -38,7 +34,7 @@ minetest.register_node("mcl_nether:quartz_ore", { groups = {pickaxey=1, building_block=1, material_stone=1}, drop = 'mcl_nether:quartz', sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 3, + _mcl_blast_resistance = 15, _mcl_hardness = 3, }) @@ -75,7 +71,7 @@ minetest.register_node("mcl_nether:netherrack", { is_ground_content = true, groups = {pickaxey=1, building_block=1, material_stone=1, enderman_takable=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.4, + _mcl_blast_resistance = 2, _mcl_hardness = 0.4, -- Eternal fire on top @@ -85,7 +81,6 @@ minetest.register_node("mcl_nether:netherrack", { minetest.register_node("mcl_nether:magma", { description = S("Magma Block"), - _tt_help = minetest.colorize("#FFFF00", S("Burns your feet")), _doc_items_longdesc = S("Magma blocks are hot solid blocks which hurt anyone standing on it, unless they have fire resistance. Starting a fire on this block will create an eternal fire."), stack_max = 64, tiles = {{name="mcl_nether_magma.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.5}}}, @@ -101,10 +96,10 @@ minetest.register_node("mcl_nether:magma", { if mod_death_messages then mcl_death_messages.player_damage(player, S("@1 stood too long on a magma block.", player:get_player_name())) end - player:set_hp(player:get_hp() - 1, { type = "punch", from = "mod" }) + player:set_hp(player:get_hp() - 1) end end, - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, -- Eternal fire on top @@ -114,7 +109,6 @@ minetest.register_node("mcl_nether:magma", { minetest.register_node("mcl_nether:soul_sand", { description = S("Soul Sand"), - _tt_help = S("Reduces walking speed"), _doc_items_longdesc = S("Soul sand is a block from the Nether. One can only slowly walk on soul sand. The slowing effect is amplified when the soul sand is on top of ice, packed ice or a slime block."), stack_max = 64, tiles = {"mcl_nether_soul_sand.png"}, @@ -125,7 +119,7 @@ minetest.register_node("mcl_nether:soul_sand", { fixed = { -0.5, -0.5, -0.5, 0.5, 0.5 - 2/16, 0.5 }, }, sounds = mcl_sounds.node_sound_sand_defaults(), - _mcl_blast_resistance = 0.5, + _mcl_blast_resistance = 2.5, _mcl_hardness = 0.5, -- Movement handling is done in mcl_playerplus mod }) @@ -139,7 +133,7 @@ minetest.register_node("mcl_nether:nether_brick", { is_ground_content = false, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) @@ -152,7 +146,7 @@ minetest.register_node("mcl_nether:red_nether_brick", { is_ground_content = false, groups = {pickaxey=1, building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) @@ -170,7 +164,7 @@ minetest.register_node("mcl_nether:nether_wart_block", { dug={name="default_dirt_footstep", gain=1.5}, } ), - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, _mcl_hardness = 1, }) @@ -182,7 +176,7 @@ minetest.register_node("mcl_nether:quartz_block", { tiles = {"mcl_nether_quartz_block_top.png", "mcl_nether_quartz_block_bottom.png", "mcl_nether_quartz_block_side.png"}, groups = {pickaxey=1, quartz_block=1,building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -194,7 +188,7 @@ minetest.register_node("mcl_nether:quartz_chiseled", { tiles = {"mcl_nether_quartz_chiseled_top.png", "mcl_nether_quartz_chiseled_top.png", "mcl_nether_quartz_chiseled_side.png"}, groups = {pickaxey=1, quartz_block=1,building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) @@ -208,8 +202,7 @@ minetest.register_node("mcl_nether:quartz_pillar", { tiles = {"mcl_nether_quartz_pillar_top.png", "mcl_nether_quartz_pillar_top.png", "mcl_nether_quartz_pillar_side.png"}, groups = {pickaxey=1, quartz_block=1,building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - on_rotate = on_rotate, - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) minetest.register_node("mcl_nether:quartz_smooth", { @@ -220,7 +213,7 @@ minetest.register_node("mcl_nether:quartz_smooth", { tiles = {"mcl_nether_quartz_block_bottom.png"}, groups = {pickaxey=1, quartz_block=1,building_block=1, material_stone=1}, sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, _mcl_hardness = 0.8, }) diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr index f81f381e..4ceafbd9 100644 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr +++ b/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr @@ -35,6 +35,3 @@ The mature nether wart is a plant from the Nether and reached its full size and Nether Wart=Netherwurz Nether warts are plants home to the Nether. They can be planted on soul sand and grow in 4 stages.=Netherwurze sind Pflanzen, die im Nether beheimatet sind. Sie können auf Seelensand gepflanzt werden und wachsen in 4 Stufen. Place this item on soul sand to plant it and watch it grow.=Platzieren Sie den Gegenstand auf Seelensand, um ihn zu pflanzen und sehen Sie dabei zu, wie es wächst. -Burns your feet=Verbrennt Ihre Füße -Grows on soul sand=Wächst auf Seelensand -Reduces walking speed=Reduziert das Schritttempo diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.es.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.es.tr deleted file mode 100644 index 046b95f2..00000000 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.es.tr +++ /dev/null @@ -1,37 +0,0 @@ -# textdomain: mcl_nether -Glowstone=Piedra luminosa -Glowstone is a naturally-glowing block which is home to the Nether.=Glowstone es un bloque que brilla de forma natural y que lo alberga el Nether. -Nether Quartz Ore=Mena de cuarzo -Nether quartz ore is an ore containing nether quartz. It is commonly found around netherrack in the Nether.=La mena de cuarzo es un mineral que contiene cuarzo inferior. Se encuentra comúnmente alrededor del tramo inferior en el Nether. -Netherrack=Netherrack -Netherrack is a stone-like block home to the Nether. Starting a fire on this block will create an eternal fire.=Netherrack es un bloque de piedra que alberga el Nether. Comenzar un incendio en este bloque creará un fuego eterno. -Magma Block=Bloque de magma -Magma blocks are hot solid blocks which hurt anyone standing on it, unless they have fire resistance. Starting a fire on this block will create an eternal fire.=Los bloques de magma son bloques sólidos y calientes que lastiman a cualquiera que esté parado sobre él, a menos que tengan resistencia al fuego. Comenzar un incendio en este bloque creará un fuego eterno. -Soul Sand=Arena de almas -Soul sand is a block from the Nether. One can only slowly walk on soul sand. The slowing effect is amplified when the soul sand is on top of ice, packed ice or a slime block.=La arena del alma está a una cuadra del Nether. Uno solo puede caminar lentamente sobre la arena del alma. El efecto de desaceleración se amplifica cuando la arena del alma está encima del hielo, hielo empaquetado o un bloque de limo. -Nether Brick Block=Ladrillos del Nether -Red Nether Brick Block=Ladrillos del Nether rojos -Nether Wart Block=Bloque de verrugas del Nether -A nether wart block is a purely decorative block made from nether wart.=Un bloque de verruga inferior es un bloque puramente decorativo hecho de verruga inferior. -Block of Quartz=Bloque de cuarzo -Chiseled Quartz Block=Cuarzo cincelado -Pillar Quartz Block=Pilar de cuarzo -Smooth Quartz=Cuarzo liso -Glowstone Dust=Polvo de piedra luminosa -Glowstone dust is the dust which comes out of broken glowstones. It is mainly used in crafting.=El polvo de piedra luminosa es el polvo que sale de las piedras luminiscentes rotas. Se utiliza principalmente en la elaboración. -Nether Quartz=Infracuarzo -Nether quartz is a versatile crafting ingredient.=El cuarzo abisal es un ingrediente de elaboración versátil. -Nether Brick=Ladrillos del Nether -Nether bricks are the main crafting ingredient for crafting nether brick blocks and nether fences.=Los ladrillos abisales son el ingrediente principal para la elaboración de bloques de ladrillo y cercas inferiores. -Nether Lava Source=Fuente de lava del Nether -Flowing Nether Lava=Fuente de lava fluida del Nether -@1 stood too long on a magma block.=@1 permaneció demasiado tiempo sobre un bloque de magma. -Premature Nether Wart (Stage 1)=Verruga del Nether prematura (Etapa 1) -A premature nether wart has just recently been planted on soul sand. Nether wart slowly grows on soul sand in 4 stages (the second and third stages look identical). Although nether wart is home to the Nether, it grows in any dimension.=Recientemente se ha plantado una verruga inferior prematura en la arena del alma. La verruga abisal crece lentamente en la arena del alma en 4 etapas (la segunda y la tercera etapa son idénticas). Aunque la verruga inferior es el hogar del Nether, crece en cualquier dimensión. -Premature Nether Wart (Stage 2)=Verruga del Nether prematura (Etapa 2) -Premature Nether Wart (Stage 3)=Verruga del Nether prematura (Etapa 3) -Mature Nether Wart=Verruga del Nether madura -The mature nether wart is a plant from the Nether and reached its full size and won't grow any further. It is ready to be harvested for its items.=La verruga inferior madura es una planta del Nether y alcanzó su tamaño completo y no crecerá más. Está listo para ser cosechado por sus artículos. -Nether Wart=Verruga del Nether -Nether warts are plants home to the Nether. They can be planted on soul sand and grow in 4 stages.=Las verrugas abisales son plantas que albergan al abismo Se pueden plantar en la arena del alma y crecer en 4 etapas. -Place this item on soul sand to plant it and watch it grow.=Coloque este artículo en la arena del alma para plantarlo y verlo crecer. diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr deleted file mode 100644 index 048072be..00000000 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr +++ /dev/null @@ -1,40 +0,0 @@ -# textdomain: mcl_nether -Glowstone=Pierre Lumineuse -Glowstone is a naturally-glowing block which is home to the Nether.=La Pierre Lumineuse est un bloc naturellement brillant qui abrite le Nether. -Nether Quartz Ore=Minerai de quartz du Nether -Nether quartz ore is an ore containing nether quartz. It is commonly found around netherrack in the Nether.=Le minerai de quartz du Nether est un minerai contenant du quartz du Nether. Il se trouve généralement autour du Néantrack dans le Nether. -Netherrack=Netherrack -Netherrack is a stone-like block home to the Nether. Starting a fire on this block will create an eternal fire.=Netherrack est un bloc de pierre qui abrite le Nether. Démarrer un feu sur ce bloc créera un feu éternel. -Magma Block=Bloc de Magma -Magma blocks are hot solid blocks which hurt anyone standing on it, unless they have fire resistance. Starting a fire on this block will create an eternal fire.=Les blocs de magma sont des blocs solides chauds qui blessent quiconque s'y tient, à moins qu'ils n'aient une résistance au feu. Démarrer un feu sur ce bloc créera un feu éternel. -@1 stood too long on a magma block.=@1 s'est tenu trop longtemps sur un bloc de magma. -Soul Sand=Sable des âmes -Soul sand is a block from the Nether. One can only slowly walk on soul sand. The slowing effect is amplified when the soul sand is on top of ice, packed ice or a slime block.=Le sable de l'âme est un bloc du Nether. On ne peut que marcher lentement sur le sable de l'âme. L'effet de ralentissement est amplifié lorsque le sable de l'âme est au-dessus de la glace, de la glace tassée ou d'un bloc de slime. -Nether Brick Block=Brique du Nether -Red Nether Brick Block=Brique Rouge du Nether -Nether Wart Block=Bloc de Verrues du Nether -A nether wart block is a purely decorative block made from nether wart.=Un bloc de verrue du Nether est un bloc purement décoratif fabriqué à partir de verrue du Nether. -Block of Quartz=Bloc de Quartz -Chiseled Quartz Block=Bloc de Quartz sculpté -Pillar Quartz Block=Bloc de Quartz rayé -Smooth Quartz=Quartz Lisse -Glowstone Dust=Poudre Lumineuse -Glowstone dust is the dust which comes out of broken glowstones. It is mainly used in crafting.=La poudre lumineuse est la poussière qui sort des pierres incandescentes brisées. Il est principalement utilisé dans l'artisanat. -Nether Quartz=Quartz du Nether -Nether quartz is a versatile crafting ingredient.=Le quartz du Nether est un ingrédient artisanal polyvalent. -Nether Brick=Bric du Nether -Nether bricks are the main crafting ingredient for crafting nether brick blocks and nether fences.=Les briques du Nether sont le principal ingrédient de fabrication pour la fabrication de blocs de briques et de clôtures du Nether. -Nether Lava Source=Source de Lave du Nether -Flowing Nether Lava=Lave du Nether en Mouvement -Premature Nether Wart (Stage 1)=Verrue du Néant prématurée (étape 1) -A premature nether wart has just recently been planted on soul sand. Nether wart slowly grows on soul sand in 4 stages (the second and third stages look identical). Although nether wart is home to the Nether, it grows in any dimension.=Une verrue du Nether prématurée vient d'être plantée sur du sable d'âme. La verrue du Nether pousse lentement sur le sable de l'âme en 4 étapes (les deuxième et troisième étapes semblent identiques). Bien que la verrue du Nether habite le Nether, elle se développe dans toutes les dimensions. -Premature Nether Wart (Stage 2)=Verrue du Néant prématurée (étape 2) -Premature Nether Wart (Stage 3)=Verrue du Néant prématurée (étape 3) -Mature Nether Wart=Verrue du Néant Mature -The mature nether wart is a plant from the Nether and reached its full size and won't grow any further. It is ready to be harvested for its items.=La verrue du Nether mature est une plante du Nether qui a atteint sa taille maximale et ne poussera plus. Il est prêt à être récolté pour ses articles. -Nether Wart=Verrues du Nether -Nether warts are plants home to the Nether. They can be planted on soul sand and grow in 4 stages.=Les verrues du Nether sont des plantes qui habitent le Nether. Ils peuvent être plantés sur du sable d'âme et se développer en 4 étapes. -Place this item on soul sand to plant it and watch it grow.=Placez cet article sur du sable d'âme pour le planter et regardez-le grandir. -Burns your feet=Vous brûle les pieds -Grows on soul sand=Pousse sur le sable de l'âme -Reduces walking speed=Réduit la vitesse de marche diff --git a/mods/ITEMS/mcl_nether/locale/template.txt b/mods/ITEMS/mcl_nether/locale/template.txt index 0d578faf..cb0ba600 100644 --- a/mods/ITEMS/mcl_nether/locale/template.txt +++ b/mods/ITEMS/mcl_nether/locale/template.txt @@ -35,6 +35,3 @@ The mature nether wart is a plant from the Nether and reached its full size and Nether Wart= Nether warts are plants home to the Nether. They can be planted on soul sand and grow in 4 stages.= Place this item on soul sand to plant it and watch it grow.= -Burns your feet= -Grows on soul sand= -Reduces walking speed= diff --git a/mods/ITEMS/mcl_nether/nether_wart.lua b/mods/ITEMS/mcl_nether/nether_wart.lua index 7744a1fe..7b01e462 100644 --- a/mods/ITEMS/mcl_nether/nether_wart.lua +++ b/mods/ITEMS/mcl_nether/nether_wart.lua @@ -97,7 +97,6 @@ minetest.register_node("mcl_nether:nether_wart", { minetest.register_craftitem("mcl_nether:nether_wart_item", { description = S("Nether Wart"), - _tt_help = S("Grows on soul sand"), _doc_items_longdesc = S("Nether warts are plants home to the Nether. They can be planted on soul sand and grow in 4 stages."), _doc_items_usagehelp = S("Place this item on soul sand to plant it and watch it grow."), inventory_image = "mcl_nether_nether_wart.png", @@ -125,7 +124,7 @@ minetest.register_craftitem("mcl_nether:nether_wart_item", { -- Check if node above soil node allows placement if minetest.registered_items[minetest.get_node(placepos).name].buildable_to then -- Place nether wart - minetest.sound_play({name="default_place_node", gain=1.0}, {pos=placepos}, true) + minetest.sound_play({name="default_place_node", gain=1.0}, {pos=placepos}) minetest.set_node(placepos, {name="mcl_nether:nether_wart_0", param2 = 3}) if not minetest.settings:get_bool("creative_mode") then diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_glowstone.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_glowstone.png index 43b1979e..d42c9c9c 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_glowstone.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_glowstone.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_brick.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_brick.png index 66518323..43a1af1b 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_brick.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_brick.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png index 75747835..0478c760 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_nether_wart_stage_2.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_netherbrick.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_netherbrick.png index ce296092..9d8c32d8 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_netherbrick.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_netherbrick.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_netherrack.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_netherrack.png index ead9c8c8..43b978c4 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_netherrack.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_netherrack.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png index 013c4228..2e522f8a 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_side.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_top.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_top.png index 013c4228..2e522f8a 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_top.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_block_top.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_side.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_side.png index e0e86ea8..6029dace 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_side.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_side.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_top.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_top.png index 40117a88..a6bd3295 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_top.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_chiseled_top.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_ore.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_ore.png index 487316e2..ee9f5977 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_ore.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_ore.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_side.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_side.png index d46d33e8..32dd3d8c 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_side.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_side.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_top.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_top.png index e91e1068..1b6fe45b 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_top.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_quartz_pillar_top.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_red_nether_brick.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_red_nether_brick.png index 7248b210..cd218288 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_red_nether_brick.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_red_nether_brick.png differ diff --git a/mods/ITEMS/mcl_nether/textures/mcl_nether_soul_sand.png b/mods/ITEMS/mcl_nether/textures/mcl_nether_soul_sand.png index 1aab3069..dcde3812 100644 Binary files a/mods/ITEMS/mcl_nether/textures/mcl_nether_soul_sand.png and b/mods/ITEMS/mcl_nether/textures/mcl_nether_soul_sand.png differ diff --git a/mods/ITEMS/mcl_ocean/corals.lua b/mods/ITEMS/mcl_ocean/corals.lua deleted file mode 100644 index 7b076c3e..00000000 --- a/mods/ITEMS/mcl_ocean/corals.lua +++ /dev/null @@ -1,315 +0,0 @@ -local S = minetest.get_translator("mcl_ocean") -local mod_doc = minetest.get_modpath("doc") ~= nil - -local corals = { - { "tube", S("Tube Coral Block"), S("Dead Tube Coral Block"), S("Tube Coral"), S("Dead Tube Coral"), S("Tube Coral Fan"), S("Dead Tube Coral Fan") }, - { "brain", S("Brain Coral Block"), S("Dead Brain Coral Block"), S("Brain Coral"), S("Dead Brain Coral"), S("Brain Coral Fan"), S("Dead Brain Coral Fan") }, - { "bubble", S("Bubble Coral Block"), S("Dead Bubble Coral Block"), S("Bubble Coral"), S("Dead Bubble Coral"), S("Bubble Coral Fan"), S("Dead Bubble Coral Fan")}, - { "fire", S("Fire Coral Block"), S("Dead Fire Coral Block"), S("Fire Coral"), S("Dead Fire Coral"), S("Fire Coral Fan"), S("Dead Fire Coral Fan") }, - { "horn", S("Horn Coral Block"), S("Dead Horn Coral Block"), S("Horn Coral"), S("Dead Horn Coral"), S("Horn Coral Fan"), S("Dead Horn Coral Fan") }, -} - -local function coral_on_place(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - local node_under = minetest.get_node(pos_under) - local def_under = minetest.registered_nodes[node_under.name] - - if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then - return def_under.on_rightclick(pos_under, node_under, - placer, itemstack, pointed_thing) or itemstack - end - - if pos_under.y >= pos_above.y then - return itemstack - end - - local g_block = minetest.get_item_group(node_under.name, "coral_block") - local g_coral = minetest.get_item_group(itemstack:get_name(), "coral") - local g_species_block = minetest.get_item_group(node_under.name, "coral_species") - local g_species_plant = minetest.get_item_group(itemstack:get_name(), "coral_species") - - -- Placement rules: - -- Coral plant can only be placed on top of a matching coral block. - if g_block == 0 or (g_coral ~= g_block) or (g_species_block ~= g_species_plant) then - return itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.log("action", player_name - .. " tried to place " .. itemstack:get_name() - .. " at protected position " - .. minetest.pos_to_string(pos_under)) - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - node_under.name = itemstack:get_name() - node_under.param2 = minetest.registered_items[node_under.name].place_param2 or 1 - if node_under.param2 < 8 and math.random(1,2) == 1 then - -- Random horizontal displacement - node_under.param2 = node_under.param2 + 8 - end - minetest.set_node(pos_under, node_under) - local def_node = minetest.registered_nodes[node_under.name] - if def_node.sounds then - minetest.sound_play(def_node.sounds.place, { gain = 0.5, pos = pos_under }, true) - end - if not (minetest.settings:get_bool("creative_mode")) then - itemstack:take_item() - end - - return itemstack -end - --- Sound for non-block corals -local sounds_coral_plant = mcl_sounds.node_sound_leaves_defaults({footstep = mcl_sounds.node_sound_dirt_defaults().footstep}) - -for c=1, #corals do - local id = corals[c][1] - local doc_desc_block = S("Coral blocks live in the oceans and need a water source next to them to survive. Without water, they die off.") - local doc_desc_coral = S("Corals grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.") - local doc_desc_fan = S("Corals fans grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.") - local tt_block = S("Needs water to live") - local tt_coral_dead = S("Grows on coral block of same species") - local tt_coral = tt_coral_dead .. "\n" .. S("Needs water to live") - - -- Coral Block - minetest.register_node("mcl_ocean:"..id.."_coral_block", { - description = corals[c][2], - _doc_items_longdesc = doc_desc_block, - _tt_help = tt_block, - tiles = { "mcl_ocean_"..id.."_coral_block.png" }, - groups = { pickaxey = 1, building_block = 1, coral=1, coral_block=1, coral_species=c, }, - sounds = mcl_sounds.node_sound_dirt_defaults(), - drop = "mcl_ocean:dead_"..id.."_coral_block", - _mcl_hardness = 1.5, - _mcl_blast_resistance = 6, - }) - minetest.register_node("mcl_ocean:dead_"..id.."_coral_block", { - description = corals[c][3], - _doc_items_create_entry = false, - tiles = { "mcl_ocean_dead_"..id.."_coral_block.png" }, - groups = { pickaxey = 1, building_block = 1, coral=2, coral_block=2, coral_species=c, }, - sounds = mcl_sounds.node_sound_dirt_defaults(), - _mcl_hardness = 1.5, - _mcl_blast_resistance = 6, - }) - - -- Coral - minetest.register_node("mcl_ocean:"..id.."_coral", { - description = corals[c][4], - _doc_items_longdesc = doc_desc_coral, - _tt_help = tt_coral, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 1, - tiles = { "mcl_ocean_"..id.."_coral_block.png" }, - special_tiles = { { name = "mcl_ocean_"..id.."_coral.png" } }, - inventory_image = "mcl_ocean_"..id.."_coral.png", - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 }, - } - }, - groups = { dig_immediate = 3, deco_block = 1, coral=1, coral_plant=1, coral_species=c, }, - sounds = sounds_coral_plant, - drop = "mcl_ocean:dead_"..id.."_coral", - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:"..id.."_coral_block", - on_place = coral_on_place, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "coral") == 0 then - minetest.set_node(pos, {name="mcl_ocean:"..id.."_coral_block"}) - end - end, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - minetest.register_node("mcl_ocean:dead_"..id.."_coral", { - description = corals[c][5], - _doc_items_create_entry = false, - _tt_help = tt_coral_dead, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 1, - tiles = { "mcl_ocean_dead_"..id.."_coral_block.png" }, - special_tiles = { { name = "mcl_ocean_dead_"..id.."_coral.png" } }, - inventory_image = "mcl_ocean_dead_"..id.."_coral.png", - groups = { dig_immediate = 3, deco_block = 1, coral=2, coral_plant=2, coral_species=c, }, - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 }, - } - }, - sounds = sounds_coral_plant, - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:dead_"..id.."_coral_block", - on_place = coral_on_place, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "coral") == 0 then - minetest.set_node(pos, {name="mcl_ocean:dead_"..id.."_coral_block"}) - end - end, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - - -- Coral Fan - minetest.register_node("mcl_ocean:"..id.."_coral_fan", { - description = corals[c][6], - _doc_items_longdesc = doc_desc_fan, - _tt_help = tt_coral, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 4, - tiles = { "mcl_ocean_"..id.."_coral_block.png" }, - special_tiles = { { name = "mcl_ocean_"..id.."_coral_fan.png" } }, - inventory_image = "mcl_ocean_"..id.."_coral_fan.png", - groups = { dig_immediate = 3, deco_block = 1, coral=1, coral_fan=1, coral_species=c, }, - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 }, - } - }, - sounds = sounds_coral_plant, - drop = "mcl_ocean:dead_"..id.."_coral_fan", - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:"..id.."_coral_block", - on_place = coral_on_place, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "coral") == 0 then - minetest.set_node(pos, {name="mcl_ocean:"..id.."_coral_block"}) - end - end, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - minetest.register_node("mcl_ocean:dead_"..id.."_coral_fan", { - description = corals[c][7], - _doc_items_create_entry = false, - _tt_help = tt_coral_dead, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 4, - tiles = { "mcl_ocean_dead_"..id.."_coral_block.png" }, - special_tiles = { { name = "mcl_ocean_dead_"..id.."_coral_fan.png" } }, - inventory_image = "mcl_ocean_dead_"..id.."_coral_fan.png", - groups = { dig_immediate = 3, deco_block = 1, coral=2, coral_fan=2, coral_species=c, }, - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 }, - } - }, - sounds = sounds_coral_plant, - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:dead_"..id.."_coral_block", - on_place = coral_on_place, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "coral") == 0 then - minetest.set_node(pos, {name="mcl_ocean:dead_"..id.."_coral_block"}) - end - end, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - - if mod_doc then - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral", "nodes", "mcl_ocean:"..id.."_coral") - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral_fan", "nodes", "mcl_ocean:"..id.."_coral_fan") - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral_block", "nodes", "mcl_ocean:"..id.."_coral_block") - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral", "nodes", "mcl_ocean:dead_"..id.."_coral") - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral_fan", "nodes", "mcl_ocean:dead_"..id.."_coral_fan") - doc.add_entry_alias("nodes", "mcl_ocean:"..id.."_coral_block", "nodes", "mcl_ocean:dead_"..id.."_coral_block") - end -end - --- Turn corals and coral fans to dead corals if not inside a water source -minetest.register_abm({ - label = "Coral plant / coral fan death", - nodenames = { "group:coral_plant", "group_coral_fan" }, - interval = 17, - chance = 5, - catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) - -- Check if coral's alive - local coral_state = minetest.get_item_group(node.name, "coral") - if coral_state == 1 then - -- Check node above, here lives the actual plant (it's plantlike_rooted) - if minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "mcl_core:water_source" then - -- Find dead form (it's the same as the node's drop) - local def = minetest.registered_nodes[node.name] - local dead - if def then - node.name = def.drop - else - return - end - -- Set node to dead form. - minetest.set_node(pos, node) - end - end - end, -}) - --- Turn corals blocks to dead coral blocks if not next to a water source -minetest.register_abm({ - label = "Coral block death", - nodenames = { "group:coral_block" }, - interval = 17, - chance = 5, - catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) - -- Check if coral's alive - local coral_state = minetest.get_item_group(node.name, "coral") - if coral_state == 1 then - local posses = { - { x=0,y=1,z=0 }, - { x=-1,y=0,z=0 }, - { x=1,y=0,z=0 }, - { x=0,y=0,z=-1 }, - { x=0,y=0,z=1 }, - { x=0,y=-1,z=0 }, - } - -- Check all 6 neighbors for water - for p=1, #posses do - local checknode = minetest.get_node(vector.add(pos, posses[p])) - if checknode.name == "mcl_core:water_source" then - -- Water found! Don't die. - return - end - end - -- Find dead form (it's the same as the node's drop) - local def = minetest.registered_nodes[node.name] - if def then - node.name = def.drop - else - return - end - -- Set node to dead form - minetest.set_node(pos, node) - end - end, -}) diff --git a/mods/ITEMS/mcl_ocean/depends.txt b/mods/ITEMS/mcl_ocean/depends.txt index 66908e83..6c4ef5f3 100644 --- a/mods/ITEMS/mcl_ocean/depends.txt +++ b/mods/ITEMS/mcl_ocean/depends.txt @@ -1,6 +1,3 @@ -mcl_core mcl_sounds mcl_dye -doc? -doc_items? -screwdriver? +doc_items diff --git a/mods/ITEMS/mcl_ocean/init.lua b/mods/ITEMS/mcl_ocean/init.lua index 2a103b8d..b84bbeac 100644 --- a/mods/ITEMS/mcl_ocean/init.lua +++ b/mods/ITEMS/mcl_ocean/init.lua @@ -1,14 +1,118 @@ --- Prismarine (includes sea lantern) -dofile(minetest.get_modpath(minetest.get_current_modname()).."/prismarine.lua") +-- Nodes --- Corals -dofile(minetest.get_modpath(minetest.get_current_modname()).."/corals.lua") +local S = minetest.get_translator("mcl_ocean") --- Seagrass -dofile(minetest.get_modpath(minetest.get_current_modname()).."/seagrass.lua") +minetest.register_node("mcl_ocean:sea_lantern", { + description = S("Sea Lantern"), + _doc_items_longdesc = S("Sea lanterns are decorative light sources which look great underwater but can be placed anywhere."), + paramtype2 = "facedir", + is_ground_content = false, + stack_max = 64, + -- Real light level: 15 (but Minetest caps at 14) + light_source = 14, + drop = { + max_items = 1, + items = { + { items = {'mcl_ocean:prismarine_crystals 3'}, rarity = 2 }, + { items = {'mcl_ocean:prismarine_crystals 2'}} + } + }, + tiles = {{name="mcl_ocean_sea_lantern.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.25}}}, + groups = {handy=1, building_block=1, material_glass=1}, + sounds = mcl_sounds.node_sound_glass_defaults(), + _mcl_blast_resistance = 1.5, + _mcl_hardness = 0.3, +}) --- Kelp -dofile(minetest.get_modpath(minetest.get_current_modname()).."/kelp.lua") +minetest.register_node("mcl_ocean:prismarine", { + description = S("Prismarine"), + _doc_items_longdesc = S("Prismarine is used as a building block. It slowly changes its color."), + stack_max = 64, + is_ground_content = false, + -- Texture should have 22 frames for smooth transitions. + tiles = {{name="mcl_ocean_prismarine_anim.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=45.0}}}, + groups = {pickaxey=1, building_block=1, material_stone=1}, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 30, + _mcl_hardness = 1.5, +}) + +minetest.register_node("mcl_ocean:prismarine_brick", { + description = S("Prismarine Bricks"), + _doc_items_longdesc = doc.sub.items.temp.build, + stack_max = 64, + is_ground_content = false, + tiles = {"mcl_ocean_prismarine_bricks.png"}, + groups = {pickaxey=1, building_block=1, material_stone=1}, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 30, + _mcl_hardness = 1.5, +}) + +minetest.register_node("mcl_ocean:prismarine_dark", { + description = S("Dark Prismarine"), + _doc_items_longdesc = doc.sub.items.temp.build, + stack_max = 64, + is_ground_content = false, + tiles = {"mcl_ocean_prismarine_dark.png"}, + groups = {pickaxey=1, building_block=1, material_stone=1}, + sounds = mcl_sounds.node_sound_stone_defaults(), + _mcl_blast_resistance = 30, + _mcl_hardness = 1.5, +}) + +-- Craftitems + +minetest.register_craftitem("mcl_ocean:prismarine_crystals", { + description = S("Prismarine Crystals"), + _doc_items_longdesc = doc.sub.items.temp.craftitem, + inventory_image = "mcl_ocean_prismarine_crystals.png", + stack_max = 64, + groups = { craftitem = 1 }, +}) + +minetest.register_craftitem("mcl_ocean:prismarine_shard", { + description = S("Prismarine Shard"), + _doc_items_longdesc = doc.sub.items.temp.craftitem, + inventory_image = "mcl_ocean_prismarine_shard.png", + stack_max = 64, + groups = { craftitem = 1 }, +}) + +-- Crafting + +minetest.register_craft({ + output = 'mcl_ocean:sea_lantern', + recipe = { + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_crystals'}, + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_shard'}, + } +}) + +minetest.register_craft({ + output = 'mcl_ocean:prismarine', + recipe = { + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + } +}) + +minetest.register_craft({ + output = 'mcl_ocean:prismarine_brick', + recipe = { + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + } +}) + +minetest.register_craft({ + output = 'mcl_ocean:prismarine_dark', + recipe = { + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_shard', 'mcl_dye:black', 'mcl_ocean:prismarine_shard'}, + {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, + } +}) --- Sea Pickle -dofile(minetest.get_modpath(minetest.get_current_modname()).."/sea_pickle.lua") diff --git a/mods/ITEMS/mcl_ocean/kelp.lua b/mods/ITEMS/mcl_ocean/kelp.lua deleted file mode 100644 index a79ec06a..00000000 --- a/mods/ITEMS/mcl_ocean/kelp.lua +++ /dev/null @@ -1,295 +0,0 @@ -local S = minetest.get_translator("mcl_ocean") -local mod_doc = minetest.get_modpath("doc") ~= nil - --- List of supported surfaces for seagrass and kelp -local surfaces = { - { "dirt", "mcl_core:dirt" }, - { "sand", "mcl_core:sand", 1 }, - { "redsand", "mcl_core:redsand", 1 }, - { "gravel", "mcl_core:gravel", 1 }, -} - -local function get_kelp_top(pos, node) - local size = math.ceil(node.param2 / 16) - local pos_water = table.copy(pos) - pos_water.y = pos_water.y + size - return pos_water, minetest.get_node(pos_water) -end - -local function get_submerged(node_water) - local def_water = minetest.registered_nodes[node_water.name] - -- Submerged in water? - if minetest.get_item_group(node_water.name, "water") then - if def_water.liquidtype == "source" then - return "source" - elseif def_water.liquidtype == "flowing" then - return "flowing" - end - end - return false -end - -local function grow_param2_step(param2, snap_into_grid) - local old_param2 = param2 - param2 = param2 + 16 - if param2 > 240 then - param2 = 240 - end - if snap_into_grid and (param2 % 16 ~= 0) then - param2 = param2 - (param2 % 16) - end - return param2, param2 ~= old_param2 -end - -local function kelp_on_place(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - local node_under = minetest.get_node(pos_under) - local node_above = minetest.get_node(pos_above) - local def_under = minetest.registered_nodes[node_under.name] - local def_above = minetest.registered_nodes[node_above.name] - - if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then - return def_under.on_rightclick(pos_under, node_under, - placer, itemstack, pointed_thing) or itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.log("action", player_name - .. " tried to place " .. itemstack:get_name() - .. " at protected position " - .. minetest.pos_to_string(pos_under)) - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - local grow_kelp = false - -- Select a kelp node when placed on surface node - if node_under.name == "mcl_core:dirt" then - node_under.name = "mcl_ocean:kelp_dirt" - elseif node_under.name == "mcl_core:sand" then - node_under.name = "mcl_ocean:kelp_sand" - elseif node_under.name == "mcl_core:redsand" then - node_under.name = "mcl_ocean:kelp_redsand" - elseif node_under.name == "mcl_core:gravel" then - node_under.name = "mcl_ocean:kelp_gravel" - elseif minetest.get_item_group(node_under.name, "kelp") == 1 then - -- Place kelp on kelp = grow kelp by 1 node length - node_under.param2, grow_kelp = grow_param2_step(node_under.param2) - if not grow_kelp then - return itemstack - end - else - return itemstack - end - local submerged = false - if grow_kelp then - -- Kelp placed on kelp ... - -- Kelp can be placed on top of another kelp to make it grow - if pos_under.y >= pos_above.y or pos_under.x ~= pos_above.x or pos_under.z ~= pos_above.z then - -- Placed on side or below node, abort - return itemstack - end - -- New kelp top must also be submerged in water source - local _, top_node = get_kelp_top(pos_under, node_under) - submerged = get_submerged(top_node) - if submerged ~= "source" then - -- Not submerged in water source, abort - return itemstack - end - else - -- New kelp placed ... - if pos_under.y >= pos_above.y then - -- Placed on side or below node, abort - return itemstack - end - -- Kelp can be placed inside a water source on top of a surface node - local g_above_water = minetest.get_item_group(node_above.name, "water") - if not (g_above_water ~= 0 and def_above.liquidtype == "source") then - return itemstack - -- TODO: Also allow placement into downwards flowing liquid - end - node_under.param2 = minetest.registered_items[node_under.name].place_param2 or 16 - end - -- Place or grow kelp - local def_node = minetest.registered_items[node_under.name] - if def_node.sounds then - minetest.sound_play(def_node.sounds.place, { gain = 0.5, pos = pos_under }, true) - end - minetest.set_node(pos_under, node_under) - if not (minetest.settings:get_bool("creative_mode")) then - itemstack:take_item() - end - - return itemstack -end - -minetest.register_craftitem("mcl_ocean:kelp", { - description = S("Kelp"), - _tt_help = S("Grows in water on dirt, sand, gravel"), - _doc_items_create_entry = false, - inventory_image = "mcl_ocean_kelp_item.png", - wield_image = "mcl_ocean_kelp_item.png", - on_place = kelp_on_place, - groups = { deco_block = 1 }, -}) - --- Kelp nodes: kelp on a surface node - -for s=1, #surfaces do - local def = minetest.registered_nodes[surfaces[s][2]] - local alt - if surfaces[s][3] == 1 then - alt = surfaces[s][2] - end - local sounds = table.copy(def.sounds) - local leaf_sounds = mcl_sounds.node_sound_leaves_defaults() - sounds.dig = leaf_sounds.dig - sounds.dug = leaf_sounds.dug - sounds.place = leaf_sounds.place - local tt_help, doc_longdesc, doc_img, desc - if surfaces[s][1] == "dirt" then - doc_longdesc = S("Kelp grows inside water on top of dirt, sand or gravel.") - desc = S("Kelp") - doc_create = true - doc_img = "mcl_ocean_kelp_item.png" - else - doc_create = false - end - minetest.register_node("mcl_ocean:kelp_"..surfaces[s][1], { - _doc_items_entry_name = desc, - _doc_items_longdesc = doc_longdesc, - _doc_items_create_entry = doc_create, - _doc_items_image = doc_img, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "leveled", - place_param2 = 16, - tiles = def.tiles, - special_tiles = { - { - image = "mcl_ocean_kelp_plant.png", - animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length=2.0}, - tileable_vertical = true, - } - }, - inventory_image = "("..def.tiles[1]..")^mcl_ocean_kelp_item.png", - wield_image = "mcl_ocean_kelp_item.png", - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.5, 0.5 }, - }, - }, - groups = { dig_immediate = 3, deco_block = 1, plant = 1, kelp = 1, falling_node = surfaces[s][3] }, - sounds = sounds, - node_dig_prediction = surfaces[s][2], - after_dig_node = function(pos) - minetest.set_node(pos, {name=surfaces[s][2]}) - end, - drop = "mcl_ocean:kelp", - _mcl_falling_node_alternative = alt, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - - if mod_doc and surfaces[s][1] ~= "dirt" then - doc.add_entry_alias("nodes", "mcl_ocean:kelp_dirt", "nodes", "mcl_ocean:kelp_"..surfaces[s][1]) - end -end - -if mod_doc then - doc.add_entry_alias("nodes", "mcl_ocean:kelp_dirt", "craftitems", "mcl_ocean:kelp") -end - --- Dried kelp stuff - --- TODO: This is supposed to be eaten very fast -minetest.register_craftitem("mcl_ocean:dried_kelp", { - description = S("Dried Kelp"), - _doc_items_longdesc = S("Dried kelp is a food item."), - inventory_image = "mcl_ocean_dried_kelp.png", - wield_image = "mcl_ocean_dried_kelp.png", - groups = { food = 2, eatable = 1 }, - on_place = minetest.item_eat(1), - on_secondary_use = minetest.item_eat(1), - groups = { food = 2, eatable = 1 }, - _mcl_saturation = 0.6, -}) - -local mod_screwdriver = minetest.get_modpath("screwdriver") ~= nil -local on_rotate -if mod_screwdriver then - on_rotate = screwdriver.rotate_3way -end - - -minetest.register_node("mcl_ocean:dried_kelp_block", { - description = S("Dried Kelp Block"), - _doc_items_longdesc = S("A decorative block that serves as a great furnace fuel."), - tiles = { "mcl_ocean_dried_kelp_top.png", "mcl_ocean_dried_kelp_bottom.png", "mcl_ocean_dried_kelp_side.png" }, - groups = { handy = 1, building_block = 1, flammable = 2, fire_encouragement = 30, fire_flammability = 60 }, - sounds = mcl_sounds.node_sound_leaves_defaults(), - paramtype2 = "facedir", - on_place = mcl_util.rotate_axis, - on_rotate = on_rotate, - _mcl_hardness = 0.5, - _mcl_blast_resistance = 12.5, -}) - -minetest.register_craft({ - type = "cooking", - recipe = "mcl_ocean:kelp", - output = "mcl_ocean:dried_kelp", - cooktime = 10, -}) -minetest.register_craft({ - recipe = { - { "mcl_ocean:dried_kelp","mcl_ocean:dried_kelp","mcl_ocean:dried_kelp" }, - { "mcl_ocean:dried_kelp","mcl_ocean:dried_kelp","mcl_ocean:dried_kelp" }, - { "mcl_ocean:dried_kelp","mcl_ocean:dried_kelp","mcl_ocean:dried_kelp" }, - }, - output = "mcl_ocean:dried_kelp_block", -}) -minetest.register_craft({ - type = "fuel", - recipe = "mcl_ocean:dried_kelp_block", - burntime = 200, -}) - --- Grow kelp -minetest.register_abm({ - label = "Kelp growth", - nodenames = { "group:kelp" }, - interval = 45, - chance = 12, - catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) - local grown - -- Grow kelp by 1 node length if it would grow inside water - node.param2, grown = grow_param2_step(node.param2, true) - local top, top_node = get_kelp_top(pos, node) - local submerged = get_submerged(top_node) - if grown then - if submerged == "source" then - -- Liquid source: Grow normally - minetest.set_node(pos, node) - elseif submerged == "flowing" then - -- Flowing liquid: Grow 1 step, but also turn the top node into a liquid source - minetest.set_node(pos, node) - local def_liq = minetest.registered_nodes[top_node.name] - local alt_liq = def_liq and def_liq.liquid_alternative_source - if alt_liq then - minetest.set_node(top, {name=alt_liq}) - end - end - end - end, -}) diff --git a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.de.tr b/mods/ITEMS/mcl_ocean/locale/mcl_ocean.de.tr index 79384cd7..02cdd777 100644 --- a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.de.tr +++ b/mods/ITEMS/mcl_ocean/locale/mcl_ocean.de.tr @@ -7,50 +7,3 @@ Prismarine Bricks=Prismarinziegel Dark Prismarine=Dunkelprismarin Prismarine Crystals=Prismarinkristalle Prismarine Shard=Prismarinsplitter -Dried Kelp=Getrockneter Seetang -Dried Kelp Block=Getrockneter Seetangblock -Brain Coral Block=Hirnkorallenblock -Brain Coral Fan=Hirnkorallenfächer -Brain Coral=Hirnkoralle -Bubble Coral Block=Blasenkorallenblock -Bubble Coral Fan=Blasenkorallenfächer -Bubble Coral=Blasenkoralle -Fire Coral Block=Feuerkorallenblock -Fire Coral Fan=Feuerkorallenfächer -Fire Coral=Feuerkoralle -Horn Coral Block=Hornkorallenblock -Horn Coral Fan=Hornkorallenfächer -Horn Coral=Hornkoralle -Tube Coral Block=Trompetenkorallenblock -Tube Coral Fan=Trompetenkorallenfächer -Tube Coral=Trompetenkoralle -Dead Brain Coral Block=Toter Hirnkorallenblock -Dead Brain Coral Fan=Toter Hirnkorallenfächer -Dead Brain Coral=Tote Hirnkoralle -Dead Bubble Coral Block=Toter Blasenkorallenblock -Dead Bubble Coral Fan=Toter Blasenkorallenfächer -Dead Bubble Coral=Tote Blasenkoralle -Dead Fire Coral Block=Toter Feuerkorallenblock -Dead Fire Coral Fan=Toter Feuerkorallenfächer -Dead Fire Coral=Tote Feuerkoralle -Dead Horn Coral Block=Toter Hornkorallenblock -Dead Horn Coral Fan=Toter Hornkorallenfächer -Dead Horn Coral=Tote Hornkoralle -Dead Tube Coral Block=Toter Trompetenkorallenblock -Dead Tube Coral Fan=Toter Trompetenkorallenfächer -Dead Tube Coral=Tote Trompetenkoralle -Seagrass=Seegras -Kelp=Seetang -Kelp grows inside water on top of dirt, sand or gravel.=Seetang wächst im Wasser auf Erde, Sand oder Kies. -Coral blocks live in the oceans and need a water source next to them to survive. Without water, they die off.=Korallenblöcke leben im Ozean und benötigen eine Wasserquelle neben ihnen, um zu überleben. Ohne Wasser sterben sie ab. -Corals grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Korallen wachsen auf Korallenblöcken und müssen sich in einer Wasserquelle befinden, um zu überleben. Ohne Wasser sterben sie gemeinsam mit dem Korallenblock ab. -Corals fans grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Korallenfächer wachsen auf Korallenblöcken und müssen sich in einer Wasserquelle befinden, um zu überleben. Ohne Wasser sterben sie gemeinsam mit dem Korallenblock ab. -Seagrass grows inside water on top of dirt, sand or gravel.=Seegras wächst im Wasser auf Erde, Sand oder Kies. -A decorative block that serves as a great furnace fuel.=Ein dekorativer Block, der sich gut als Ofenbrennstoff eignet. -Dried kelp is a food item.=Getrockneter Seetang ist ein Lebensmittel. -Grows on coral block of same species=Wächst auf Korallenblock der gleichen Art -Needs water to live=Benötigt Wasser zum Leben -Grows in water on dirt, sand, gravel=Wächst im Wasser auf Erde, Sand, Kies -Glows in the water=Leuchtet im Wasser -4 possible sizes=4 mögliche Größen -Grows on dead brain coral block=Wächst auf totem Hirnkorallenblock diff --git a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.es.tr b/mods/ITEMS/mcl_ocean/locale/mcl_ocean.es.tr deleted file mode 100644 index 1e27376c..00000000 --- a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.es.tr +++ /dev/null @@ -1,50 +0,0 @@ -# textdomain: mcl_ocean -Sea Lantern=Linterna de mar -Sea lanterns are decorative light sources which look great underwater but can be placed anywhere.=Las linternas marinas son fuentes de luz decorativas que se ven muy bien bajo el agua pero se pueden colocar en cualquier lugar. -Prismarine=Prismarina -Prismarine is used as a building block. It slowly changes its color.=La prismarina se usa como bloque de construcción. Poco a poco cambia su color. -Prismarine Bricks=Ladrillos de prismarina -Dark Prismarine=Prismarina oscura -Prismarine Crystals=Cristales de prismatina -Prismarine Shard=Fragmento de prismatina -Dried Kelp=Algas secas -Dried Kelp Block=Bloque de algas secas -Brain Coral Block=Bloque de coral de cerebro -Brain Coral Fan=Coral de cerebro desparramado -Brain Coral=Coral de cerebro -Bubble Coral Block=Bloque de coral de burbuja -Bubble Coral Fan=Coral de burbuja desparramado -Bubble Coral=Coral de burbuja -Fire Coral Block=Bloque de coral de fuego -Fire Coral Fan=Coral de fuego desparramado -Fire Coral=Coral de fuego -Horn Coral Block=Bloque de coral de cuerno -Horn Coral Fan=Coral de cuerno desparramado -Horn Coral=Coral de cuerno -Tube Coral Block=Bloque de coral de tubo -Tube Coral Fan=Coral de tubo desparramado -Tube Coral=Coral de tubo -Dead Brain Coral Block=Bloque de coral muerto -Dead Brain Coral Fan=Coral desparramado -Dead Brain Coral=Coral de cerebro muerto -Dead Bubble Coral Block=Bloque de coral de burbuja muerto -Dead Bubble Coral Fan=Coral de burbuja desparramado -Dead Bubble Coral=Coral de burbuja muerto -Dead Fire Coral Block=Bloque de coral de fuego muerto -Dead Fire Coral Fan=Coral de fuego desparramado -Dead Fire Coral=Coral de fuego muerto -Dead Horn Coral Block=Bloque de coral de cuerno muerto -Dead Horn Coral Fan=Coral de cuerno desparramado -Dead Horn Coral=Coral de cuerno muerto -Dead Tube Coral Block=Bloque de coral de tubo muerto -Dead Tube Coral Fan=Coral de tubo desparramado -Dead Tube Coral=Coral de tubo muerto -Seagrass=Hierba marina -Kelp=Alga -Kelp grows inside water on top of dirt, sand or gravel.=Las algas crecen dentro del agua sobre tierra, arena o grava. -Coral blocks live in the oceans and need a water source next to them to survive. Without water, they die off.=Los bloques de coral viven en los océanos y necesitan una fuente de agua junto a ellos para sobrevivir. Sin agua, mueren. -Corals grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Los corales crecen sobre bloques de coral y necesitan estar dentro de una fuente de agua para sobrevivir. Sin agua, morirá, al igual que el bloque de coral que se encuentra debajo. -Corals fans grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Los fanáticos de los corales crecen encima de los bloques de coral y necesitan estar dentro de una fuente de agua para sobrevivir. Sin agua, morirá, al igual que el bloque de coral que se encuentra debajo. -Seagrass grows inside water on top of dirt, sand or gravel.=La hierba marina crece dentro del agua sobre tierra, arena o grava. -A decorative block that serves as a great furnace fuel.=Un bloque decorativo que sirve como un gran combustible de horno. -Dried kelp is a food item.=Las algas secas son un alimento. diff --git a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.fr.tr b/mods/ITEMS/mcl_ocean/locale/mcl_ocean.fr.tr deleted file mode 100644 index a1b3f0b7..00000000 --- a/mods/ITEMS/mcl_ocean/locale/mcl_ocean.fr.tr +++ /dev/null @@ -1,59 +0,0 @@ -# textdomain: mcl_ocean -Sea Lantern=Lanterne aquatique -Sea lanterns are decorative light sources which look great underwater but can be placed anywhere.=Les lanternes marines sont des sources lumineuses décoratives qui ont fière allure sous l'eau mais peuvent être placées n'importe où. -Prismarine=Prismarine -Prismarine is used as a building block. It slowly changes its color.=La prismarine est utilisée comme bloc de construction. Il change lentement de couleur. -Prismarine Bricks=Prismarine Taillée -Dark Prismarine=Prismarine Sombre -Prismarine Crystals=Cristaux de Prismarine -Prismarine Shard=Éclat de Prismarine -Dried Kelp=Algue Séchée -Dried Kelp Block=Bloc d'Algue Séchée -Brain Coral Block=Bloc de Corail -Brain Coral Fan=Gorgone de Corail -Brain Coral=Corail -Bubble Coral Block=Bloc de Corail Bulles -Bubble Coral Fan=Gorgone de Corail Bulles -Bubble Coral=Corail Bulles -Fire Coral Block=Bloc Corail de Feu -Fire Coral Fan=Gorgone Corail de Feu -Fire Coral=Corail de Feu -Horn Coral Block=Bloc de Corail Corné -Horn Coral Fan=Gorgone de Corail Corné -Horn Coral=Corail Corné -Tube Coral Block=Bloc de Corail Tubulaire -Tube Coral Fan=Gorgone de Corail Tubulaire -Tube Coral=Corail Tubulaire -Dead Brain Coral Block=Bloc de Corail Mort -Dead Brain Coral Fan=Gorgone de Corail Mort -Dead Brain Coral=Corail Mort -Dead Bubble Coral Block=Bloc de Corail Bulles Mort -Dead Bubble Coral Fan=Gorgone de Corail Bulles Mort -Dead Bubble Coral=Corail Bulles Mort -Dead Fire Coral Block=Bloc de Corail de Feu Mort -Dead Fire Coral Fan=Gorgone de Corail de Feu Mort -Dead Fire Coral=Corail de Feu Mort -Dead Horn Coral Block=Bloc de Corail Corné Mort -Dead Horn Coral Fan=Gorgone de Corail Corné Mort -Dead Horn Coral=Corail Corné Mort -Dead Tube Coral Block=Bloc de Corail Tubulaire Mort -Dead Tube Coral Fan=Gorgone de Corail Tubulaire Mort -Dead Tube Coral=Corail Tubulaire Mort -Seagrass=Herbe aquatique -Kelp=Algue -Kelp grows inside water on top of dirt, sand or gravel.=Les Algues pousse à l'intérieur de l'eau sur la terre, le sable ou le gravier. -Coral blocks live in the oceans and need a water source next to them to survive. Without water, they die off.=Les blocs de corail vivent dans les océans et ont besoin d'une source d'eau à côté d'eux pour survivre. Sans eau, ils meurent. -Corals grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Les coraux se développent au-dessus des blocs de corail et doivent être à l'intérieur d'une source d'eau pour survivre. Sans eau, il mourra, ainsi que le bloc de corail en dessous. -Corals fans grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.=Les gorgones de coraux se développent au-dessus des blocs de corail et doivent être à l'intérieur d'une source d'eau pour survivre. Sans eau, il mourra, ainsi que le bloc de corail en dessous. -Seagrass grows inside water on top of dirt, sand or gravel.=Les herbiers aquatique poussent à l'intérieur de l'eau sur la terre, le sable ou le gravier. -A decorative block that serves as a great furnace fuel.=Un bloc décoratif qui sert de bon combustible pour le four. -Dried kelp is a food item.=L'algue séchée est un aliment. -Grows on coral block of same species=Pousse sur un bloc de corail de la même espèce -Needs water to live=A besoin d'eau pour vivre -Grows in water on dirt, sand, gravel=Pousse dans l'eau sur la terre, le sable et le gravier -Glows in the water=Brille dans l'eau -4 possible sizes=4 tailles possibles -Grows on dead brain coral block=Pousse sur un bloc de corail mort -Sea Pickle=Cornichon de mer -Sea pickles grow on dead brain coral blocks and provide light when underwater. They come in 4 sizes that vary in brightness.=Les cornichons de mer poussent sur des blocs de corail morts et fournissent de la lumière lorsqu'ils sont sous l'eau. Ils viennent en 4 tailles qui varient en luminosité. -It can only be placed on top of dead brain coral blocks. Placing a sea pickle on another sea pickle will make it grow and brighter.=Il ne peut être placé que sur des blocs de corail morts. Placer un cornichon sur un autre cornichon le rendra plus brillant et plus brillant. \ No newline at end of file diff --git a/mods/ITEMS/mcl_ocean/locale/template.txt b/mods/ITEMS/mcl_ocean/locale/template.txt index 9fb4f8e1..943e7dae 100644 --- a/mods/ITEMS/mcl_ocean/locale/template.txt +++ b/mods/ITEMS/mcl_ocean/locale/template.txt @@ -7,54 +7,3 @@ Prismarine Bricks= Dark Prismarine= Prismarine Crystals= Prismarine Shard= -Dried Kelp= -Dried Kelp Block= -Brain Coral Block= -Brain Coral Fan= -Brain Coral= -Bubble Coral Block= -Bubble Coral Fan= -Bubble Coral= -Fire Coral Block= -Fire Coral Fan= -Fire Coral= -Horn Coral Block= -Horn Coral Fan= -Horn Coral= -Tube Coral Block= -Tube Coral Fan= -Tube Coral= -Dead Brain Coral Block= -Dead Brain Coral Fan= -Dead Brain Coral= -Dead Bubble Coral Block= -Dead Bubble Coral Fan= -Dead Bubble Coral= -Dead Fire Coral Block= -Dead Fire Coral Fan= -Dead Fire Coral= -Dead Horn Coral Block= -Dead Horn Coral Fan= -Dead Horn Coral= -Dead Tube Coral Block= -Dead Tube Coral Fan= -Dead Tube Coral= -Seagrass= -Kelp= -Kelp grows inside water on top of dirt, sand or gravel.= -Coral blocks live in the oceans and need a water source next to them to survive. Without water, they die off.= -Corals grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.= -Corals fans grow on top of coral blocks and need to be inside a water source to survive. Without water, it will die off, as well as the coral block below.= -Seagrass grows inside water on top of dirt, sand or gravel.= -A decorative block that serves as a great furnace fuel.= -Dried kelp is a food item.= -Grows on coral block of same species= -Needs water to live= -Grows in water on dirt, sand, gravel -Glows in the water= -4 possible sizes= -Grows on dead brain coral block= -Sea Pickle= -Sea pickles grow on dead brain coral blocks and provide light when underwater. They come in 4 sizes that vary in brightness.= -It can only be placed on top of dead brain coral blocks. Placing a sea pickle on another sea pickle will make it grow and brighter.= - diff --git a/mods/ITEMS/mcl_ocean/mod.conf b/mods/ITEMS/mcl_ocean/mod.conf index 664d8e1e..81edf016 100644 --- a/mods/ITEMS/mcl_ocean/mod.conf +++ b/mods/ITEMS/mcl_ocean/mod.conf @@ -1,2 +1 @@ name = mcl_ocean -description = Includes various ocean nodes diff --git a/mods/ITEMS/mcl_ocean/prismarine.lua b/mods/ITEMS/mcl_ocean/prismarine.lua deleted file mode 100644 index 5840d59c..00000000 --- a/mods/ITEMS/mcl_ocean/prismarine.lua +++ /dev/null @@ -1,117 +0,0 @@ --- Nodes - -local S = minetest.get_translator("mcl_ocean") - -minetest.register_node("mcl_ocean:sea_lantern", { - description = S("Sea Lantern"), - _doc_items_longdesc = S("Sea lanterns are decorative light sources which look great underwater but can be placed anywhere."), - paramtype2 = "facedir", - is_ground_content = false, - stack_max = 64, - light_source = minetest.LIGHT_MAX, - drop = { - max_items = 1, - items = { - { items = {'mcl_ocean:prismarine_crystals 3'}, rarity = 2 }, - { items = {'mcl_ocean:prismarine_crystals 2'}} - } - }, - tiles = {{name="mcl_ocean_sea_lantern.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=1.25}}}, - groups = {handy=1, building_block=1, material_glass=1}, - sounds = mcl_sounds.node_sound_glass_defaults(), - _mcl_blast_resistance = 0.3, - _mcl_hardness = 0.3, -}) - -minetest.register_node("mcl_ocean:prismarine", { - description = S("Prismarine"), - _doc_items_longdesc = S("Prismarine is used as a building block. It slowly changes its color."), - stack_max = 64, - is_ground_content = false, - -- Texture should have 22 frames for smooth transitions. - tiles = {{name="mcl_ocean_prismarine_anim.png", animation={type="vertical_frames", aspect_w=32, aspect_h=32, length=45.0}}}, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 1.5, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_ocean:prismarine_brick", { - description = S("Prismarine Bricks"), - _doc_items_longdesc = doc.sub.items.temp.build, - stack_max = 64, - is_ground_content = false, - tiles = {"mcl_ocean_prismarine_bricks.png"}, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 1.5, - _mcl_hardness = 1.5, -}) - -minetest.register_node("mcl_ocean:prismarine_dark", { - description = S("Dark Prismarine"), - _doc_items_longdesc = doc.sub.items.temp.build, - stack_max = 64, - is_ground_content = false, - tiles = {"mcl_ocean_prismarine_dark.png"}, - groups = {pickaxey=1, building_block=1, material_stone=1}, - sounds = mcl_sounds.node_sound_stone_defaults(), - _mcl_blast_resistance = 1.5, - _mcl_hardness = 1.5, -}) - --- Craftitems - -minetest.register_craftitem("mcl_ocean:prismarine_crystals", { - description = S("Prismarine Crystals"), - _doc_items_longdesc = doc.sub.items.temp.craftitem, - inventory_image = "mcl_ocean_prismarine_crystals.png", - stack_max = 64, - groups = { craftitem = 1 }, -}) - -minetest.register_craftitem("mcl_ocean:prismarine_shard", { - description = S("Prismarine Shard"), - _doc_items_longdesc = doc.sub.items.temp.craftitem, - inventory_image = "mcl_ocean_prismarine_shard.png", - stack_max = 64, - groups = { craftitem = 1 }, -}) - --- Crafting - -minetest.register_craft({ - output = 'mcl_ocean:sea_lantern', - recipe = { - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_crystals'}, - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_crystals', 'mcl_ocean:prismarine_shard'}, - } -}) - -minetest.register_craft({ - output = 'mcl_ocean:prismarine', - recipe = { - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - } -}) - -minetest.register_craft({ - output = 'mcl_ocean:prismarine_brick', - recipe = { - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - } -}) - -minetest.register_craft({ - output = 'mcl_ocean:prismarine_dark', - recipe = { - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_shard', 'mcl_dye:black', 'mcl_ocean:prismarine_shard'}, - {'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard', 'mcl_ocean:prismarine_shard'}, - } -}) - diff --git a/mods/ITEMS/mcl_ocean/sea_pickle.lua b/mods/ITEMS/mcl_ocean/sea_pickle.lua deleted file mode 100644 index 55ea1755..00000000 --- a/mods/ITEMS/mcl_ocean/sea_pickle.lua +++ /dev/null @@ -1,205 +0,0 @@ -local S = minetest.get_translator("mcl_ocean") -local mod_doc = minetest.get_modpath("doc") ~= nil - -local function sea_pickle_on_place(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - local node_under = minetest.get_node(pos_under) - local node_above = minetest.get_node(pos_above) - local def_under = minetest.registered_nodes[node_under.name] - local def_above = minetest.registered_nodes[node_above.name] - - if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then - return def_under.on_rightclick(pos_under, node_under, - placer, itemstack, pointed_thing) or itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.log("action", player_name - .. " tried to place " .. itemstack:get_name() - .. " at protected position " - .. minetest.pos_to_string(pos_under)) - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - local submerged = false - if minetest.get_item_group(node_above.name, "water") ~= 0 then - submerged = true - end - -- Place - if node_under.name == "mcl_ocean:dead_brain_coral_block" then - -- Place on suitable coral block - if submerged then - node_under.name = "mcl_ocean:sea_pickle_1_dead_brain_coral_block" - else - node_under.name = "mcl_ocean:sea_pickle_1_off_dead_brain_coral_block" - end - minetest.set_node(pos_under, node_under) - elseif minetest.get_item_group(node_under.name, "sea_pickle") ~= 0 then - -- Grow by 1 stage - local def = minetest.registered_nodes[node_under.name] - if def and def._mcl_sea_pickle_next then - node_under.name = def._mcl_sea_pickle_next - minetest.set_node(pos_under, node_under) - else - return itemstack - end - else - return itemstack - end - if not (minetest.settings:get_bool("creative_mode")) then - itemstack:take_item() - end - return itemstack -end - --- Sea Pickle on brain coral - -local sounds_coral_plant = mcl_sounds.node_sound_leaves_defaults({footstep = mcl_sounds.node_sound_dirt_defaults().footstep}) -local ontop = "dead_brain_coral_block" -local canonical = "mcl_ocean:sea_pickle_1_"..ontop - -for s=1,4 do - local desc, doc_desc, doc_use, doc_create, tt_help, nici, img, img_off, on_place - if s == 1 then - desc = S("Sea Pickle") - doc_desc = S("Sea pickles grow on dead brain coral blocks and provide light when underwater. They come in 4 sizes that vary in brightness.") - doc_use = S("It can only be placed on top of dead brain coral blocks. Placing a sea pickle on another sea pickle will make it grow and brighter.") - tt_help = S("Glows in the water").."\n"..S("4 possible sizes").."\n"..S("Grows on dead brain coral block") - img = "mcl_ocean_sea_pickle_item.png" - on_place = sea_pickle_on_place - else - doc_create = false - nici = 1 - img = "mcl_ocean_"..ontop..".png^(mcl_ocean_sea_pickle_"..s.."_anim.png^[verticalframe:2:1)" - end - img_off = "mcl_ocean_"..ontop..".png^mcl_ocean_sea_pickle_"..s.."_off.png" - local next_on, next_off - if s < 4 then - next_on = "mcl_ocean:sea_pickle_"..tostring(s+1).."_"..ontop - next_off = "mcl_ocean:sea_pickle_"..tostring(s+1).."_off_"..ontop - end - - minetest.register_node("mcl_ocean:sea_pickle_"..s.."_"..ontop, { - description = desc, - _tt_help = tt_help, - _doc_items_create_entry = doc_create, - _doc_items_longdesc = doc_desc, - _doc_items_usagehelp = doc_use, - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - tiles = { "mcl_ocean_"..ontop..".png" }, - special_tiles = { - { - image = "mcl_ocean_sea_pickle_"..s.."_anim.png", - animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length=1.7}, - } - }, - inventory_image = img, - wield_image = img, - groups = { dig_immediate = 3, deco_block = 1, sea_pickle=1, not_in_creative_inventory=nici }, - -- Light level: 6 at size 1, +3 for each additional stage - light_source = math.min(6 + (s-1)*3, minetest.LIGHT_MAX), - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.15, 0.5, -0.15, 0.15, 0.5+2/16+(2/16)*s, 0.15 }, - } - }, - sounds = sounds_coral_plant, - drop = canonical .. " "..s, - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:"..ontop, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "sea_pickle") == 0 then - minetest.set_node(pos, {name="mcl_ocean:"..ontop}) - end - end, - on_place = on_place, - _mcl_sea_pickle_off = "mcl_ocean:sea_pickle_"..s.."_off_"..ontop, - _mcl_sea_pickle_next = next_on, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - - minetest.register_node("mcl_ocean:sea_pickle_"..s.."_off_"..ontop, { - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - tiles = { "mcl_ocean_"..ontop..".png" }, - special_tiles = { "mcl_ocean_sea_pickle_"..s.."_off.png", }, - groups = { dig_immediate = 3, deco_block = 1, sea_pickle=2, not_in_creative_inventory=1 }, - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.15, 0.5, -0.15, 0.15, 0.5+2/16+(2/16)*s, 0.15 }, - } - }, - inventory_image = img_off, - wield_image = img_off, - sounds = sounds_coral_plant, - drop = canonical .. " "..s, - node_placement_prediction = "", - node_dig_prediction = "mcl_ocean:"..ontop, - after_dig_node = function(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "sea_pickle") == 0 then - minetest.set_node(pos, {name="mcl_ocean:"..ontop}) - end - end, - _mcl_sea_pickle_on = "mcl_ocean:sea_pickle_"..s.."_"..ontop, - _mcl_sea_pickle_next = next_off, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - - if mod_doc then - if s == 1 then - doc.add_entry_alias("nodes", "mcl_ocean:sea_pickle_1_dead_brain_coral_block", "nodes", "mcl_ocean:sea_pickle_1_off_"..ontop) - else - doc.add_entry_alias("nodes", "mcl_ocean:sea_pickle_1_dead_brain_coral_block", "nodes", "mcl_ocean:sea_pickle_"..s.."_off_"..ontop) - doc.add_entry_alias("nodes", "mcl_ocean:sea_pickle_1_dead_brain_coral_block", "nodes", "mcl_ocean:sea_pickle_"..s.."_"..ontop) - end - end -end - -minetest.register_abm({ - label = "Sea pickle update", - nodenames = { "group:sea_pickle" }, - interval = 17, - chance = 5, - catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) - -- Check if it's lit - local state = minetest.get_item_group(node.name, "sea_pickle") - -- Check for water - local checknode = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}) - local def = minetest.registered_nodes[node.name] - if minetest.get_item_group(checknode.name, "water") ~= 0 then - -- Sea pickle is unlit - if state == 2 then - node.name = def._mcl_sea_pickle_on - minetest.set_node(pos, node) - return - end - else - -- Sea pickle is lit - if state == 1 then - node.name = def._mcl_sea_pickle_off - minetest.set_node(pos, node) - return - end - end - end, -}) diff --git a/mods/ITEMS/mcl_ocean/seagrass.lua b/mods/ITEMS/mcl_ocean/seagrass.lua deleted file mode 100644 index a5765cf9..00000000 --- a/mods/ITEMS/mcl_ocean/seagrass.lua +++ /dev/null @@ -1,156 +0,0 @@ -local S = minetest.get_translator("mcl_ocean") -local mod_doc = minetest.get_modpath("doc") ~= nil - --- List of supported surfaces for seagrass -local surfaces = { - { "dirt", "mcl_core:dirt" }, - { "sand", "mcl_core:sand", 1 }, - { "redsand", "mcl_core:redsand", 1 }, - { "gravel", "mcl_core:gravel", 1 }, -} - -local function seagrass_on_place(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - local node_under = minetest.get_node(pos_under) - local node_above = minetest.get_node(pos_above) - local def_under = minetest.registered_nodes[node_under.name] - local def_above = minetest.registered_nodes[node_above.name] - - if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then - return def_under.on_rightclick(pos_under, node_under, - placer, itemstack, pointed_thing) or itemstack - end - - if pos_under.y >= pos_above.y then - return itemstack - end - - -- Placement rules: - -- Seagrass can only be placed on top of dirt inside water - local g_above_water = minetest.get_item_group(node_above.name, "water") - if not (g_above_water ~= 0 and def_above.liquidtype == "source") then - return itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.log("action", player_name - .. " tried to place " .. itemstack:get_name() - .. " at protected position " - .. minetest.pos_to_string(pos_under)) - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - -- Select a seagrass node - if node_under.name == "mcl_core:dirt" then - node_under.name = "mcl_ocean:seagrass_dirt" - elseif node_under.name == "mcl_core:sand" then - node_under.name = "mcl_ocean:seagrass_sand" - elseif node_under.name == "mcl_core:redsand" then - node_under.name = "mcl_ocean:seagrass_redsand" - elseif node_under.name == "mcl_core:gravel" then - node_under.name = "mcl_ocean:seagrass_gravel" - else - return itemstack - end - node_under.param2 = minetest.registered_items[node_under.name].place_param2 or 3 - if node_under.param2 < 8 and math.random(1,2) == 1 then - -- Random horizontal displacement - node_under.param2 = node_under.param2 + 8 - end - local def_node = minetest.registered_items[node_under.name] - if def_node.sounds then - minetest.sound_play(def_node.sounds.place, { gain = 0.5, pos = pos_under }, true) - end - minetest.set_node(pos_under, node_under) - if not (minetest.settings:get_bool("creative_mode")) then - itemstack:take_item() - end - - return itemstack -end - -minetest.register_craftitem("mcl_ocean:seagrass", { - description = S("Seagrass"), - _tt_help = S("Grows in water on dirt, sand, gravel"), - _doc_items_create_entry = false, - inventory_image = "mcl_ocean_seagrass.png^[verticalframe:12:0", - wield_image = "mcl_ocean_seagrass.png^[verticalframe:12:0", - on_place = seagrass_on_place, - groups = { deco_block = 1 }, -}) - --- Seagrass nodes: seagrass on a surface node - -for s=1, #surfaces do - local def = minetest.registered_nodes[surfaces[s][2]] - local alt - if surfaces[s][3] == 1 then - alt = surfaces[s][2] - end - local sounds = table.copy(def.sounds) - local leaf_sounds = mcl_sounds.node_sound_leaves_defaults() - sounds.dig = leaf_sounds.dig - sounds.dug = leaf_sounds.dug - sounds.place = leaf_sounds.place - local doc_longdesc, doc_img, desc - if surfaces[s][1] == "dirt" then - doc_longdesc = S("Seagrass grows inside water on top of dirt, sand or gravel.") - desc = S("Seagrass") - doc_create = true - doc_img = "mcl_ocean_seagrass.png" - else - doc_create = false - end - minetest.register_node("mcl_ocean:seagrass_"..surfaces[s][1], { - _doc_items_entry_name = desc, - _doc_items_longdesc = doc_longdesc, - _doc_items_create_entry = doc_create, - _doc_items_image = "mcl_ocean_seagrass.png^[verticalframe:12:0", - drawtype = "plantlike_rooted", - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 3, - tiles = def.tiles, - special_tiles = { - { - image = "mcl_ocean_seagrass.png", - animation = {type="vertical_frames", aspect_w=16, aspect_h=16, length=1.0}, - } - }, - inventory_image = "("..def.tiles[1]..")^(mcl_ocean_seagrass.png^[verticalframe:12:0)", - wield_image = "mcl_ocean_seagrass.png^[verticalframe:12:0", - selection_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }, - { -0.5, 0.5, -0.5, 0.5, 1.3, 0.5 }, - }, - }, - groups = { handy = 1, shearsy = 1, deco_block = 1, plant = 1, seagrass = 1, falling_node = surfaces[s][3], not_in_creative_inventory = 1 }, - sounds = sounds, - node_dig_prediction = surfaces[s][2], - after_dig_node = function(pos) - minetest.set_node(pos, {name=surfaces[s][2]}) - end, - drop = "", - _mcl_falling_node_alternative = alt, - _mcl_shears_drop = { "mcl_ocean:seagrass" }, - _mcl_hardness = 0, - _mcl_blast_resistance = 0, - }) - if mod_doc and surfaces[s][1] ~= "dirt" then - doc.add_entry_alias("nodes", "mcl_ocean:seagrass_dirt", "nodes", "mcl_ocean:seagrass_"..surfaces[s][1]) - end -end - -if mod_doc then - doc.add_entry_alias("nodes", "mcl_ocean:seagrass_dirt", "craftitems", "mcl_ocean:seagrass") -end diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral.png deleted file mode 100644 index 72903249..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_block.png deleted file mode 100644 index 02ea5c43..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_fan.png deleted file mode 100644 index e15952bb..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_brain_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral.png deleted file mode 100644 index 50d0dc29..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_block.png deleted file mode 100644 index d2ff8670..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_fan.png deleted file mode 100644 index 00704777..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_bubble_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral.png deleted file mode 100644 index ae729634..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_block.png deleted file mode 100644 index 101d4e57..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_fan.png deleted file mode 100644 index 716f0b9a..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_brain_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral.png deleted file mode 100644 index 3e259083..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_block.png deleted file mode 100644 index 1fee1648..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_fan.png deleted file mode 100644 index de1def3e..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_bubble_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral.png deleted file mode 100644 index 48cbcf17..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_block.png deleted file mode 100644 index 9aa1da51..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_fan.png deleted file mode 100644 index 0cea55d8..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_fire_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral.png deleted file mode 100644 index 59301d59..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_block.png deleted file mode 100644 index 0b2f11d4..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_fan.png deleted file mode 100644 index 0900bd77..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_horn_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral.png deleted file mode 100644 index 1ff0862b..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_block.png deleted file mode 100644 index b06cb33d..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_fan.png deleted file mode 100644 index 6340c513..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dead_tube_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp.png deleted file mode 100644 index 7358dd29..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_bottom.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_bottom.png deleted file mode 100644 index f3f85134..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_bottom.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_side.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_side.png deleted file mode 100644 index 9c3e4237..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_side.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_top.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_top.png deleted file mode 100644 index f3f85134..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_dried_kelp_top.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral.png deleted file mode 100644 index cf49fca8..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_block.png deleted file mode 100644 index fea7af8c..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_fan.png deleted file mode 100644 index b8847806..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_fire_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral.png deleted file mode 100644 index a51711a2..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_block.png deleted file mode 100644 index 1192a6e5..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_fan.png deleted file mode 100644 index a885ecf1..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_horn_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_item.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_item.png deleted file mode 100644 index d7a10f5c..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_item.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_plant.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_plant.png deleted file mode 100644 index 107fa8a6..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_kelp_plant.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_prismarine_bricks.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_prismarine_bricks.png index 26ba85c7..f708a270 100644 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_prismarine_bricks.png and b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_prismarine_bricks.png differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_anim.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_anim.png deleted file mode 100644 index 4af3abfb..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_anim.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_off.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_off.png deleted file mode 100644 index 3d840314..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_1_off.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_anim.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_anim.png deleted file mode 100644 index c8e917b5..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_anim.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_off.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_off.png deleted file mode 100644 index 738c570d..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_2_off.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_anim.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_anim.png deleted file mode 100644 index 11258988..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_anim.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_off.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_off.png deleted file mode 100644 index 958fdac3..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_3_off.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_anim.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_anim.png deleted file mode 100644 index 194eb47c..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_anim.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_off.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_off.png deleted file mode 100644 index 4f6b13a5..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_4_off.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_item.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_item.png deleted file mode 100644 index 0fca2e24..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_sea_pickle_item.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_seagrass.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_seagrass.png deleted file mode 100644 index aab17751..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_seagrass.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral.png deleted file mode 100644 index 394157d5..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_block.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_block.png deleted file mode 100644 index 02857340..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_block.png and /dev/null differ diff --git a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_fan.png b/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_fan.png deleted file mode 100644 index c7b2bebe..00000000 Binary files a/mods/ITEMS/mcl_ocean/textures/mcl_ocean_tube_coral_fan.png and /dev/null differ diff --git a/mods/ITEMS/mcl_portals/README.md b/mods/ITEMS/mcl_portals/README.md index 560030e8..77c5c0ef 100644 --- a/mods/ITEMS/mcl_portals/README.md +++ b/mods/ITEMS/mcl_portals/README.md @@ -8,7 +8,7 @@ End portal: Build an upright frame of red nether brick blocks, 4 blocks wide and Created by maikerumine and Wuzzy. Code license: MIT License (see `LICENSE`). -Texture license: See README.md in main MineClone 2 directory. +Texture license: See main MineClone 2 directory. License of sound: [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/) Authors: [FreqMan](https://freesound.org/people/FreqMan/) and Wuzzy diff --git a/mods/ITEMS/mcl_portals/locale/mcl_portals.de.tr b/mods/ITEMS/mcl_portals/locale/mcl_portals.de.tr index 59340329..55150a96 100644 --- a/mods/ITEMS/mcl_portals/locale/mcl_portals.de.tr +++ b/mods/ITEMS/mcl_portals/locale/mcl_portals.de.tr @@ -14,6 +14,3 @@ Stand in the portal for a moment to activate the teleportation. Entering a Nethe Obsidian is also used as the frame of Nether portals.=Obsidian wird auch als Rahmen von Netherportalen benutzt. To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Um ein Netherportal zu öffnen, platzieren Sie einen aufrechten Rahmen aus Obsidian mit einer Breite von 4 Blöcken und einer Höhe von 5 Blöcken, nur mit Luft in der Mitte. Nachdem Sie den Rahmen gebaut haben, entfachen Sie ein Feuer im Obsidianrahmen. Netherportale funktionieren nur in der Oberwelt und im Nether. Once placed, an eye of ender can not be taken back.=Sobald platziert, kann ein Enderauge nicht mehr zurück genommen werden. -Used to construct end portals=Benutzt zur Konstruktion von Endportalen -Liquid container=Flüssigkeitsbehälter -No effect=Keine Wirkung diff --git a/mods/ITEMS/mcl_portals/locale/mcl_portals.es.tr b/mods/ITEMS/mcl_portals/locale/mcl_portals.es.tr deleted file mode 100644 index 9636f69c..00000000 --- a/mods/ITEMS/mcl_portals/locale/mcl_portals.es.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_portals -End Portal=Portal del End -An End portal teleports creatures and objects to the mysterious End dimension (and back!).=Un portal final teletransporta criaturas y objetos a la misteriosa dimensión final (¡y viceversa!). -Hop into the portal to teleport. Entering an End portal in the Overworld teleports you to a fixed position in the End dimension and creates a 5×5 obsidian platform at your destination. End portals in the End will lead back to your spawn point in the Overworld.=Salta al portal para teletransportarte. Entrar en un portal final en el Overworld te teletransporta a una posición fija en la dimensión final y crea una plataforma de obsidiana 5 × 5 en tu destino. Los portales finales en el final lo llevarán de regreso a su punto de generación en el mundo terrenal -End Portal Frame=Marco de portal del End -End portal frames are used in the construction of End portals. Each block has a socket for an eye of ender.=Los marcos del portal final se utilizan en la construcción de portales finales. Cada bloque tiene un zócalo para un ojo de ender. -NOTE: The End dimension is currently incomplete and might change in future versions.=NOTA: El portal del end está actualmente incompleto y puede cambiar en futuras versiones. -To create an End portal, you need 12 end portal frames and 12 eyes of ender. The end portal frames have to be arranged around a horizontal 3×3 area with each block facing inward. Any other arrangement will fail.=Para crear un portal final, necesita 12 marcos de portal final y 12 ojos de ender. Los marcos del portal final deben estar dispuestos alrededor de un área horizontal de 3 × 3 con cada bloque mirando hacia adentro. Cualquier otro arreglo fallará. -Place an eye of ender into each block. The end portal appears in the middle after placing the final eye.=Coloque un ojo de ender en cada bloque. El portal final aparece en el medio después de colocar el ojo final. -End Portal Frame with Eye of Ender=Marco de portal del End con ojo de ender -Nether Portal=Portal del Nether -A Nether portal teleports creatures and objects to the hot and dangerous Nether dimension (and back!). Enter at your own risk!=Un portal Nether teletransporta criaturas y objetos a la dimensión Nether ardiente y peligrosa (¡y viceversa!). ¡Entra bajo tu propio riesgo! -Stand in the portal for a moment to activate the teleportation. Entering a Nether portal for the first time will also create a new portal in the other dimension. If a Nether portal has been built in the Nether, it will lead to the Overworld. A Nether portal is destroyed if the any of the obsidian which surrounds it is destroyed, or if it was caught in an explosion.=SPárate en el portal por un momento para activar la teletransportación. Entrar en un portal Nether por primera vez también creará un nuevo portal en la otra dimensión. Si se ha construido un portal Nether en Nether, conducirá al Overworld. Un portal abisal se destruye si se destruye cualquiera de las obsidianas que lo rodean, o si quedó atrapado en una explosión. -Obsidian is also used as the frame of Nether portals.=La obsidiana también se usa como marco de portal del End. -To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Para abrir un portal Nether, coloque un marco vertical de obsidiana con un ancho de 4 bloques y una altura de 5 bloques, dejando solo aire en el centro. Después de colocar este marco, enciende un fuego en el marco de obsidiana. Los portales de Nether solo funcionan en Overworld y Nether. -Once placed, an eye of ender can not be taken back.=Una vez colocado, un ojo de ender no puede ser retirado. diff --git a/mods/ITEMS/mcl_portals/locale/mcl_portals.fr.tr b/mods/ITEMS/mcl_portals/locale/mcl_portals.fr.tr deleted file mode 100644 index 76a2a6f8..00000000 --- a/mods/ITEMS/mcl_portals/locale/mcl_portals.fr.tr +++ /dev/null @@ -1,15 +0,0 @@ -# textdomain: mcl_portals -End Portal=Portail de l'End -An End portal teleports creatures and objects to the mysterious End dimension (and back!).=Un portail de l'End téléporte des créatures et des objets dans la mystérieuse dimension End (et vice-versa!). -Hop into the portal to teleport. Entering an End portal in the Overworld teleports you to a fixed position in the End dimension and creates a 5×5 obsidian platform at your destination. End portals in the End will lead back to your spawn point in the Overworld.=Sautez dans le portail pour vous téléporter. Entrer dans un portail d'End dans l'Overworld vous téléporte à une position fixe dans la dimension d'End et crée une plate-forme d'obsidienne 5×5 à votre destination. Les portails de l'End à la fin vous ramèneront à votre point d'apparition dans l'Overworld. -End Portal Frame=Cadre de Portail de l'End -End portal frames are used in the construction of End portals. Each block has a socket for an eye of ender.=Les portiques d'End sont utilisés dans la construction de portails d'End. Chaque bloc a une prise pour un oeil d'ender. -NOTE: The End dimension is currently incomplete and might change in future versions.=REMARQUE: la dimension d'End est actuellement incomplète et pourrait changer dans les futures versions. -End Portal Frame with Eye of Ender=Cadre de portail de l'End avec Oeil d'Ender -Nether Portal=Portail du Nether -A Nether portal teleports creatures and objects to the hot and dangerous Nether dimension (and back!). Enter at your own risk!=A Nether portal teleports creatures and objects to the hot and dangerous Nether dimension (and back!). Enter at your own risk! -Stand in the portal for a moment to activate the teleportation. Entering a Nether portal for the first time will also create a new portal in the other dimension. If a Nether portal has been built in the Nether, it will lead to the Overworld. A Nether portal is destroyed if the any of the obsidian which surrounds it is destroyed, or if it was caught in an explosion.=Tenez-vous un instant dans le portail pour activer la téléportation. Entrer pour la première fois sur un portail Nether créera également un nouveau portail dans l'autre dimension. Si un portail du Nether a été construit dans le Nether, il mènera à l'Overworld. Un portail du Nether est détruit si l'une des obsidiennes qui l'entourent est détruit, ou s'il a été pris dans une explosion. -Obsidian is also used as the frame of Nether portals.=Obsidian is also used as the frame of Nether portals. -To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.=Pour ouvrir un portail du Nether, placez un cadre vertical d'obsidienne d'une largeur de 4 blocs et d'une hauteur de 5 blocs, ne laissant que de l'air au centre. Après avoir placé ce cadre, allumez un feu dans le cadre en obsidienne. Les portails du Nether ne fonctionnent que dans l'Overworld et le Nether. -Once placed, an eye of ender can not be taken back.=Une fois placé, un œil d'ender ne peut pas être repris. -Used to construct end portals=Utilisé pour construire des portails d'End diff --git a/mods/ITEMS/mcl_portals/locale/template.txt b/mods/ITEMS/mcl_portals/locale/template.txt index d7c5a30f..02482652 100644 --- a/mods/ITEMS/mcl_portals/locale/template.txt +++ b/mods/ITEMS/mcl_portals/locale/template.txt @@ -12,4 +12,3 @@ Stand in the portal for a moment to activate the teleportation. Entering a Nethe Obsidian is also used as the frame of Nether portals.= To open a Nether portal, place an upright frame of obsidian with a width of 4 blocks and a height of 5 blocks, leaving only air in the center. After placing this frame, light a fire in the obsidian frame. Nether portals only work in the Overworld and the Nether.= Once placed, an eye of ender can not be taken back.= -Used to construct end portals= diff --git a/mods/ITEMS/mcl_portals/portal_end.lua b/mods/ITEMS/mcl_portals/portal_end.lua index 8506dd27..4b9a0bbb 100644 --- a/mods/ITEMS/mcl_portals/portal_end.lua +++ b/mods/ITEMS/mcl_portals/portal_end.lua @@ -6,25 +6,9 @@ local SPAWN_MAX = mcl_vars.mg_end_min+98 local mg_name = minetest.get_mapgen_setting("mg_name") -local destroy_portal = function(pos) - local neighbors = { - { x=1, y=0, z=0 }, - { x=-1, y=0, z=0 }, - { x=0, y=0, z=1 }, - { x=0, y=0, z=-1 }, - } - for n=1, #neighbors do - local npos = vector.add(pos, neighbors[n]) - if minetest.get_node(npos).name == "mcl_portals:portal_end" then - minetest.remove_node(npos) - end - end -end - -- End portal minetest.register_node("mcl_portals:portal_end", { description = S("End Portal"), - _tt_help = S("Used to construct end portals"), _doc_items_longdesc = S("An End portal teleports creatures and objects to the mysterious End dimension (and back!)."), _doc_items_usagehelp = S("Hop into the portal to teleport. Entering an End portal in the Overworld teleports you to a fixed position in the End dimension and creates a 5×5 obsidian platform at your destination. End portals in the End will lead back to your spawn point in the Overworld."), tiles = { @@ -62,7 +46,6 @@ minetest.register_node("mcl_portals:portal_end", { light_source = 14, post_effect_color = {a = 192, r = 0, g = 0, b = 0}, alpha = 192, - after_destruct = destroy_portal, -- This prevents “falling through” collision_box = { type = "fixed", @@ -76,10 +59,10 @@ minetest.register_node("mcl_portals:portal_end", { {-0.5, -0.5, -0.5, 0.5, 4/16, 0.5}, }, }, - groups = {portal=1, not_in_creative_inventory = 1, disable_jump = 1}, + groups = {not_in_creative_inventory = 1, disable_jump = 1 }, _mcl_hardness = -1, - _mcl_blast_resistance = 36000000, + _mcl_blast_resistance = 18000000, }) -- Obsidian platform at the End portal destination in the End @@ -213,13 +196,11 @@ local function end_portal_area(pos, destroy) else name = "mcl_portals:portal_end" end - local posses = {} for x=pos.x, pos.x+SIZE-1 do for z=pos.z, pos.z+SIZE-1 do - table.insert(posses, {x=x,y=pos.y,z=z}) + minetest.set_node({x=x,y=pos.y,z=z}, {name=name}) end end - minetest.bulk_set_node(posses, {name=name}) end minetest.register_abm({ @@ -293,7 +274,7 @@ minetest.register_abm({ obj:set_look_horizontal(math.pi/2) end mcl_worlds.dimension_change(obj, mcl_worlds.pos_to_dimension(target)) - minetest.sound_play("mcl_portals_teleport", {pos=target, gain=0.5, max_hear_distance = 16}, true) + minetest.sound_play("mcl_portals_teleport", {pos=target, gain=0.5, max_hear_distance = 16}) end end end @@ -310,10 +291,9 @@ end minetest.register_node("mcl_portals:end_portal_frame", { description = S("End Portal Frame"), - _tt_help = S("Used to construct end portals"), _doc_items_longdesc = S("End portal frames are used in the construction of End portals. Each block has a socket for an eye of ender.") .. "\n" .. S("NOTE: The End dimension is currently incomplete and might change in future versions."), _doc_items_usagehelp = S("To create an End portal, you need 12 end portal frames and 12 eyes of ender. The end portal frames have to be arranged around a horizontal 3×3 area with each block facing inward. Any other arrangement will fail.") .. "\n" .. S("Place an eye of ender into each block. The end portal appears in the middle after placing the final eye.") .. "\n" .. S("Once placed, an eye of ender can not be taken back."), - groups = { creative_breakable = 1, deco_block = 1, end_portal_frame = 1 }, + groups = { creative_breakable = 1, deco_block = 1 }, tiles = { "mcl_portals_endframe_top.png", "mcl_portals_endframe_bottom.png", "mcl_portals_endframe_side.png" }, paramtype2 = "facedir", drawtype = "nodebox", @@ -329,15 +309,14 @@ minetest.register_node("mcl_portals:end_portal_frame", { on_rotate = rotate_frame, - _mcl_blast_resistance = 36000000, + _mcl_blast_resistance = 18000000, _mcl_hardness = -1, }) minetest.register_node("mcl_portals:end_portal_frame_eye", { description = S("End Portal Frame with Eye of Ender"), - _tt_help = S("Used to construct end portals"), _doc_items_create_entry = false, - groups = { creative_breakable = 1, deco_block = 1, comparator_signal = 15, end_portal_frame = 2 }, + groups = { creative_breakable = 1, deco_block = 1, comparator_signal = 15 }, tiles = { "mcl_portals_endframe_top.png^[lowpart:75:mcl_portals_endframe_eye.png", "mcl_portals_endframe_bottom.png", "mcl_portals_endframe_eye.png^mcl_portals_endframe_side.png" }, paramtype2 = "facedir", drawtype = "nodebox", @@ -368,7 +347,7 @@ minetest.register_node("mcl_portals:end_portal_frame_eye", { on_rotate = rotate_frame_eye, - _mcl_blast_resistance = 36000000, + _mcl_blast_resistance = 18000000, _mcl_hardness = -1, }) @@ -404,7 +383,7 @@ minetest.override_item("mcl_end:ender_eye", { end minetest.sound_play( "default_place_node_hard", - {pos = pointed_thing.under, gain = 0.5, max_hear_distance = 16}, true) + {pos = pointed_thing.under, gain = 0.5, max_hear_distance = 16}) if not minetest.settings:get_bool("creative_mode") then itemstack:take_item() -- 1 use end @@ -419,7 +398,4 @@ minetest.override_item("mcl_end:ender_eye", { return itemstack end, }) -minetest.override_item("mcl_core:bedrock", { - after_destruct = destroy_portal, -}) diff --git a/mods/ITEMS/mcl_portals/portal_nether.lua b/mods/ITEMS/mcl_portals/portal_nether.lua index f58058e6..7d39c395 100644 --- a/mods/ITEMS/mcl_portals/portal_nether.lua +++ b/mods/ITEMS/mcl_portals/portal_nether.lua @@ -8,8 +8,8 @@ local nobj_cave = nil -- Portal frame sizes local FRAME_SIZE_X_MIN = 4 local FRAME_SIZE_Y_MIN = 5 -local FRAME_SIZE_X_MAX = 4 -- TODO: 23 -local FRAME_SIZE_Y_MAX = 5 -- TODO: 23 +local FRAME_SIZE_X_MAX = 23 +local FRAME_SIZE_Y_MAX = 23 local TELEPORT_DELAY = 3 -- seconds before teleporting in Nether portal local TELEPORT_COOLOFF = 4 -- after object was teleported, for this many seconds it won't teleported again @@ -127,7 +127,7 @@ minetest.register_node("mcl_portals:portal", { {-0.5, -0.5, -0.1, 0.5, 0.5, 0.1}, }, }, - groups = {portal=1, not_in_creative_inventory = 1}, + groups = {not_in_creative_inventory = 1}, on_destruct = destroy_portal, _mcl_hardness = -1, @@ -273,21 +273,16 @@ end local function is_portal(pos) local xsize, ysize = FRAME_SIZE_X_MIN-1, FRAME_SIZE_Y_MIN-1 - for sx = FRAME_SIZE_X_MIN, FRAME_SIZE_X_MAX do - local xsize = sx - 1 - for sy = FRAME_SIZE_Y_MIN, FRAME_SIZE_Y_MAX do - local ysize = sy - 1 - for d = -xsize, xsize do - for y = -ysize, ysize do - local px = {x = pos.x + d, y = pos.y + y, z = pos.z} - local pz = {x = pos.x, y = pos.y + y, z = pos.z + d} - if check_portal(px, {x = px.x + xsize, y = px.y + ysize, z = px.z}) then - return px, {x = px.x + xsize, y = px.y + ysize, z = px.z} - end - if check_portal(pz, {x = pz.x, y = pz.y + ysize, z = pz.z + xsize}) then - return pz, {x = pz.x, y = pz.y + ysize, z = pz.z + xsize} - end - end + for d = -xsize, xsize do + for y = -ysize, ysize do + local px = {x = pos.x + d, y = pos.y + y, z = pos.z} + local pz = {x = pos.x, y = pos.y + y, z = pos.z + d} + + if check_portal(px, {x = px.x + xsize, y = px.y + ysize, z = px.z}) then + return px, {x = px.x + xsize, y = px.y + ysize, z = px.z} + end + if check_portal(pz, {x = pz.x, y = pz.y + ysize, z = pz.z + xsize}) then + return pz, {x = pz.x, y = pz.y + ysize, z = pz.z + xsize} end end end @@ -354,8 +349,7 @@ function mcl_portals.light_nether_portal(pos) target.y = find_nether_target_y(target.x, target.z) end - local dmin, ymin, ymax = 0, p1.y, p2.y - local dmax = math.max(math.abs(p1.x - p2.x), math.abs(p1.z - p2.z)) + local dmin, dmax, ymin, ymax = 0, FRAME_SIZE_X_MIN - 1, p1.y, p2.y for d = dmin, dmax do for y = ymin, ymax do if not ((d == dmin or d == dmax) and (y == ymin or y == ymax)) then @@ -447,7 +441,7 @@ minetest.register_abm({ obj:set_pos(target) if obj:is_player() then mcl_worlds.dimension_change(obj, mcl_worlds.pos_to_dimension(target)) - minetest.sound_play("mcl_portals_teleport", {pos=target, gain=0.5, max_hear_distance = 16}, true) + minetest.sound_play("mcl_portals_teleport", {pos=target, gain=0.5, max_hear_distance = 16}) end -- Enable teleportation cooloff for some seconds, to prevent back-and-forth teleportation diff --git a/mods/ITEMS/mcl_portals/textures/mcl_portals_end_portal.png b/mods/ITEMS/mcl_portals/textures/mcl_portals_end_portal.png index 1003beb3..46d548e9 100644 Binary files a/mods/ITEMS/mcl_portals/textures/mcl_portals_end_portal.png and b/mods/ITEMS/mcl_portals/textures/mcl_portals_end_portal.png differ diff --git a/mods/ITEMS/mcl_portals/textures/mcl_portals_endframe_side.png b/mods/ITEMS/mcl_portals/textures/mcl_portals_endframe_side.png index 6922795e..a2370ece 100644 Binary files a/mods/ITEMS/mcl_portals/textures/mcl_portals_endframe_side.png and b/mods/ITEMS/mcl_portals/textures/mcl_portals_endframe_side.png differ diff --git a/mods/ITEMS/mcl_potions/README.txt b/mods/ITEMS/mcl_potions/README.txt index 7ebe4ba6..0fa49a9e 100644 --- a/mods/ITEMS/mcl_potions/README.txt +++ b/mods/ITEMS/mcl_potions/README.txt @@ -1,5 +1,5 @@ License information: -* Code: MIT License -* Textures: See main MineClone 2 README.md file +* Code: WTFPL +* Textures: From Faithful 32×32 texture pack (see main MineClone 2 license notes) * Sounds: CC0 diff --git a/mods/ITEMS/mcl_potions/init.lua b/mods/ITEMS/mcl_potions/init.lua index 5123d8b7..0fc24d65 100644 --- a/mods/ITEMS/mcl_potions/init.lua +++ b/mods/ITEMS/mcl_potions/init.lua @@ -20,7 +20,6 @@ minetest.register_craft({ minetest.register_craftitem("mcl_potions:glass_bottle", { description = S("Glass Bottle"), - _tt_help = S("Liquid container"), _doc_items_longdesc = S("A glass bottle is used as a container for liquids and can be used to collect water directly."), _doc_items_usagehelp = S("To collect water, it on a cauldron with water (which removes a level of water) or any water source (which removes no water)."), inventory_image = "mcl_potions_potion_bottle_empty.png", @@ -108,7 +107,7 @@ minetest.register_craftitem("mcl_potions:glass_bottle", { itemstack:take_item() end end - minetest.sound_play("mcl_potions_bottle_fill", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true) + minetest.sound_play("mcl_potions_bottle_fill", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}) end end return itemstack @@ -160,7 +159,6 @@ end minetest.register_craftitem("mcl_potions:potion_water", { description = S("Water Bottle"), - _tt_help = S("No effect"), _doc_items_longdesc = S("Water bottles can be used to fill cauldrons. Drinking water has no effect."), _doc_items_usagehelp = S("Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron."), stack_max = 1, @@ -188,7 +186,7 @@ minetest.register_craftitem("mcl_potions:potion_water", { end -- Increase water level of cauldron by 1 minetest.set_node(pointed_thing.under, {name=cauldron}) - minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true) + minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}) if minetest.settings:get_bool("creative_mode") == true then return itemstack else @@ -205,7 +203,6 @@ minetest.register_craftitem("mcl_potions:potion_water", { minetest.register_craftitem("mcl_potions:potion_river_water", { description = S("River Water Bottle"), - _tt_help = S("No effect"), _doc_items_longdesc = S("River water bottles can be used to fill cauldrons. Drinking it has no effect."), _doc_items_usagehelp = S("Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron."), @@ -234,7 +231,7 @@ minetest.register_craftitem("mcl_potions:potion_river_water", { end -- Increase water level of cauldron by 1 minetest.set_node(pointed_thing.under, {name=cauldron}) - minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true) + minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.5, max_hear_range=16}) if minetest.settings:get_bool("creative_mode") == true then return itemstack else @@ -255,7 +252,6 @@ local how_to_drink = S("Use the “Place” key to drink it.") minetest.register_craftitem("mcl_potions:potion_awkward", { description = S("Awkward Potion"), - _tt_help = S("No effect"), _doc_items_longdesc = S("This potion has an awkward taste and is used for brewing more potions. Drinking it has no effect."), _doc_items_usagehelp = how_to_drink, stack_max = 1, @@ -268,7 +264,6 @@ minetest.register_craftitem("mcl_potions:potion_awkward", { }) minetest.register_craftitem("mcl_potions:potion_mundane", { description = S("Mundane Potion"), - _tt_help = S("No effect"), _doc_items_longdesc = S("This potion has a clean taste and is used for brewing more potions. Drinking it has no effect."), _doc_items_usagehelp = how_to_drink, stack_max = 1, @@ -281,7 +276,6 @@ minetest.register_craftitem("mcl_potions:potion_mundane", { }) minetest.register_craftitem("mcl_potions:potion_thick", { description = S("Thick Potion"), - _tt_help = S("No effect"), _doc_items_longdesc = S("This potion has a bitter taste and is used for brewing more potions. Drinking it has no effect."), _doc_items_usagehelp = how_to_drink, stack_max = 1, diff --git a/mods/ITEMS/mcl_potions/locale/mcl_potions.de.tr b/mods/ITEMS/mcl_potions/locale/mcl_potions.de.tr index c01b7f3c..87db24a0 100644 --- a/mods/ITEMS/mcl_potions/locale/mcl_potions.de.tr +++ b/mods/ITEMS/mcl_potions/locale/mcl_potions.de.tr @@ -21,5 +21,3 @@ Dragon's Breath=Drachenatem Use the “Place” key to drink it.=Benutzen Sie die „Platzieren“-Taste zum Trinken. Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron.=Benutzen Sie die „Platzieren“-Taste zum Trinken. Platzieren Sie diesen Gegenstand auf einen Kessel, um das Wasser in den Kessel zu schütten. Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron.=Benutzen Sie die „Platzieren“-Taste zum Trinken. Platzieren Sie diesen Gegenstand auf einen Kessel, um das Flusswasser in den Kessel zu schütten. -Liquid container=Flüssigkeitsbehälter -No effect=Keine Wirkung diff --git a/mods/ITEMS/mcl_potions/locale/mcl_potions.es.tr b/mods/ITEMS/mcl_potions/locale/mcl_potions.es.tr deleted file mode 100644 index 82f38bb6..00000000 --- a/mods/ITEMS/mcl_potions/locale/mcl_potions.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_potions -Put this item in an item frame for decoration. It's useless otherwise.=Pon este artículo en un marco de artículo para la decoración. -Fermented Spider Eye=Ojo de araña fermentado -Glass Bottle=Frasco de cristal -A glass bottle is used as a container for liquids and can be used to collect water directly.=El frasco de cristal se usa como recipiente para líquidos y se puede usar para recoger agua directamente. -To collect water, it on a cauldron with water (which removes a level of water) or any water source (which removes no water).=Para recoger agua, colóquela en un caldero con agua (que elimina un nivel de agua) o cualquier fuente de agua (que no elimine agua). -Water Bottle=Frasco de cristal con agua -Water bottles can be used to fill cauldrons. Drinking water has no effect.=Las botellas de agua se pueden usar para llenar calderos. El agua potable no tiene efecto. -Rightclick to drink. Rightclick a cauldron to pour the water into the cauldron.=Haga clic derecho para beber. Haga clic derecho en un caldero para verter el agua en el caldero. -River Water Bottle=Frasco de cristal con agua de rio -River water bottles can be used to fill cauldrons. Drinking it has no effect.=Las botellas de agua de río se pueden usar para llenar calderos. Beberlo no tiene ningún efecto. -Awkward Potion=Poción incomoda -This potion has an awkward taste and is used for brewing more potions. Drinking it has no effect.=Esta poción tiene un sabor extraño y se usa para preparar más pociones. Beberlo no tiene ningún efecto. -Mundane Potion=Poción Mundana -This potion has a clean taste and is used for brewing more potions. Drinking it has no effect.=Esta poción tiene un sabor limpio y se usa para preparar más pociones. Beberlo no tiene ningún efecto. -Thick Potion=Poción densa -This potion has a bitter taste and is used for brewing more potions. Drinking it has no effect.=Esta poción tiene un sabor amargo y se usa para preparar más pociones. Beberlo no tiene ningún efecto. -Glistering Melon=Rodaja de sandía reluciente -This shiny melon is full of tiny gold nuggets and would be nice in an item frame. It isn't edible and not useful for anything else.=Esta sandía brillante está llena de pequeñas pepitas de oro y sería bueno en un marco de artículo. No es comestible y no es útil para nada más. -Dragon's Breath=Aliento de dragón -Use the “Place” key to drink it.=Use la tecla "Colocar" para beberlo. -Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron.=Use la tecla "Acción" para beber. Coloque este artículo en un caldero para verter el agua en el caldero. -Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron.=Use la tecla "Acción" para beber. Coloque este artículo en un caldero para verter el agua de río en el caldero. diff --git a/mods/ITEMS/mcl_potions/locale/mcl_potions.fr.tr b/mods/ITEMS/mcl_potions/locale/mcl_potions.fr.tr deleted file mode 100644 index 632c1d96..00000000 --- a/mods/ITEMS/mcl_potions/locale/mcl_potions.fr.tr +++ /dev/null @@ -1,25 +0,0 @@ -# textdomain: mcl_potions -Put this item in an item frame for decoration. It's useless otherwise.=Mettez cet élément dans un cadre à élément pour la décoration. C'est inutile sinon. -Fermented Spider Eye=Oeil d'araignée fermenté -Glass Bottle=Bouteille en verre -A glass bottle is used as a container for liquids and can be used to collect water directly.=Une bouteille en verre est utilisée comme récipient pour les liquides et peut être utilisée pour collecter l'eau directement. -To collect water, it on a cauldron with water (which removes a level of water) or any water source (which removes no water).=Pour collecter l'eau, poser la sur un chaudron avec de l'eau (qui enlève un niveau d'eau) ou toute source d'eau (qui n'enlève pas d'eau). -Water Bottle=Bouteille d'eau -Water bottles can be used to fill cauldrons. Drinking water has no effect.=Les bouteilles d'eau peuvent être utilisées pour remplir les chaudrons. L'eau potable n'a aucun effet. -Rightclick to drink. Rightclick a cauldron to pour the water into the cauldron.=Clic droit pour boire. Clic droit sur un chaudron pour verser l'eau dans le chaudron. -River Water Bottle=Bouteille d'eau de rivière -River water bottles can be used to fill cauldrons. Drinking it has no effect.=Les bouteilles d'eau de rivière peuvent être utilisées pour remplir les chaudrons. Le boire n'a aucun effet. -Awkward Potion=Potion maladroite -This potion has an awkward taste and is used for brewing more potions. Drinking it has no effect.=Cette potion a un goût gênant et est utilisée pour préparer plus de potions. Le boire n'a aucun effet. -Mundane Potion=Potion mondaine -This potion has a clean taste and is used for brewing more potions. Drinking it has no effect.=Cette potion a un goût propre et est utilisée pour préparer plus de potions. Le boire n'a aucun effet. -Thick Potion=Potion épaisse -This potion has a bitter taste and is used for brewing more potions. Drinking it has no effect.=Cette potion a un goût amer et est utilisée pour préparer plus de potions. Le boire n'a aucun effet. -Glistering Melon=Melon étincelant -This shiny melon is full of tiny gold nuggets and would be nice in an item frame. It isn't edible and not useful for anything else.=Ce melon brillant est plein de minuscules pépites d'or et serait bien dans un cadre d'objet. Il n'est pas comestible et n'est utile à rien d'autre. -Dragon's Breath=Le souffle du dragon -Use the “Place” key to drink it.=Utilisez la touche "Utiliser" pour le boire. -Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron.=Utilisez la touche "Utiliser" pour boire. Placez cet article sur un chaudron pour verser l'eau dans le chaudron. -Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron.=Utilisez la touche "Utiliser" pour boire. Placez cet objet sur un chaudron pour verser l'eau de la rivière dans le chaudron. -Liquid container=Récipient de liquide -No effect=Aucun effet diff --git a/mods/ITEMS/mcl_potions/locale/template.txt b/mods/ITEMS/mcl_potions/locale/template.txt index 3eccfd70..b7e08ebf 100644 --- a/mods/ITEMS/mcl_potions/locale/template.txt +++ b/mods/ITEMS/mcl_potions/locale/template.txt @@ -21,5 +21,3 @@ Dragon's Breath= Use the “Place” key to drink it.= Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron.= Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron.= -Liquid container= -No effect= diff --git a/mods/ITEMS/mcl_signs/README.txt b/mods/ITEMS/mcl_signs/README.txt index ee161fc9..78087556 100644 --- a/mods/ITEMS/mcl_signs/README.txt +++ b/mods/ITEMS/mcl_signs/README.txt @@ -6,7 +6,7 @@ License of code and font: MIT License Font source: 04.jp.org, some modifications and additions were made (added support for Latin-1 Supplement) Original font license text states: “YOU MAY USE THEM AS YOU LIKE” (in about.gif file distributed with the font) -License of textures: See README.md in top directory of MineClone 2. +License of textures: See README.me in top directory of MineClone 2. License of models: GPLv3 (https://www.gnu.org/licenses/gpl-3.0.html) Models author: 22i. diff --git a/mods/ITEMS/mcl_signs/init.lua b/mods/ITEMS/mcl_signs/init.lua index 89d6b78b..a4e6b3b1 100644 --- a/mods/ITEMS/mcl_signs/init.lua +++ b/mods/ITEMS/mcl_signs/init.lua @@ -185,7 +185,7 @@ local function get_wall_signtext_info(param2, nodename) end end -local sign_groups = {handy=1,axey=1, flammable=1, deco_block=1, material_wood=1, attached_node=1, dig_by_piston=1, flammable=-1} +local sign_groups = {handy=1,axey=1, flammable=1, deco_block=1, material_wood=1, attached_node=1, dig_by_piston=1} local destruct_sign = function(pos) local objects = minetest.get_objects_inside_radius(pos, 0.5) @@ -278,7 +278,6 @@ end minetest.register_node("mcl_signs:wall_sign", { description = S("Sign"), - _tt_help = S("Can be written"), _doc_items_longdesc = S("Signs can be written and come in two variants: Wall sign and sign on a sign post. Signs can be placed on the top and the sides of other blocks, but not below them."), _doc_items_usagehelp = S("After placing the sign, you can write something on it. You have 4 lines of text with up to 15 characters for each line; anything beyond these limits is lost. Not all characters are supported. The text can not be changed once it has been written; you have to break and place the sign again."), inventory_image = "default_sign.png", @@ -391,7 +390,7 @@ minetest.register_node("mcl_signs:wall_sign", { text_entity:set_yaw(sign_info.yaw) text_entity:get_luaentity()._signnodename = nodeitem:get_name() - minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos}, true) + minetest.sound_play({name="default_place_node_hard", gain=1.0}, {pos = place_pos}) show_formspec(placer, place_pos) return itemstack @@ -412,7 +411,7 @@ minetest.register_node("mcl_signs:wall_sign", { end end, _mcl_hardness = 1, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, }) -- Standing sign nodes. @@ -452,7 +451,7 @@ local ssign = { end, _mcl_hardness = 1, - _mcl_blast_resistance = 1, + _mcl_blast_resistance = 5, } minetest.register_node("mcl_signs:standing_sign", ssign) @@ -569,3 +568,7 @@ minetest.register_lbm({ update_sign(pos) end, }) + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "[mcl_signs] loaded") +end diff --git a/mods/ITEMS/mcl_signs/locale/mcl_signs.de.tr b/mods/ITEMS/mcl_signs/locale/mcl_signs.de.tr index a7513659..5129696b 100644 --- a/mods/ITEMS/mcl_signs/locale/mcl_signs.de.tr +++ b/mods/ITEMS/mcl_signs/locale/mcl_signs.de.tr @@ -6,4 +6,3 @@ Enter sign text:=Schildtext eingeben: Maximum line length: 15=Maximale Zeilenlänge: 15 Maximum lines: 4=Maximale Zeilen: 4 Done=Fertig -Can be written=Kann beschriftet werden diff --git a/mods/ITEMS/mcl_signs/locale/mcl_signs.es.tr b/mods/ITEMS/mcl_signs/locale/mcl_signs.es.tr deleted file mode 100644 index d67e2da0..00000000 --- a/mods/ITEMS/mcl_signs/locale/mcl_signs.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_signs -Sign=Firmar -Signs can be written and come in two variants: Wall sign and sign on a sign post. Signs can be placed on the top and the sides of other blocks, but not below them.=Los letreros se pueden escribir y vienen en dos variantes: letrero de muro y letrero en un poste de letrero. Los letreros se pueden colocar en la parte superior y en los costados de otros bloques, pero no debajo de ellos. -After placing the sign, you can write something on it. You have 4 lines of text with up to 15 characters for each line; anything beyond these limits is lost. Not all characters are supported. The text can not be changed once it has been written; you have to break and place the sign again.=Después de colocar el letrero, puede escribir algo en él. Tiene 4 líneas de texto con hasta 15 caracteres para cada línea; todo lo que esté más allá de estos límites se pierde. No todos los personajes son compatibles. El texto no se puede cambiar una vez que se ha escrito; tienes que romper y colocar el letrero nuevamente. -Enter sign text:=Inserte el texto del letrero: -Maximum line length: 15=Longitud máxima de línea: 15 -Maximum lines: 4=Líneas máximas: 4 -Done=Escribir cartel diff --git a/mods/ITEMS/mcl_signs/locale/mcl_signs.fr.tr b/mods/ITEMS/mcl_signs/locale/mcl_signs.fr.tr deleted file mode 100644 index 158640da..00000000 --- a/mods/ITEMS/mcl_signs/locale/mcl_signs.fr.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_signs -Sign=Panneau -Signs can be written and come in two variants: Wall sign and sign on a sign post. Signs can be placed on the top and the sides of other blocks, but not below them.=Les panneaux peuvent être écrits et se déclinent en deux variantes: panneau mural et panneau sur poteau. Des panneaux peuvent être placés en haut et sur les côtés des autres blocs, mais pas en dessous. -After placing the sign, you can write something on it. You have 4 lines of text with up to 15 characters for each line; anything beyond these limits is lost. Not all characters are supported. The text can not be changed once it has been written; you have to break and place the sign again.=Après avoir placé le panneau, vous pouvez écrire quelque chose dessus. Vous avez 4 lignes de texte avec jusqu'à 15 caractères pour chaque ligne; tout ce qui dépasse ces limites est perdu. Tous les caractères ne sont pas pris en charge. Le texte ne peut pas être modifié une fois qu'il a été écrit; vous devez casser et placer à nouveau le panneau. -Enter sign text:=Saisir le texte du panneau: -Maximum line length: 15=Longueur maximum des lignes: 15 -Maximum lines: 4=Nombre maximum de lignes: 4 -Done=Terminé -Can be written=Peut être écrit diff --git a/mods/ITEMS/mcl_signs/locale/template.txt b/mods/ITEMS/mcl_signs/locale/template.txt index 6635e989..f4f4827b 100644 --- a/mods/ITEMS/mcl_signs/locale/template.txt +++ b/mods/ITEMS/mcl_signs/locale/template.txt @@ -6,4 +6,3 @@ Enter sign text:= Maximum line length: 15= Maximum lines: 4= Done= -Can be written= diff --git a/mods/ITEMS/mcl_signs/textures/default_sign.png b/mods/ITEMS/mcl_signs/textures/default_sign.png index 6adabb51..07798311 100644 Binary files a/mods/ITEMS/mcl_signs/textures/default_sign.png and b/mods/ITEMS/mcl_signs/textures/default_sign.png differ diff --git a/mods/ITEMS/mcl_sponges/init.lua b/mods/ITEMS/mcl_sponges/init.lua index db68b281..23ab7116 100644 --- a/mods/ITEMS/mcl_sponges/init.lua +++ b/mods/ITEMS/mcl_sponges/init.lua @@ -37,7 +37,6 @@ end minetest.register_node("mcl_sponges:sponge", { description = S("Sponge"), - _tt_help = S("Removes water on contact"), _doc_items_longdesc = S("Sponges are blocks which remove water around them when they are placed or come in contact with water, turning it into a wet sponge."), drawtype = "normal", is_ground_content = false, @@ -90,13 +89,12 @@ minetest.register_node("mcl_sponges:sponge", { end return minetest.item_place_node(itemstack, placer, pointed_thing) end, - _mcl_blast_resistance = 0.6, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) minetest.register_node("mcl_sponges:sponge_wet", { description = S("Waterlogged Sponge"), - _tt_help = S("Can be dried in furnace"), _doc_items_longdesc = S("A waterlogged sponge can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of a furnace, the water will pour into the bucket."), drawtype = "normal", is_ground_content = false, @@ -108,14 +106,13 @@ minetest.register_node("mcl_sponges:sponge_wet", { stack_max = 64, sounds = mcl_sounds.node_sound_dirt_defaults(), groups = {handy=1, building_block=1}, - _mcl_blast_resistance = 0.6, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) if minetest.get_modpath("mclx_core") then minetest.register_node("mcl_sponges:sponge_wet_river_water", { description = S("Riverwaterlogged Sponge"), - _tt_help = S("Can be dried in furnace"), _doc_items_longdesc = S("This is a sponge soaking wet with river water. It can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of the furnace, the river water will pour into the bucket.") .. "\n" .. S("A sponge becomes riverwaterlogged (instead of waterlogged) if it sucks up more river water than (normal) water."), drawtype = "normal", is_ground_content = false, @@ -127,7 +124,7 @@ if minetest.get_modpath("mclx_core") then stack_max = 64, sounds = mcl_sounds.node_sound_dirt_defaults(), groups = {handy=1, building_block=1}, - _mcl_blast_resistance = 0.6, + _mcl_blast_resistance = 3, _mcl_hardness = 0.6, }) diff --git a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.de.tr b/mods/ITEMS/mcl_sponges/locale/mcl_sponges.de.tr index 4f0b827f..d226e8d1 100644 --- a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.de.tr +++ b/mods/ITEMS/mcl_sponges/locale/mcl_sponges.de.tr @@ -6,5 +6,3 @@ A waterlogged sponge can be dried in the furnace to turn it into (dry) sponge. W Riverwaterlogged Sponge=Flusswassergetränkter Schwamm This is a sponge soaking wet with river water. It can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of the furnace, the river water will pour into the bucket.=Dies ist ein Schwamm, der triefend nass und voller Flusswasser ist. Er kann in einem Ofen getrocknet werden, um ihn zu einem (trockenem) Schwamm zu verwandeln. Wenn es einen leeren Eimer im Brennstoffplatz des Ofens gibt, wird das Flusswasser in den Eimer fließen. A sponge becomes riverwaterlogged (instead of waterlogged) if it sucks up more river water than (normal) water.=Ein Schwamm wird flusswassergetränkt (statt wassergetränkt), wenn er mehr Flusswasser als (normales) Wasser aufsaugt. -Removes water on contact=Entfernt Wasser bei Berührung -Can be dried in furnace=Kann im Ofen getrocknet werden diff --git a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.es.tr b/mods/ITEMS/mcl_sponges/locale/mcl_sponges.es.tr deleted file mode 100644 index 4ee44838..00000000 --- a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_sponges -Sponge=Esponja -Sponges are blocks which remove water around them when they are placed or come in contact with water, turning it into a wet sponge.=Las esponjas son bloques que eliminan el agua a su alrededor cuando se colocan o entran en contacto con el agua, convirtiéndola en una esponja húmeda. -Waterlogged Sponge=Esponja mojada -A waterlogged sponge can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of a furnace, the water will pour into the bucket.=Se puede secar una esponja mojada de agua en el horno para convertirla en una esponja (seca). Cuando hay un cubo vacío en la ranura de combustible de un horno, el agua se vierte en el cubo. -Riverwaterlogged Sponge=Esponja mojada con agua de rio -This is a sponge soaking wet with river water. It can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of the furnace, the river water will pour into the bucket.=Esta es una esponja mojada con agua de río. Se puede secar en el horno para convertirlo en una esponja (seca). Cuando hay un balde vacío en la ranura de combustible del horno, el agua del río se vierte en el balde. -A sponge becomes riverwaterlogged (instead of waterlogged) if it sucks up more river water than (normal) water.=Una esponja se inunda de río (en lugar de inundarse) si absorbe más agua de río que el agua (normal). diff --git a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.fr.tr b/mods/ITEMS/mcl_sponges/locale/mcl_sponges.fr.tr deleted file mode 100644 index 58dd74be..00000000 --- a/mods/ITEMS/mcl_sponges/locale/mcl_sponges.fr.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: mcl_sponges -Sponge=Éponge -Sponges are blocks which remove water around them when they are placed or come in contact with water, turning it into a wet sponge.=Les éponges sont des blocs qui éliminent l'eau autour d'eux lorsqu'ils sont placés ou entrent en contact avec l'eau, la transformant en une éponge humide. -Waterlogged Sponge=Éponge gorgée d'eau -A waterlogged sponge can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of a furnace, the water will pour into the bucket.=Une éponge gorgée d'eau peut être séchée dans le four pour la transformer en éponge (sèche). Lorsqu'il y a un seau vide dans la fente de combustible d'un four, l'eau se déversera dans le seau. -Riverwaterlogged Sponge=Éponge gorgée d'eau de rivière -This is a sponge soaking wet with river water. It can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of the furnace, the river water will pour into the bucket.=Il s'agit d'une éponge trempée d'eau de rivière. Elle peut être séché dans le four pour le transformer en éponge (sèche). Lorsqu'il y a un seau vide dans la fente de combustible du four, l'eau de la rivière se déversera dans le seau. -A sponge becomes riverwaterlogged (instead of waterlogged) if it sucks up more river water than (normal) water.=Une éponge devient gorgée d'eau de rivière (au lieu d'être gorgée d'eau) si elle aspire plus d'eau de rivière que d'eau (normale). -Removes water on contact=Élimine l'eau au contact -Can be dried in furnace=Peut être séché au four diff --git a/mods/ITEMS/mcl_sponges/locale/template.txt b/mods/ITEMS/mcl_sponges/locale/template.txt index 9307c2cd..2de97226 100644 --- a/mods/ITEMS/mcl_sponges/locale/template.txt +++ b/mods/ITEMS/mcl_sponges/locale/template.txt @@ -6,5 +6,3 @@ A waterlogged sponge can be dried in the furnace to turn it into (dry) sponge. W Riverwaterlogged Sponge= This is a sponge soaking wet with river water. It can be dried in the furnace to turn it into (dry) sponge. When there's an empty bucket in the fuel slot of the furnace, the river water will pour into the bucket.= A sponge becomes riverwaterlogged (instead of waterlogged) if it sucks up more river water than (normal) water.= -Removes water on contact= -Can be dried in furnace= diff --git a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge.png b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge.png index dd7f3b71..0d68d872 100644 Binary files a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge.png and b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge.png differ diff --git a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet.png b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet.png index e9d15219..7f4e8420 100644 Binary files a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet.png and b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet.png differ diff --git a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet_river_water.png b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet_river_water.png index bbbf86fa..5d9475a5 100644 Binary files a/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet_river_water.png and b/mods/ITEMS/mcl_sponges/textures/mcl_sponges_sponge_wet_river_water.png differ diff --git a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.de.tr b/mods/ITEMS/mcl_stairs/locale/mcl_stairs.de.tr index 8b53d8d1..495aa577 100644 --- a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.de.tr +++ b/mods/ITEMS/mcl_stairs/locale/mcl_stairs.de.tr @@ -39,9 +39,9 @@ Double Diorite Slab=Doppeldioritplatte Cobblestone Stairs=Kopfsteinpflastertreppe Cobblestone Slab=Kopfsteinpflasterplatte Double Cobblestone Slab=Doppelkopfsteinpflasterplatte -Mossy Cobblestone Slab=Moosige Kopfsteinpflasterplatte -Mossy Cobblestone Stairs=Moosige Kopfsteinpflastertreppe -Double Mossy Cobblestone Slab=Doppelte moosige Kopfsteinpflasterplatte +Moss Stone Stairs=Moossteintreppe +Moss Stone Slab=Moossteinplatte +Double Moss Stone Slab=Doppelmoossteinplatte Brick Stairs=Ziegeltreppe Brick Slab=Ziegelplatte Double Brick Slab=Doppelziegelplatte @@ -98,4 +98,4 @@ Double Polished Diorite Slab=Doppelte polierte Dioritplatte Polished Diorite Stairs=Polierte Diorittreppe Mossy Stone Brick Stairs=Moosige Steinziegeltreppe Mossy Stone Brick Slab=Moosige Steinziegelplatte -Double Mossy Stone Brick Slab=Doppelte moosige Steinziegelplatte +Double Mossy Stone Brick Slab=Doppelte Steinziegelplatte diff --git a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.es.tr b/mods/ITEMS/mcl_stairs/locale/mcl_stairs.es.tr deleted file mode 100644 index 1a17a816..00000000 --- a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.es.tr +++ /dev/null @@ -1,101 +0,0 @@ -# textdomain: mcl_stairs -Stairs are useful to reach higher places by walking over them; jumping is not required. Placing stairs in a corner pattern will create corner stairs. Stairs placed on the ceiling or at the upper half of the side of a block will be placed upside down.=Las escaleras son útiles para llegar a lugares más altos al caminar sobre ellas; No se requiere saltar. Colocar escaleras en un patrón de esquina creará escaleras de esquina. Las escaleras colocadas en el techo o en la mitad superior del lado de un bloque se colocarán boca abajo. -Double @1=@1 (Doble) -Slabs are half as high as their full block counterparts and occupy either the lower or upper part of a block, depending on how it was placed. Slabs can be easily stepped on without needing to jump. When a slab is placed on another slab of the same type, a double slab is created.=Las losas son la mitad de altas que sus contrapartes de bloque completo y ocupan la parte inferior o superior de un bloque, dependiendo de cómo se haya colocado. Las losas se pueden pisar fácilmente sin necesidad de saltar. Cuando se coloca una losa en otra losa del mismo tipo, se crea una losa doble. -Upper @1=@1 (Superior) -Double slabs are full blocks which are created by placing two slabs of the same kind on each other.=Las losas dobles son bloques completos que se crean colocando dos losas del mismo tipo entre sí -Oak Wood Stairs=Escaleras de roble -Oak Wood Slab=Losa de roble -Double Oak Wood Slab=Losa doble de roble -Jungle Wood Stairs=Escaleras de la selva -Jungle Wood Slab=Losa de la selva -Double Jungle Wood Slab=Losa doble de la selva -Acacia Wood Stairs=Escaleras de acacia -Acacia Wood Slab=Losa de acacia -Double Acacia Wood Slab=Losa doble de acacia -Spruce Wood Stairs=Escaleras de abeto -Spruce Wood Slab=Losa de abeto -Double Spruce Wood Slab=Losa doble de abeto -Birch Wood Stairs=Escaleras de abedul -Birch Wood Slab=Losa de abedul -Double Birch Wood Slab=Losa doble de abedul -Dark Oak Wood Stairs=Escaleras de roble oscuro -Dark Oak Wood Slab=Losa de roble oscuro -Double Dark Oak Wood Slab=Losa doble de roble oscuro -Stone Stairs=Escaleras de piedra -Stone Slab=Losa de piedra -Double Stone Slab=Losa doble de piedra -Polished Stone Slab=Losa de piedra pulida -Double Polished Stone Slab=Losa doble de piedra pulida -Andesite Stairs=Escaleras de andesita -Andesite Slab=Losa de andesita -Double Andesite Slab=Losa doble de andesita -Granite Stairs=Escaleras de granito -Granite Slab=Losa de granito -Double Granite Slab=Losa doble de granito -Diorite Stairs=Escaleras de diorita -Diorite Slab=Losa de diorita -Double Diorite Slab=Losa doble de diorita -Cobblestone Stairs=Escaleras de roca -Cobblestone Slab=Losa de roca -Double Cobblestone Slab=Losa doble de roca -Mossy Cobblestone Slab=Losa de roca musgosa -Mossy Cobblestone Stairs=Escaleras de roca musgosa -Double Mossy Cobblestone Slab=Losa doble de roca musgosa -Brick Stairs=Escaleras de ladrillos -Brick Slab=Losa de ladrillos -Double Brick Slab=Losa doble de ladrillos -Sandstone Stairs=Escaleras de arenisca -Sandstone Slab=Losa de arenisca -Double Sandstone Slab=Losa doble de arenisca -Smooth Sandstone Stairs=Escaleras de arenisca lisa -Smooth Sandstone Slab=Losa de arenisca lisa -Double Smooth Sandstone Slab=Losa doble de arenisca lisa -Red Sandstone Stairs=Escaleras de arenisca roja -Red Sandstone Slab=Losa de arenisca roja -Double Red Sandstone Slab=Losa doble de arenisca roja -Smooth Red Sandstone Stairs=Escaleras de arenisca roja lisa -Smooth Red Sandstone Slab=Losa de arenisca roja lisa -Double Smooth Red Sandstone Slab=Losa doble de arenisca roja lisa -Stone Bricks Stairs=Escaleras de ladrillos de piedra -Stone Bricks Slab=Losa de ladrillos de piedra -Double Stone Bricks Slab=Losa doble de ladrillos de piedra -Quartz Stairs=Escaleras de cuarzo -Quartz Slab=Losa de cuarzo -Double Quartz Slab=Losa doble de cuarzo -Smooth Quartz Stairs=Escaleras de cuarzo liso -Smooth Quartz Slab=Losa de cuarzo liso -Double Smooth Quartz Slab=Losa doble de cuarzo liso -Nether Brick Stairs=Escaleras de ladrillos del Nether -Nether Brick Slab=Losa de ladrillos del Nether -Double Nether Brick Slab=Losa doble de ladrillos del Nether -Red Nether Brick Stairs=Escaleras de ladrillos del Nether rojos -Red Nether Brick Slab=Losa de ladrillos del Nether roja -Double Red Nether Brick Slab=Losa doble de ladrillos del Nether roja -End Stone Brick Stairs=Escaleras de ladrillos de piedra del End -End Stone Brick Slab=Losa de ladrillos de piedra del End -Double End Stone Brick Slab=Losa doble de ladrillos de piedra del End -Purpur Stairs=Escaleras de púrpur -Purpur Slab=Losa de púrpur -Double Purpur Slab=Losa doble de púrpur -Prismarine Stairs=Escaleras de prismarina -Prismarine Slab=Losa de prismarina -Double Prismarine Slab=Losa doble de prismarina -Prismarine Brick Stairs=Escaleras de ladrillos de prismarina -Prismarine Brick Slab=Losa de ladrillos de prismarina -Double Prismarine Brick Slab=Losa doble de ladrillos de prismarina -Dark Prismarine Stairs=Escaleras de prismarina oscura -Dark Prismarine Slab=Losa de prismarina oscura -Double Dark Prismarine Slab=Losa doble de prismarina oscura -Polished Andesite Slab=Losa de andesita pulida -Double Polished Andesite Slab=Losa doble de andesita pulida -Polished Andesite Stairs=Escaleras de andesita pulida -Polished Granite Slab=Losa de granito pulido -Double Polished Granite Slab=Losa doble de granito pulido -Polished Granite Stairs=Escaleras de granito pulido -Polished Diorite Slab=Losa de diorita pulida -Double Polished Diorite Slab=Losa doble de diorita pulida -Polished Diorite Stairs=Escaleras de diorita pulida -Mossy Stone Brick Stairs=Escaleras de ladrillos de piedra musgosos -Mossy Stone Brick Slab=Losa de ladrillos de piedra musgosos -Double Mossy Stone Brick Slab=Losa de ladrillo de piedra doble musgo diff --git a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.fr.tr b/mods/ITEMS/mcl_stairs/locale/mcl_stairs.fr.tr deleted file mode 100644 index 9c6684fc..00000000 --- a/mods/ITEMS/mcl_stairs/locale/mcl_stairs.fr.tr +++ /dev/null @@ -1,101 +0,0 @@ -# textdomain: mcl_stairs -Stairs are useful to reach higher places by walking over them; jumping is not required. Placing stairs in a corner pattern will create corner stairs. Stairs placed on the ceiling or at the upper half of the side of a block will be placed upside down.=Les escaliers sont utiles pour atteindre des endroits plus élevés en marchant dessus; le saut n'est pas obligatoire. Placer les escaliers dans un motif d'angle créera des escaliers d'angle. Les escaliers placés au plafond ou dans la moitié supérieure du côté d'un bloc seront placés à l'envers. -Double @1=Double @1 -Slabs are half as high as their full block counterparts and occupy either the lower or upper part of a block, depending on how it was placed. Slabs can be easily stepped on without needing to jump. When a slab is placed on another slab of the same type, a double slab is created.=Les dalles sont deux fois moins hautes que leurs homologues de bloc complet et occupent la partie inférieure ou supérieure d'un bloc, selon la façon dont il a été placé. Les dalles peuvent être facilement franchies sans avoir à sauter. Lorsqu'une dalle est placée sur une autre dalle du même type, une double dalle est créée. -Upper @1=@1 Supérieur -Double slabs are full blocks which are created by placing two slabs of the same kind on each other.=Les dalles doubles sont des blocs entiers qui sont créés en plaçant deux dalles du même type l'une sur l'autre. -Oak Wood Stairs=Escalier en Bois de Chêne -Oak Wood Slab=Dalle en Bois de Chêne -Double Oak Wood Slab=Double Dalle en Bois de Chêne -Jungle Wood Stairs=Escalier en Bois d'Acajou -Jungle Wood Slab=Dalle en Bois d'Acajou -Double Jungle Wood Slab=Double Dalle en Bois d'Acajou -Acacia Wood Stairs=Escalier en Bois d'Acacia -Acacia Wood Slab=Dalle en Bois d'Acacia -Double Acacia Wood Slab=Double Dalle en Bois d'Acacia -Spruce Wood Stairs=Escalier en Bois de Sapin -Spruce Wood Slab=Dalle en Bois de Sapin -Double Spruce Wood Slab=Double Dalle en Bois de Sapin -Birch Wood Stairs=Escalier en Bois de Bouleau -Birch Wood Slab=Dalle en Bois de Bouleau -Double Birch Wood Slab=Double Dalle en Bois de Bouleau -Dark Oak Wood Stairs=Escalier en Bois de Chêne Noir -Dark Oak Wood Slab=Dalle en Bois de Chêne Noir -Double Dark Oak Wood Slab=Double Dalle en Bois de Chêne Noir -Stone Stairs=Escalier en Roche -Stone Slab=Dalle en Roche -Double Stone Slab=Double Dalle en Roche -Polished Stone Slab=Dalle en Pierre Polie -Double Polished Stone Slab=Double Dalle en Pierre Polie -Andesite Stairs=Escalier en Andésite -Andesite Slab=Dalle en Andésite -Double Andesite Slab=Double Dalle en Andésite -Granite Stairs=Escalier en Granite -Granite Slab=Dalle en Granite -Double Granite Slab=Double Dalle en Granite -Diorite Stairs=Escalier en Diorite -Diorite Slab=Dalle en Diorite -Double Diorite Slab=Double Dalle en Diorite -Cobblestone Stairs=Escalier en Pierre -Cobblestone Slab=Dalle en Pierre -Double Cobblestone Slab=Double Dalle en Pierre -Mossy Cobblestone Stairs=Escalier en Pierre Moussue -Mossy Cobblestone Slab=Dalle en Pierre Moussue -Double Mossy Cobblestone Slab=Double Dalle en Pierre Moussue -Brick Stairs=Escalier de Brique -Brick Slab=Dalle en Brique -Double Brick Slab=Double Dalle en Brique -Sandstone Stairs=Escalier en Grès -Sandstone Slab=Dalle en Grès -Double Sandstone Slab=Double Dalle en Grès -Smooth Sandstone Stairs=Escalier en Grès Poli -Smooth Sandstone Slab=Dalle en Grès Poli -Double Smooth Sandstone Slab=Double Dalle en Grès Poli -Red Sandstone Stairs=Escalier en Grès Rouge -Red Sandstone Slab=Dalle en Grès Rouge -Double Red Sandstone Slab=Double Dalle en Grès Rouge -Smooth Red Sandstone Stairs=Escalier en Grès Rouge Poli -Smooth Red Sandstone Slab=Dalle en Grès Rouge Poli -Double Smooth Red Sandstone Slab=Double Dalle en Grès Rouge Poli -Stone Bricks Stairs=Escalier en Pierre Taillée -Stone Bricks Slab=Dalle en Pierre Taillée -Double Stone Bricks Slab=Double Dalle en Pierre Taillée -Quartz Stairs=Escalier en Quartz -Quartz Slab=Dalle en Quartz -Double Quartz Slab=Double Dalle en Quartz -Smooth Quartz Stairs=Escalier en Quartz Poli -Smooth Quartz Slab=Dallle en Quartz Poli -Double Smooth Quartz Slab=Double Dalle en Quartz Poli -Nether Brick Stairs=Escalier en Brique du Nether -Nether Brick Slab=Dalle en Brique du Nether -Double Nether Brick Slab=Double Dalle en Brique du Nether -Red Nether Brick Stairs=Escalier en Brique Rouge du Nether -Red Nether Brick Slab=Dalle en Brique Rouge du Nether -Double Red Nether Brick Slab=Double Dalle en Brique Rouge du Nether -End Stone Brick Stairs=Escalier en Pierre de l'End -End Stone Brick Slab=Dalle en Pierre de l'End -Double End Stone Brick Slab=Double Dalle en Pierre de l'End -Purpur Stairs=Escalier en Purpur -Purpur Slab=Dalle en Purpur -Double Purpur Slab=Double Dalle en Purpur -Prismarine Stairs=Escalier en Prismarine -Prismarine Slab=Dalle en Prismarine -Double Prismarine Slab=Double Dalle en Prismarine -Prismarine Brick Stairs=Escalier en Brique Prismarine -Prismarine Brick Slab=Dalle en Brique Prismarine -Double Prismarine Brick Slab=Double Dalle en Brique Prismarine -Dark Prismarine Stairs=Escalier en Prismarine Sombre -Dark Prismarine Slab=Dalle en Prismarine Sombre -Double Dark Prismarine Slab=Double Dalle en Prismarine Sombre -Polished Andesite Slab=Dalle en Andésite Polie -Double Polished Andesite Slab=Double Dalle en Andésite Polie -Polished Andesite Stairs=Escalier en Andésite Polie -Polished Granite Slab=Dalle en Granit Poli -Double Polished Granite Slab=Double Dalle en Granit Poli -Polished Granite Stairs=Escalier en Granit Poli -Polished Diorite Slab=Dalle en Diorite Polie -Double Polished Diorite Slab=Double Dalle en Diorite Polie -Polished Diorite Stairs=Escalier en Diorite Polie -Mossy Stone Brick Stairs=Escalier en Pierre Taillée Moussue -Mossy Stone Brick Slab=Dalle en Pierre Taillée Moussue -Double Mossy Stone Brick Slab=Double Dalle en Pierre Taillée Moussue diff --git a/mods/ITEMS/mcl_stairs/locale/template.txt b/mods/ITEMS/mcl_stairs/locale/template.txt index 0638af3d..bec58b3a 100644 --- a/mods/ITEMS/mcl_stairs/locale/template.txt +++ b/mods/ITEMS/mcl_stairs/locale/template.txt @@ -39,9 +39,9 @@ Double Diorite Slab= Cobblestone Stairs= Cobblestone Slab= Double Cobblestone Slab= -Mossy Cobblestone Stairs= -Mossy Cobblestone Slab= -Double Mossy Cobblestone Slab= +Moss Stone Stairs= +Moss Stone Slab= +Double Moss Stone Slab= Brick Stairs= Brick Slab= Double Brick Slab= diff --git a/mods/ITEMS/mcl_stairs/register.lua b/mods/ITEMS/mcl_stairs/register.lua index e545836e..fbbedf2c 100644 --- a/mods/ITEMS/mcl_stairs/register.lua +++ b/mods/ITEMS/mcl_stairs/register.lua @@ -17,14 +17,14 @@ local woods = { for w=1, #woods do local wood = woods[w] mcl_stairs.register_stair(wood[1], "mcl_core:"..wood[1], - {handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + {handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1}, {wood[2]}, wood[3], mcl_sounds.node_sound_wood_defaults(), 2, "woodlike") mcl_stairs.register_slab(wood[1], "mcl_core:"..wood[1], - {handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=20}, + {handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1}, {wood[2]}, wood[4], mcl_sounds.node_sound_wood_defaults(), @@ -45,7 +45,7 @@ mcl_stairs.register_stair_and_slab_simple("granite", "mcl_core:granite", S("Gran mcl_stairs.register_stair_and_slab_simple("diorite", "mcl_core:diorite", S("Diorite Stairs"), S("Diorite Slab"), S("Double Diorite Slab")) mcl_stairs.register_stair_and_slab_simple("cobble", "mcl_core:cobble", S("Cobblestone Stairs"), S("Cobblestone Slab"), S("Double Cobblestone Slab")) -mcl_stairs.register_stair_and_slab_simple("mossycobble", "mcl_core:mossycobble", S("Mossy Cobblestone Stairs"), S("Mossy Cobblestone Slab"), S("Double Mossy Cobblestone Slab")) +mcl_stairs.register_stair_and_slab_simple("mossycobble", "mcl_core:mossycobble", S("Moss Stone Stairs"), S("Moss Stone Slab"), S("Double Moss Stone Slab")) mcl_stairs.register_stair_and_slab_simple("brick_block", "mcl_core:brick_block", S("Brick Stairs"), S("Brick Slab"), S("Double Brick Slab")) diff --git a/mods/ITEMS/mcl_stairs/textures/mcl_stairs_stone_slab_top.png b/mods/ITEMS/mcl_stairs/textures/mcl_stairs_stone_slab_top.png index 8570ff38..8e5a355b 100644 Binary files a/mods/ITEMS/mcl_stairs/textures/mcl_stairs_stone_slab_top.png and b/mods/ITEMS/mcl_stairs/textures/mcl_stairs_stone_slab_top.png differ diff --git a/mods/ITEMS/mcl_throwing/init.lua b/mods/ITEMS/mcl_throwing/init.lua index e588363f..5897a692 100644 --- a/mods/ITEMS/mcl_throwing/init.lua +++ b/mods/ITEMS/mcl_throwing/init.lua @@ -145,7 +145,7 @@ local flying_bobber_ENTITY={ objtype="fishing", } -local check_object_hit = function(self, pos, dmg) +local check_object_hit = function(self, pos, mob_damage) for _,object in pairs(minetest.get_objects_inside_radius(pos, 1.5)) do local entity = object:get_luaentity() @@ -158,11 +158,18 @@ local check_object_hit = function(self, pos, dmg) self.object:remove() return true elseif entity._cmi_is_mob == true and (self._thrower ~= object) then + local dmg = {} + if mob_damage then + dmg = mob_damage(entity.name) + end + -- FIXME: Knockback is broken object:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = dmg, }, nil) + + self.object:remove() return true end end @@ -170,28 +177,6 @@ local check_object_hit = function(self, pos, dmg) return false end -local snowball_particles = function(pos, vel) - local vel = vector.normalize(vector.multiply(vel, -1)) - minetest.add_particlespawner({ - amount = 20, - time = 0.001, - minpos = pos, - maxpos = pos, - minvel = vector.add({x=-2, y=3, z=-2}, vel), - maxvel = vector.add({x=2, y=5, z=2}, vel), - minacc = {x=0, y=-9.81, z=0}, - maxacc = {x=0, y=-9.81, z=0}, - minexptime = 1, - maxexptime = 3, - minsize = 0.7, - maxsize = 0.7, - collisiondetection = true, - collision_removal = true, - object_collision = false, - texture = "weather_pack_snow_snowflake"..math.random(1,2)..".png", - }) -end - -- Snowball on_step()--> called when snowball is moving. local snowball_on_step = function(self, dtime) self.timer=self.timer+dtime @@ -202,17 +187,22 @@ local snowball_on_step = function(self, dtime) -- Destroy when hitting a solid node if self._lastpos.x~=nil then if (def and def.walkable) or not def then - minetest.sound_play("mcl_throwing_snowball_impact_hard", { pos = self.object:get_pos(), max_hear_distance=16, gain=0.7 }, true) - snowball_particles(self._lastpos, self.object:get_velocity()) + minetest.sound_play("mcl_throwing_snowball_impact_hard", { pos = self.object:get_pos(), max_hear_distance=16, gain=0.7 }) self.object:remove() return end end - if check_object_hit(self, pos, {snowball_vulnerable = 3}) then - minetest.sound_play("mcl_throwing_snowball_impact_soft", { pos = self.object:get_pos(), max_hear_distance=16, gain=0.7 }, true) - snowball_particles(pos, self.object:get_velocity()) - self.object:remove() + local mob_damage = function(mobname) + if mobname == "mobs_mc:blaze" then + return {fleshy = 3} + else + return {} + end + end + + if check_object_hit(self, pos, mob_damage) then + minetest.sound_play("mcl_throwing_snowball_impact_soft", { pos = self.object:get_pos(), max_hear_distance=16, gain=0.7 }) return end @@ -266,7 +256,7 @@ local egg_on_step = function(self, dtime) end end end - minetest.sound_play("mcl_throwing_egg_impact", { pos = self.object:get_pos(), max_hear_distance=10, gain=0.5 }, true) + minetest.sound_play("mcl_throwing_egg_impact", { pos = self.object:get_pos(), max_hear_distance=10, gain=0.5 }) self.object:remove() return end @@ -274,8 +264,7 @@ local egg_on_step = function(self, dtime) -- Destroy when hitting a mob or player (no chick spawning) if check_object_hit(self, pos) then - minetest.sound_play("mcl_throwing_egg_impact", { pos = self.object:get_pos(), max_hear_distance=10, gain=0.5 }, true) - self.object:remove() + minetest.sound_play("mcl_throwing_egg_impact", { pos = self.object:get_pos(), max_hear_distance=10, gain=0.5 }) return end @@ -362,7 +351,7 @@ local pearl_on_step = function(self, dtime) local oldpos = player:get_pos() -- Teleport and hurt player player:set_pos(telepos) - player:set_hp(player:get_hp() - 5, { type = "fall", from = "mod" }) + player:set_hp(player:get_hp() - 5, { type = "fall", origin = "mod" }) -- 5% chance to spawn endermite at the player's origin local r = math.random(1,20) @@ -417,7 +406,6 @@ local how_to_throw = S("Use the punch key to throw.") -- Snowball minetest.register_craftitem("mcl_throwing:snowball", { description = S("Snowball"), - _tt_help = S("Throwable"), _doc_items_longdesc = S("Snowballs can be thrown or launched from a dispenser for fun. Hitting something with a snowball does nothing."), _doc_items_usagehelp = how_to_throw, inventory_image = "mcl_throwing_snowball.png", @@ -430,7 +418,6 @@ minetest.register_craftitem("mcl_throwing:snowball", { -- Egg minetest.register_craftitem("mcl_throwing:egg", { description = S("Egg"), - _tt_help = S("Throwable").."\n"..S("Chance to hatch chicks when broken"), _doc_items_longdesc = S("Eggs can be thrown or launched from a dispenser and breaks on impact. There is a small chance that 1 or even 4 chicks will pop out of the egg."), _doc_items_usagehelp = how_to_throw, inventory_image = "mcl_throwing_egg.png", @@ -443,7 +430,6 @@ minetest.register_craftitem("mcl_throwing:egg", { -- Ender Pearl minetest.register_craftitem("mcl_throwing:ender_pearl", { description = S("Ender Pearl"), - _tt_help = S("Throwable").."\n"..minetest.colorize("#FFFF00", S("Teleports you on impact for cost of 5 HP")), _doc_items_longdesc = S("An ender pearl is an item which can be used for teleportation at the cost of health. It can be thrown and teleport the thrower to its impact location when it hits a solid block or a plant. Each teleportation hurts the user by 5 hit points."), _doc_items_usagehelp = how_to_throw, wield_image = "mcl_throwing_ender_pearl.png", diff --git a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.de.tr b/mods/ITEMS/mcl_throwing/locale/mcl_throwing.de.tr index f896c2ed..61ad254f 100644 --- a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.de.tr +++ b/mods/ITEMS/mcl_throwing/locale/mcl_throwing.de.tr @@ -7,6 +7,3 @@ Egg=Ei Eggs can be thrown or launched from a dispenser and breaks on impact. There is a small chance that 1 or even 4 chicks will pop out of the egg.=Eier können geworfen werden oder aus einem Werfer abgefeuert werden. Sie zerbrechen beim Einschlag. Mit etwas Glück werden aus dem Ei eines oder sogar 4 Küken hinausfallen. Ender Pearl=Enderperle An ender pearl is an item which can be used for teleportation at the cost of health. It can be thrown and teleport the thrower to its impact location when it hits a solid block or a plant. Each teleportation hurts the user by 5 hit points.=Eine Enderperle ist ein Gegenstand, der zur Teleportation benutzt werden kann auf Kosten der Gesundheit. Sie kann geworfen werden und teleportiert den Werfer zur Einschlagsstelle, wenn sie einen Block oder eine Pflanze trifft. Jede Teleportation verletzt den Werfer um 5 Trefferpunkte. -Throwable=Wurfgeschoss -Chance to hatch chicks when broken=Chance, dass beim Aufprall Küken schlüpfen -Teleports you on impact for cost of 5 HP=Teleportiert Sie beim Aufprall, kostet 5 TP diff --git a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.es.tr b/mods/ITEMS/mcl_throwing/locale/mcl_throwing.es.tr deleted file mode 100644 index 35d0bbd6..00000000 --- a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.es.tr +++ /dev/null @@ -1,9 +0,0 @@ -# textdomain: mcl_throwing -@1 used the ender pearl too often.=@1 usó la perla de ender con demasiada frecuencia. -Use the punch key to throw.=Usa la tecla de golpe para lanzar. -Snowball=Bola de nieve -Snowballs can be thrown or launched from a dispenser for fun. Hitting something with a snowball does nothing.=Las bolas de nieve se pueden lanzar o lanzar desde un dispensador por diversión. Golpear algo con una bola de nieve no hace nada. -Egg=Huevo -Eggs can be thrown or launched from a dispenser and breaks on impact. There is a small chance that 1 or even 4 chicks will pop out of the egg.=Los huevos pueden ser arrojados o lanzados desde un dispensador y se rompen al impactar. Hay una pequeña posibilidad de que 1 o incluso 4 pollitos salgan del huevo. -Ender Pearl=Perla de ender -An ender pearl is an item which can be used for teleportation at the cost of health. It can be thrown and teleport the thrower to its impact location when it hits a solid block or a plant. Each teleportation hurts the user by 5 hit points.=Una perla ender es un artículo que se puede usar para teletransportarse a costa de la salud. Se puede lanzar y teletransportar al lanzador a su ubicación de impacto cuando golpea un bloque sólido o una planta. Cada teletransportación perjudica al usuario por 5 puntos de daño. diff --git a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.fr.tr b/mods/ITEMS/mcl_throwing/locale/mcl_throwing.fr.tr deleted file mode 100644 index bd78c031..00000000 --- a/mods/ITEMS/mcl_throwing/locale/mcl_throwing.fr.tr +++ /dev/null @@ -1,12 +0,0 @@ -# textdomain: mcl_throwing -@1 used the ender pearl too often.=@1 a utilisé la perle ender trop souvent. -Use the punch key to throw.=Utilisez la touche frapper pour lancer. -Snowball=Boule de Neige -Snowballs can be thrown or launched from a dispenser for fun. Hitting something with a snowball does nothing.=Les boules de neige peuvent être lancées ou lancées à partir d'un distributeur pour le plaisir. Toucher quelque chose avec une boule de neige ne fait rien. -Egg=Oeuf -Eggs can be thrown or launched from a dispenser and breaks on impact. There is a small chance that 1 or even 4 chicks will pop out of the egg.=Les œufs peuvent être jetés ou lancés à partir d'un distributeur et se cassent à l'impact. Il y a une petite chance que 1 ou même 4 poussins sortent de l'oeuf. -Ender Pearl=Ender Perle -An ender pearl is an item which can be used for teleportation at the cost of health. It can be thrown and teleport the thrower to its impact location when it hits a solid block or a plant. Each teleportation hurts the user by 5 hit points.=Une Perle d'Ender est un objet qui peut être utilisé pour la téléportation au détriment de la santé. Il peut être lancé et téléporter le lanceur vers son emplacement d'impact lorsqu'il frappe un bloc solide ou une plante. Chaque téléportation blesse l'utilisateur de 5 points de vie. -Throwable=Jetable -Chance to hatch chicks when broken=Possibilité d'éclosion de poussins lorsqu'ils sont brisés -Teleports you on impact for cost of 5 HP=Vous téléporte sur l'impact pour un coût de 5 PV diff --git a/mods/ITEMS/mcl_throwing/locale/template.txt b/mods/ITEMS/mcl_throwing/locale/template.txt index 9bb4a581..c6c9313f 100644 --- a/mods/ITEMS/mcl_throwing/locale/template.txt +++ b/mods/ITEMS/mcl_throwing/locale/template.txt @@ -7,6 +7,3 @@ Egg= Eggs can be thrown or launched from a dispenser and breaks on impact. There is a small chance that 1 or even 4 chicks will pop out of the egg.= Ender Pearl= An ender pearl is an item which can be used for teleportation at the cost of health. It can be thrown and teleport the thrower to its impact location when it hits a solid block or a plant. Each teleportation hurts the user by 5 hit points.= -Throwable= -Chance to hatch chicks when broken= -Teleports you on impact for cost of 5 HP= diff --git a/mods/ITEMS/mcl_throwing/textures/mcl_throwing_ender_pearl.png b/mods/ITEMS/mcl_throwing/textures/mcl_throwing_ender_pearl.png index a73be694..61e1786d 100644 Binary files a/mods/ITEMS/mcl_throwing/textures/mcl_throwing_ender_pearl.png and b/mods/ITEMS/mcl_throwing/textures/mcl_throwing_ender_pearl.png differ diff --git a/mods/ITEMS/mcl_throwing/textures/mcl_throwing_snowball.png b/mods/ITEMS/mcl_throwing/textures/mcl_throwing_snowball.png index d1216839..5fcc76f2 100644 Binary files a/mods/ITEMS/mcl_throwing/textures/mcl_throwing_snowball.png and b/mods/ITEMS/mcl_throwing/textures/mcl_throwing_snowball.png differ diff --git a/mods/ITEMS/mcl_tnt/depends.txt b/mods/ITEMS/mcl_tnt/depends.txt index e4c208ea..548dace5 100644 --- a/mods/ITEMS/mcl_tnt/depends.txt +++ b/mods/ITEMS/mcl_tnt/depends.txt @@ -1,4 +1,3 @@ -mcl_explosions mcl_sounds? mcl_mobitems? mcl_death_messages? diff --git a/mods/ITEMS/mcl_tnt/init.lua b/mods/ITEMS/mcl_tnt/init.lua index 90cb76d8..6fa0728f 100644 --- a/mods/ITEMS/mcl_tnt/init.lua +++ b/mods/ITEMS/mcl_tnt/init.lua @@ -1,39 +1,53 @@ local S = minetest.get_translator("mcl_tnt") -local tnt_griefing = minetest.settings:get_bool("mcl_tnt_griefing", true) local mod_death_messages = minetest.get_modpath("mcl_death_messages") local function spawn_tnt(pos, entname) - minetest.sound_play("tnt_ignite", {pos = pos,gain = 1.0,max_hear_distance = 15,}, true) + minetest.sound_play("tnt_ignite", {pos = pos,gain = 1.0,max_hear_distance = 15,}) local tnt = minetest.add_entity(pos, entname) tnt:set_armor_groups({immortal=1}) return tnt end +local function activate_if_tnt(nname, np, tnt_np, tntr) + if nname == "mcl_tnt:tnt" then + local e = spawn_tnt(np, nname) + e:set_velocity({x=(np.x - tnt_np.x)*5+(tntr / 4), y=(np.y - tnt_np.y)*5+(tntr / 3), z=(np.z - tnt_np.z)*5+(tntr / 4)}) + end +end + +local function do_tnt_physics(tnt_np,tntr) + local objs = minetest.get_objects_inside_radius(tnt_np, tntr) + for k, obj in pairs(objs) do + local ent = obj:get_luaentity() + local v = obj:get_velocity() + local p = obj:get_pos() + if ent and ent.name == "mcl_tnt:tnt" then + obj:set_velocity({x=(p.x - tnt_np.x) + (tntr / 2) + v.x, y=(p.y - tnt_np.y) + tntr + v.y, z=(p.z - tnt_np.z) + (tntr / 2) + v.z}) + else + if v ~= nil then + obj:set_velocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z}) + else + local dist = math.max(1, vector.distance(tnt_np, p)) + local damage = (4 / dist) * tntr + if obj:is_player() == true then + if mod_death_messages then + mcl_death_messages.player_damage(obj, S("@1 was caught in an explosion.", obj:get_player_name())) + end + end + obj:set_hp(obj:get_hp() - damage) + end + end + end +end + tnt = {} tnt.ignite = function(pos) minetest.remove_node(pos) spawn_tnt(pos, "mcl_tnt:tnt") - minetest.check_for_falling(pos) + core.check_for_falling(pos) end --- Add smoke particle of entity at pos. --- Intended to be called every step -tnt.smoke_step = function(pos) - minetest.add_particle({ - pos = {x=pos.x,y=pos.y+0.5,z=pos.z}, - velocity = vector.new(math.random() * 0.2 - 0.1, 1.0 + math.random(), math.random() * 0.2 - 0.1), - acceleration = vector.new(0, -0.1, 0), - expirationtime = 0.15 + math.random() * 0.25, - size = 1.0 + math.random(), - collisiondetection = false, - texture = "tnt_smoke.png" - }) -end - -tnt.BOOMTIMER = 4 -tnt.BLINKTIMER = 0.25 - local TNT_RANGE = 3 local sounds @@ -47,14 +61,6 @@ if minetest.get_modpath("mesecons") then rules = mesecon.rules.alldirs, }} end - -local longdesc -if tnt_griefing then - longdesc = S("An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.", TNT_RANGE) -else - longdesc = S("An explosive device. When it explodes, it will hurt living beings. TNT has an explosion radius of @1. TNT can be ignited by tools, explosions, fire, lava and redstone signals.", TNT_RANGE) -end - minetest.register_node("mcl_tnt:tnt", { tiles = {"default_tnt_top.png", "default_tnt_bottom.png", "default_tnt_side.png", "default_tnt_side.png", @@ -64,24 +70,14 @@ minetest.register_node("mcl_tnt:tnt", { description = S("TNT"), paramtype = "light", sunlight_propagates = true, - _tt_help = S("Ignited by tools, explosions, fire, lava, redstone power").."\n"..S("Explosion radius: @1", tostring(TNT_RANGE)), - _doc_items_longdesc = longdesc, + _doc_items_longdesc = S("An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.", TNT_RANGE), _doc_items_usagehelp = S("Place the TNT and ignite it with one of the methods above. Quickly get in safe distance. The TNT will start to be affected by gravity and explodes in 4 seconds."), - groups = { dig_immediate = 3, tnt = 1, enderman_takable=1, flammable=-1 }, + groups = { dig_immediate = 3, tnt = 1, enderman_takable=1 }, mesecons = tnt_mesecons, - on_blast = function(pos) - local e = spawn_tnt(pos, "mcl_tnt:tnt") - e:get_luaentity().timer = tnt.BOOMTIMER - (0.5 + math.random()) - return true - end, _on_ignite = function(player, pointed_thing) tnt.ignite(pointed_thing.under) return true end, - _on_burn = function(pos) - tnt.ignite(pos) - return true - end, _on_dispense = function(stack, pos, droppos, dropnode, dropdir) -- Place and ignite TNT if minetest.registered_nodes[dropnode.name].buildable_to then @@ -104,7 +100,6 @@ local TNT = { -- Initial value for our timer timer = 0, blinktimer = 0, - tnt_knockback = true, blinkstatus = true,} function TNT:on_activate(staticdata) @@ -167,11 +162,19 @@ end function TNT:on_step(dtime) local pos = self.object:get_pos() - tnt.smoke_step(pos) + minetest.add_particle({ + pos = {x=pos.x,y=pos.y+0.5,z=pos.z}, + velocity = vector.new(math.random() * 0.2 - 0.1, 1.0 + math.random(), math.random() * 0.2 - 0.1), + acceleration = vector.new(0, -0.1, 0), + expirationtime = 0.15 + math.random() * 0.25, + size = 1.0 + math.random(), + collisiondetection = false, + texture = "tnt_smoke.png" + }) self.timer = self.timer + dtime self.blinktimer = self.blinktimer + dtime - if self.blinktimer > tnt.BLINKTIMER then - self.blinktimer = self.blinktimer - tnt.BLINKTIMER + if self.blinktimer > 0.25 then + self.blinktimer = self.blinktimer - 0.25 if self.blinkstatus then self.object:set_texture_mod("") else @@ -179,12 +182,65 @@ function TNT:on_step(dtime) end self.blinkstatus = not self.blinkstatus end - if self.timer > tnt.BOOMTIMER then - mcl_explosions.explode(self.object:get_pos(), 4, { drop_chance = 1.0 }, self.object) + if self.timer > 4 then + tnt.boom(self.object:get_pos()) self.object:remove() end end +tnt.boom = function(pos, info) + if not info then info = {} end + local range = info.radius or TNT_RANGE + local damage_range = info.damage_radius or TNT_RANGE + + pos.x = math.floor(pos.x+0.5) + pos.y = math.floor(pos.y+0.5) + pos.z = math.floor(pos.z+0.5) + do_tnt_physics(pos, range) + local meta = minetest.get_meta(pos) + local sound + if not info.sound then + sound = "tnt_explode" + else + sound = info.sound + end + minetest.sound_play(sound, {pos = pos,gain = 1.0,max_hear_distance = 16,}) + local node = minetest.get_node(pos) + if minetest.get_item_group("water") == 1 or minetest.get_item_group("lava") == 1 then + -- Cancel the Explosion + return + end + for x=-range,range do + for y=-range,range do + for z=-range,range do + if x*x+y*y+z*z <= range * range + range then + local np={x=pos.x+x,y=pos.y+y,z=pos.z+z} + local n = minetest.get_node(np) + local def = minetest.registered_nodes[n.name] + -- Simple blast resistance check (for now). This keeps the important blocks like bedrock, command block, etc. intact. + -- TODO: Implement the real blast resistance algorithm + if def and n.name ~= "air" and n.name ~= "ignore" and (def._mcl_blast_resistance == nil or def._mcl_blast_resistance < 1000) then + activate_if_tnt(n.name, np, pos, 3) + minetest.remove_node(np) + core.check_for_falling(np) + if n.name ~= "mcl_tnt:tnt" and math.random() > 0.9 then + local drop = minetest.get_node_drops(n.name, "") + for _,item in ipairs(drop) do + if type(item) == "string" then + if math.random(1,100) > 40 then + local obj = minetest.add_item(np, item) + end + end + end + end + end + end + end + end + add_effects(pos, range, {}) + end +end + minetest.register_entity("mcl_tnt:tnt", TNT) if minetest.get_modpath("mcl_mobitems") then diff --git a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.de.tr b/mods/ITEMS/mcl_tnt/locale/mcl_tnt.de.tr index 71c99cde..d2378a8a 100644 --- a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.de.tr +++ b/mods/ITEMS/mcl_tnt/locale/mcl_tnt.de.tr @@ -2,7 +2,4 @@ @1 was caught in an explosion.=@1 wurde Opfer einer Explosion. TNT=TNT An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.=Ein Sprengstoff. Wenn er explodiert, wird er Lebewesen verletzen und Blöcke in der Nähe zerstören. TNT hat einen Explosionsradius von @1. Mit einer geringen Wahrscheinlichkeit werden Blöcke als Gegenstand abfallen (als ob sie abgebaut worden wären), anstatt völlig zerstört zu werden. TNT kann mit Werkzeugen, Explosionen, Feuer, Lava und Redstone-Signalen angezündet werden. -An explosive device. When it explodes, it will hurt living beings. TNT has an explosion radius of @1. TNT can be ignited by tools, explosions, fire, lava and redstone signals.=Ein Sprengstoff. Wenn er explodiert, wird er Lebewesen verletzen. TNT hat einen Explosionsradius von @1. TNT kann mit Werkzeugen, Explosionen, Feuer, Lava und Redstone-Signalen angezündet werden. Place the TNT and ignite it with one of the methods above. Quickly get in safe distance. The TNT will start to be affected by gravity and explodes in 4 seconds.=Platizeren sie das TNT und zünden Sie es mit einer der obigen Methoden an. Begeben Sie sich rasch in eine sichere Entfernung. Das TNT wird anfangen, von der Schwerkraft beeinflusst zu sein und explodiert in 4 Sekunden. -Ignited by tools, explosions, fire, lava, redstone power=Anzündbar von Werkzeugen, Explosionen, Feuer, Redstoneeergie -Explosion radius: @1=Explosionsradius: @1 diff --git a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.es.tr b/mods/ITEMS/mcl_tnt/locale/mcl_tnt.es.tr deleted file mode 100644 index 81d30dcd..00000000 --- a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.es.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mcl_tnt -@1 was caught in an explosion.=@1 wurde Opfer einer Explosion. -TNT=Dinamita -An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.=Un artefacto explosivo. Cuando explota, dañará a los seres vivos y destruirá los bloques a su alrededor. La dinamita tiene un radio de explosión de @1. Con una pequeña posibilidad, los bloques pueden caer como un elemento (como si se extrajera) en lugar de ser destruidos. La dinamita puede encenderse con herramientas, explosiones, fuego, lava y señales de redstone. -Place the TNT and ignite it with one of the methods above. Quickly get in safe distance. The TNT will start to be affected by gravity and explodes in 4 seconds.=Coloque el dinamita y enciéndalo con uno de los métodos anteriores. Aléjese rápidamente a una distancia segura. La dinamita comenzará a verse afectada por la gravedad y explotará en 4 segundos. diff --git a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.fr.tr b/mods/ITEMS/mcl_tnt/locale/mcl_tnt.fr.tr deleted file mode 100644 index b5cba53b..00000000 --- a/mods/ITEMS/mcl_tnt/locale/mcl_tnt.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_tnt -@1 was caught in an explosion.=@1 a été pris dans une explosion. -TNT=TNT -An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.=Un engin explosif. Quand il explose, il blessera les êtres vivants et détruira les blocs autour de lui. La TNT a un rayon d'explosion de @1. Avec une petite chance, les blocs peuvent tomber comme un objet (comme s'ils étaient minés) plutôt que d'être détruits. La TNT peut être enflammée par des outils, des explosions, des feux d'incendie, de la lave et de la redstone. -An explosive device. When it explodes, it will hurt living beings. TNT has an explosion radius of @1. TNT can be ignited by tools, explosions, fire, lava and redstone signals.=Un engin explosif. Quand elle explose, elle blessera les êtres vivants. La TNT a un rayon d'explosion de @1. La TNT peut être enflammée par des outils, des explosions, des feux d'incendie, de la lave et de la redstone. -Place the TNT and ignite it with one of the methods above. Quickly get in safe distance. The TNT will start to be affected by gravity and explodes in 4 seconds.=Placez la TNT et allumez-la avec l'une des méthodes ci-dessus. Déplacez-vous rapidement à une distance de sécurité. La TNT commencera à être affecté par la gravité et explose en 4 secondes. -Ignited by tools, explosions, fire, lava, redstone power=Enflammé par les outils, les explosions, le feu, la lave, la redstone -Explosion radius: @1=Rayon d'explosion: @1 diff --git a/mods/ITEMS/mcl_tnt/locale/template.txt b/mods/ITEMS/mcl_tnt/locale/template.txt index 0361b76b..fc3ae612 100644 --- a/mods/ITEMS/mcl_tnt/locale/template.txt +++ b/mods/ITEMS/mcl_tnt/locale/template.txt @@ -1,8 +1,5 @@ # textdomain: mcl_tnt @1 was caught in an explosion.= TNT= -An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals.= -An explosive device. When it explodes, it will hurt living beings. TNT has an explosion radius of @1. TNT can be ignited by tools, explosions, fire, lava and redstone signals.= +An explosive device. When it explodes, it will hurt living beings and destroy blocks around it. TNT has an explosion radius of @1. With a small chance, blocks may drop as an item (as if being mined) rather than being destroyed. TNT can be ignited by tools, explosions, fire, lava and redstone signals. Place the TNT and ignite it with one of the methods above. Quickly get in safe distance. The TNT will start to be affected by gravity and explodes in 4 seconds.= -Ignited by tools, explosions, fire, lava, redstone power= -Explosion radius: @1= diff --git a/mods/ITEMS/mcl_tnt/textures/default_tnt_bottom.png b/mods/ITEMS/mcl_tnt/textures/default_tnt_bottom.png index 4a097843..df411b68 100644 Binary files a/mods/ITEMS/mcl_tnt/textures/default_tnt_bottom.png and b/mods/ITEMS/mcl_tnt/textures/default_tnt_bottom.png differ diff --git a/mods/ITEMS/mcl_tnt/textures/default_tnt_side.png b/mods/ITEMS/mcl_tnt/textures/default_tnt_side.png index e5aae141..89fe3e09 100644 Binary files a/mods/ITEMS/mcl_tnt/textures/default_tnt_side.png and b/mods/ITEMS/mcl_tnt/textures/default_tnt_side.png differ diff --git a/mods/ITEMS/mcl_tnt/textures/default_tnt_top.png b/mods/ITEMS/mcl_tnt/textures/default_tnt_top.png index b55ad3d0..eb52ab5a 100644 Binary files a/mods/ITEMS/mcl_tnt/textures/default_tnt_top.png and b/mods/ITEMS/mcl_tnt/textures/default_tnt_top.png differ diff --git a/mods/ITEMS/mcl_tnt/textures/mcl_tnt_blink.png b/mods/ITEMS/mcl_tnt/textures/mcl_tnt_blink.png index c0ba3641..b6739757 100644 Binary files a/mods/ITEMS/mcl_tnt/textures/mcl_tnt_blink.png and b/mods/ITEMS/mcl_tnt/textures/mcl_tnt_blink.png differ diff --git a/mods/ITEMS/mcl_tnt/textures/tnt_smoke.png b/mods/ITEMS/mcl_tnt/textures/tnt_smoke.png index cbb93730..6551db5b 100644 Binary files a/mods/ITEMS/mcl_tnt/textures/tnt_smoke.png and b/mods/ITEMS/mcl_tnt/textures/tnt_smoke.png differ diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index ccca197e..3078d7f5 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -13,19 +13,12 @@ local S = minetest.get_translator("mcl_tools") - 3: Stone - 4: Iron - 5: Diamond - -dig_speed_class group: -- 1: Painfully slow -- 2: Very slow -- 3: Slow -- 4: Fast -- 5: Very fast -- 6: Extremely fast -- 7: Instantaneous ]] +-- TODO: Add legacy support for Minetest Game groups like crumbly, snappy, cracky, etc. for all tools + -- The hand -local groupcaps, hand_range, hand_groups +local groupcaps, hand_range if minetest.settings:get_bool("creative_mode") then -- Instant breaking in creative mode groupcaps = { @@ -36,13 +29,11 @@ if minetest.settings:get_bool("creative_mode") then groupcaps[k] = { times = v, uses = 0 } end hand_range = 10 - hand_groups = { dig_speed_class = 7 } else groupcaps = { handy_dig = {times=mcl_autogroup.digtimes.handy_dig, uses=0}, } hand_range = 4 - hand_groups = { dig_speed_class = 1 } end minetest.register_item(":", { type = "none", @@ -59,8 +50,7 @@ minetest.register_item(":", { max_drop_level = 0, groupcaps = groupcaps, damage_groups = {fleshy=1}, - }, - groups = hand_groups, + } }) -- Help texts @@ -72,16 +62,13 @@ local shovel_use = S("To turn a grass block into a grass path, hold the shovel i local shears_longdesc = S("Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting.") local shears_use = S("To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks.") -local wield_scale = { x = 1.8, y = 1.8, z = 1 } - -- Picks minetest.register_tool("mcl_tools:pick_wood", { description = S("Wooden Pickaxe"), _doc_items_longdesc = pickaxe_longdesc, _doc_items_hidden = false, inventory_image = "default_tool_woodpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=2, }, + groups = { tool=1, pickaxe=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -90,7 +77,6 @@ minetest.register_tool("mcl_tools:pick_wood", { pickaxey_dig_wood = {times=mcl_autogroup.digtimes.pickaxey_dig_wood, uses=60, maxlevel=0}, }, damage_groups = {fleshy=2}, - punch_attack_uses = 30, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "group:wood", @@ -99,8 +85,7 @@ minetest.register_tool("mcl_tools:pick_stone", { description = S("Stone Pickaxe"), _doc_items_longdesc = pickaxe_longdesc, inventory_image = "default_tool_stonepick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=3, }, + groups = { tool=1, pickaxe=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -109,7 +94,6 @@ minetest.register_tool("mcl_tools:pick_stone", { pickaxey_dig_stone = {times=mcl_autogroup.digtimes.pickaxey_dig_stone, uses=132, maxlevel=0}, }, damage_groups = {fleshy=3}, - punch_attack_uses = 66, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:cobble", @@ -118,8 +102,7 @@ minetest.register_tool("mcl_tools:pick_iron", { description = S("Iron Pickaxe"), _doc_items_longdesc = pickaxe_longdesc, inventory_image = "default_tool_steelpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=4, }, + groups = { tool=1, pickaxe=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -128,7 +111,6 @@ minetest.register_tool("mcl_tools:pick_iron", { pickaxey_dig_iron = {times=mcl_autogroup.digtimes.pickaxey_dig_iron , uses=251, maxlevel=0}, }, damage_groups = {fleshy=4}, - punch_attack_uses = 126, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:iron_ingot", @@ -137,8 +119,7 @@ minetest.register_tool("mcl_tools:pick_gold", { description = S("Golden Pickaxe"), _doc_items_longdesc = pickaxe_longdesc, inventory_image = "default_tool_goldpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=6, }, + groups = { tool=1, pickaxe=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -147,7 +128,6 @@ minetest.register_tool("mcl_tools:pick_gold", { pickaxey_dig_gold = {times=mcl_autogroup.digtimes.pickaxey_dig_gold , uses=33, maxlevel=0}, }, damage_groups = {fleshy=2}, - punch_attack_uses = 17, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:gold_ingot", @@ -156,8 +136,7 @@ minetest.register_tool("mcl_tools:pick_diamond", { description = S("Diamond Pickaxe"), _doc_items_longdesc = pickaxe_longdesc, inventory_image = "default_tool_diamondpick.png", - wield_scale = wield_scale, - groups = { tool=1, pickaxe=1, dig_speed_class=5, }, + groups = { tool=1, pickaxe=1 }, tool_capabilities = { -- 1/1.2 full_punch_interval = 0.83333333, @@ -166,7 +145,6 @@ minetest.register_tool("mcl_tools:pick_diamond", { pickaxey_dig_diamond = {times=mcl_autogroup.digtimes.pickaxey_dig_diamond, uses=1562, maxlevel=0}, }, damage_groups = {fleshy=5}, - punch_attack_uses = 781, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:diamond", @@ -224,7 +202,7 @@ local make_grass_path = function(itemstack, placer, pointed_thing) local wear = math.ceil(65535 / uses) itemstack:add_wear(wear) end - minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}, true) + minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}) minetest.swap_node(pointed_thing.under, {name="mcl_core:grass_path"}) end end @@ -258,7 +236,7 @@ if minetest.get_modpath("mcl_farming") then local wear = math.ceil(65535 / uses) itemstack:add_wear(wear) end - minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = pointed_thing.above}, true) + minetest.sound_play({name="default_grass_footstep", gain=1}, {pos = above}) local dir = vector.subtract(pointed_thing.under, pointed_thing.above) local param2 = minetest.dir_to_facedir(dir) minetest.swap_node(pointed_thing.under, {name="mcl_farming:pumpkin_face", param2 = param2}) @@ -276,8 +254,7 @@ minetest.register_tool("mcl_tools:shovel_wood", { _doc_items_hidden = false, inventory_image = "default_tool_woodshovel.png", wield_image = "default_tool_woodshovel.png^[transformR90", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=2, }, + groups = { tool=1, shovel=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=1, @@ -285,7 +262,6 @@ minetest.register_tool("mcl_tools:shovel_wood", { shovely_dig_wood = {times=mcl_autogroup.digtimes.shovely_dig_wood, uses=60, maxlevel=0}, }, damage_groups = {fleshy=2}, - punch_attack_uses = 30, }, on_place = make_grass_path, sound = { breaks = "default_tool_breaks" }, @@ -297,8 +273,7 @@ minetest.register_tool("mcl_tools:shovel_stone", { _doc_items_usagehelp = shovel_use, inventory_image = "default_tool_stoneshovel.png", wield_image = "default_tool_stoneshovel.png^[transformR90", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=3, }, + groups = { tool=1, shovel=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=3, @@ -306,7 +281,6 @@ minetest.register_tool("mcl_tools:shovel_stone", { shovely_dig_stone = {times=mcl_autogroup.digtimes.shovely_dig_stone, uses=132, maxlevel=0}, }, damage_groups = {fleshy=3}, - punch_attack_uses = 66, }, on_place = make_grass_path, sound = { breaks = "default_tool_breaks" }, @@ -318,8 +292,7 @@ minetest.register_tool("mcl_tools:shovel_iron", { _doc_items_usagehelp = shovel_use, inventory_image = "default_tool_steelshovel.png", wield_image = "default_tool_steelshovel.png^[transformR90", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=4, }, + groups = { tool=1, shovel=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=4, @@ -327,7 +300,6 @@ minetest.register_tool("mcl_tools:shovel_iron", { shovely_dig_iron = {times=mcl_autogroup.digtimes.shovely_dig_iron, uses=251, maxlevel=0}, }, damage_groups = {fleshy=4}, - punch_attack_uses = 126, }, on_place = make_grass_path, sound = { breaks = "default_tool_breaks" }, @@ -339,8 +311,7 @@ minetest.register_tool("mcl_tools:shovel_gold", { _doc_items_usagehelp = shovel_use, inventory_image = "default_tool_goldshovel.png", wield_image = "default_tool_goldshovel.png^[transformR90", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=6, }, + groups = { tool=1, shovel=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=2, @@ -348,7 +319,6 @@ minetest.register_tool("mcl_tools:shovel_gold", { shovely_dig_gold = {times=mcl_autogroup.digtimes.shovely_dig_gold, uses=33, maxlevel=0}, }, damage_groups = {fleshy=2}, - punch_attack_uses = 17, }, on_place = make_grass_path, sound = { breaks = "default_tool_breaks" }, @@ -360,8 +330,7 @@ minetest.register_tool("mcl_tools:shovel_diamond", { _doc_items_usagehelp = shovel_use, inventory_image = "default_tool_diamondshovel.png", wield_image = "default_tool_diamondshovel.png^[transformR90", - wield_scale = wield_scale, - groups = { tool=1, shovel=1, dig_speed_class=5, }, + groups = { tool=1, shovel=1 }, tool_capabilities = { full_punch_interval = 1, max_drop_level=5, @@ -369,7 +338,6 @@ minetest.register_tool("mcl_tools:shovel_diamond", { shovely_dig_diamond = {times=mcl_autogroup.digtimes.shovely_dig_diamond, uses=1562, maxlevel=0}, }, damage_groups = {fleshy=5}, - punch_attack_uses = 781, }, on_place = make_grass_path, sound = { breaks = "default_tool_breaks" }, @@ -382,8 +350,7 @@ minetest.register_tool("mcl_tools:axe_wood", { _doc_items_longdesc = axe_longdesc, _doc_items_hidden = false, inventory_image = "default_tool_woodaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=2, }, + groups = { tool=1, axe=1 }, tool_capabilities = { full_punch_interval = 1.25, max_drop_level=1, @@ -391,7 +358,6 @@ minetest.register_tool("mcl_tools:axe_wood", { axey_dig_wood = {times=mcl_autogroup.digtimes.axey_dig_wood, uses=60, maxlevel=0}, }, damage_groups = {fleshy=7}, - punch_attack_uses = 30, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "group:wood", @@ -400,8 +366,7 @@ minetest.register_tool("mcl_tools:axe_stone", { description = S("Stone Axe"), _doc_items_longdesc = axe_longdesc, inventory_image = "default_tool_stoneaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=3, }, + groups = { tool=1, axe=1 }, tool_capabilities = { full_punch_interval = 1.25, max_drop_level=3, @@ -409,7 +374,6 @@ minetest.register_tool("mcl_tools:axe_stone", { axey_dig_stone = {times=mcl_autogroup.digtimes.axey_dig_stone, uses=132, maxlevel=0}, }, damage_groups = {fleshy=9}, - punch_attack_uses = 66, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:cobble", @@ -418,8 +382,7 @@ minetest.register_tool("mcl_tools:axe_iron", { description = S("Iron Axe"), _doc_items_longdesc = axe_longdesc, inventory_image = "default_tool_steelaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=4, }, + groups = { tool=1, axe=1 }, tool_capabilities = { -- 1/0.9 full_punch_interval = 1.11111111, @@ -428,7 +391,6 @@ minetest.register_tool("mcl_tools:axe_iron", { axey_dig_iron = {times=mcl_autogroup.digtimes.axey_dig_iron, uses=251, maxlevel=0}, }, damage_groups = {fleshy=9}, - punch_attack_uses = 126, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:iron_ingot", @@ -437,8 +399,7 @@ minetest.register_tool("mcl_tools:axe_gold", { description = S("Golden Axe"), _doc_items_longdesc = axe_longdesc, inventory_image = "default_tool_goldaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=6, }, + groups = { tool=1, axe=1 }, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=2, @@ -446,7 +407,6 @@ minetest.register_tool("mcl_tools:axe_gold", { axey_dig_gold= {times=mcl_autogroup.digtimes.axey_dig_gold, uses=33, maxlevel=0}, }, damage_groups = {fleshy=7}, - punch_attack_uses = 17, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:gold_ingot", @@ -455,8 +415,7 @@ minetest.register_tool("mcl_tools:axe_diamond", { description = S("Diamond Axe"), _doc_items_longdesc = axe_longdesc, inventory_image = "default_tool_diamondaxe.png", - wield_scale = wield_scale, - groups = { tool=1, axe=1, dig_speed_class=5, }, + groups = { tool=1, axe=1 }, tool_capabilities = { full_punch_interval = 1.0, max_drop_level=5, @@ -464,7 +423,6 @@ minetest.register_tool("mcl_tools:axe_diamond", { axey_dig_diamond = {times=mcl_autogroup.digtimes.axey_dig_diamond, uses=1562, maxlevel=0}, }, damage_groups = {fleshy=9}, - punch_attack_uses = 781, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:diamond", @@ -476,8 +434,7 @@ minetest.register_tool("mcl_tools:sword_wood", { _doc_items_longdesc = sword_longdesc, _doc_items_hidden = false, inventory_image = "default_tool_woodsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=2, }, + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=1, @@ -486,7 +443,6 @@ minetest.register_tool("mcl_tools:sword_wood", { swordy_cobweb_dig = {times=mcl_autogroup.digtimes.swordy_cobweb_dig , uses=60, maxlevel=0}, }, damage_groups = {fleshy=4}, - punch_attack_uses = 60, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "group:wood", @@ -495,8 +451,7 @@ minetest.register_tool("mcl_tools:sword_stone", { description = S("Stone Sword"), _doc_items_longdesc = sword_longdesc, inventory_image = "default_tool_stonesword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=3, }, + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=3, @@ -505,7 +460,6 @@ minetest.register_tool("mcl_tools:sword_stone", { swordy_cobweb_dig = {times=mcl_autogroup.digtimes.swordy_cobweb_dig , uses=132, maxlevel=0}, }, damage_groups = {fleshy=5}, - punch_attack_uses = 132, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:cobble", @@ -514,8 +468,7 @@ minetest.register_tool("mcl_tools:sword_iron", { description = S("Iron Sword"), _doc_items_longdesc = sword_longdesc, inventory_image = "default_tool_steelsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=4, }, + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=4, @@ -524,7 +477,6 @@ minetest.register_tool("mcl_tools:sword_iron", { swordy_cobweb_dig = {times=mcl_autogroup.digtimes.swordy_cobweb_dig , uses=251, maxlevel=0}, }, damage_groups = {fleshy=6}, - punch_attack_uses = 251, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:iron_ingot", @@ -533,8 +485,7 @@ minetest.register_tool("mcl_tools:sword_gold", { description = S("Golden Sword"), _doc_items_longdesc = sword_longdesc, inventory_image = "default_tool_goldsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=6, }, + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=2, @@ -543,7 +494,6 @@ minetest.register_tool("mcl_tools:sword_gold", { swordy_cobweb_dig = {times=mcl_autogroup.digtimes.swordy_cobweb_dig, uses=33, maxlevel=0}, }, damage_groups = {fleshy=4}, - punch_attack_uses = 33, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:gold_ingot", @@ -552,8 +502,7 @@ minetest.register_tool("mcl_tools:sword_diamond", { description = S("Diamond Sword"), _doc_items_longdesc = sword_longdesc, inventory_image = "default_tool_diamondsword.png", - wield_scale = wield_scale, - groups = { weapon=1, sword=1, dig_speed_class=5, }, + groups = { weapon=1 }, tool_capabilities = { full_punch_interval = 0.625, max_drop_level=5, @@ -562,7 +511,6 @@ minetest.register_tool("mcl_tools:sword_diamond", { swordy_cobweb_dig = {times=mcl_autogroup.digtimes.swordy_cobweb_dig, uses=1562, maxlevel=0}, }, damage_groups = {fleshy=7}, - punch_attack_uses = 1562, }, sound = { breaks = "default_tool_breaks" }, _repair_material = "mcl_core:diamond", @@ -576,7 +524,7 @@ minetest.register_tool("mcl_tools:shears", { inventory_image = "default_tool_shears.png", wield_image = "default_tool_shears.png", stack_max = 1, - groups = { tool=1, shears=1, dig_speed_class=4, }, + groups = { tool=1, shears=1 }, tool_capabilities = { full_punch_interval = 0.5, max_drop_level=1, diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr deleted file mode 100644 index 40b1d709..00000000 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.es.tr +++ /dev/null @@ -1,32 +0,0 @@ -# textdomain: mcl_tools -You use your bare hand whenever you are not wielding any item. With your hand you can mine most blocks, but this is the slowest method and only the weakest blocks will yield their useful drop. The hand also deals minor damage by punching. Using the hand is often a last resort, as proper mining tools and weapons are much better.=Utiliza tu mano desnuda siempre que no estés empuñando ningún objeto. Con tu mano puedes extraer la mayoría de los bloques, pero este es el método más lento y solo los bloques más débiles producirán su caída útil. La mano también causa daños menores al golpear. El uso de la mano es a menudo un último recurso, ya que las herramientas y armas de minería adecuadas son mucho mejores. -When you are wielding an item which is not a mining tool or a weapon, it will behave as if it were the hand when you start mining or punching.=Cuando empuñas un objeto que no es una herramienta de minería o un arma, se comportará como si fuera la mano cuando comiences a minar o golpear. -In Creative Mode, the hand is able to break all blocks instantly.=En el modo creativo, la mano puede romper todos los bloques al instante. -Pickaxes are mining tools to mine hard blocks, such as stone. A pickaxe can also be used as weapon, but it is rather inefficient.=Los picos son herramientas de minería para extraer bloques duros, como la piedra. Un pico también se puede usar como arma, pero es bastante ineficiente. -An axe is your tool of choice to cut down trees, wood-based blocks and other blocks. Axes deal a lot of damage as well, but they are rather slow.=Un hacha es su herramienta de elección para cortar árboles, bloques a base de madera y otros bloques. Las hachas también causan mucho daño, pero son bastante lentas. -Swords are great in melee combat, as they are fast, deal high damage and can endure countless battles. Swords can also be used to cut down a few particular blocks, such as cobwebs.=Las espadas son excelentes en el combate cuerpo a cuerpo, ya que son rápidas, infligen mucho daño y pueden soportar innumerables batallas. Las espadas también se pueden usar para cortar algunos bloques en particular, como telarañas. -Shovels are tools for digging coarse blocks, such as dirt, sand and gravel. They can also be used to turn grass blocks to grass paths. Shovels can be used as weapons, but they are very weak.=Las palas son herramientas para cavar bloques gruesos, como tierra, arena y grava. También se pueden usar para convertir bloques de hierba en senderos de hierba. Las palas pueden usarse como armas, pero son muy débiles. -To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the top or side of a grass block. This only works when there's air above the grass block.=Para convertir un bloque de hierba en un camino de hierba, sostenga la pala con la mano y luego use (clic derecho) en la parte superior o lateral de un bloque de hierba. Esto solo funciona cuando hay aire sobre el bloque de hierba. -Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting.=Las tijeras son herramientas para esquilar ovejas y extraer algunos tipos de bloques. Las tijeras son una herramienta de minería especial y se pueden usar para obtener el artículo original de hierba, hojas y bloques similares que requieren corte. -To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks.=Para esquilar ovejas o tallar calabazas sin rostro, use la tecla "colocar" en ellas. Las caras solo se pueden tallar al lado de las calabazas sin rostro. La minería funciona como de costumbre, pero las gotas son diferentes para algunos bloques. -Wooden Pickaxe=Pico de madera -Stone Pickaxe=Pico de piedra -Iron Pickaxe=Pico de hierro -Golden Pickaxe=Pico de oro -Diamond Pickaxe=Pico de diamante -Wooden Shovel=Pala de madera -Stone Shovel=Pala de piedra -Iron Shovel=Pala de hierro -Golden Shovel=Pala de oro -Diamond Shovel=Pala de diamante -Wooden Axe=Hacha de madera -Stone Axe=Hacha de piedra -Iron Axe=Hacha de hierro -Golden Axe=Hacha de oro -Diamond Axe=Hacha de diamante -Wooden Sword=Espada de madera -Stone Sword=Espada de piedra -Iron Sword=Espada de hierro -Golden Sword=Espada de oro -Diamond Sword=Espada de diamante -Shears=Tijeras diff --git a/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr b/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr deleted file mode 100644 index 02cd7f2b..00000000 --- a/mods/ITEMS/mcl_tools/locale/mcl_tools.fr.tr +++ /dev/null @@ -1,32 +0,0 @@ -# textdomain: mcl_tools -You use your bare hand whenever you are not wielding any item. With your hand you can mine most blocks, but this is the slowest method and only the weakest blocks will yield their useful drop. The hand also deals minor damage by punching. Using the hand is often a last resort, as proper mining tools and weapons are much better.=Vous utilisez votre main nue lorsque vous ne portez aucun objet. Avec votre main, vous pouvez miner la plupart des blocs, mais c'est la méthode la plus lente et seuls les blocs les plus faibles produiront un élément utile. La main inflige également des dégâts mineurs en frappant. L'utilisation de la main est souvent un dernier recours, car les outils et les armes d'extraction appropriés sont bien meilleurs. -When you are wielding an item which is not a mining tool or a weapon, it will behave as if it were the hand when you start mining or punching.=Lorsque vous maniez un objet qui n'est ni un outil d'extraction ni une arme, il se comportera comme s'il s'agissait de la main lorsque vous commencez à extraire ou à frapper. -In Creative Mode, the hand is able to break all blocks instantly.=En mode créatif, la main est capable de briser tous les blocs instantanément. -Pickaxes are mining tools to mine hard blocks, such as stone. A pickaxe can also be used as weapon, but it is rather inefficient.=Les pioches sont des outils d'extraction pour extraire des blocs durs, comme la pierre. Une pioche peut également être utilisée comme arme, mais elle est plutôt inefficace. -An axe is your tool of choice to cut down trees, wood-based blocks and other blocks. Axes deal a lot of damage as well, but they are rather slow.=Une hache est votre outil de choix pour abattre des arbres, des blocs à base de bois et d'autres blocs. Les haches infligent également beaucoup de dégâts, mais elles sont plutôt lentes. -Swords are great in melee combat, as they are fast, deal high damage and can endure countless battles. Swords can also be used to cut down a few particular blocks, such as cobwebs.=Les épées sont excellentes en combat de mêlée, car elles sont rapides, infligent des dégâts élevés et peuvent supporter d'innombrables batailles. Les épées peuvent également être utilisées pour couper quelques blocs particuliers, tels que les toiles d'araignées. -Shovels are tools for digging coarse blocks, such as dirt, sand and gravel. They can also be used to turn grass blocks to grass paths. Shovels can be used as weapons, but they are very weak.=Les pelles sont des outils pour creuser des blocs grossiers, tels que la terre, le sable et le gravier. Ils peuvent également être utilisés pour transformer des blocs d'herbe en chemins de terre. Les pelles peuvent être utilisées comme armes, mais elles sont très faibles. -To turn a grass block into a grass path, hold the shovel in your hand, then use (rightclick) the top or side of a grass block. This only works when there's air above the grass block.=Pour transformer un bloc d'herbe en chemin de terre, tenez la pelle dans votre main, puis utilisez (clic droit) le haut ou le côté d'un bloc d'herbe. Cela ne fonctionne que lorsqu'il y a de l'air au-dessus du bloc d'herbe. -Shears are tools to shear sheep and to mine a few block types. Shears are a special mining tool and can be used to obtain the original item from grass, leaves and similar blocks that require cutting.=Les cisailles sont des outils pour tondre les moutons et pour extraire quelques types de blocs. Les cisailles sont un outil d'extraction spécial et peuvent être utilisées pour obtenir l'élément d'origine à partir d'herbe, de feuilles et de blocs similaires qui nécessitent une coupe. -To shear sheep or carve faceless pumpkins, use the “place” key on them. Faces can only be carved at the side of faceless pumpkins. Mining works as usual, but the drops are different for a few blocks.=Pour tondre des moutons ou tailler des citrouilles sans visage, utilisez la touche "placer" dessus. Les visages ne peuvent être sculptés que sur le côté des citrouilles sans visage. L'exploitation minière fonctionne comme d'habitude, mais les éléments sont différentes pour quelques blocs. -Wooden Pickaxe=Pioche en Bois -Stone Pickaxe=Pioche en Pierre -Iron Pickaxe=Pioche en Fer -Golden Pickaxe=Pioche en Or -Diamond Pickaxe=Pioche en Diamant -Wooden Shovel=Pelle en Bois -Stone Shovel=Pelle en Pierre -Iron Shovel=Pelle en Fer -Golden Shovel=Pelle en Or -Diamond Shovel=Pelle en Diamant -Wooden Axe=Hache en Bois -Stone Axe=Hache en Pierre -Iron Axe=Hache en Fer -Golden Axe=Hache en Or -Diamond Axe=Hache en Diamant -Wooden Sword=Épée en Bois -Stone Sword=Épée en Pierre -Iron Sword=Épée en Fer -Golden Sword=Épée en Or -Diamond Sword=Épée en Diamant -Shears=Cisailles diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png index 9763dcb2..6cc56111 100644 Binary files a/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png and b/mods/ITEMS/mcl_tools/textures/default_tool_diamondshovel.png differ diff --git a/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png b/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png index 90505056..e1855b5a 100644 Binary files a/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png and b/mods/ITEMS/mcl_tools/textures/default_tool_woodshovel.png differ diff --git a/mods/ITEMS/mcl_torches/init.lua b/mods/ITEMS/mcl_torches/init.lua index 86cb917b..35cdf259 100644 --- a/mods/ITEMS/mcl_torches/init.lua +++ b/mods/ITEMS/mcl_torches/init.lua @@ -4,50 +4,13 @@ local S = minetest.get_translator("mcl_torches") -- 3d torch part -- --- Check if placement at given node is allowed -local function check_placement_allowed(node, wdir) - -- Torch placement rules: Disallow placement on some nodes. General rule: Solid, opaque, full cube collision box nodes are allowed. - -- Special allowed nodes: - -- * soul sand - -- * mob spawner - -- * chorus flower - -- * glass, barrier, ice - -- * Fence, wall, end portal frame with ender eye: Only on top - -- * Slab, stairs: Only on top if upside down - - -- Special forbidden nodes: - -- * Piston, sticky piston - local def = minetest.registered_nodes[node.name] - if not def then - return false - -- No ceiling torches - elseif wdir == 0 then - return false - elseif not def.buildable_to then - if node.name ~= "mcl_core:ice" and node.name ~= "mcl_nether:soul_sand" and node.name ~= "mcl_mobspawners:spawner" and node.name ~= "mcl_core:barrier" and node.name ~= "mcl_end:chorus_flower" and node.name ~= "mcl_end:chorus_flower_dead" and (not def.groups.glass) and - ((not def.groups.solid) or (not def.groups.opaque)) then - -- Only allow top placement on these nodes - if node.name == "mcl_end:dragon_egg" or node.name == "mcl_portals:end_portal_frame_eye" or def.groups.fence == 1 or def.groups.wall or def.groups.slab_top == 1 or def.groups.anvil or def.groups.pane or (def.groups.stair == 1 and minetest.facedir_to_dir(node.param2).y ~= 0) then - if wdir ~= 1 then - return false - end - else - return false - end - elseif minetest.get_item_group(node.name, "piston") >= 1 then - return false - end - end - return true -end - mcl_torches = {} mcl_torches.register_torch = function(substring, description, doc_items_longdesc, doc_items_usagehelp, icon, mesh_floor, mesh_wall, tiles, light, groups, sounds, moredef) local itemstring = minetest.get_current_modname()..":"..substring local itemstring_wall = minetest.get_current_modname()..":"..substring.."_wall" - if light == nil then light = minetest.LIGHT_MAX end + if light == nil then light = 14 end if mesh_floor == nil then mesh_floor = "mcl_torches_torch_floor.obj" end if mesh_wall == nil then mesh_wall = "mcl_torches_torch_wall.obj" end if groups == nil then groups = {} end @@ -104,8 +67,34 @@ mcl_torches.register_torch = function(substring, description, doc_items_longdesc local above = pointed_thing.above local wdir = minetest.dir_to_wallmounted({x = under.x - above.x, y = under.y - above.y, z = under.z - above.z}) - if check_placement_allowed(node, wdir) == false then - return itemstack + -- Torch placement rules: Disallow placement on some nodes. General rule: Solid, opaque, full cube collision box nodes are allowed. + -- Special allowed nodes: + -- * soul sand + -- * end portal frame (TODO) + -- * mob spawner + -- * Fence, wall, glass, hopper: Only on top + -- * Slab: Only on top if upside down + -- * Stairs: Only on top if upside down + + -- Special forbidden nodes: + -- * Piston + -- * Sticky piston + if not def.buildable_to then + if node.name ~= "mcl_nether:soul_sand" and node.name ~= "mcl_mobspawners:spawner" and + ((not def.groups.solid) or (not def.groups.opaque)) then + -- Only allow top placement on these nodes + if def.groups.glass or node.name == "mcl_hoppers:hopper" or node.name == "mcl_hoppers:hopper_side" or node.name == "mcl_hoppers:hopper_disabled" or node.name == "mcl_hoppers:hopper_side_disabled" or def.groups.fence == 1 or def.groups.wall or def.groups.slab_top == 1 or (def.groups.stair == 1 and minetest.facedir_to_dir(node.param2).y ~= 0) then + if wdir ~= 1 then + return itemstack + end + else + return itemstack + end + elseif node.name == "mesecons_pistons:piston_up_normal_off" or node.name == "mesecons_pistons:piston_up_sticky_off" or + node.name == "mesecons_pistons:piston_normal_off" or node.name == "mesecons_pistons:piston_sticky_off" or + node.name == "mesecons_pistons:piston_down_normal_off" or node.name == "mesecons_pistons:piston_down_sticky_off" then + return itemstack + end end local itemstring = itemstack:get_name() @@ -113,7 +102,10 @@ mcl_torches.register_torch = function(substring, description, doc_items_longdesc local idef = fakestack:get_definition() local retval - if wdir == 1 then + if wdir == 0 then + -- Prevent placement of ceiling torches + return itemstack + elseif wdir == 1 then retval = fakestack:set_name(itemstring) else retval = fakestack:set_name(itemstring_wall) @@ -127,11 +119,10 @@ mcl_torches.register_torch = function(substring, description, doc_items_longdesc itemstack:set_name(itemstring) if success and idef.sounds and idef.sounds.place then - minetest.sound_play(idef.sounds.place, {pos=under, gain=1}, true) + minetest.sound_play(idef.sounds.place, {pos=under, gain=1}) end return itemstack - end, - on_rotate = false, + end } if moredef ~= nil then for k,v in pairs(moredef) do @@ -189,7 +180,7 @@ mcl_torches.register_torch("torch", name = "default_torch_on_floor_animated.png", animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} }}, - minetest.LIGHT_MAX, + 14, {dig_immediate=3, torch=1, deco_block=1}, mcl_sounds.node_sound_wood_defaults(), {_doc_items_hidden = false}) diff --git a/mods/ITEMS/mcl_torches/locale/mcl_torches.es.tr b/mods/ITEMS/mcl_torches/locale/mcl_torches.es.tr deleted file mode 100644 index 18a81f5c..00000000 --- a/mods/ITEMS/mcl_torches/locale/mcl_torches.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_torches -Torch=Antorcha -Torches are light sources which can be placed at the side or on the top of most blocks.=Las antorchas son fuentes de luz que se pueden colocar a un lado, en el suelo, o en la parte superior de la mayoría de los bloques. \ No newline at end of file diff --git a/mods/ITEMS/mcl_torches/locale/mcl_torches.fr.tr b/mods/ITEMS/mcl_torches/locale/mcl_torches.fr.tr deleted file mode 100644 index 394d58d4..00000000 --- a/mods/ITEMS/mcl_torches/locale/mcl_torches.fr.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_torches -Torch=Torche -Torches are light sources which can be placed at the side or on the top of most blocks.=Les torches sont des sources lumineuses qui peuvent être placées sur le côté ou sur le dessus de la plupart des blocs. diff --git a/mods/ITEMS/mcl_torches/textures/default_torch_on_floor.png b/mods/ITEMS/mcl_torches/textures/default_torch_on_floor.png index d216c722..cb0ce15f 100644 Binary files a/mods/ITEMS/mcl_torches/textures/default_torch_on_floor.png and b/mods/ITEMS/mcl_torches/textures/default_torch_on_floor.png differ diff --git a/mods/ITEMS/mcl_walls/init.lua b/mods/ITEMS/mcl_walls/init.lua index 5704309d..16222780 100644 --- a/mods/ITEMS/mcl_walls/init.lua +++ b/mods/ITEMS/mcl_walls/init.lua @@ -14,10 +14,6 @@ local directions = { {x = 0, y = -1, z = 0}, } -local function connectable(itemstring) - return (minetest.get_item_group(itemstring, "wall") == 1) or (minetest.get_item_group(itemstring, "solid") == 1) -end - local function update_wall(pos) local thisnode = minetest.get_node(pos) @@ -46,7 +42,8 @@ local function update_wall(pos) for i = 1, 4 do local dir = directions[i] local node = minetest.get_node({x = pos.x + dir.x, y = pos.y + dir.y, z = pos.z + dir.z}) - if connectable(node.name) then + local def = minetest.registered_nodes[node.name] + if def and def.walkable then sum = sum + 2 ^ (i - 1) end end @@ -54,7 +51,8 @@ local function update_wall(pos) -- Torches or walkable nodes above the wall local upnode = minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z}) if sum == 5 or sum == 10 then - if (connectable(upnode.name)) or (minetest.get_item_group(upnode.name, "torch") == 1) then + local def = minetest.registered_nodes[upnode.name] + if (def and def.walkable) or upnode.name == "mcl_torches:torch" then sum = sum + 11 end end @@ -166,7 +164,7 @@ function mcl_walls.register_wall(nodename, description, source, tiles, inventory fixed = take }, sounds = sounds, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) @@ -193,7 +191,7 @@ function mcl_walls.register_wall(nodename, description, source, tiles, inventory fixed = {pillar, full_blocks[1]} }, sounds = sounds, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) -- Add entry alias for the Help @@ -218,7 +216,7 @@ function mcl_walls.register_wall(nodename, description, source, tiles, inventory fixed = {pillar, full_blocks[2]} }, sounds = sounds, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) -- Add entry alias for the Help @@ -249,7 +247,7 @@ function mcl_walls.register_wall(nodename, description, source, tiles, inventory collisionbox = {-0.2, 0, -0.2, 0.2, 1.4, 0.2}, on_construct = update_wall, sounds = sounds, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 2, }) if source then diff --git a/mods/ITEMS/mcl_walls/locale/mcl_walls.es.tr b/mods/ITEMS/mcl_walls/locale/mcl_walls.es.tr deleted file mode 100644 index 3fb3d6ad..00000000 --- a/mods/ITEMS/mcl_walls/locale/mcl_walls.es.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_walls -A piece of wall. It cannot be jumped over with a simple jump. When multiple of these are placed to next to each other, they will automatically build a nice wall structure.=Un pedazo de pared. No se puede saltar con un simple salto. Cuando varios de estos se colocan uno al lado del otro, construirán automáticamente una bonita estructura de pared. -Cobblestone Wall=Muro de roca -Mossy Cobblestone Wall=Muro de roca musgosa -Andesite Wall=Muro de andesita -Granite Wall=Muro de granito -Diorite Wall=Muro de diorita -Brick Wall=Muro de ladrillos -Sandstone Wall=Muro de arenisca -Red Sandstone Wall=Muro de arenisca roja -Stone Brick Wall=Muro de ladrillos de piedra -Mossy Stone Brick Wall=Muro de ladrillos de piedra musgosos -Prismarine Wall=Muro de prismarina -End Stone Brick Wall=Muro de ladrillos de piedra del End -Nether Brick Wall=Muro de ladrillos del Nether -Red Nether Brick Wall=Muro de ladrillos del Nether rojos diff --git a/mods/ITEMS/mcl_walls/locale/mcl_walls.fr.tr b/mods/ITEMS/mcl_walls/locale/mcl_walls.fr.tr deleted file mode 100644 index e4bbfd0d..00000000 --- a/mods/ITEMS/mcl_walls/locale/mcl_walls.fr.tr +++ /dev/null @@ -1,16 +0,0 @@ -# textdomain: mcl_walls -A piece of wall. It cannot be jumped over with a simple jump. When multiple of these are placed to next to each other, they will automatically build a nice wall structure.=Un morceau de mur. Il ne peut pas être sauté par un simple saut. Lorsque plusieurs d'entre eux sont placés les uns à côté des autres, ils construiront automatiquement une belle structure de mur. -Cobblestone Wall=Muret de Pierres -Mossy Cobblestone Wall=Muret de Pierres Moussu -Andesite Wall=Muret d'Andésite -Granite Wall=Muret de Granite -Diorite Wall=Muret de Diorite -Brick Wall=Muret en Brique -Sandstone Wall=Muret de Grès -Red Sandstone Wall=Muret de Grès Rouge -Stone Brick Wall=Muret de Pierre Taillé -Mossy Stone Brick Wall=Muret de Pierre Taillé Moussue -Prismarine Wall=Muret de Prismarine -End Stone Brick Wall=Muret de Brique de l'End -Nether Brick Wall=Muret de Brique du Nether -Red Nether Brick Wall=Muret de Brique Rouge du Nether diff --git a/mods/ITEMS/mcl_walls/register.lua b/mods/ITEMS/mcl_walls/register.lua index 0ccefd62..363ef55c 100644 --- a/mods/ITEMS/mcl_walls/register.lua +++ b/mods/ITEMS/mcl_walls/register.lua @@ -1,7 +1,7 @@ local S = minetest.get_translator("mcl_walls") -mcl_walls.register_wall("mcl_walls:cobble", S("Cobblestone Wall"), "mcl_core:cobble", {"mcl_walls_cobble_wall_top.png", "default_cobble.png", "mcl_walls_cobble_wall_side.png"}) -mcl_walls.register_wall("mcl_walls:mossycobble", S("Mossy Cobblestone Wall"), "mcl_core:mossycobble", {"mcl_walls_cobble_mossy_wall_top.png", "default_mossycobble.png", "mcl_walls_cobble_mossy_wall_side.png"}) +mcl_walls.register_wall("mcl_walls:cobble", S("Cobblestone Wall"), "mcl_core:cobble") +mcl_walls.register_wall("mcl_walls:mossycobble", S("Mossy Cobblestone Wall"), "mcl_core:mossycobble") mcl_walls.register_wall("mcl_walls:andesite", S("Andesite Wall"), "mcl_core:andesite") mcl_walls.register_wall("mcl_walls:granite", S("Granite Wall"), "mcl_core:granite") mcl_walls.register_wall("mcl_walls:diorite", S("Diorite Wall"), "mcl_core:diorite") diff --git a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_side.png b/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_side.png deleted file mode 100644 index cb10162c..00000000 Binary files a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_side.png and /dev/null differ diff --git a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_top.png b/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_top.png deleted file mode 100644 index df7ff940..00000000 Binary files a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_mossy_wall_top.png and /dev/null differ diff --git a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_side.png b/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_side.png deleted file mode 100644 index a827c3a4..00000000 Binary files a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_side.png and /dev/null differ diff --git a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_top.png b/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_top.png deleted file mode 100644 index ce77d202..00000000 Binary files a/mods/ITEMS/mcl_walls/textures/mcl_walls_cobble_wall_top.png and /dev/null differ diff --git a/mods/ITEMS/mcl_wool/init.lua b/mods/ITEMS/mcl_wool/init.lua index 22648efc..aabeb2e6 100644 --- a/mods/ITEMS/mcl_wool/init.lua +++ b/mods/ITEMS/mcl_wool/init.lua @@ -13,21 +13,21 @@ local wool = {} -- colors available. When crafting, the last recipes will be checked first. wool.dyes = { -- name, texture, wool desc., carpet desc., dye, color_group - {"white", "wool_white", S("White Wool"), S("White Carpet"), nil, "unicolor_white"}, + {"white", "wool_white", S("White Wool"), S("White Carpet"), nil, "basecolor_white"}, {"grey", "wool_dark_grey", S("Grey Wool"), S("Grey Carpet"), "dark_grey", "unicolor_darkgrey"}, - {"silver", "wool_grey", S("Light Grey Wool"), S("Light Grey Carpet"), "grey", "unicolor_grey"}, - {"black", "wool_black", S("Black Wool"), S("Black Carpet"), "black", "unicolor_black"}, - {"red", "wool_red", S("Red Wool"), S("Red Carpet"), "red", "unicolor_red"}, - {"yellow", "wool_yellow", S("Yellow Wool"), S("Yellow Carpet"), "yellow", "unicolor_yellow"}, + {"silver", "wool_grey", S("Light Grey Wool"), S("Light Grey Carpet"), "grey", "basecolor_grey"}, + {"black", "wool_black", S("Black Wool"), S("Black Carpet"), "black", "basecolor_black"}, + {"red", "wool_red", S("Red Wool"), S("Red Carpet"), "red", "basecolor_red"}, + {"yellow", "wool_yellow", S("Yellow Wool"), S("Yellow Carpet"), "yellow", "basecolor_yellow"}, {"green", "wool_dark_green", S("Green Wool"), S("Green Carpet"), "dark_green", "unicolor_dark_green"}, - {"cyan", "wool_cyan", S("Cyan Wool"), S("Cyan Carpet"), "cyan", "unicolor_cyan"}, - {"blue", "wool_blue", S("Blue Wool"), S("Blue Carpet"), "blue", "unicolor_blue"}, - {"magenta", "wool_magenta", S("Magenta Wool"), S("Magenta Carpet"), "magenta", "unicolor_red_violet"}, - {"orange", "wool_orange", S("Orange Wool"), S("Orange Carpet"), "orange", "unicolor_orange"}, - {"purple", "wool_violet", S("Purple Wool"), S("Purple Carpet"), "violet", "unicolor_violet"}, + {"cyan", "wool_cyan", S("Cyan Wool"), S("Cyan Carpet"), "cyan", "basecolor_cyan"}, + {"blue", "wool_blue", S("Blue Wool"), S("Blue Carpet"), "blue", "basecolor_blue"}, + {"magenta", "wool_magenta", S("Magenta Wool"), S("Magenta Carpet"), "magenta", "basecolor_magenta"}, + {"orange", "wool_orange", S("Orange Wool"), S("Orange Carpet"), "orange", "excolor_orange"}, + {"purple", "wool_violet", S("Purple Wool"), S("Purple Carpet"), "violet", "excolor_violet"}, {"brown", "wool_brown", S("Brown Wool"), S("Brown Carpet"), "brown", "unicolor_dark_orange"}, {"pink", "wool_pink", S("Pink Wool"), S("Pink Carpet"), "pink", "unicolor_light_red"}, - {"lime", "mcl_wool_lime", S("Lime Wool"), S("Lime Carpet"), "green", "unicolor_green"}, + {"lime", "mcl_wool_lime", S("Lime Wool"), S("Lime Carpet"), "green", "basecolor_green"}, {"light_blue", "mcl_wool_light_blue", S("Light Blue Wool"), S("Light Blue Carpet"), "lightblue", "unicolor_light_blue"}, } local canonical_color = "white" @@ -60,10 +60,10 @@ for _, row in ipairs(wool.dyes) do stack_max = 64, is_ground_content = false, tiles = {texture..".png"}, - groups = {handy=1,shearsy_wool=1, flammable=1,fire_encouragement=30, fire_flammability=60, wool=1,building_block=1,[color_group]=1}, + groups = {handy=1,shearsy_wool=1, flammable=1,wool=1,building_block=1}, sounds = mcl_sounds.node_sound_wool_defaults(), _mcl_hardness = 0.8, - _mcl_blast_resistance = 0.8, + _mcl_blast_resistance = 4, }) minetest.register_node("mcl_wool:"..name.."_carpet", { description = desc_carpet, @@ -76,7 +76,7 @@ for _, row in ipairs(wool.dyes) do tiles = {texture..".png"}, wield_image = texture..".png", wield_scale = { x=1, y=1, z=0.5 }, - groups = {handy=1, carpet=1,attached_node=1,flammable=1,fire_encouragement=60, fire_flammability=20, dig_by_water=1,deco_block=1,[color_group]=1}, + groups = {handy=1, carpet=1,attached_node=1,dig_by_water=1,deco_block=1}, sounds = mcl_sounds.node_sound_wool_defaults(), paramtype = "light", sunlight_propagates = true, @@ -89,7 +89,7 @@ for _, row in ipairs(wool.dyes) do }, }, _mcl_hardness = 0.1, - _mcl_blast_resistance = 0.1, + _mcl_blast_resistance = 0.5, }) if mod_doc and not is_canonical then doc.add_entry_alias("nodes", "mcl_wool:"..canonical_color, "nodes", "mcl_wool:"..name) diff --git a/mods/ITEMS/mcl_wool/locale/mcl_wool.es.tr b/mods/ITEMS/mcl_wool/locale/mcl_wool.es.tr deleted file mode 100644 index fa9253ee..00000000 --- a/mods/ITEMS/mcl_wool/locale/mcl_wool.es.tr +++ /dev/null @@ -1,37 +0,0 @@ -# textdomain: mcl_wool -Wool=Lana -Carpet=Alfombra -White Wool=Lana blanca -White Carpet=Alfombra blanca -Grey Wool=Lana gris -Grey Carpet=Alfombra gris -Light Grey Wool=Lana gris claro -Light Grey Carpet=Alfombra gris claro -Black Wool=Lana negra -Black Carpet=Alfombra negra -Red Wool=Lana roja -Red Carpet=Alfombra roja -Yellow Wool=Lana amarilla -Yellow Carpet=Alfombra amarilla -Green Wool=Lana verde -Green Carpet=Alfombra verde -Cyan Wool=Lana cian -Cyan Carpet=Alfombra cian -Blue Wool=Lana azul -Blue Carpet=Alfombra azul -Magenta Wool=Lana magenta -Magenta Carpet=Alfombra magenta -Orange Wool=Lana naranja -Orange Carpet=Alfombra naranja -Purple Wool=Lana morada -Purple Carpet=Alfombra morada -Brown Wool=Lana marrón -Brown Carpet=Alfombra marrón -Pink Wool=Lana rosa -Pink Carpet=Alfombra rosa -Lime Wool=Lana verde lima -Lime Carpet=Alfombra verde lima -Light Blue Wool=Lana azul claro -Light Blue Carpet=Alfombra azul claro -Wool is a decorative block which comes in many different colors.=WLa lana es un bloque decorativo que viene en muchos colores diferentes. -Carpets are thin floor covers which come in many different colors.=Las alfombras son finas cubiertas para el suelo que vienen en muchos colores diferentes. diff --git a/mods/ITEMS/mcl_wool/locale/mcl_wool.fr.tr b/mods/ITEMS/mcl_wool/locale/mcl_wool.fr.tr deleted file mode 100644 index 6b93eab0..00000000 --- a/mods/ITEMS/mcl_wool/locale/mcl_wool.fr.tr +++ /dev/null @@ -1,37 +0,0 @@ -# textdomain: mcl_wool -Wool=Laine -Carpet=Tapis -White Wool=Laine Blanche -White Carpet=Tapis Blanc -Grey Wool=Laine Grise -Grey Carpet=Tapis Gris -Light Grey Wool=Laine Gris Clair -Light Grey Carpet=Tapis Gris Clair -Black Wool=Laine Noire -Black Carpet=Tapis Noir -Red Wool=Laine Rouge -Red Carpet=Tapis Rouge -Yellow Wool=Laine Jaune -Yellow Carpet=Tapis Jaune -Green Wool=Laine Verte -Green Carpet=Tapis Vert -Cyan Wool=Lain Cyan -Cyan Carpet=Tapis Cyan -Blue Wool=Laine Bleue -Blue Carpet=Tapis Bleu -Magenta Wool=Laine Magenta -Magenta Carpet=Tapis Magenta -Orange Wool=Laine Orange -Orange Carpet=Tapis Orange -Purple Wool=Laine Violette -Purple Carpet=Tapis Violet -Brown Wool=Laine Marron -Brown Carpet=Tapis Marron -Pink Wool=Laine Rose -Pink Carpet=Tapis Rose -Lime Wool=Laine Vert Clair -Lime Carpet=Tapis Vert Clair -Light Blue Wool=Laine Bleu Clair -Light Blue Carpet=Tapis Bleu Clair -Wool is a decorative block which comes in many different colors.=La laine est un bloc décoratif disponible en différentes couleurs. -Carpets are thin floor covers which come in many different colors.=Les tapis sont des revêtements de sol minces qui viennent dans de nombreuses couleurs différentes. diff --git a/mods/ITEMS/mcl_wool/textures/mcl_wool_light_blue.png b/mods/ITEMS/mcl_wool/textures/mcl_wool_light_blue.png index 010b8a8c..3d37d909 100644 Binary files a/mods/ITEMS/mcl_wool/textures/mcl_wool_light_blue.png and b/mods/ITEMS/mcl_wool/textures/mcl_wool_light_blue.png differ diff --git a/mods/ITEMS/mcl_wool/textures/mcl_wool_lime.png b/mods/ITEMS/mcl_wool/textures/mcl_wool_lime.png index e9de9a36..6d57a55d 100644 Binary files a/mods/ITEMS/mcl_wool/textures/mcl_wool_lime.png and b/mods/ITEMS/mcl_wool/textures/mcl_wool_lime.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_brown.png b/mods/ITEMS/mcl_wool/textures/wool_brown.png index fac3ceff..04cf6eb8 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_brown.png and b/mods/ITEMS/mcl_wool/textures/wool_brown.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_cyan.png b/mods/ITEMS/mcl_wool/textures/wool_cyan.png index 25d3e2f0..d4e48d6a 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_cyan.png and b/mods/ITEMS/mcl_wool/textures/wool_cyan.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_dark_green.png b/mods/ITEMS/mcl_wool/textures/wool_dark_green.png index 9d17bfdc..9e3c29f2 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_dark_green.png and b/mods/ITEMS/mcl_wool/textures/wool_dark_green.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_dark_grey.png b/mods/ITEMS/mcl_wool/textures/wool_dark_grey.png index aa0be74b..e2af0870 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_dark_grey.png and b/mods/ITEMS/mcl_wool/textures/wool_dark_grey.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_grey.png b/mods/ITEMS/mcl_wool/textures/wool_grey.png index e604a914..69273bfe 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_grey.png and b/mods/ITEMS/mcl_wool/textures/wool_grey.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_magenta.png b/mods/ITEMS/mcl_wool/textures/wool_magenta.png index f6889b44..6f727a97 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_magenta.png and b/mods/ITEMS/mcl_wool/textures/wool_magenta.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_red.png b/mods/ITEMS/mcl_wool/textures/wool_red.png index 1602f0ea..4c84133a 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_red.png and b/mods/ITEMS/mcl_wool/textures/wool_red.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_violet.png b/mods/ITEMS/mcl_wool/textures/wool_violet.png index 92a20df2..12fb3ebb 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_violet.png and b/mods/ITEMS/mcl_wool/textures/wool_violet.png differ diff --git a/mods/ITEMS/mcl_wool/textures/wool_white.png b/mods/ITEMS/mcl_wool/textures/wool_white.png index c3695550..794cbb15 100644 Binary files a/mods/ITEMS/mcl_wool/textures/wool_white.png and b/mods/ITEMS/mcl_wool/textures/wool_white.png differ diff --git a/mods/ITEMS/mclx_core/init.lua b/mods/ITEMS/mclx_core/init.lua index bc17e007..004c351d 100644 --- a/mods/ITEMS/mclx_core/init.lua +++ b/mods/ITEMS/mclx_core/init.lua @@ -41,7 +41,7 @@ flowing.special_tiles = { }, { image="default_river_water_flowing_animated.png", - backface_culling=false, + backface_culling=true, animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=4.0} }, } diff --git a/mods/ITEMS/mclx_core/locale/mclx_core.es.tr b/mods/ITEMS/mclx_core/locale/mclx_core.es.tr deleted file mode 100644 index 0f50a08c..00000000 --- a/mods/ITEMS/mclx_core/locale/mclx_core.es.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mclx_core -River Water Source=Fuente de agua de río -River water has the same properties as water, but has a reduced flowing distance and is not renewable.=El agua del río tiene las mismas propiedades que el agua, pero tiene una distancia de flujo reducida y no es renovable. -River Water=Agua de rio -Flowing River Water=Agua de río que fluye diff --git a/mods/ITEMS/mclx_core/locale/mclx_core.fr.tr b/mods/ITEMS/mclx_core/locale/mclx_core.fr.tr deleted file mode 100644 index eaabebec..00000000 --- a/mods/ITEMS/mclx_core/locale/mclx_core.fr.tr +++ /dev/null @@ -1,5 +0,0 @@ -# textdomain: mclx_core -River Water Source=Source d'eau de rivière -River water has the same properties as water, but has a reduced flowing distance and is not renewable.=L'eau de rivière a les mêmes propriétés que l'eau, mais a une distance d'écoulement réduite et n'est pas renouvelable. -River Water=L'eau de rivière -Flowing River Water=Eau de rivière qui coule diff --git a/mods/ITEMS/mclx_fences/locale/mclx_fences.es.tr b/mods/ITEMS/mclx_fences/locale/mclx_fences.es.tr deleted file mode 100644 index 4531435b..00000000 --- a/mods/ITEMS/mclx_fences/locale/mclx_fences.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mclx_fences -Red Nether Brick Fence=Valla de ladrillo abisal rojo -Red Nether Brick Fence Gate=Puerta de ladrillo abisal rojo -Nether Brick Fence Gate=Puerta de ladrillo abisal diff --git a/mods/ITEMS/mclx_fences/locale/mclx_fences.fr.tr b/mods/ITEMS/mclx_fences/locale/mclx_fences.fr.tr deleted file mode 100644 index 244b588c..00000000 --- a/mods/ITEMS/mclx_fences/locale/mclx_fences.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mclx_fences -Red Nether Brick Fence=Barrière en Brique Rouge du Nether -Red Nether Brick Fence Gate=Porte de Barrière en Brique Rouge du Nether -Nether Brick Fence Gate=Porte de Barrière en Brique du Nether diff --git a/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_gate_red_nether_brick.png b/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_gate_red_nether_brick.png index 599cf1bf..2436408b 100644 Binary files a/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_gate_red_nether_brick.png and b/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_gate_red_nether_brick.png differ diff --git a/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_red_nether_brick.png b/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_red_nether_brick.png index 24e08e0f..ee750181 100644 Binary files a/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_red_nether_brick.png and b/mods/ITEMS/mclx_fences/textures/mcl_fences_fence_red_nether_brick.png differ diff --git a/mods/ITEMS/mclx_stairs/init.lua b/mods/ITEMS/mclx_stairs/init.lua index 450436da..d43fa9c5 100644 --- a/mods/ITEMS/mclx_stairs/init.lua +++ b/mods/ITEMS/mclx_stairs/init.lua @@ -1,38 +1,12 @@ local S = minetest.get_translator("mclx_stairs") local doc_mod = minetest.get_modpath("doc") - -local barks = { - { "", S("Oak Bark Stairs"), S("Oak Bark Slab"), S("Double Oak Bark Slab") }, - { "jungle", S("Jungle Bark Stairs"), S("Jungle Bark Slab"), S("Double Jungle Bark Slab") }, - { "acacia", S("Acacia Bark Stairs"), S("Acacia Bark Slab"), S("Double Acacia Bark Slab") }, - { "spruce", S("Spruce Bark Stairs"), S("Spruce Bark Slab"), S("Double Spruce Bark Slab") }, - { "birch", S("Birch Bark Stairs"), S("Birch Bark Slab"), S("Double Birch Bark Slab") }, - { "dark", S("Dark Oak Bark Stairs"), S("Dark Oak Bark Slab"), S("Double Dark Oak Bark Slab") }, -} - -for b=1, #barks do - local bark = barks[b] - local sub = bark[1].."tree_bark" - local id = "mcl_core:tree" - if bark[1] ~= "" then - id = "mcl_core:"..bark[1].."tree" - end - mcl_stairs.register_stair(sub, id, - {handy=1,axey=1, flammable=3, bark_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - {minetest.registered_nodes[id].tiles[3]}, - bark[2], - mcl_sounds.node_sound_wood_defaults(), - 2, - "woodlike") - mcl_stairs.register_slab(sub, id, - {handy=1,axey=1, flammable=3, bark_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=5}, - {minetest.registered_nodes[id].tiles[3]}, - bark[3], - mcl_sounds.node_sound_wood_defaults(), - 2, - bark[4]) -end +mcl_stairs.register_stair_and_slab_simple("tree_bark", "mcl_core:tree_bark", S("Oak Bark Stairs"), S("Oak Bark Slab"), S("Double Oak Bark Slab"), "woodlike") +mcl_stairs.register_stair_and_slab_simple("acaciatree_bark", "mcl_core:acaciatree_bark", S("Acacia Bark Stairs"), S("Acacia Bark Slab"), S("Double Acacia Bark Slab"), "woodlike") +mcl_stairs.register_stair_and_slab_simple("sprucetree_bark", "mcl_core:sprucetree_bark", S("Spruce Bark Stairs"), S("Spruce Bark Slab"), S("Double Spruce Bark Slab"), "woodlike") +mcl_stairs.register_stair_and_slab_simple("birchtree_bark", "mcl_core:birchtree_bark", S("Birch Bark Stairs"), S("Birch Bark Slab"), S("Double Birch Bark Slab"), "woodlike") +mcl_stairs.register_stair_and_slab_simple("jungletree_bark", "mcl_core:jungletree_bark", S("Jungle Bark Stairs"), S("Jungle Bark Slab"), S("Double Jungle Bark Slab"), "woodlike") +mcl_stairs.register_stair_and_slab_simple("darktree_bark", "mcl_core:darktree_bark", S("Dark Oak Bark Stairs"), S("Dark Oak Bark Slab"), S("Double Dark Oak Bark Slab"), "woodlike") mcl_stairs.register_slab("lapisblock", "mcl_core:lapisblock", {pickaxey=3}, {"mcl_core_lapis_block.png", "mcl_core_lapis_block.png", "mcl_stairs_lapis_block_slab.png"}, S("Lapis Lazuli Slab"), nil, nil, S("Double Lapis Lazuli Slab")) mcl_stairs.register_stair("lapisblock", "mcl_core:lapisblock", {pickaxey=3}, {"mcl_stairs_lapis_block_slab.png", "mcl_core_lapis_block.png", "mcl_core_lapis_block.png", "mcl_core_lapis_block.png", "mcl_core_lapis_block.png", "mcl_stairs_lapis_block_slab.png"}, S("Lapis Lazuli Stairs"), nil, nil, "woodlike") @@ -100,16 +74,3 @@ for i=1, #block.dyes do end end --- Fuel -minetest.register_craft({ - type = "fuel", - recipe = "group:bark_stairs", - -- Same as wood stairs - burntime = 15, -}) -minetest.register_craft({ - type = "fuel", - recipe = "group:bark_slab", - -- Same as wood slab - burntime = 8, -}) diff --git a/mods/ITEMS/mclx_stairs/locale/mclx_stairs.es.tr b/mods/ITEMS/mclx_stairs/locale/mclx_stairs.es.tr deleted file mode 100644 index 302ae7f2..00000000 --- a/mods/ITEMS/mclx_stairs/locale/mclx_stairs.es.tr +++ /dev/null @@ -1,82 +0,0 @@ -# textdomain: mclx_stairs -Oak Bark Stairs=Escaleras de roble -Oak Bark Slab=Losa de roble -Double Oak Bark Slab=Losa doble de roble -Acacia Bark Stairs=Escaleras de acacia -Acacia Bark Slab=Losa de acacia -Double Acacia Bark Slab=Losa doble de acacia -Spruce Bark Stairs=Escaleras de abeto -Spruce Bark Slab=Losa de abeto -Double Spruce Bark Slab=Losa doble de abeto -Birch Bark Stairs=Escaleras de abedul -Birch Bark Slab=Losa de abedul -Double Birch Bark Slab=Losa doble de abedul -Jungle Bark Stairs=Escaleras de jungla -Jungle Bark Slab=Losa de jungla -Double Jungle Bark Slab=Losa doble de jungla -Dark Oak Bark Stairs=Escaleras de roble oscuro -Dark Oak Bark Slab=Losa de roble oscuro -Double Dark Oak Bark Slab=Losa doble de roble oscuro -Lapis Lazuli Slab=Losa de lapislázuli -Double Lapis Lazuli Slab=Losa doble de lapislázuli -Lapis Lazuli Stairs=Escaleras de lapislázuli -Slab of Gold=Losa de oro -Double Slab of Gold=Losa doble de oro -Stairs of Gold=Escaleras de oro -Slab of Iron=Losa de hierro -Double Slab of Iron=Losa doble de hierro -Stairs of Iron=Escaleras de hierro -Cracked Stone Brick Stairs=Escaleras de ladrillo de piedra agrietada -Cracked Stone Brick Slab=Losa de ladrillo de piedra agrietada -Double Cracked Stone Brick Slab=Losa doble de ladrillo de piedra agrietada -White Concrete Stairs=Escaleras de hormigón blanco -White Concrete Slab=Losa de hormigón blanco -Double White Concrete Slab=Losa doble de hormigón blanco -Grey Concrete Stairs=Escaleras de hormigón gris -Grey Concrete Slab=Losas de hormigón gris -Double Grey Concrete Slab=Losa doble de hormigón gris -Light Grey Concrete Stairs=Escaleras de hormigón gris claro -Light Grey Concrete Slab=Losa de hormigón gris claro -Double Light Grey Concrete Slab=Losa doble de hormigón gris claro -Black Concrete Stairs=Escaleras de hormigón negro -Black Concrete Slab=Losa de hormigón negro -Double Black Concrete Slab=Losa doble de hormigón negro -Red Concrete Stairs=Escaleras de hormigón rojo -Red Concrete Slab=Losa de hormigón rojo -Double Red Concrete Slab=Losa doble de hormigón rojo -Yellow Concrete Stairs=Escaleras de hormigón amarillo -Yellow Concrete Slab=Losa de hormigón amarillo -Double Yellow Concrete Slab=Losa doble de hormigón amarillo -Green Concrete Stairs=Escaleras de hormigón verde -Green Concrete Slab=Losa de hormigón verde -Double Green Concrete Slab=Losa doble de hormigón verde -Cyan Concrete Stairs=Escaleras de hormigón cian -Cyan Concrete Slab=Losa de hormigón cian -Double Cyan Concrete Slab=Losa doble de hormigón cian -Blue Concrete Stairs=Escaleras de hormigón azul -Blue Concrete Slab=Losa de hormigón azul -Double Blue Concrete Slab=Losa doble de hormigón azul -Magenta Concrete Stairs=Escaleras de hormigón magenta -Magenta Concrete Slab=Losa de hormigón magenta -Double Magenta Concrete Slab=Losa doble de hormigón magenta -Orange Concrete Stairs=Escaleras de hormigón naranja -Orange Concrete Slab=Losa de hormigón naranja -Double Orange Concrete Slab=Losa doble de hormigón naranja -Purple Concrete Stairs=Escaleras de hormigón morado -Purple Concrete Slab=Losa de hormigón morado -Double Purple Concrete Slab=Losa doble de hormigón morado -Brown Concrete Stairs=Escaleras de hormigón marrón -Brown Concrete Slab=Losa de hormigón marrón -Double Brown Concrete Slab=Losa doble de hormigón marrón -Pink Concrete Stairs=Escaleras de hormigón rosa -Pink Concrete Slab=Losa de hormigón rosa -Double Pink Concrete Slab=Losa doble de hormigón rosa -Lime Concrete Stairs=Escaleras de hormigón verde lima -Lime Concrete Slab=Losa de hormigón verde lima -Double Lime Concrete Slab=Losa doble de hormigón verde lima -Light Blue Concrete Stairs=Escaleras de hormigón azul claro -Light Blue Concrete Slab=Losa de hormigón azul claro -Double Light Blue Concrete Slab=Losa doble de hormigón azul claro -Concrete Slab=Losa de hormigón -Double Concrete Slab=Losa doble de hormigón -Concrete Stairs=Escaleras de hormigón diff --git a/mods/ITEMS/mclx_stairs/locale/mclx_stairs.fr.tr b/mods/ITEMS/mclx_stairs/locale/mclx_stairs.fr.tr deleted file mode 100644 index 98becd49..00000000 --- a/mods/ITEMS/mclx_stairs/locale/mclx_stairs.fr.tr +++ /dev/null @@ -1,82 +0,0 @@ -# textdomain: mclx_stairs -Oak Bark Stairs=Escalier en écorse de Chêne -Oak Bark Slab=Plaque d'écorce de Chêne -Double Oak Bark Slab=Double Dalle d'écorce de Chêne -Acacia Bark Stairs=Escalier en écorce d'Acacia -Acacia Bark Slab=Plaque d'écorce d'Acacia -Double Acacia Bark Slab=Double Dalle d'écorce d'Acacia -Spruce Bark Stairs=Escalier en écorse de Sapin -Spruce Bark Slab=Plaque d'écorce de Sapin -Double Spruce Bark Slab=Double Dalle d'écorce de Sapin -Birch Bark Stairs=Escalier en écorse de Bouleau -Birch Bark Slab=Plaque d'écorce de Bouleau -Double Birch Bark Slab=Double Dalle d'écorce de Bouleau -Jungle Bark Stairs=Escalier en écorse d'Acajou -Jungle Bark Slab=Plaque d'écorce d'Acajou -Double Jungle Bark Slab=Double Dalle d'écorce d'Acajou -Dark Oak Bark Stairs=Escalier en écorse de Chêne Noir -Dark Oak Bark Slab=Plaque d'écorce de Chêne Noir -Double Dark Oak Bark Slab=Double Dalle d'écorce de Chêne Noir -Lapis Lazuli Slab=Dalle de Lapis Lazuli -Double Lapis Lazuli Slab=Double Dalle de Lapis Lazuli -Lapis Lazuli Stairs=Escalier de Lapis Lazuli -Slab of Gold=Dalle en Or -Double Slab of Gold=Double Dalle en Or -Stairs of Gold=Escalier en Or -Slab of Iron=Dalle en Fer -Double Slab of Iron=Double Dalle en Fer -Stairs of Iron=Escalier en Fer -Cracked Stone Brick Stairs=Escalier en Brique de Pierre Fissurée -Cracked Stone Brick Slab=Dalle de Brique de Pierre Fissurée -Double Cracked Stone Brick Slab=Double Dalle de Brique de Pierre Fissurée -White Concrete Stairs=Escalier en Béton Blanc -White Concrete Slab=Dalle en Béton Blanc -Double White Concrete Slab=Double Dalle en Béton Blanc -Grey Concrete Stairs=Escalier en Béton Gris -Grey Concrete Slab=Dalle en Béton Gris -Double Grey Concrete Slab=Double Dalle en Béton Gris -Light Grey Concrete Stairs=Escalier en Béton Gris Clair -Light Grey Concrete Slab=Dalle en Béton Gris Clair -Double Light Grey Concrete Slab=Double Dalle en Béton Gris Clair -Black Concrete Stairs=Escalier en Béton Noir -Black Concrete Slab=Dalle en Béton Noir -Double Black Concrete Slab=Double Dalle en Béton Noir -Red Concrete Stairs=Escalier en Béton Rouge -Red Concrete Slab=Dalle en Béton Rouge -Double Red Concrete Slab=Double Dalle en Béton Rouge -Yellow Concrete Stairs=Escalier en Béton Jaune -Yellow Concrete Slab=Dalle en Béton Jaune -Double Yellow Concrete Slab=Double Dalle en Béton Jaune -Green Concrete Stairs=Escalier en Béton Vert -Green Concrete Slab=Dalle en Béton Vert -Double Green Concrete Slab=Double Dalle en Béton Vert -Cyan Concrete Stairs=Escalier en Béton Cyan -Cyan Concrete Slab=Dalle en Béton Cyan -Double Cyan Concrete Slab=Double Dalle en Béton Cyan -Blue Concrete Stairs=Escalier en Béton Bleu -Blue Concrete Slab=Dalle en Béton Bleu -Double Blue Concrete Slab=Double Dalle en Béton Bleu -Magenta Concrete Stairs=Escalier en Béton Magenta -Magenta Concrete Slab=Dalle en Béton Magenta -Double Magenta Concrete Slab=Double Dalle en Béton Magenta -Orange Concrete Stairs=Escalier en Béton Orange -Orange Concrete Slab=Dalle en Béton Orange -Double Orange Concrete Slab=Double Dalle en Béton Orange -Purple Concrete Stairs=Escalier en Béton Violet -Purple Concrete Slab=Dalle en Béton Violet -Double Purple Concrete Slab=Double Dalle en Béton Violet -Brown Concrete Stairs=Escalier en Béton Marron -Brown Concrete Slab=Dalle en Béton Marron -Double Brown Concrete Slab=Double Dalle en Béton Marron -Pink Concrete Stairs=Escalier en Béton Rose -Pink Concrete Slab=Dalle en Béton Rose -Double Pink Concrete Slab=Double Dalle en Béton Rose -Lime Concrete Stairs=Escalier en Béton Vert Clair -Lime Concrete Slab=Dalle en Béton Vert Clair -Double Lime Concrete Slab=Double Dalle en Béton Vert Clair -Light Blue Concrete Stairs=Escalier en Béton Bleu Clair -Light Blue Concrete Slab=Dalle en Béton Bleu Clair -Double Light Blue Concrete Slab=Double Dalle en Béton Bleu Clair -Concrete Slab=Dalle en Béton -Double Concrete Slab=Double Dalle en Béton -Concrete Stairs=Escalier en Béton diff --git a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_andesite_smooth_slab.png b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_andesite_smooth_slab.png index b2ccfa1d..daf6e96c 100644 Binary files a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_andesite_smooth_slab.png and b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_andesite_smooth_slab.png differ diff --git a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_diorite_smooth_slab.png b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_diorite_smooth_slab.png index 2fd10111..57d147ba 100644 Binary files a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_diorite_smooth_slab.png and b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_diorite_smooth_slab.png differ diff --git a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_gold_block_slab.png b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_gold_block_slab.png index b8da4ede..7f490e70 100644 Binary files a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_gold_block_slab.png and b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_gold_block_slab.png differ diff --git a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_iron_block_slab.png b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_iron_block_slab.png index 9f027e4b..101f62c4 100644 Binary files a/mods/ITEMS/mclx_stairs/textures/mcl_stairs_iron_block_slab.png and b/mods/ITEMS/mclx_stairs/textures/mcl_stairs_iron_block_slab.png differ diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/README.txt b/mods/ITEMS/minetest-3d_armor/3d_armor/README.txt new file mode 100644 index 00000000..224f81c9 --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/README.txt @@ -0,0 +1,24 @@ +[mod] Visible Player Armor [3d_armor] +===================================== + +Depends: default + +Recommends: inventory_plus or unified_inventory (use only one) + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt but also offers a percentage chance of healing. +Overall level is boosted by 10% when wearing a full matching set. + +Fire protection added by TenPlus1 when using crystal armor if Ethereal mod active, level 1 +protects against torches, level 2 for crystal spike, level 3 for fire, level 5 for lava. + +Configuration +------------- + +Armor can be configured by adding a file called armor.conf in 3d_armor mod and/or world directory. +see armor.conf.example for all available options. + +Note: worldpath config settings override any settings made in the mod's directory. + diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf new file mode 100644 index 00000000..3d22006f --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf @@ -0,0 +1,23 @@ +-- Armor Configuration +ARMOR_MATERIALS = { + leather = "mcl_mobitems:leather", + iron = "mcl_core:iron_ingot", + chain = nil, + gold = "mcl_core:gold_ingot", + diamond = "mcl_core:diamond", +} + +ARMOR_FIRE_PROTECT = false + +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"mcl_fire:fire", 3, 4}, + {"mcl_fire:eternal_fire", 3, 4}, +} + +-- Armor drop/destroy disabled. Armor dropping is handled in mcl_death +ARMOR_DROP = false +ARMOR_DESTROY = false +ARMOR_HEAL_MULTIPLIER = 0 +ARMOR_RADIATION_MULTIPLIER = 0 diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf.example b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf.example new file mode 100644 index 00000000..75e072d9 --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.conf.example @@ -0,0 +1,61 @@ +-- Armor Configuration (defaults) + +-- You can remove any unwanted armor materials from this table. +-- Note that existing armor that is removed will show up as an unknown item. +ARMOR_MATERIALS = { + wood = "group:wood", + cactus = "default:cactus", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", +} + +-- Enable fire protection (defaults true if using ethereal mod) +ARMOR_FIRE_PROTECT = false + +-- Fire protection nodes, (name, protection level, damage) +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"default:torch", 1, 1}, +} + +-- Increase this if you get initialization glitches when a player first joins. +ARMOR_INIT_DELAY = 1 + +-- Number of initialization attempts. +-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist. +ARMOR_INIT_TIMES = 1 + +-- Increase this if armor is not getting into bones due to server lag. +ARMOR_BONES_DELAY = 1 + +-- How often player armor/wield items are updated. +ARMOR_UPDATE_TIME = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +ARMOR_DROP = true + +-- Pulverise armor when a player dies, overrides ARMOR_DROP. +ARMOR_DESTROY = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. +ARMOR_LEVEL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. +ARMOR_HEAL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor radiation protection, +-- eg: ARMOR_RADIATION_MULTIPLIER = 0 will completely disable radiation protection. +-- Note: patched technic mod is required +ARMOR_RADIATION_MULTIPLIER = 1 diff --git a/mods/ITEMS/mcl_armor/armor.lua b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.lua similarity index 60% rename from mods/ITEMS/mcl_armor/armor.lua rename to mods/ITEMS/minetest-3d_armor/3d_armor/armor.lua index 7edd77c2..c4de2c52 100644 --- a/mods/ITEMS/mcl_armor/armor.lua +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/armor.lua @@ -1,10 +1,55 @@ -local ARMOR_INIT_DELAY = 1 -local ARMOR_INIT_TIMES = 1 -local ARMOR_BONES_DELAY = 1 +ARMOR_INIT_DELAY = 1 +ARMOR_INIT_TIMES = 1 +ARMOR_BONES_DELAY = 1 +ARMOR_UPDATE_TIME = 1 +ARMOR_DROP = minetest.get_modpath("bones") ~= nil +ARMOR_DESTROY = false +ARMOR_LEVEL_MULTIPLIER = 1 +ARMOR_HEAL_MULTIPLIER = 1 +ARMOR_RADIATION_MULTIPLIER = 1 +ARMOR_MATERIALS = { + wood = "group:wood", + cactus = "mcl_core:cactus", + iron = "mcl_core:iron_ingot", + bronze = "mcl_core:bronze_ingot", + diamond = "mcl_core:diamond", + gold = "mcl_core:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", +} +ARMOR_FIRE_PROTECT = minetest.get_modpath("ethereal") ~= nil +ARMOR_FIRE_NODES = { + {"mcl_core:lava_source", 5, 8}, + {"mcl_core:lava_flowing", 5, 8}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"mcl_torches:torch", 1, 1}, +} local skin_mod = nil local modpath = minetest.get_modpath(minetest.get_current_modname()) +local worldpath = minetest.get_worldpath() +local input = io.open(modpath.."/armor.conf", "r") +if input then + dofile(modpath.."/armor.conf") + input:close() + input = nil +end +input = io.open(worldpath.."/armor.conf", "r") +if input then + dofile(worldpath.."/armor.conf") + input:close() + input = nil +end +if not minetest.get_modpath("moreores") then + ARMOR_MATERIALS.mithril = nil +end +if not minetest.get_modpath("ethereal") then + ARMOR_MATERIALS.crystal = nil +end armor = { timer = 0, @@ -18,6 +63,7 @@ armor = { .."listring[current_player;craft]", textures = {}, default_skin = "character", + version = "0.4.6", } if minetest.get_modpath("mcl_skins") then @@ -32,63 +78,8 @@ elseif minetest.get_modpath("wardrobe") then skin_mod = "wardrobe" end -function armor.on_armor_use(itemstack, user, pointed_thing) - if not user or user:is_player() == false then - return itemstack - end - - -- Call on_rightclick if the pointed node defines it - if pointed_thing.type == "node" then - local node = minetest.get_node(pointed_thing.under) - if user and not user:get_player_control().sneak then - if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then - return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, user, itemstack) or itemstack - end - end - end - - local name, player_inv, armor_inv = armor:get_valid_player(user, "[on_armor_use]") - if not name then - return itemstack - end - - local def = itemstack:get_definition() - local slot - if def.groups and def.groups.armor_head then - slot = 2 - elseif def.groups and def.groups.armor_torso then - slot = 3 - elseif def.groups and def.groups.armor_legs then - slot = 4 - elseif def.groups and def.groups.armor_feet then - slot = 5 - end - - if slot then - local itemstack_single = ItemStack(itemstack) - itemstack_single:set_count(1) - local itemstack_slot = armor_inv:get_stack("armor", slot) - if itemstack_slot:is_empty() then - armor_inv:set_stack("armor", slot, itemstack_single) - player_inv:set_stack("armor", slot, itemstack_single) - armor:set_player_armor(user) - armor:update_inventory(user) - armor:play_equip_sound(itemstack_single, user) - itemstack:take_item() - elseif itemstack:get_count() <= 1 then - armor_inv:set_stack("armor", slot, itemstack_single) - player_inv:set_stack("armor", slot, itemstack_single) - armor:set_player_armor(user) - armor:update_inventory(user) - armor:play_equip_sound(itemstack_single, user) - itemstack = ItemStack(itemstack_slot) - end - end - - return itemstack -end - armor.def = { + state = 0, count = 0, } @@ -111,9 +102,13 @@ armor.set_player_armor = function(self, player) if not name then return end - local armor_texture = "blank.png" + local armor_texture = "3d_armor_trans.png" local armor_level = 0 - local mcl_armor_points = 0 + local armor_heal = 0 + local armor_fire = 0 + local armor_water = 0 + local armor_radiation = 0 + local state = 0 local items = 0 local elements = {} local textures = {} @@ -126,9 +121,6 @@ armor.set_player_armor = function(self, player) for i=1, 6 do local stack = player_inv:get_stack("armor", i) local item = stack:get_name() - if minetest.registered_aliases[item] then - item = minetest.registered_aliases[item] - end if stack:get_count() == 1 then local def = stack:get_definition() for k, v in pairs(elements) do @@ -139,8 +131,12 @@ armor.set_player_armor = function(self, player) table.insert(textures, texture..".png") preview = preview.."^"..texture.."_preview.png" armor_level = armor_level + level + state = state + stack:get_wear() items = items + 1 - mcl_armor_points = mcl_armor_points + (def.groups["mcl_armor_points"] or 0) + armor_heal = armor_heal + (def.groups["armor_heal"] or 0) + armor_fire = armor_fire + (def.groups["armor_fire"] or 0) + armor_water = armor_water + (def.groups["armor_water"] or 0) + armor_radiation = armor_radiation + (def.groups["armor_radiation"] or 0) for kk,vv in ipairs(self.physics) do local o_value = def.groups["physics_"..vv] if o_value then @@ -167,26 +163,32 @@ armor.set_player_armor = function(self, player) if material.type and material.count == #self.elements then armor_level = armor_level * 1.1 end + armor_level = armor_level * ARMOR_LEVEL_MULTIPLIER + armor_heal = armor_heal * ARMOR_HEAL_MULTIPLIER + armor_radiation = armor_radiation * ARMOR_RADIATION_MULTIPLIER if #textures > 0 then armor_texture = table.concat(textures, "^") end - local armor_groups = player:get_armor_groups() - armor_groups.fleshy = 100 - armor_groups.level = nil + local armor_groups = {fleshy=100} if armor_level > 0 then armor_groups.level = math.floor(armor_level / 20) armor_groups.fleshy = 100 - armor_level + armor_groups.radiation = 100 - armor_radiation end player:set_armor_groups(armor_groups) -- Physics override intentionally removed because of possible conflicts self.textures[name].armor = armor_texture self.textures[name].preview = preview + self.def[name].state = state self.def[name].count = items self.def[name].level = armor_level - self.def[name].heal = mcl_armor_points + self.def[name].heal = armor_heal self.def[name].jump = physics_o.jump self.def[name].speed = physics_o.speed self.def[name].gravity = physics_o.gravity + self.def[name].fire = armor_fire + self.def[name].water = armor_water + self.def[name].radiation = armor_radiation self:update_player_visuals(player) end @@ -195,51 +197,6 @@ armor.update_armor = function(self, player) -- Other mods can hook on to this function, see hud mod for example end -armor.get_armor_points = function(self, player) - local name, player_inv, armor_inv = armor:get_valid_player(player, "[get_armor_points]") - if not name then - return nil - end - local pts = 0 - for i=1, 6 do - local stack = player_inv:get_stack("armor", i) - if stack:get_count() > 0 then - local p = minetest.get_item_group(stack:get_name(), "mcl_armor_points") - if p then - pts = pts + p - end - end - end - return pts -end - --- Returns a change factor for a mob's view_range for the given player --- or nil, if there's no change. Certain armors (like mob heads) can --- affect the view range of mobs. -armor.get_mob_view_range_factor = function(self, player, mob) - local name, player_inv, armor_inv = armor:get_valid_player(player, "[get_mob_view_range_factor]") - if not name then - return - end - local factor - for i=1, 6 do - local stack = player_inv:get_stack("armor", i) - if stack:get_count() > 0 then - local def = stack:get_definition() - if def._mcl_armor_mob_range_mob == mob then - if not factor then - factor = def._mcl_armor_mob_range_factor - elseif factor == 0 then - return 0 - else - factor = factor * def._mcl_armor_mob_range_factor - end - end - end - end - return factor -end - armor.get_player_skin = function(self, name) local skin = nil if skin_mod == "mcl_skins" then @@ -262,17 +219,19 @@ end armor.get_armor_formspec = function(self, name) if not armor.textures[name] then - minetest.log("error", "mcl_armor: Player texture["..name.."] is nil [get_armor_formspec]") + minetest.log("error", "3d_armor: Player texture["..name.."] is nil [get_armor_formspec]") return "" end if not armor.def[name] then - minetest.log("error", "mcl_armor: Armor def["..name.."] is nil [get_armor_formspec]") + minetest.log("error", "3d_armor: Armor def["..name.."] is nil [get_armor_formspec]") return "" end local formspec = armor.formspec.."list[detached:"..name.."_armor;armor;0,1;2,3;]" formspec = formspec:gsub("armor_preview", armor.textures[name].preview) formspec = formspec:gsub("armor_level", armor.def[name].level) - formspec = formspec:gsub("mcl_armor_points", armor.def[name].heal) + formspec = formspec:gsub("armor_heal", armor.def[name].heal) + formspec = formspec:gsub("armor_fire", armor.def[name].fire) + formspec = formspec:gsub("armor_radiation", armor.def[name].radiation) return formspec end @@ -282,58 +241,38 @@ end armor.get_valid_player = function(self, player, msg) msg = msg or "" if not player then - minetest.log("error", "mcl_armor: Player reference is nil "..msg) + minetest.log("error", "3d_armor: Player reference is nil "..msg) return end local name = player:get_player_name() if not name then - minetest.log("error", "mcl_armor: Player name is nil "..msg) + minetest.log("error", "3d_armor: Player name is nil "..msg) return end local pos = player:get_pos() local player_inv = player:get_inventory() local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) if not pos then - minetest.log("error", "mcl_armor: Player position is nil "..msg) + minetest.log("error", "3d_armor: Player position is nil "..msg) return elseif not player_inv then - minetest.log("error", "mcl_armor: Player inventory is nil "..msg) + minetest.log("error", "3d_armor: Player inventory is nil "..msg) return elseif not armor_inv then - minetest.log("error", "mcl_armor: Detached armor inventory is nil "..msg) + minetest.log("error", "3d_armor: Detached armor inventory is nil "..msg) return end return name, player_inv, armor_inv, pos end -armor.play_equip_sound = function(self, stack, player, pos, unequip) - local def = stack:get_definition() - local estr = "equip" - if unequip then - estr = "unequip" - end - local snd = def.sounds and def.sounds["_mcl_armor_"..estr] - if not snd then - -- Fallback sound - snd = { name = "mcl_armor_"..estr.."_generic" } - end - if snd then - local dist = 8 - if pos then - dist = 16 - end - minetest.sound_play(snd, {object=player, pos=pos, gain=0.5, max_hear_distance=dist}, true) - end -end - -- Register Player Model -mcl_player.player_register_model("mcl_armor_character.b3d", { +mcl_player.player_register_model("3d_armor_character.b3d", { animation_speed = 30, textures = { armor.default_skin..".png", - "blank.png", - "blank.png", + "3d_armor_trans.png", + "3d_armor_trans.png", }, animations = { stand = {x=0, y=79}, @@ -371,7 +310,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end) minetest.register_on_joinplayer(function(player) - mcl_player.player_set_model(player, "mcl_armor_character.b3d") + mcl_player.player_set_model(player, "3d_armor_character.b3d") local name = player:get_player_name() local player_inv = player:get_inventory() local armor_inv = minetest.create_detached_inventory(name.."_armor", { @@ -379,13 +318,11 @@ minetest.register_on_joinplayer(function(player) player:get_inventory():set_stack(listname, index, stack) armor:set_player_armor(player) armor:update_inventory(player) - armor:play_equip_sound(stack, player) end, on_take = function(inv, listname, index, stack, player) player:get_inventory():set_stack(listname, index, nil) armor:set_player_armor(player) armor:update_inventory(player) - armor:play_equip_sound(stack, player, nil, true) end, on_move = function(inv, from_list, from_index, to_list, to_index, count, player) local plaver_inv = player:get_inventory() @@ -394,7 +331,6 @@ minetest.register_on_joinplayer(function(player) player_inv:set_stack(from_list, from_index, nil) armor:set_player_armor(player) armor:update_inventory(player) - armor:play_equip_sound(stack, player) end, allow_put = function(inv, listname, index, stack, player) local iname = stack:get_name() @@ -431,17 +367,21 @@ minetest.register_on_joinplayer(function(player) armor_inv:set_stack("armor", i, stack) end armor.def[name] = { + state = 0, count = 0, level = 0, heal = 0, jump = 1, speed = 1, gravity = 1, + fire = 0, + water = 0, + radiation = 0, } armor.textures[name] = { skin = armor.default_skin..".png", - armor = "blank.png", - wielditem = "blank.png", + armor = "3d_armor_trans.png", + wielditem = "3d_armor_trans.png", preview = armor.default_skin.."_preview.png", } if skin_mod == "mcl_skins" then @@ -489,57 +429,152 @@ minetest.register_on_joinplayer(function(player) end end) -minetest.register_on_player_hpchange(function(player, hp_change, reason) +if ARMOR_DROP == true or ARMOR_DESTROY == true then + armor.drop_armor = function(pos, stack) + local obj = minetest.add_item(pos, stack) + if obj then + obj:set_velocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)}) + end + end + minetest.register_on_dieplayer(function(player) + local name, player_inv, armor_inv, pos = armor:get_valid_player(player, "[on_dieplayer]") + if not name then + return + end + local drop = {} + for i=1, player_inv:get_size("armor") do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + table.insert(drop, stack) + armor_inv:set_stack("armor", i, nil) + player_inv:set_stack("armor", i, nil) + end + end + armor:set_player_armor(player) + if ARMOR_DESTROY == false then + minetest.after(ARMOR_BONES_DELAY, function(pos, drop) + local node = minetest.get_node(vector.round(pos)) + if node then + if node.name ~= "bones:bones" then + pos.y = pos.y+1 + node = minetest.get_node(vector.round(pos)) + if node.name ~= "bones:bones" then + minetest.log("warning", "Failed to add armor to bones node.") + return + end + end + local meta = minetest.get_meta(vector.round(pos)) + local owner = meta:get_string("owner") + local inv = meta:get_inventory() + for _,stack in ipairs(drop) do + if name == owner and inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + armor.drop_armor(pos, stack) + end + end + else + for _,stack in ipairs(drop) do + armor.drop_armor(pos, stack) + end + end + end, pos, drop) + end + end) +end + +minetest.register_on_player_hpchange(function(player, hp_change) local name, player_inv, armor_inv = armor:get_valid_player(player, "[on_hpchange]") if name and hp_change < 0 then - -- Armor doesn't protect from set_hp (commands like /kill), - -- falling and drowning damage. - if reason.type == "set_hp" or reason.type == "drown" or reason.type == "fall" then + -- used for insta kill tools/commands like /kill (doesnt damage armor) + if hp_change < -100 then return hp_change end local heal_max = 0 + local state = 0 local items = 0 - local armor_damage = math.max(1, math.floor(math.abs(hp_change)/4)) - - local total_points = 0 - local total_toughness = 0 for i=1, 6 do local stack = player_inv:get_stack("armor", i) if stack:get_count() > 0 then - -- Damage armor - local use = stack:get_definition().groups["mcl_armor_uses"] or 0 - if use > 0 then - local wear = armor_damage * math.floor(65536/use) - stack:add_wear(wear) - end - + local use = stack:get_definition().groups["armor_use"] or 0 + local heal = stack:get_definition().groups["armor_heal"] or 0 local item = stack:get_name() + stack:add_wear(use) armor_inv:set_stack("armor", i, stack) player_inv:set_stack("armor", i, stack) + state = state + stack:get_wear() items = items + 1 if stack:get_count() == 0 then + local desc = minetest.registered_items[item].description + if desc then + minetest.chat_send_player(name, "Your "..desc.." got destroyed!") + end armor:set_player_armor(player) armor:update_inventory(player) end - - local pts = stack:get_definition().groups["mcl_armor_points"] or 0 - local tough = stack:get_definition().groups["mcl_armor_toughness"] or 0 - total_points = total_points + pts - total_toughness = total_toughness + tough + heal_max = heal_max + heal end end - local damage = math.abs(hp_change) - - -- Damage calculation formula (from ) - damage = damage * (1 - math.min(20, math.max((total_points/5), total_points - damage / (2+(total_toughness/4)))) / 25) - damage = math.floor(damage+0.5) - - hp_change = -math.abs(damage) - + armor.def[name].state = state armor.def[name].count = items + heal_max = heal_max * ARMOR_HEAL_MULTIPLIER + if heal_max > math.random(100) then + hp_change = 0 + end armor:update_armor(player) end return hp_change end, true) + +-- Fire Protection and water breating, added by TenPlus1 + +if ARMOR_FIRE_PROTECT == true then + -- override hot nodes so they do not hurt player anywhere but mod + for _, row in pairs(ARMOR_FIRE_NODES) do + if minetest.registered_nodes[row[1]] then + minetest.override_item(row[1], {damage_per_second = 0}) + end + end +else + print ("[3d_armor] Fire Nodes disabled") +end + +minetest.register_globalstep(function(dtime) + armor.timer = armor.timer + dtime + if armor.timer < ARMOR_UPDATE_TIME then + return + end + for _,player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local pos = player:get_pos() + local hp = player:get_hp() + -- water breathing + if name and armor.def[name].water > 0 then + if player:get_breath() < 10 then + player:set_breath(10) + end + end + -- fire protection + if ARMOR_FIRE_PROTECT == true + and name and pos and hp then + pos.y = pos.y + 1.4 -- head level + local node_head = minetest.get_node(pos).name + pos.y = pos.y - 1.2 -- feet level + local node_feet = minetest.get_node(pos).name + -- is player inside a hot node? + for _, row in pairs(ARMOR_FIRE_NODES) do + -- check fire protection, if not enough then get hurt + if row[1] == node_head or row[1] == node_feet then + if hp > 0 and armor.def[name].fire < row[2] then + hp = hp - row[3] * ARMOR_UPDATE_TIME + player:set_hp(hp) + break + end + end + end + end + end + armor.timer = 0 +end) diff --git a/mods/ITEMS/mcl_armor/depends.txt b/mods/ITEMS/minetest-3d_armor/3d_armor/depends.txt similarity index 100% rename from mods/ITEMS/mcl_armor/depends.txt rename to mods/ITEMS/minetest-3d_armor/3d_armor/depends.txt diff --git a/mods/ITEMS/mcl_armor/description.txt b/mods/ITEMS/minetest-3d_armor/3d_armor/description.txt similarity index 100% rename from mods/ITEMS/mcl_armor/description.txt rename to mods/ITEMS/minetest-3d_armor/3d_armor/description.txt diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/init.lua b/mods/ITEMS/minetest-3d_armor/3d_armor/init.lua new file mode 100644 index 00000000..ee4af5b5 --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/init.lua @@ -0,0 +1,289 @@ +local S = minetest.get_translator("3d_armor") + +dofile(minetest.get_modpath(minetest.get_current_modname()).."/armor.lua") + +-- Regisiter Head Armor + +local longdesc = S("This is a piece of equippable armor which reduces the amount of damage you receive.") +local usage = S("To equip it, put it on the corresponding armor slot in your inventory menu.") + +minetest.register_tool("3d_armor:helmet_leather", { + description = S("Leather Cap"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_helmet_leather.png", + groups = {armor_head=5, armor_heal=0, armor_use=100}, + wear = 0, + _repair_material = "mcl_mobitems:leather", +}) + +minetest.register_tool("3d_armor:helmet_iron", { + description = S("Iron Helmet"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_helmet_iron.png", + groups = {armor_head=10, armor_heal=5, armor_use=250}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +minetest.register_tool("3d_armor:helmet_gold", { + description = S("Golden Helmet"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_helmet_gold.png", + groups = {armor_head=15, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:gold_ingot", +}) + +minetest.register_tool("3d_armor:helmet_diamond",{ + description = S("Diamond Helmet"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_helmet_diamond.png", + groups = {armor_head=20, armor_heal=15, armor_use=750}, + wear = 0, + _repair_material = "mcl_core:diamond", +}) + +minetest.register_tool("3d_armor:helmet_chain", { + description = S("Chain Helmet"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_helmet_chain.png", + groups = {armor_head=15, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +-- Regisiter Torso Armor + +minetest.register_tool("3d_armor:chestplate_leather", { + description = S("Leather Tunic"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_chestplate_leather.png", + groups = {armor_torso=15, armor_heal=0, armor_use=100}, + wear = 0, + _repair_material = "mcl_mobitems:leather", +}) + +minetest.register_tool("3d_armor:chestplate_iron", { + description = S("Iron Chestplate"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_chestplate_iron.png", + groups = {armor_torso=20, armor_heal=5, armor_use=250}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +minetest.register_tool("3d_armor:chestplate_gold", { + description = S("Golden Chestplate"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_chestplate_gold.png", + groups = {armor_torso=25, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:gold_ingot", +}) + +minetest.register_tool("3d_armor:chestplate_diamond",{ + description = S("Diamond Chestplate"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_chestplate_diamond.png", + groups = {armor_torso=30, armor_heal=15, armor_use=750}, + wear = 0, + _repair_material = "mcl_core:diamond", +}) + +minetest.register_tool("3d_armor:chestplate_chain", { + description = S("Chain Chestplate"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_chestplate_chain.png", + groups = {armor_torso=25, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +-- Regisiter Leg Armor + +minetest.register_tool("3d_armor:leggings_leather", { + description = S("Leather Pants"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_leggings_leather.png", + groups = {armor_legs=10, armor_heal=0, armor_use=100}, + wear = 0, + _repair_material = "mcl_mobitems:leather", +}) + +minetest.register_tool("3d_armor:leggings_iron", { + description = S("Iron Leggings"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_leggings_iron.png", + groups = {armor_legs=15, armor_heal=5, armor_use=250}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +minetest.register_tool("3d_armor:leggings_gold", { + description = S("Golden Leggings"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_leggings_gold.png", + groups = {armor_legs=20, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:gold_ingot", +}) + +minetest.register_tool("3d_armor:leggings_diamond",{ + description = S("Diamond Leggings"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_leggings_diamond.png", + groups = {armor_legs=25, armor_heal=15, armor_use=750}, + wear = 0, + _repair_material = "mcl_core:diamond", +}) + +minetest.register_tool("3d_armor:leggings_chain", { + description = S("Chain Leggings"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_leggings_chain.png", + groups = {armor_legs=20, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) +-- Regisiter Boots + +minetest.register_tool("3d_armor:boots_leather", { + description = S("Leather Boots"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_boots_leather.png", + groups = {armor_feet=5, armor_heal=0, armor_use=100}, + wear = 0, + _repair_material = "mcl_mobitems:leather", +}) + +minetest.register_tool("3d_armor:boots_iron", { + description = S("Iron Boots"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_boots_iron.png", + groups = {armor_feet=10, armor_heal=5, armor_use=250}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +minetest.register_tool("3d_armor:boots_gold", { + description = S("Golden Boots"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_boots_gold.png", + groups = {armor_feet=15, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:gold_ingot", +}) + +minetest.register_tool("3d_armor:boots_diamond",{ + description = S("Diamond Boots"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_boots_diamond.png", + groups = {armor_feet=20, armor_heal=15, armor_use=750}, + wear = 0, + _repair_material = "mcl_core:diamond", +}) + +minetest.register_tool("3d_armor:boots_chain", { + description = S("Chain Boots"), + _doc_items_longdesc = longdesc, + _doc_items_usagehelp = usage, + inventory_image = "3d_armor_inv_boots_chain.png", + groups = {armor_feet=15, armor_heal=10, armor_use=500}, + wear = 0, + _repair_material = "mcl_core:iron_ingot", +}) + +-- Register Craft Recipies + +local craft_ingreds = { + leather = { "mcl_mobitems:leather" }, + iron = { "mcl_core:iron_ingot", "mcl_core:iron_nugget" }, + gold = { "mcl_core:gold_ingot", "mcl_core:gold_nugget" }, + diamond = { "mcl_core:diamond" }, + chain = { nil, "mcl_core:iron_nugget"} , +} + +for k, v in pairs(craft_ingreds) do + -- material + local m = v[1] + -- cooking result + local c = v[2] + if m ~= nil then + minetest.register_craft({ + output = "3d_armor:helmet_"..k, + recipe = { + {m, m, m}, + {m, "", m}, + {"", "", ""}, + }, + }) + minetest.register_craft({ + output = "3d_armor:chestplate_"..k, + recipe = { + {m, "", m}, + {m, m, m}, + {m, m, m}, + }, + }) + minetest.register_craft({ + output = "3d_armor:leggings_"..k, + recipe = { + {m, m, m}, + {m, "", m}, + {m, "", m}, + }, + }) + minetest.register_craft({ + output = "3d_armor:boots_"..k, + recipe = { + {m, "", m}, + {m, "", m}, + }, + }) + end + if c ~= nil then + minetest.register_craft({ + type = "cooking", + output = c, + recipe = "3d_armor:helmet_"..k, + cooktime = 10, + }) + minetest.register_craft({ + type = "cooking", + output = c, + recipe = "3d_armor:chestplate_"..k, + cooktime = 10, + }) + minetest.register_craft({ + type = "cooking", + output = c, + recipe = "3d_armor:leggings_"..k, + cooktime = 10, + }) + minetest.register_craft({ + type = "cooking", + output = c, + recipe = "3d_armor:boots_"..k, + cooktime = 10, + }) + end +end diff --git a/mods/ITEMS/mcl_armor/locale/mcl_armor.de.tr b/mods/ITEMS/minetest-3d_armor/3d_armor/locale/3d_armor.de.tr similarity index 97% rename from mods/ITEMS/mcl_armor/locale/mcl_armor.de.tr rename to mods/ITEMS/minetest-3d_armor/3d_armor/locale/3d_armor.de.tr index 09da3a9c..12c7c09e 100644 --- a/mods/ITEMS/mcl_armor/locale/mcl_armor.de.tr +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/locale/3d_armor.de.tr @@ -1,4 +1,4 @@ -# textdomain: mcl_armor +# textdomain: 3d_armor This is a piece of equippable armor which reduces the amount of damage you receive.=Dies ist ein Teil einer tragbaren Rüstung, die die Menge an Schaden, den Sie erleiden, reduziert. To equip it, put it on the corresponding armor slot in your inventory menu.=Um es zu tragen, legen Sie es in den passenden Rüstungsplatz in ihrem Inventarmenü. Leather Cap=Lederkappe diff --git a/mods/ITEMS/mcl_armor/locale/template.txt b/mods/ITEMS/minetest-3d_armor/3d_armor/locale/template.txt similarity index 95% rename from mods/ITEMS/mcl_armor/locale/template.txt rename to mods/ITEMS/minetest-3d_armor/3d_armor/locale/template.txt index 8a95fca0..f0126bca 100644 --- a/mods/ITEMS/mcl_armor/locale/template.txt +++ b/mods/ITEMS/minetest-3d_armor/3d_armor/locale/template.txt @@ -1,4 +1,4 @@ -# textdomain: mcl_armor +# textdomain: 3d_armor This is a piece of equippable armor which reduces the amount of damage you receive.= To equip it, put it on the corresponding armor slot in your inventory menu.= Leather Cap= diff --git a/mods/ITEMS/mcl_armor/models/mcl_armor_character.b3d b/mods/ITEMS/minetest-3d_armor/3d_armor/models/3d_armor_character.b3d similarity index 100% rename from mods/ITEMS/mcl_armor/models/mcl_armor_character.b3d rename to mods/ITEMS/minetest-3d_armor/3d_armor/models/3d_armor_character.b3d diff --git a/mods/ITEMS/mcl_armor/models/mcl_armor_character.blend b/mods/ITEMS/minetest-3d_armor/3d_armor/models/3d_armor_character.blend similarity index 100% rename from mods/ITEMS/mcl_armor/models/mcl_armor_character.blend rename to mods/ITEMS/minetest-3d_armor/3d_armor/models/3d_armor_character.blend diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_chain.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_chain.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_chain.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_chain_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_chain_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_chain_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_chain_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_diamond_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_diamond_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_gold_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_gold_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_iron_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_iron_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_iron_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_iron_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_leather.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_leather_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_leather_preview.png similarity index 54% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_boots_leather_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_leather_preview.png index d527d426..d0457ce9 100644 Binary files a/mods/ITEMS/mcl_armor/textures/mcl_armor_boots_leather_preview.png and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_boots_leather_preview.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_chain.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_chain.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_chain.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_chain_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_chain_preview.png new file mode 100644 index 00000000..af9c982f Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_chain_preview.png differ diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png new file mode 100644 index 00000000..3679ae6a Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_diamond_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_diamond_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_gold_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_gold_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_iron_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_iron_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_iron_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_iron_preview.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_leather.png new file mode 100644 index 00000000..eaa53582 Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_leather.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_leather_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_leather_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_chestplate_leather_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_chestplate_leather_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_chain.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_chain.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_chain.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_chain_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_chain_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_chain_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_chain_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_diamond_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_diamond_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_gold_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_gold_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_iron_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_iron_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_iron_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_iron_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_leather.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_leather_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_leather_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_helmet_leather_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_helmet_leather_preview.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_chain.png new file mode 100644 index 00000000..66f9bdce Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_chain.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_boots_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_boots_leather.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_chain.png new file mode 100644 index 00000000..9ab14863 Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_chain.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_chestplate_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_chestplate_leather.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_chain.png new file mode 100644 index 00000000..f72a88da Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_chain.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_helmet_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_helmet_leather.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_chain.png new file mode 100644 index 00000000..c2641991 Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_chain.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_inv_leggings_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_iron.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_leather.png new file mode 100644 index 00000000..41d49c37 Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_inv_leggings_leather.png differ diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_chain.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_chain.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_chain.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_chain.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_chain_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_chain_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_chain_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_chain_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_diamond.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_diamond.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_diamond_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_diamond_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_gold.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_gold.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_gold_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_gold_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_iron.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_iron.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_iron.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_iron.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_iron_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_iron_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_iron_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_iron_preview.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_leather.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_leather.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_leather.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_leather.png diff --git a/mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_leather_preview.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_leather_preview.png similarity index 100% rename from mods/ITEMS/mcl_armor/textures/mcl_armor_leggings_leather_preview.png rename to mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_leggings_leather_preview.png diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png new file mode 100644 index 00000000..4d7beb80 Binary files /dev/null and b/mods/ITEMS/minetest-3d_armor/3d_armor/textures/3d_armor_trans.png differ diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor_stand/LICENSE.txt b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/LICENSE.txt new file mode 100644 index 00000000..5c8246a9 --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/LICENSE.txt @@ -0,0 +1,7 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +License Source Code: LGPL v2.1 + +Lecense Media: CC BY-SA 3.0 + diff --git a/mods/ITEMS/minetest-3d_armor/3d_armor_stand/README.txt b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/README.txt new file mode 100644 index 00000000..3fe7fb8c --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/README.txt @@ -0,0 +1,6 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. diff --git a/mods/ITEMS/mcl_armor_stand/depends.txt b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/depends.txt similarity index 81% rename from mods/ITEMS/mcl_armor_stand/depends.txt rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/depends.txt index 02ce27d7..f3ae0216 100644 --- a/mods/ITEMS/mcl_armor_stand/depends.txt +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/depends.txt @@ -1,4 +1,4 @@ -mcl_armor +3d_armor mcl_core mcl_sounds mcl_stairs diff --git a/mods/ITEMS/mcl_armor_stand/init.lua b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/init.lua similarity index 86% rename from mods/ITEMS/mcl_armor_stand/init.lua rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/init.lua index 88b46a34..85c7c3de 100644 --- a/mods/ITEMS/mcl_armor_stand/init.lua +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/init.lua @@ -1,4 +1,4 @@ -local S = minetest.get_translator("mcl_armor_stand") +local S = minetest.get_translator("3d_armor_stand") local elements = {"head", "torso", "legs", "feet"} @@ -8,7 +8,7 @@ local function get_stand_object(pos) for _, obj in pairs(objects) do local ent = obj:get_luaentity() if ent then - if ent.name == "mcl_armor_stand:armor_entity" then + if ent.name == "3d_armor_stand:armor_entity" then -- Remove duplicates if object then obj:remove() @@ -25,15 +25,15 @@ local function update_entity(pos) local node = minetest.get_node(pos) local object = get_stand_object(pos) if object then - if not string.find(node.name, "mcl_armor_stand:") then + if not string.find(node.name, "3d_armor_stand:") then object:remove() return end else - object = minetest.add_entity(pos, "mcl_armor_stand:armor_entity") + object = minetest.add_entity(pos, "3d_armor_stand:armor_entity") end if object then - local texture = "blank.png" + local texture = "3d_armor_trans.png" local textures = {} local meta = minetest.get_meta(pos) local inv = meta:get_inventory() @@ -43,9 +43,6 @@ local function update_entity(pos) local stack = inv:get_stack("armor_"..element, 1) if stack:get_count() == 1 then local item = stack:get_name() or "" - if minetest.registered_aliases[item] then - item = minetest.registered_aliases[item] - end local def = stack:get_definition() or {} local groups = def.groups or {} if groups["armor_"..element] then @@ -87,9 +84,8 @@ local drop_armor = function(pos) end -- TODO: The armor stand should be an entity -minetest.register_node("mcl_armor_stand:armor_stand", { +minetest.register_node("3d_armor_stand:armor_stand", { description = S("Armor Stand"), - _tt_help = S("Displays pieces of armor"), _doc_items_longdesc = S("An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand."), _doc_items_usagehelp = S("Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand."), drawtype = "mesh", @@ -150,7 +146,6 @@ minetest.register_node("mcl_armor_stand:armor_stand", { single_item:set_count(1) if inv:is_empty(list) then inv:add_item(list, single_item) - armor:play_equip_sound(single_item, nil, pos) update_entity(pos) itemstack:take_item() return itemstack @@ -175,7 +170,6 @@ minetest.register_node("mcl_armor_stand:armor_stand", { taken = true end if taken then - armor:play_equip_sound(stand_armor, nil, pos, true) stand_armor:take_item() inv:set_stack("armor_" .. elements[e], 1, stand_armor) end @@ -187,7 +181,7 @@ minetest.register_node("mcl_armor_stand:armor_stand", { return itemstack end, after_place_node = function(pos) - minetest.add_entity(pos, "mcl_armor_stand:armor_entity") + minetest.add_entity(pos, "3d_armor_stand:armor_entity") end, allow_metadata_inventory_take = function(pos, listname, index, stack, player) local name = player:get_player_name() @@ -243,14 +237,14 @@ minetest.register_node("mcl_armor_stand:armor_stand", { end, }) -minetest.register_entity("mcl_armor_stand:armor_entity", { +minetest.register_entity("3d_armor_stand:armor_entity", { physical = true, visual = "mesh", mesh = "3d_armor_entity.obj", visual_size = {x=1, y=1}, collisionbox = {-0.1,-0.4,-0.1, 0.1,1.3,0.1}, pointable = false, - textures = {"blank.png"}, + textures = {"3d_armor_trans.png"}, pos = nil, timer = 0, on_activate = function(self) @@ -283,8 +277,8 @@ minetest.register_entity("mcl_armor_stand:armor_entity", { -- FIXME: Armor helper entity can get destroyed by /clearobjects minetest.register_lbm({ label = "Respawn armor stand entities", - name = "mcl_armor_stand:respawn_entities", - nodenames = {"mcl_armor_stand:armor_stand"}, + name = "3d_armor_stand:respawn_entities", + nodenames = {"3d_armor_stand:armor_stand"}, run_at_every_load = true, action = function(pos, node) update_entity(pos, node) @@ -292,7 +286,7 @@ minetest.register_lbm({ }) minetest.register_craft({ - output = "mcl_armor_stand:armor_stand", + output = "3d_armor_stand:armor_stand", recipe = { {"mcl_core:stick", "mcl_core:stick", "mcl_core:stick"}, {"", "mcl_core:stick", ""}, @@ -300,13 +294,3 @@ minetest.register_craft({ } }) - --- Legacy handling -minetest.register_alias("3d_armor_stand:armor_stand", "mcl_armor_stand:armor_stand") -minetest.register_entity(":3d_armor_stand:armor_entity", { - on_activate = function(self) - minetest.log("action", "[mcl_armor_stand] Removing legacy entity: 3d_armor_stand:armor_entity") - self.object:remove() - end, - static_save = false, -}) diff --git a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.de.tr b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/3d_armor_stand.de.tr similarity index 90% rename from mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.de.tr rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/3d_armor_stand.de.tr index e6f8fa91..b947719b 100644 --- a/mods/ITEMS/mcl_armor_stand/locale/mcl_armor_stand.de.tr +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/3d_armor_stand.de.tr @@ -1,5 +1,4 @@ -# textdomain: mcl_armor_stand +# textdomain: 3d_armor_stand Armor Stand=Rüstungsständer An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.=Ein Rüstungsständer ist ein dekoratives Objekt, welches verschiedene Teile einer Rüstung präsentiert. Alles, was Spieler als Rüstung tragen kann, kann auch an einem Rüstungsständer platziert werden. Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.=Platzieren Sie einfach einen Rüstungsgegenstand auf den Rüstungsständer. Um das oberte Rüstungsteil zu nehmen, wählen Sie Ihre Hand aus und benutzen Sie die Platzieren-Taste auf dem Rüstungsständer. -Displays pieces of armor=Stellt Rüstungsteile aus diff --git a/mods/ITEMS/mcl_armor_stand/locale/template.txt b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/template.txt similarity index 85% rename from mods/ITEMS/mcl_armor_stand/locale/template.txt rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/template.txt index 8d3f3cb8..9f7d0ca4 100644 --- a/mods/ITEMS/mcl_armor_stand/locale/template.txt +++ b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/locale/template.txt @@ -1,5 +1,4 @@ -# textdomain: mcl_armor_stand +# textdomain: 3d_armor_stand Armor Stand= An armor stand is a decorative object which can display different pieces of armor. Anything which players can wear as armor can also be put on an armor stand.= Just place an armor item on the armor stand. To take the top piece of armor from the armor stand, select your hand and use the place key on the armor stand.= -Displays pieces of armor= diff --git a/mods/ITEMS/mcl_armor_stand/models/3d_armor_entity.obj b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj similarity index 100% rename from mods/ITEMS/mcl_armor_stand/models/3d_armor_entity.obj rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/models/3d_armor_entity.obj diff --git a/mods/ITEMS/mcl_armor_stand/models/3d_armor_stand.obj b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj similarity index 100% rename from mods/ITEMS/mcl_armor_stand/models/3d_armor_stand.obj rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/models/3d_armor_stand.obj diff --git a/mods/ITEMS/mcl_armor_stand/textures/3d_armor_stand_item.png b/mods/ITEMS/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_item.png similarity index 100% rename from mods/ITEMS/mcl_armor_stand/textures/3d_armor_stand_item.png rename to mods/ITEMS/minetest-3d_armor/3d_armor_stand/textures/3d_armor_stand_item.png diff --git a/mods/ITEMS/minetest-3d_armor/LICENSE.md b/mods/ITEMS/minetest-3d_armor/LICENSE.md new file mode 100644 index 00000000..38e8a9fd --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/LICENSE.md @@ -0,0 +1,7 @@ +3D Armor - Visible Player Armor +=============================== + +Source Code: Copyright (C) 2013 Stuart Jones - LGPL + +Special credit to Jordach and MirceaKitsune for providing the default 3d character model. + diff --git a/mods/ITEMS/minetest-3d_armor/README.md b/mods/ITEMS/minetest-3d_armor/README.md new file mode 100644 index 00000000..0ac2c29a --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/README.md @@ -0,0 +1,41 @@ +Modpack - 3d Armor +================== + +[mod] Unified Skins [unified_skins] +----------------------------------- + +depends: default + +A 3d character model re-texturing api used as the framework for this modpack. + +Compatible with player skins mod [skins] by Zeg9 and Player Textures [player_textures] by sdzen. + +Note: Currently only supports 64x32px player skins. + +[mod] Visible Wielded Items [wieldview] +--------------------------------------- + +depends: unified_skins + +Makes hand wielded items visible to other players. + +Note: Currently only supports 16x16px texture packs, sorry! + +[mod] Visible Player Armor [3d_armor] +------------------------------------- + +depends: unified_skins, inventory_plus + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt, however, many armor items offer a 'stackable' +percentage chance of restoring the lost health points. + +[mod] Shields [shields] +------------------------------------- + +depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not want shields then simply remove the shields folder from the modpack. diff --git a/mods/ITEMS/minetest-3d_armor/modpack.conf b/mods/ITEMS/minetest-3d_armor/modpack.conf new file mode 100644 index 00000000..a3ba1c4a --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/modpack.conf @@ -0,0 +1,2 @@ +name = minetest-3d_armor +description = Armor-related mods diff --git a/mods/ITEMS/minetest-3d_armor/wieldview/LICENSE.txt b/mods/ITEMS/minetest-3d_armor/wieldview/LICENSE.txt new file mode 100644 index 00000000..4e8d524b --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/wieldview/LICENSE.txt @@ -0,0 +1,5 @@ +[mod] visible wielded items [wieldview] +======================================= + +License Source Code: Copyright (C) 2013-2017 Stuart Jones - LGPL v2.1 + diff --git a/mods/PLAYER/wieldview/README.txt b/mods/ITEMS/minetest-3d_armor/wieldview/README.txt similarity index 54% rename from mods/PLAYER/wieldview/README.txt rename to mods/ITEMS/minetest-3d_armor/wieldview/README.txt index 183e8c6d..e6be7490 100644 --- a/mods/PLAYER/wieldview/README.txt +++ b/mods/ITEMS/minetest-3d_armor/wieldview/README.txt @@ -1,6 +1,8 @@ [mod] visible wielded items [wieldview] ======================================= +Depends on: 3d_armor + Makes hand wielded items visible to other players. default settings: [minetest.conf] @@ -11,11 +13,3 @@ wieldview_update_time = 2 # Show nodes as tiles, disabled by default wieldview_node_tiles = false - -Info for modders -################ - -Wield image transformation: To apply a simple transformation to the item in -hand, add the group “wieldview_transform” to the item definition. The group -rating equals one of the numbers used for the [transform texture modifier -of the Lua API. diff --git a/mods/ITEMS/minetest-3d_armor/wieldview/depends.txt b/mods/ITEMS/minetest-3d_armor/wieldview/depends.txt new file mode 100644 index 00000000..b6cac219 --- /dev/null +++ b/mods/ITEMS/minetest-3d_armor/wieldview/depends.txt @@ -0,0 +1 @@ +3d_armor diff --git a/mods/PLAYER/wieldview/description.txt b/mods/ITEMS/minetest-3d_armor/wieldview/description.txt similarity index 100% rename from mods/PLAYER/wieldview/description.txt rename to mods/ITEMS/minetest-3d_armor/wieldview/description.txt diff --git a/mods/PLAYER/wieldview/init.lua b/mods/ITEMS/minetest-3d_armor/wieldview/init.lua similarity index 80% rename from mods/PLAYER/wieldview/init.lua rename to mods/ITEMS/minetest-3d_armor/wieldview/init.lua index ecbb2dc0..9aef99e3 100644 --- a/mods/PLAYER/wieldview/init.lua +++ b/mods/ITEMS/minetest-3d_armor/wieldview/init.lua @@ -18,7 +18,7 @@ wieldview = { dofile(minetest.get_modpath(minetest.get_current_modname()).."/transform.lua") wieldview.get_item_texture = function(self, item) - local texture = "blank.png" + local texture = "3d_armor_trans.png" if item ~= "" then if minetest.registered_items[item] then if minetest.registered_items[item].inventory_image ~= "" then @@ -29,15 +29,8 @@ wieldview.get_item_texture = function(self, item) texture = minetest.inventorycube(minetest.registered_items[item].tiles[1]) end end - -- Get item image transformation, first from group, then from transform.lua - local transform = minetest.get_item_group(item, "wieldview_transform") - if transform == 0 then - transform = wieldview.transform[item] - end - if transform then - -- This actually works with groups ratings because transform1, transform2, etc. - -- have meaning and transform0 is used for identidy, so it can be ignored - texture = texture.."^[transform"..tostring(transform) + if wieldview.transform[item] then + texture = texture.."^[transform"..wieldview.transform[item] end end return texture diff --git a/mods/PLAYER/wieldview/transform.lua b/mods/ITEMS/minetest-3d_armor/wieldview/transform.lua similarity index 100% rename from mods/PLAYER/wieldview/transform.lua rename to mods/ITEMS/minetest-3d_armor/wieldview/transform.lua diff --git a/mods/ITEMS/screwdriver/API.md b/mods/ITEMS/screwdriver/API.md deleted file mode 100644 index 03cc6fdd..00000000 --- a/mods/ITEMS/screwdriver/API.md +++ /dev/null @@ -1,20 +0,0 @@ -Screwdriver API ---------------- - -The screwdriver API allows you to control a node's behaviour when a screwdriver is used on it. -NOTE: This API is compatible with Minetest Game 5.1.0, but has some extensions. - -To use it, add the `on_rotate` function to the node definition. - -`on_rotate(pos, node, user, mode, new_param2)` - - * `pos`: Position of the node that the screwdriver is being used on - * `node`: that node - * `user`: The player who used the screwdriver - * `mode`: `screwdriver.ROTATE_FACE` or `screwdriver.ROTATE_AXIS` - * `new_param2` the new value of `param2` that would have been set if `on_rotate` wasn't there - * return value: false to disallow rotation, nil to keep default behaviour, true to allow - it but to indicate that changed have already been made (so the screwdriver will wear out) - * use `on_rotate = false` to always disallow rotation - * use `on_rotate = screwdriver.rotate_simple` to allow only face rotation - * use `on_rotate = screwdriver.rotate_3way` (MineClone 2 extension) for pillar-like nodes that should only have 3 possible orientations) diff --git a/mods/ITEMS/screwdriver/README.md b/mods/ITEMS/screwdriver/README.txt similarity index 69% rename from mods/ITEMS/screwdriver/README.md rename to mods/ITEMS/screwdriver/README.txt index 7237c847..9d39c58c 100644 --- a/mods/ITEMS/screwdriver/README.md +++ b/mods/ITEMS/screwdriver/README.txt @@ -1,5 +1,5 @@ -MineClone 2 mod: screwdriver -============================ +Minetest Game mod: screwdriver +============================== See license.txt for license information. License of source code @@ -9,5 +9,5 @@ Various Minetest developers and contributors (LGPL 2.1) License of media (textures) --------------------------- -Created by Wuzzy (CC0): -* `screwdriver.png` +Created by Gambit (CC BY-SA 3.0): + screwdriver.png diff --git a/mods/ITEMS/screwdriver/init.lua b/mods/ITEMS/screwdriver/init.lua index 7fad2bdc..ca77e400 100644 --- a/mods/ITEMS/screwdriver/init.lua +++ b/mods/ITEMS/screwdriver/init.lua @@ -12,30 +12,6 @@ screwdriver.rotate_simple = function(pos, node, user, mode, new_param2) return false end end -screwdriver.rotate_3way = function(pos, node, user, mode, new_param2) - if mode == screwdriver.ROTATE_AXIS then - if node.param2 == 0 then - node.param2 = 6 - elseif node.param2 == 6 then - node.param2 = 12 - else - node.param2 = 0 - end - minetest.swap_node(pos, node) - return true - elseif mode == screwdriver.ROTATE_FACE then - if node.param2 == 6 then - node.param2 = 12 - minetest.swap_node(pos, node) - return true - else - node.param2 = 6 - minetest.swap_node(pos, node) - return true - end - end - return false -end -- For attached wallmounted nodes: returns true if rotation is valid -- simplified version of minetest:builtin/game/falling.lua#L148. @@ -171,8 +147,7 @@ end minetest.register_tool("screwdriver:screwdriver", { description = S("Screwdriver"), inventory_image = "screwdriver.png", - wield_image = "screwdriver.png^[transformFX", - groups = { tool = 1, not_in_creative_inventory = 1 }, + groups = { tool = 1 }, on_use = function(itemstack, user, pointed_thing) screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) return itemstack diff --git a/mods/ITEMS/screwdriver/locale/screwdriver.es.tr b/mods/ITEMS/screwdriver/locale/screwdriver.es.tr deleted file mode 100644 index f2c778ce..00000000 --- a/mods/ITEMS/screwdriver/locale/screwdriver.es.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain: screwdriver -Screwdriver=Destornillador diff --git a/mods/ITEMS/screwdriver/locale/screwdriver.fr.tr b/mods/ITEMS/screwdriver/locale/screwdriver.fr.tr deleted file mode 100644 index ae014ea0..00000000 --- a/mods/ITEMS/screwdriver/locale/screwdriver.fr.tr +++ /dev/null @@ -1,2 +0,0 @@ -#textdomain: screwdriver -Screwdriver=Tournevis diff --git a/mods/ITEMS/screwdriver/textures/screwdriver.png b/mods/ITEMS/screwdriver/textures/screwdriver.png index f6706b97..b2a56d55 100644 Binary files a/mods/ITEMS/screwdriver/textures/screwdriver.png and b/mods/ITEMS/screwdriver/textures/screwdriver.png differ diff --git a/mods/ITEMS/xpanes/init.lua b/mods/ITEMS/xpanes/init.lua index b98d65e3..42dbb807 100644 --- a/mods/ITEMS/xpanes/init.lua +++ b/mods/ITEMS/xpanes/init.lua @@ -137,6 +137,7 @@ function xpanes.register_pane(name, def) paramtype = "light", is_ground_content = false, sunlight_propagates = true, + description = def.description, _doc_items_create_entry = false, tiles = {def.textures[3], def.textures[2], def.textures[1]}, use_texture_alpha = def.use_texture_alpha, @@ -202,7 +203,7 @@ local pane = function(description, node, append) {node, node, node}, }, drop = "", - _mcl_blast_resistance = 0.3, + _mcl_blast_resistance = 1.5, _mcl_hardness = 0.3, }) @@ -225,7 +226,7 @@ xpanes.register_pane("bar", { {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, {"mcl_core:iron_ingot", "mcl_core:iron_ingot", "mcl_core:iron_ingot"}, }, - _mcl_blast_resistance = 6, + _mcl_blast_resistance = 30, _mcl_hardness = 5, }) diff --git a/mods/ITEMS/xpanes/locale/xpanes.es.tr b/mods/ITEMS/xpanes/locale/xpanes.es.tr deleted file mode 100644 index c90c6472..00000000 --- a/mods/ITEMS/xpanes/locale/xpanes.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: xpanes -Glass panes are thin layers of glass which neatly connect to their neighbors as you build them.=Los paneles de cristal son capas delgadas de vidrio que se conectan perfectamente a otros cristales a medida que los construye. -Stained glass panes are thin layers of stained glass which neatly connect to their neighbors as you build them. They come in many different colors.=Los paneles de cristal son capas delgadas de vidrio que se conectan perfectamente a otros cristales a medida que los construye. Vienen en muchos colores diferentes. -Iron Bars=Barrotes de hierro -Iron bars neatly connect to their neighbors as you build them.=Los barrotes de hierro se conectan perfectamente a sus vecinos a medida que los construyes. -Glass Pane=Panel de cristal -Stained Glass Pane=Panel de cristal tintado de manchado -Red Stained Glass Pane=Panel de cristal tintado de rojo -Green Stained Glass Pane=Panel de cristal tintado de verde -Blue Stained Glass Pane=Panel de cristal tintado de azul -Light Blue Stained Glass Pane=Panel de cristal tintado de azul claro -Black Stained Glass Pane=Panel de cristal tintado de negro -White Stained Glass Pane=Panel de cristal tintado de blanco -Yellow Stained Glass Pane=Panel de cristal tintado de amarillo -Brown Stained Glass Pane=Panel de cristal tintado de marrón -Orange Stained Glass Pane=Panel de cristal tintado de naranja -Pink Stained Glass Pane=Panel de cristal tintado de rosa -Grey Stained Glass Pane=Panel de cristal tintado de gris -Lime Stained Glass Pane=Panel de cristal tintado de verde lima -Light Grey Stained Glass Pane=Panel de cristal tintado de gris claro -Magenta Stained Glass Pane=Panel de cristal tintado de magenta -Purple Stained Glass Pane=Panel de cristal tintado de morado -Cyan Stained Glass Pane=Panel de cristal tintado de cian diff --git a/mods/ITEMS/xpanes/locale/xpanes.fr.tr b/mods/ITEMS/xpanes/locale/xpanes.fr.tr deleted file mode 100644 index 6b2fe43f..00000000 --- a/mods/ITEMS/xpanes/locale/xpanes.fr.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: xpanes -Glass panes are thin layers of glass which neatly connect to their neighbors as you build them.=Les vitres sont de fines couches de verre qui se connectent parfaitement à leurs voisins lorsque vous les construisez. -Stained glass panes are thin layers of stained glass which neatly connect to their neighbors as you build them. They come in many different colors.=Les vitres teintées sont de fines couches de verre teinté qui se connectent parfaitement à leurs voisins lorsque vous les construisez. Ils viennent dans de nombreuses couleurs différentes. -Iron Bars=Barres de fer -Iron bars neatly connect to their neighbors as you build them.=Les barres de fer se connectent parfaitement à leurs voisins lorsque vous les construisez. -Glass Pane=Vitre -Stained Glass Pane=Vitre Teintée -Red Stained Glass Pane=Vitre Teintée Rouge -Green Stained Glass Pane=Vitre Teintée Verte -Blue Stained Glass Pane=Vitre Teintée Bleue -Light Blue Stained Glass Pane=Vitre Teintée Bleu Clair -Black Stained Glass Pane=Vitre Teintée Noire -White Stained Glass Pane=Vitre Teintée Blanche -Yellow Stained Glass Pane=Vitre Teintée Jaune -Brown Stained Glass Pane=Vitre Teintée Marron -Orange Stained Glass Pane=Vitre Teintée Orange -Pink Stained Glass Pane=Vitre Teintée Rose -Grey Stained Glass Pane=Vitre Teintée Grise -Lime Stained Glass Pane=Vitre Teintée Vert Clair -Light Grey Stained Glass Pane=Vitre Teintée Gris Clair -Magenta Stained Glass Pane=Vitre Teintée Magenta -Purple Stained Glass Pane=Vitre Teintée Violette -Cyan Stained Glass Pane=Vitre Teintée Cyan diff --git a/mods/ITEMS/xpanes/textures/xpanes_pane_iron.png b/mods/ITEMS/xpanes/textures/xpanes_pane_iron.png index 8424b462..45c4bf13 100644 Binary files a/mods/ITEMS/xpanes/textures/xpanes_pane_iron.png and b/mods/ITEMS/xpanes/textures/xpanes_pane_iron.png differ diff --git a/mods/MAPGEN/mcl_biomes/depends.txt b/mods/MAPGEN/mcl_biomes/depends.txt index dd21ef64..4ec3afae 100644 --- a/mods/MAPGEN/mcl_biomes/depends.txt +++ b/mods/MAPGEN/mcl_biomes/depends.txt @@ -4,4 +4,3 @@ mcl_worlds mcl_farming mcl_flowers mcl_end -mcl_ocean diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 01762c25..19880f5b 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -15,10 +15,6 @@ local deco_id_chorus_plant -- Register biomes -- -local OCEAN_MIN = -15 -local DEEP_OCEAN_MAX = OCEAN_MIN - 1 -local DEEP_OCEAN_MIN = -31 - --[[ Special biome field: _mcl_biome_type: Rough categorization of biomes: One of "snowy", "cold", "medium" and "hot" Based off ]] @@ -37,7 +33,6 @@ local function register_classic_superflat_biome() humidity_point = 50, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 0, }) end @@ -123,6 +118,10 @@ local function register_biomes() "MesaPlateauFM", } + local OCEAN_MIN = -15 + local DEEP_OCEAN_MAX = OCEAN_MIN - 1 + local DEEP_OCEAN_MIN = -31 + -- Ice Plains Spikes (rare) minetest.register_biome({ name = "IcePlainsSpikes", @@ -140,13 +139,12 @@ local function register_biomes() humidity_point = 24, heat_point = -5, _mcl_biome_type = "snowy", - _mcl_palette_index = 2, }) minetest.register_biome({ name = "IcePlainsSpikes_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:sand", depth_top = 2, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_river_water = "mcl_core:ice", node_riverbed = "mcl_core:sand", @@ -156,7 +154,6 @@ local function register_biomes() humidity_point = 24, heat_point = -5, _mcl_biome_type = "snowy", - _mcl_palette_index = 2, }) -- Cold Taiga @@ -174,7 +171,6 @@ local function register_biomes() humidity_point = 58, heat_point = 8, _mcl_biome_type = "snowy", - _mcl_palette_index = 3, }) -- A cold beach-like biome, implemented as low part of Cold Taiga @@ -194,7 +190,6 @@ local function register_biomes() humidity_point = 58, heat_point = 8, _mcl_biome_type = "snowy", - _mcl_palette_index = 3, }) -- Water part of the beach. Added to prevent snow being on the ice. minetest.register_biome({ @@ -212,13 +207,12 @@ local function register_biomes() humidity_point = 58, heat_point = 8, _mcl_biome_type = "snowy", - _mcl_palette_index = 3, }) minetest.register_biome({ name = "ColdTaiga_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -228,7 +222,6 @@ local function register_biomes() heat_point = 8, vertical_blend = 1, _mcl_biome_type = "snowy", - _mcl_palette_index = 3, }) -- Mega Taiga @@ -245,13 +238,12 @@ local function register_biomes() humidity_point = 76, heat_point = 10, _mcl_biome_type = "cold", - _mcl_palette_index = 4, }) minetest.register_biome({ name = "MegaTaiga_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -260,7 +252,6 @@ local function register_biomes() humidity_point = 76, heat_point = 10, _mcl_biome_type = "cold", - _mcl_palette_index = 4, }) -- Mega Spruce Taiga @@ -277,13 +268,12 @@ local function register_biomes() humidity_point = 100, heat_point = 8, _mcl_biome_type = "cold", - _mcl_palette_index = 5, }) minetest.register_biome({ name = "MegaSpruceTaiga_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -292,7 +282,6 @@ local function register_biomes() humidity_point = 100, heat_point = 8, _mcl_biome_type = "cold", - _mcl_palette_index = 5, }) -- Extreme Hills @@ -310,7 +299,6 @@ local function register_biomes() humidity_point = 10, heat_point = 45, _mcl_biome_type = "cold", - _mcl_palette_index = 6, }) minetest.register_biome({ name = "ExtremeHills_beach", @@ -326,13 +314,12 @@ local function register_biomes() humidity_point = 10, heat_point = 45, _mcl_biome_type = "cold", - _mcl_palette_index = 6, }) minetest.register_biome({ name = "ExtremeHills_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 4, node_riverbed = "mcl_core:sand", depth_riverbed = 4, @@ -342,7 +329,6 @@ local function register_biomes() humidity_point = 10, heat_point = 45, _mcl_biome_type = "cold", - _mcl_palette_index = 6, }) -- Extreme Hills M @@ -360,13 +346,12 @@ local function register_biomes() humidity_point = 0, heat_point = 25, _mcl_biome_type = "cold", - _mcl_palette_index = 7, }) minetest.register_biome({ name = "ExtremeHillsM_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 3, @@ -375,7 +360,6 @@ local function register_biomes() humidity_point = 0, heat_point = 25, _mcl_biome_type = "cold", - _mcl_palette_index = 7, }) -- Extreme Hills+ @@ -395,7 +379,6 @@ local function register_biomes() heat_point = 25, vertical_blend = 6, _mcl_biome_type = "cold", - _mcl_palette_index = 8, }) ---- Sub-biome for Extreme Hills+ for those snow forests minetest.register_biome({ @@ -413,13 +396,12 @@ local function register_biomes() humidity_point = 24, heat_point = 25, _mcl_biome_type = "cold", - _mcl_palette_index = 8, }) minetest.register_biome({ name = "ExtremeHills+_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 4, node_riverbed = "mcl_core:sand", depth_riverbed = 4, @@ -428,7 +410,6 @@ local function register_biomes() humidity_point = 24, heat_point = 25, _mcl_biome_type = "cold", - _mcl_palette_index = 8, }) -- Stone beach @@ -443,12 +424,11 @@ local function register_biomes() humidity_point = 0, heat_point = 8, _mcl_biome_type = "cold", - _mcl_palette_index = 9, }) minetest.register_biome({ name = "StoneBeach_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, node_riverbed = "mcl_core:sand", depth_riverbed = 1, @@ -458,7 +438,6 @@ local function register_biomes() humidity_point = 0, heat_point = 8, _mcl_biome_type = "cold", - _mcl_palette_index = 9, }) -- Ice Plains @@ -479,13 +458,12 @@ local function register_biomes() humidity_point = 24, heat_point = 8, _mcl_biome_type = "snowy", - _mcl_palette_index = 10, }) minetest.register_biome({ name = "IcePlains_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -494,7 +472,6 @@ local function register_biomes() humidity_point = 24, heat_point = 8, _mcl_biome_type = "snowy", - _mcl_palette_index = 10, }) -- Plains @@ -511,7 +488,6 @@ local function register_biomes() humidity_point = 39, heat_point = 58, _mcl_biome_type = "medium", - _mcl_palette_index = 0, }) minetest.register_biome({ name = "Plains_beach", @@ -526,13 +502,12 @@ local function register_biomes() humidity_point = 39, heat_point = 58, _mcl_biome_type = "medium", - _mcl_palette_index = 0, }) minetest.register_biome({ name = "Plains_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -541,7 +516,6 @@ local function register_biomes() humidity_point = 39, heat_point = 58, _mcl_biome_type = "medium", - _mcl_palette_index = 0, }) -- Sunflower Plains @@ -558,13 +532,12 @@ local function register_biomes() humidity_point = 28, heat_point = 45, _mcl_biome_type = "medium", - _mcl_palette_index = 11, }) minetest.register_biome({ name = "SunflowerPlains_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:dirt", depth_riverbed = 2, @@ -573,7 +546,6 @@ local function register_biomes() humidity_point = 28, heat_point = 45, _mcl_biome_type = "medium", - _mcl_palette_index = 11, }) -- Taiga @@ -590,7 +562,6 @@ local function register_biomes() humidity_point = 58, heat_point = 22, _mcl_biome_type = "cold", - _mcl_palette_index = 12, }) minetest.register_biome({ name = "Taiga_beach", @@ -605,13 +576,12 @@ local function register_biomes() humidity_point = 58, heat_point = 22, _mcl_biome_type = "cold", - _mcl_palette_index = 12, }) minetest.register_biome({ name = "Taiga_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:sand", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -620,7 +590,6 @@ local function register_biomes() humidity_point = 58, heat_point = 22, _mcl_biome_type = "cold", - _mcl_palette_index = 12, }) -- Forest @@ -637,7 +606,6 @@ local function register_biomes() humidity_point = 61, heat_point = 45, _mcl_biome_type = "medium", - _mcl_palette_index = 13, }) minetest.register_biome({ name = "Forest_beach", @@ -652,13 +620,12 @@ local function register_biomes() humidity_point = 61, heat_point = 45, _mcl_biome_type = "medium", - _mcl_palette_index = 13, }) minetest.register_biome({ name = "Forest_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -667,7 +634,6 @@ local function register_biomes() humidity_point = 61, heat_point = 45, _mcl_biome_type = "medium", - _mcl_palette_index = 13, }) -- Flower Forest @@ -684,7 +650,6 @@ local function register_biomes() humidity_point = 44, heat_point = 32, _mcl_biome_type = "medium", - _mcl_palette_index = 14, }) minetest.register_biome({ name = "FlowerForest_beach", @@ -699,13 +664,12 @@ local function register_biomes() humidity_point = 44, heat_point = 32, _mcl_biome_type = "medium", - _mcl_palette_index = 14, }) minetest.register_biome({ name = "FlowerForest_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -714,7 +678,6 @@ local function register_biomes() humidity_point = 44, heat_point = 32, _mcl_biome_type = "medium", - _mcl_palette_index = 14, }) -- Birch Forest @@ -731,13 +694,12 @@ local function register_biomes() humidity_point = 78, heat_point = 31, _mcl_biome_type = "medium", - _mcl_palette_index = 15, }) minetest.register_biome({ name = "BirchForest_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -746,7 +708,6 @@ local function register_biomes() humidity_point = 78, heat_point = 31, _mcl_biome_type = "medium", - _mcl_palette_index = 15, }) -- Birch Forest M @@ -763,13 +724,12 @@ local function register_biomes() humidity_point = 77, heat_point = 27, _mcl_biome_type = "medium", - _mcl_palette_index = 16, }) minetest.register_biome({ name = "BirchForestM_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -778,7 +738,6 @@ local function register_biomes() humidity_point = 77, heat_point = 27, _mcl_biome_type = "medium", - _mcl_palette_index = 16, }) -- Desert @@ -796,7 +755,6 @@ local function register_biomes() humidity_point = 26, heat_point = 94, _mcl_biome_type = "hot", - _mcl_palette_index = 17, }) minetest.register_biome({ name = "Desert_ocean", @@ -811,7 +769,6 @@ local function register_biomes() humidity_point = 26, heat_point = 94, _mcl_biome_type = "hot", - _mcl_palette_index = 17, }) -- Roofed Forest @@ -828,13 +785,12 @@ local function register_biomes() humidity_point = 94, heat_point = 27, _mcl_biome_type = "medium", - _mcl_palette_index = 18, }) minetest.register_biome({ name = "RoofedForest_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 2, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -843,7 +799,6 @@ local function register_biomes() humidity_point = 94, heat_point = 27, _mcl_biome_type = "medium", - _mcl_palette_index = 18, }) -- Mesa: Starts with a couple of sand-covered layers (the "sandlevel"), @@ -861,7 +816,6 @@ local function register_biomes() humidity_point = 0, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 19, }) -- Helper biome for the red sand at the bottom of Mesas. minetest.register_biome({ @@ -878,7 +832,6 @@ local function register_biomes() humidity_point = 0, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 19, }) minetest.register_biome({ name = "Mesa_ocean", @@ -894,7 +847,6 @@ local function register_biomes() humidity_point = 0, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 19, }) -- Mesa Bryce: Variant of Mesa, but with perfect strata and a much smaller red sand desert @@ -911,7 +863,6 @@ local function register_biomes() humidity_point = -5, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 20, }) minetest.register_biome({ name = "MesaBryce_sandlevel", @@ -927,7 +878,6 @@ local function register_biomes() humidity_point = -5, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 20, }) minetest.register_biome({ name = "MesaBryce_ocean", @@ -943,7 +893,6 @@ local function register_biomes() humidity_point = -5, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 20, }) @@ -964,14 +913,13 @@ local function register_biomes() heat_point = 60, vertical_blend = 0, -- we want a sharp transition _mcl_biome_type = "hot", - _mcl_palette_index = 21, }) -- The oak forest plateau of this biome. -- This is a plateau for grass blocks, dry shrubs, tall grass, coarse dirt and oaks. -- Strata don't generate here. minetest.register_biome({ name = "MesaPlateauF_grasstop", - node_top = "mcl_core:dirt_with_grass", + node_top = "mcl_core:dirt_with_dry_grass", depth_top = 1, node_filler = "mcl_core:dirt", depth_filler = 1, @@ -983,7 +931,6 @@ local function register_biomes() humidity_point = 0, heat_point = 60, _mcl_biome_type = "hot", - _mcl_palette_index = 21, }) minetest.register_biome({ name = "MesaPlateauF_sandlevel", @@ -999,13 +946,12 @@ local function register_biomes() humidity_point = 0, heat_point = 60, _mcl_biome_type = "hot", - _mcl_palette_index = 21, }) minetest.register_biome({ name = "MesaPlateauF_ocean", node_top = "mcl_core:sand", depth_top = 3, - node_filler = "mcl_core:sand", + node_filler = "mcl_colorblocks:sand", depth_filler = 2, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1015,7 +961,6 @@ local function register_biomes() humidity_point = 0, heat_point = 60, _mcl_biome_type = "hot", - _mcl_palette_index = 21, }) -- Mesa Plateau FM @@ -1036,12 +981,11 @@ local function register_biomes() heat_point = 60, vertical_blend = 5, _mcl_biome_type = "hot", - _mcl_palette_index = 22, }) -- Grass plateau minetest.register_biome({ name = "MesaPlateauFM_grasstop", - node_top = "mcl_core:dirt_with_grass", + node_top = "mcl_core:dirt_with_dry_grass", depth_top = 1, node_filler = "mcl_core:coarse_dirt", depth_filler = 2, @@ -1053,7 +997,6 @@ local function register_biomes() humidity_point = -5, heat_point = 60, _mcl_biome_type = "hot", - _mcl_palette_index = 22, }) minetest.register_biome({ name = "MesaPlateauFM_sandlevel", @@ -1071,13 +1014,12 @@ local function register_biomes() heat_point = 60, vertical_blend = 4, _mcl_biome_type = "hot", - _mcl_palette_index = 22, }) minetest.register_biome({ name = "MesaPlateauFM_ocean", node_top = "mcl_core:sand", depth_top = 3, - node_filler = "mcl_core:sand", + node_filler = "mcl_colorblocks:sand", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 3, @@ -1087,14 +1029,13 @@ local function register_biomes() humidity_point = -5, heat_point = 60, _mcl_biome_type = "hot", - _mcl_palette_index = 22, }) -- Savanna minetest.register_biome({ name = "Savanna", - node_top = "mcl_core:dirt_with_grass", + node_top = "mcl_core:dirt_with_dry_grass", depth_top = 1, node_filler = "mcl_core:dirt", depth_filler = 2, @@ -1105,7 +1046,6 @@ local function register_biomes() humidity_point = 36, heat_point = 79, _mcl_biome_type = "hot", - _mcl_palette_index = 1, }) minetest.register_biome({ name = "Savanna_beach", @@ -1120,13 +1060,12 @@ local function register_biomes() humidity_point = 36, heat_point = 79, _mcl_biome_type = "hot", - _mcl_palette_index = 1, }) minetest.register_biome({ name = "Savanna_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1135,7 +1074,6 @@ local function register_biomes() humidity_point = 36, heat_point = 79, _mcl_biome_type = "hot", - _mcl_palette_index = 1, }) -- Savanna M @@ -1143,7 +1081,7 @@ local function register_biomes() -- Otherwise identical to Savanna minetest.register_biome({ name = "SavannaM", - node_top = "mcl_core:dirt_with_grass", + node_top = "mcl_core:dirt_with_dry_grass", depth_top = 1, node_filler = "mcl_core:coarse_dirt", depth_filler = 3, @@ -1154,13 +1092,12 @@ local function register_biomes() humidity_point = 48, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 23, }) minetest.register_biome({ name = "SavannaM_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1169,7 +1106,6 @@ local function register_biomes() humidity_point = 48, heat_point = 100, _mcl_biome_type = "hot", - _mcl_palette_index = 23, }) -- Jungle @@ -1186,7 +1122,6 @@ local function register_biomes() humidity_point = 88, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 24, }) minetest.register_biome({ name = "Jungle_shore", @@ -1201,13 +1136,12 @@ local function register_biomes() humidity_point = 88, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 24, }) minetest.register_biome({ name = "Jungle_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1217,7 +1151,6 @@ local function register_biomes() humidity_point = 88, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 24, }) -- Jungle M @@ -1235,7 +1168,6 @@ local function register_biomes() humidity_point = 92, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 25, }) minetest.register_biome({ name = "JungleM_shore", @@ -1250,13 +1182,12 @@ local function register_biomes() humidity_point = 92, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 25, }) minetest.register_biome({ name = "JungleM_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1266,7 +1197,6 @@ local function register_biomes() humidity_point = 92, heat_point = 81, _mcl_biome_type = "medium", - _mcl_palette_index = 25, }) -- Jungle Edge @@ -1283,13 +1213,12 @@ local function register_biomes() humidity_point = 88, heat_point = 76, _mcl_biome_type = "medium", - _mcl_palette_index = 26, }) minetest.register_biome({ name = "JungleEdge_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 2, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1298,7 +1227,6 @@ local function register_biomes() humidity_point = 88, heat_point = 76, _mcl_biome_type = "medium", - _mcl_palette_index = 26, }) -- Jungle Edge M (very rare). @@ -1318,13 +1246,12 @@ local function register_biomes() humidity_point = 90, heat_point = 79, _mcl_biome_type = "medium", - _mcl_palette_index = 27, }) minetest.register_biome({ name = "JungleEdgeM_ocean", - node_top = "mcl_core:sand", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:sand", + node_filler = "mcl_core:dirt", depth_filler = 4, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1333,7 +1260,6 @@ local function register_biomes() humidity_point = 90, heat_point = 79, _mcl_biome_type = "medium", - _mcl_palette_index = 27, }) -- Swampland @@ -1351,7 +1277,6 @@ local function register_biomes() humidity_point = 90, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 28, }) minetest.register_biome({ name = "Swampland_shore", @@ -1366,7 +1291,6 @@ local function register_biomes() humidity_point = 90, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 28, }) minetest.register_biome({ name = "Swampland_ocean", @@ -1382,7 +1306,6 @@ local function register_biomes() humidity_point = 90, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 28, }) -- Mushroom Island / Mushroom Island Shore (rare) @@ -1402,7 +1325,6 @@ local function register_biomes() humidity_point = 106, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 29, }) minetest.register_biome({ @@ -1418,13 +1340,12 @@ local function register_biomes() humidity_point = 106, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 29, }) minetest.register_biome({ name = "MushroomIsland_ocean", - node_top = "mcl_core:gravel", + node_top = "mcl_core:dirt", depth_top = 1, - node_filler = "mcl_core:gravel", + node_filler = "mcl_core:dirt", depth_filler = 3, node_riverbed = "mcl_core:sand", depth_riverbed = 2, @@ -1433,29 +1354,27 @@ local function register_biomes() humidity_point = 106, heat_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 29, }) -- Add deep ocean and underground biomes automatically. for i=1, #overworld_biomes do local biome = overworld_biomes[i] - -- Deep Ocean + -- Deep Ocean: Has gravel floor minetest.register_biome({ name = biome .. "_deep_ocean", heat_point = minetest.registered_biomes[biome].heat_point, humidity_point = minetest.registered_biomes[biome].humidity_point, y_min = DEEP_OCEAN_MIN, y_max = DEEP_OCEAN_MAX, - node_top = minetest.registered_biomes[biome.."_ocean"].node_top, - depth_top = 2, - node_filler = minetest.registered_biomes[biome.."_ocean"].node_filler, - depth_filler = 3, - node_riverbed = minetest.registered_biomes[biome.."_ocean"].node_riverbed, + node_top = "mcl_core:gravel", + depth_top = 1, + node_filler = "mcl_core:gravel", + depth_filler = 2, + node_riverbed = "mcl_core:gravel", depth_riverbed = 2, vertical_blend = 5, _mcl_biome_type = minetest.registered_biomes[biome]._mcl_biome_type, - _mcl_palette_index = minetest.registered_biomes[biome]._mcl_palette_index, }) -- Underground biomes are used to identify the underground and to prevent nodes from the surface @@ -1467,7 +1386,6 @@ local function register_biomes() y_min = mcl_vars.mg_overworld_min, y_max = DEEP_OCEAN_MIN - 1, _mcl_biome_type = minetest.registered_biomes[biome]._mcl_biome_type, - _mcl_palette_index = minetest.registered_biomes[biome]._mcl_palette_index, }) end @@ -1491,7 +1409,6 @@ local function register_dimension_biomes() heat_point = 100, humidity_point = 0, _mcl_biome_type = "hot", - _mcl_palette_index = 19, }) --[[ THE END ]] @@ -1508,7 +1425,6 @@ local function register_dimension_biomes() heat_point = 50, humidity_point = 50, _mcl_biome_type = "medium", - _mcl_palette_index = 0, }) end @@ -1598,7 +1514,7 @@ local function register_biomelike_ores() minetest.register_ore({ ore_type = "sheet", ore = "mcl_core:coarse_dirt", - wherein = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + wherein = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, column_height_max = 1, column_midpoint_factor = 0.0, y_min = mcl_vars.mg_overworld_min, @@ -1610,7 +1526,7 @@ local function register_biomelike_ores() minetest.register_ore({ ore_type = "blob", ore = "mcl_core:coarse_dirt", - wherein = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + wherein = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, clust_scarcity = 1500, clust_num_ores = 25, clust_size = 7, @@ -1621,7 +1537,7 @@ local function register_biomelike_ores() minetest.register_ore({ ore_type = "sheet", ore = "mcl_core:coarse_dirt", - wherein = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + wherein = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, column_height_max = 1, column_midpoint_factor = 0.0, y_min = mcl_vars.mg_overworld_min, @@ -1633,7 +1549,7 @@ local function register_biomelike_ores() minetest.register_ore({ ore_type = "blob", ore = "mcl_core:coarse_dirt", - wherein = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + wherein = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, clust_scarcity = 1800, clust_num_ores = 65, clust_size = 15, @@ -2137,7 +2053,7 @@ end -- All mapgens except mgv6 -- Template to register a grass or fern decoration -local function register_grass_decoration(grasstype, offset, scale, biomes) +local function register_grass_decoration(grasstype, offset, scale, biomes, param2) local place_on, seed, node if grasstype == "fern" then node = "mcl_flowers:fern" @@ -2156,66 +2072,19 @@ local function register_grass_decoration(grasstype, offset, scale, biomes) octaves = 3, persist = 0.6 } - for b=1, #biomes do - local param2 = minetest.registered_biomes[biomes[b]]._mcl_palette_index - minetest.register_decoration({ - deco_type = "simple", - place_on = place_on, - sidelen = 16, - noise_params = noise, - biomes = { biomes[b] }, - y_min = 1, - y_max = mcl_vars.mg_overworld_max, - decoration = node, - param2 = param2, - }) - end + minetest.register_decoration({ + deco_type = "simple", + place_on = place_on, + sidelen = 16, + noise_params = noise, + biomes = biomes, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + decoration = node, + param2 = param2, + }) end -local function register_seagrass_decoration(grasstype, offset, scale, biomes) - local seed, nodes, surfaces, param2, param2_max, y_max - if grasstype == "seagrass" then - seed = 16 - surfaces = { "mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel", "mcl_core:redsand" } - nodes = { "mcl_ocean:seagrass_dirt", "mcl_ocean:seagrass_sand", "mcl_ocean:seagrass_gravel", "mcl_ocean:seagrass_redsand" } - y_max = 0 - elseif grasstype == "kelp" then - seed = 32 - param2 = 16 - param2_max = 96 - surfaces = { "mcl_core:dirt", "mcl_core:sand", "mcl_core:gravel" } - nodes = { "mcl_ocean:kelp_dirt", "mcl_ocean:kelp_sand", "mcl_ocean:kelp_gravel" } - y_max = -6 - end - local noise = { - offset = offset, - scale = scale, - spread = {x = 100, y = 100, z = 100}, - seed = seed, - octaves = 3, - persist = 0.6, - } - - for s=1, #surfaces do - minetest.register_decoration({ - deco_type = "simple", - place_on = { surfaces[s] }, - sidelen = 16, - noise_params = noise, - biomes = biomes, - y_min = DEEP_OCEAN_MIN, - y_max = y_max, - decoration = nodes[s], - param2 = param2, - param2_max = param2_max, - place_offset_y = -1, - flags = "force_placement", - }) - end -end - - - local function register_decorations() -- Large ice spike minetest.register_decoration({ @@ -2382,7 +2251,7 @@ local function register_decorations() }) minetest.register_decoration({ deco_type = "schematic", - place_on = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + place_on = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, sidelen = 16, noise_params = { offset = 0.015, @@ -2401,7 +2270,7 @@ local function register_decorations() }) minetest.register_decoration({ deco_type = "schematic", - place_on = {"mcl_core:dirt_with_grass", "mcl_core:dirt"}, + place_on = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt"}, sidelen = 16, noise_params = { offset = 0.008, @@ -2484,7 +2353,6 @@ local function register_decorations() flags = "place_center_x, place_center_z", rotation = "random", }) - -- Swamp oak minetest.register_decoration({ deco_type = "schematic", @@ -2697,7 +2565,7 @@ local function register_decorations() for a=1, 7 do minetest.register_decoration({ deco_type = "schematic", - place_on = {"mcl_core:dirt_with_grass", "mcl_core:dirt", "mcl_core:coarse_dirt"}, + place_on = {"mcl_core:dirt_with_dry_grass", "mcl_core:dirt", "mcl_core:coarse_dirt"}, sidelen = 16, fill_ratio = 0.0002, biomes = {"Savanna", "SavannaM"}, @@ -2897,7 +2765,7 @@ local function register_decorations() rotation = "0", }) - -- Mossy cobblestone boulder (3×3) + -- Moss stone boulder (3×3) minetest.register_decoration({ deco_type = "schematic", place_on = {"mcl_core:podzol", "mcl_core:dirt", "mcl_core:coarse_dirt"}, @@ -2917,7 +2785,7 @@ local function register_decorations() flags = "place_center_x, place_center_z", }) - -- Small mossy cobblestone boulder (2×2) + -- Small moss stone boulder (2×2) minetest.register_decoration({ deco_type = "schematic", place_on = {"mcl_core:podzol", "mcl_core:dirt", "mcl_core:coarse_dirt"}, @@ -3004,71 +2872,67 @@ local function register_decorations() num_spawn_by = 1, }) - -- Doubletall grass - local register_doubletall_grass = function(offset, scale, biomes) + local dry_index = minetest.registered_nodes["mcl_core:dirt_with_dry_grass"]._mcl_grass_palette_index - for b=1, #biomes do - local param2 = minetest.registered_biomes[biomes[b]]._mcl_palette_index - minetest.register_decoration({ - deco_type = "schematic", - schematic = { - size = { x=1, y=3, z=1 }, - data = { - { name = "air", prob = 0 }, - { name = "mcl_flowers:double_grass", param1=255, param2=param2 }, - { name = "mcl_flowers:double_grass_top", param1=255, param2=param2 }, - }, + -- Doubletall grass + local register_doubletall_grass = function(offset, scale, biomes, param2) + + minetest.register_decoration({ + deco_type = "schematic", + schematic = { + size = { x=1, y=3, z=1 }, + data = { + { name = "air", prob = 0 }, + { name = "mcl_flowers:double_grass", param1=255, param2=param2 }, + { name = "mcl_flowers:double_grass_top", param1=255, param2=param2 }, }, - place_on = {"group:grass_block_no_snow"}, - sidelen = 16, - noise_params = { - offset = offset, - scale = scale, - spread = {x = 200, y = 200, z = 200}, - seed = 420, - octaves = 3, - persist = 0.6, - }, - y_min = 1, - y_max = mcl_vars.mg_overworld_max, - biomes = { biomes[b] }, - }) - end + }, + place_on = {"group:grass_block_no_snow"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 420, + octaves = 3, + persist = 0.6, + }, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + biomes = biomes, + }) end register_doubletall_grass(-0.01, 0.03, {"Taiga", "Forest", "FlowerForest", "BirchForest", "BirchForestM", "RoofedForest"}) register_doubletall_grass(-0.002, 0.03, {"Plains", "SunflowerPlains"}) - register_doubletall_grass(-0.0005, -0.03, {"Savanna", "SavannaM"}) + register_doubletall_grass(-0.0005, -0.03, {"Savanna", "SavannaM"}, dry_index) -- Large ferns local register_double_fern = function(offset, scale, biomes) - for b=1, #biomes do - local param2 = minetest.registered_biomes[biomes[b]]._mcl_palette_index - minetest.register_decoration({ - deco_type = "schematic", - schematic = { - size = { x=1, y=3, z=1 }, - data = { - { name = "air", prob = 0 }, - { name = "mcl_flowers:double_fern", param1=255, param2=param2 }, - { name = "mcl_flowers:double_fern_top", param1=255, param2=param2 }, - }, + minetest.register_decoration({ + deco_type = "schematic", + schematic = { + size = { x=1, y=3, z=1 }, + data = { + { name = "air", prob = 0 }, + { name = "mcl_flowers:double_fern", param1=255, }, + { name = "mcl_flowers:double_fern_top", param1=255, }, }, - place_on = {"group:grass_block_no_snow", "mcl_core:podzol"}, - sidelen = 16, - noise_params = { - offset = offset, - scale = scale, - spread = {x = 250, y = 250, z = 250}, - seed = 333, - octaves = 2, - persist = 0.66, - }, - y_min = 1, - y_max = mcl_vars.mg_overworld_max, - biomes = biomes[b], - }) - end + }, + place_on = {"group:grass_block_no_snow", "mcl_core:podzol"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 250, y = 250, z = 250}, + seed = 333, + octaves = 2, + persist = 0.66, + }, + biomes = biomes, + y_min = 1, + y_max = mcl_vars.mg_overworld_max, + }) end register_double_fern(0.01, 0.03, { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "ColdTaiga", "MegaTaiga", "MegaSpruceTaiga" }) @@ -3460,7 +3324,7 @@ local function register_decorations() -- Pumpkin minetest.register_decoration({ deco_type = "simple", - decoration = "mcl_farming:pumpkin", + decoration = "mcl_farming:pumpkin_face", param2 = 0, param2_max = 3, place_on = {"group:grass_block_no_snow"}, @@ -3490,18 +3354,18 @@ local function register_decorations() register_grass_decoration("tallgrass", 0, 0.06, grass_forest) register_grass_decoration("tallgrass", 0.015, 0.045, grass_forest) register_grass_decoration("tallgrass", 0.03, 0.03, grass_forest) - register_grass_decoration("tallgrass", -0.03, 0.09, grass_mpf) - register_grass_decoration("tallgrass", -0.015, 0.075, grass_mpf) - register_grass_decoration("tallgrass", 0, 0.06, grass_mpf) - register_grass_decoration("tallgrass", 0.01, 0.045, grass_mpf) + register_grass_decoration("tallgrass", -0.03, 0.09, grass_mpf, dry_index) + register_grass_decoration("tallgrass", -0.015, 0.075, grass_mpf, dry_index) + register_grass_decoration("tallgrass", 0, 0.06, grass_mpf, dry_index) + register_grass_decoration("tallgrass", 0.01, 0.045, grass_mpf, dry_index) register_grass_decoration("tallgrass", 0.01, 0.05, grass_forest) register_grass_decoration("tallgrass", 0.03, 0.03, grass_plains) register_grass_decoration("tallgrass", 0.05, 0.01, grass_plains) register_grass_decoration("tallgrass", 0.07, -0.01, grass_plains) register_grass_decoration("tallgrass", 0.09, -0.03, grass_plains) - register_grass_decoration("tallgrass", 0.18, -0.03, grass_savanna) + register_grass_decoration("tallgrass", 0.18, -0.03, grass_savanna, dry_index) register_grass_decoration("tallgrass", 0.05, -0.03, grass_sparse) - register_grass_decoration("tallgrass", 0.05, 0.05, grass_mpfm) + register_grass_decoration("tallgrass", 0.05, 0.05, grass_mpfm, dry_index) local fern_minimal = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga", "ColdTaiga" } local fern_low = { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "MegaTaiga", "MegaSpruceTaiga" } @@ -3519,40 +3383,6 @@ local function register_decorations() register_grass_decoration("fern", 0.09, -0.03, fern_Jungle) register_grass_decoration("fern", 0.12, -0.03, fern_JungleM) - local b_seagrass = {"ColdTaiga_ocean","ExtremeHills_ocean","ExtremeHillsM_ocean","ExtremeHills+_ocean","Taiga_ocean","MegaTaiga_ocean","MegaSpruceTaiga_ocean","StoneBeach_ocean","Plains_ocean","SunflowerPlains_ocean","Forest_ocean","FlowerForest_ocean","BirchForest_ocean","BirchForestM_ocean","RoofedForest_ocean","Swampland_ocean","Jungle_ocean","JungleM_ocean","JungleEdge_ocean","JungleEdgeM_ocean","MushroomIsland_ocean","Desert_ocean","Savanna_ocean","SavannaM_ocean","Mesa_ocean","MesaBryce_ocean","MesaPlateauF_ocean","MesaPlateauFM_ocean", -"ColdTaiga_deep_ocean","ExtremeHills_deep_ocean","ExtremeHillsM_deep_ocean","ExtremeHills+_deep_ocean","Taiga_deep_ocean","MegaTaiga_deep_ocean","MegaSpruceTaiga_deep_ocean","StoneBeach_deep_ocean","Plains_deep_ocean","SunflowerPlains_deep_ocean","Forest_deep_ocean","FlowerForest_deep_ocean","BirchForest_deep_ocean","BirchForestM_deep_ocean","RoofedForest_deep_ocean","Swampland_deep_ocean","Jungle_deep_ocean","JungleM_deep_ocean","JungleEdge_deep_ocean","JungleEdgeM_deep_ocean","MushroomIsland_deep_ocean","Desert_deep_ocean","Savanna_deep_ocean","SavannaM_deep_ocean","Mesa_deep_ocean","MesaBryce_deep_ocean","MesaPlateauF_deep_ocean","MesaPlateauFM_deep_ocean", -"Mesa_sandlevel","MesaBryce_sandlevel","MesaPlateauF_sandlevel","MesaPlateauFM_sandlevel","Swampland_shore","Jungle_shore","JungleM_shore","Savanna_beach","FlowerForest_beach","ColdTaiga_beach_water","ExtremeHills_beach"} - local b_kelp = {"ExtremeHillsM_ocean","ExtremeHills+_ocean","MegaTaiga_ocean","MegaSpruceTaiga_ocean","Plains_ocean","SunflowerPlains_ocean","Forest_ocean","FlowerForest_ocean","BirchForest_ocean","BirchForestM_ocean","RoofedForest_ocean","Swampland_ocean","Jungle_ocean","JungleM_ocean","JungleEdge_ocean","JungleEdgeM_ocean","MushroomIsland_ocean", -"ExtremeHillsM_deep_ocean","ExtremeHills+_deep_ocean","MegaTaiga_deep_ocean","MegaSpruceTaiga_deep_ocean","Plains_deep_ocean","SunflowerPlains_deep_ocean","Forest_deep_ocean","FlowerForest_deep_ocean","BirchForest_deep_ocean","BirchForestM_deep_ocean","RoofedForest_deep_ocean","Swampland_deep_ocean","Jungle_deep_ocean","JungleM_deep_ocean","JungleEdge_deep_ocean","JungleEdgeM_deep_ocean","MushroomIsland_deep_ocean" -} - - register_seagrass_decoration("seagrass", 0, 0.5, b_seagrass) - register_seagrass_decoration("kelp", -0.5, 1, b_kelp) - - local b_sponge = {"Plains_deep_ocean","SunflowerPlains_deep_ocean","Forest_deep_ocean","FlowerForest_deep_ocean","BirchForest_deep_ocean","BirchForestM_deep_ocean","RoofedForest_deep_ocean","Jungle_deep_ocean","JungleM_deep_ocean","JungleEdge_deep_ocean","JungleEdgeM_deep_ocean","MushroomIsland_deep_ocean","Desert_deep_ocean","Savanna_deep_ocean","SavannaM_deep_ocean","Mesa_deep_ocean","MesaBryce_deep_ocean","MesaPlateauF_deep_ocean","MesaPlateauFM_deep_ocean"} - -- Wet Sponge - -- TODO: Remove this when we got ocean monuments - minetest.register_decoration({ - deco_type = "simple", - decoration = "mcl_sponges:sponge_wet", - biomes = b_sponge, - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:dirt","mcl_core:sand","mcl_core:gravel"}, - sidelen = 16, - noise_params = { - offset = 0.00495, - scale = 0.006, - spread = {x = 250, y = 250, z = 250}, - seed = 999, - octaves = 3, - persist = 0.666 - }, - flags = "force_placement", - y_min = mcl_vars.mg_lava_overworld_max + 5, - y_max = -20, - }) - -- Place tall grass on snow in Ice Plains and Extreme Hills+ minetest.register_decoration({ deco_type = "schematic", @@ -3573,7 +3403,7 @@ local function register_decorations() size = { x=1, y=2, z=1 }, data = { { name = "mcl_core:dirt_with_grass", force_place=true, }, - { name = "mcl_flowers:tallgrass", param2 = minetest.registered_biomes["IcePlains"]._mcl_palette_index }, + { name = "mcl_flowers:tallgrass", }, }, }, }) @@ -3596,7 +3426,7 @@ local function register_decorations() size = { x=1, y=2, z=1 }, data = { { name = "mcl_core:dirt_with_grass", force_place=true, }, - { name = "mcl_flowers:tallgrass", param2 = minetest.registered_biomes["ExtremeHills+_snowtop"]._mcl_palette_index }, + { name = "mcl_flowers:tallgrass", }, }, }, }) @@ -3605,7 +3435,7 @@ local function register_decorations() -- Dead bushes minetest.register_decoration({ deco_type = "simple", - place_on = {"group:sand", "mcl_core:podzol", "mcl_core:dirt", "mcl_core:dirt_with_grass", "mcl_core:coarse_dirt", "group:hardened_clay"}, + place_on = {"group:sand", "mcl_core:podzol", "mcl_core:dirt", "mcl_core:dirt_with_dry_grass", "mcl_core:coarse_dirt", "group:hardened_clay"}, sidelen = 16, noise_params = { offset = 0.0, @@ -3623,7 +3453,7 @@ local function register_decorations() }) minetest.register_decoration({ deco_type = "simple", - place_on = {"group:sand", "mcl_core:dirt", "mcl_core:dirt_with_grass", "mcl_core:coarse_dirt"}, + place_on = {"group:sand", "mcl_core:dirt", "mcl_core:dirt_with_dry_grass", "mcl_core:coarse_dirt"}, sidelen = 16, noise_params = { offset = 0.1, diff --git a/mods/MAPGEN/mcl_dungeons/init.lua b/mods/MAPGEN/mcl_dungeons/init.lua index b10f73be..dc19a6e1 100644 --- a/mods/MAPGEN/mcl_dungeons/init.lua +++ b/mods/MAPGEN/mcl_dungeons/init.lua @@ -253,7 +253,7 @@ minetest.register_on_generated(function(minp, maxp) local p_pos = area:index(tx, ty, tz) -- Do not overwrite nodes with is_ground_content == false (e.g. bedrock) - -- Exceptions: cobblestone and mossy cobblestone so neighborings dungeons nicely connect to each other + -- Exceptions: cobblestone and moss stone so neighborings dungeons nicely connect to each other local name = minetest.get_name_from_content_id(data[p_pos]) if name == "mcl_core:cobble" or name == "mcl_core:mossycobble" or minetest.registered_nodes[name].is_ground_content then -- Floor diff --git a/mods/MAPGEN/mcl_mapgen_core/depends.txt b/mods/MAPGEN/mcl_mapgen_core/depends.txt index 4aa96f05..783a7da4 100644 --- a/mods/MAPGEN/mcl_mapgen_core/depends.txt +++ b/mods/MAPGEN/mcl_mapgen_core/depends.txt @@ -4,8 +4,6 @@ biomeinfo mclx_core? mcl_worlds mcl_cocoas -mcl_sponges -mcl_ocean mcl_stairs mcl_monster_eggs mcl_structures diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index 39f189a3..8675b123 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -854,122 +854,6 @@ local function register_mgv6_decorations() y_max = mcl_vars.overworld_max, decoration = "mcl_flowers:tallgrass", }) - - -- Seagrass and kelp - local materials = {"dirt","sand"} - for i=1, #materials do - local mat = materials[i] - - minetest.register_decoration({ - deco_type = "simple", - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:"..mat}, - sidelen = 8, - noise_params = { - offset = 0.04, - scale = 0.3, - spread = {x = 100, y = 100, z = 100}, - seed = 421, - octaves = 3, - persist = 0.6 - }, - flags = "force_placement", - place_offset_y = -1, - y_min = mcl_vars.overworld_min, - y_max = 0, - decoration = "mcl_ocean:seagrass_"..mat, - }) - minetest.register_decoration({ - deco_type = "simple", - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:mat"}, - sidelen = 8, - noise_params = { - offset = 0.08, - scale = 0.03, - spread = {x = 100, y = 100, z = 100}, - seed = 421, - octaves = 3, - persist = 0.6 - }, - flags = "force_placement", - place_offset_y = -1, - y_min = mcl_vars.overworld_min, - y_max = -5, - decoration = "mcl_ocean:seagrass_"..mat, - }) - - minetest.register_decoration({ - deco_type = "simple", - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:"..mat}, - sidelen = 16, - noise_params = { - offset = 0.01, - scale = 0.01, - spread = {x = 300, y = 300, z = 300}, - seed = 505, - octaves = 5, - persist = 0.62, - }, - flags = "force_placement", - place_offset_y = -1, - y_min = mcl_vars.overworld_min, - y_max = -6, - decoration = "mcl_ocean:kelp_"..mat, - param2 = 16, - param2_max = 96, - }) - minetest.register_decoration({ - deco_type = "simple", - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:"..mat}, - sidelen = 16, - noise_params = { - offset = 0.01, - scale = 0.01, - spread = {x = 100, y = 100, z = 100}, - seed = 506, - octaves = 5, - persist = 0.62, - }, - flags = "force_placement", - place_offset_y = -1, - y_min = mcl_vars.overworld_min, - y_max = -15, - decoration = "mcl_ocean:kelp_"..mat, - param2 = 32, - param2_max = 160, - }) - - end - - -- Wet Sponge - -- TODO: Remove this when we got ocean monuments - minetest.register_decoration({ - deco_type = "simple", - decoration = "mcl_sponges:sponge_wet", - spawn_by = {"group:water"}, - num_spawn_by = 1, - place_on = {"mcl_core:dirt","mcl_core:sand"}, - sidelen = 16, - noise_params = { - offset = 0.00295, - scale = 0.006, - spread = {x = 250, y = 250, z = 250}, - seed = 999, - octaves = 3, - persist = 0.666 - }, - flags = "force_placement", - y_min = mcl_vars.mg_lava_overworld_max + 5, - y_max = -20, - }) - -- Add a small amount of tall grass everywhere to avoid areas completely empty devoid of tall grass minetest.register_decoration({ deco_type = "simple", @@ -1213,12 +1097,9 @@ local function generate_structures(minp, maxp, seed, biomemap) local ground_y = nil for y = struct_max, struct_min, -1 do local checknode = minetest.get_node_or_nil({x=x,y=y,z=z}) - if checknode then - local def = minetest.registered_nodes[checknode.name] - if def and def.walkable then - ground_y = y - break - end + if checknode and minetest.registered_nodes[checknode.name].walkable then + ground_y = y + break end end @@ -1758,7 +1639,6 @@ minetest.register_on_generated(function(minp, maxp, seed) local data = vm:get_data(lvm_buffer) local param2_data = vm:get_param2_data(lvm_buffer_param2) local area = VoxelArea:new({MinEdge=emin, MaxEdge=emax}) - local aream = VoxelArea:new({MinEdge={x=minp.x, y=0, z=minp.z}, MaxEdge={x=maxp.x, y=0, z=maxp.z}}) local lvm_used = false local biomemap @@ -1912,25 +1792,13 @@ minetest.register_on_generated(function(minp, maxp, seed) -- Non-v6 mapgens: + -- Clear snowy grass blocks without snow above to ensure consistency. else - -- Set param2 (=color) of grass blocks. - -- Clear snowy grass blocks without snow above to ensure consistency. - local nodes = minetest.find_nodes_in_area(minp, maxp, {"mcl_core:dirt_with_grass", "mcl_core:dirt_with_grass_snow"}) + local nodes = minetest.find_nodes_in_area(minp, maxp, {"mcl_core:dirt_with_grass_snow"}) for n=1, #nodes do local p_pos = area:index(nodes[n].x, nodes[n].y, nodes[n].z) local p_pos_above = area:index(nodes[n].x, nodes[n].y+1, nodes[n].z) local p_pos_below = area:index(nodes[n].x, nodes[n].y-1, nodes[n].z) - local b_pos = aream:index(nodes[n].x, 0, nodes[n].z) - local bn = minetest.get_biome_name(biomemap[b_pos]) - if bn then - local biome = minetest.registered_biomes[bn] - if biome then - if biome._mcl_biome_type then - param2_data[p_pos] = biome._mcl_palette_index - lvm_used = true - end - end - end if data[p_pos] == c_dirt_with_grass_snow and p_pos_above and data[p_pos_above] ~= c_top_snow and data[p_pos_above] ~= c_snow_block then data[p_pos] = c_dirt_with_grass lvm_used = true diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index 083f9539..bb51004a 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -1,3 +1,4 @@ +local init = os.clock() local S = minetest.get_translator("mcl_structures") mcl_structures ={} @@ -83,7 +84,7 @@ mcl_structures.generate_igloo = function(pos) if success and r == 1 then -- Select basement depth local dim = mcl_worlds.pos_to_dimension(pos) - local buffer = pos.y - (mcl_vars.mg_lava_overworld_max + 10) + buffer = pos.y - (mcl_vars.mg_lava_overworld_max + 10) if dim == "nether" then buffer = pos.y - (mcl_vars.mg_lava_nether_max + 10) elseif dim == "end" then @@ -529,3 +530,6 @@ minetest.register_chatcommand("spawnstruct", { end end }) + +local time_to_load= os.clock() - init +minetest.log("action", (string.format("[MOD] "..minetest.get_current_modname().." loaded in %.4f s", time_to_load))) diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr deleted file mode 100644 index ae909b9c..00000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.es.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Genere una estructura predefinida cerca de su posición. -Structure placed.=Estructura colocada. -Village built. WARNING: Villages are experimental and might have bugs.=Pueblo construido. ADVERTENCIA: los pueblos son experimentales y pueden tener errores. -Error: No structure type given. Please use “/spawnstruct ”.=Error: no se especifica ningún tipo de estructura. Utilice "/spawnstruct ". -Error: Unknown structure type. Please use “/spawnstruct ”.=Error: tipo de estructura desconocido. Utilice "/spawnstruct ". -Use /help spawnstruct to see a list of avaiable types.=Utiliza "/help spawnstruct" para ver una lista de los tipos disponibles. diff --git a/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr b/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr deleted file mode 100644 index 7c1ba272..00000000 --- a/mods/MAPGEN/mcl_structures/locale/mcl_structures.fr.tr +++ /dev/null @@ -1,7 +0,0 @@ -# textdomain: mcl_structures -Generate a pre-defined structure near your position.=Générez une structure prédéfinie près de votre position. -Structure placed.=Structure placée. -Village built. WARNING: Villages are experimental and might have bugs.=Village construit. AVERTISSEMENT: les villages sont expérimentaux et peuvent avoir des bugs. -Error: No structure type given. Please use “/spawnstruct ”.=Erreur: Aucun type de structure indiqué. Veuillez utiliser "/spawnstruct ". -Error: Unknown structure type. Please use “/spawnstruct ”.=Erreur: Type de structure inconnu. Veuillez utiliser "/spawnstruct ". -Use /help spawnstruct to see a list of avaiable types.=Utilisez /help spawnstruct pour voir une liste des types disponibles. diff --git a/mods/MAPGEN/tsm_railcorridors/gameconfig.lua b/mods/MAPGEN/tsm_railcorridors/gameconfig.lua index 615abdc8..b0c255ba 100644 --- a/mods/MAPGEN/tsm_railcorridors/gameconfig.lua +++ b/mods/MAPGEN/tsm_railcorridors/gameconfig.lua @@ -94,7 +94,7 @@ function tsm_railcorridors.get_treasures(pr) items = { { itemstring = "mcl_minecarts:rail", weight = 20, amount_min = 4, amount_max = 8 }, { itemstring = "mcl_torches:torch", weight = 15, amount_min = 1, amount_max = 16 }, - { itemstring = "mcl_minecarts:activator_rail", weight = 5, amount_min = 1, amount_max = 4 }, + { itemstring = "mcl_minecarts:rail", weight = 5, amount_min = 1, amount_max = 4 }, -- TODO: Activator Rail { itemstring = "mcl_minecarts:detector_rail", weight = 5, amount_min = 1, amount_max = 4 }, { itemstring = "mcl_minecarts:golden_rail", weight = 5, amount_min = 1, amount_max = 4 }, } diff --git a/mods/MISC/findbiome/README.md b/mods/MISC/findbiome/README.md deleted file mode 100644 index 04c63199..00000000 --- a/mods/MISC/findbiome/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# Minetest mod: findbiome - -## Description -This is a mod to help with mod/game development for Minetest. -It adds a command (“findbiome”) to find a biome nearby and teleport you to it -and another command (“listbiomes”) to list biomes. - -Version: 1.0.1 - -## Known limitations -There's no guarantee you will always find the biome, even if it exists in the world. -This can happen if the biome is very obscure or small, but usually you should be -able to find the biome. - -If the biome could not be found, just move to somewhere else and try again. - -## Authors -- paramat (MIT License) -- Wuzzy (MIT License) - -See license.txt for license information. - -This mod is based on the algorithm of the "spawn" mod from Minetest Game 5.0.0. diff --git a/mods/MISC/findbiome/init.lua b/mods/MISC/findbiome/init.lua deleted file mode 100644 index ce7fd979..00000000 --- a/mods/MISC/findbiome/init.lua +++ /dev/null @@ -1,320 +0,0 @@ -local S = minetest.get_translator("findbiome") - -local mod_biomeinfo = minetest.get_modpath("biomeinfo") ~= nil -local mg_name = minetest.get_mapgen_setting("mg_name") -local water_level = tonumber(minetest.get_mapgen_setting("water_level")) - --- Calculate the maximum playable limit -local mapgen_limit = tonumber(minetest.get_mapgen_setting("mapgen_limit")) -local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) -local playable_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0) - --- Parameters -------------- - --- Resolution of search grid in nodes. -local res = 64 --- Number of points checked in the square search grid (edge * edge). -local checks = 128 * 128 - --- End of parameters --------------------- - --- Direction table - -local dirs = { - {x = 0, y = 0, z = 1}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = -1}, - {x = 1, y = 0, z = 0}, -} - --- Returns true if pos is within the world boundaries -local function is_in_world(pos) - return not (math.abs(pos.x) > playable_limit or math.abs(pos.y) > playable_limit or math.abs(pos.z) > playable_limit) -end - --- Checks if pos is within the biome's boundaries. If it isn't, places pos inside the boundaries. -local function adjust_pos_to_biome_limits(pos, biome_id) - local bpos = table.copy(pos) - local biome_name = minetest.get_biome_name(biome_id) - local biome = minetest.registered_biomes[biome_name] - if not biome then - minetest.log("error", "[findbiome] adjust_pos_to_biome_limits non-existing biome!") - return bpos, true - end - local axes = {"y", "x", "z"} - local out_of_bounds = false - for a=1, #axes do - local ax = axes[a] - local min, max - if biome[ax.."_min"] then - min = biome[ax.."_min"] - else - min = -playable_limit - end - if biome[ax.."_max"] then - max = biome[ax.."_max"] - else - max = playable_limit - end - min = tonumber(min) - max = tonumber(max) - if bpos[ax] < min then - out_of_bounds = true - bpos[ax] = min - if max-min > 16 then - bpos[ax] = math.max(bpos[ax] + 8, -playable_limit) - end - end - if bpos[ax] > max then - out_of_bounds = true - bpos[ax] = max - if max-min > 16 then - bpos[ax] = math.min(bpos[ax] - 8, playable_limit) - end - end - end - return bpos, out_of_bounds -end - --- Find the special default biome -local function find_default_biome() - local all_biomes = minetest.registered_biomes - local biome_count = 0 - for b, biome in pairs(all_biomes) do - biome_count = biome_count + 1 - end - -- Trivial case: No biomes registered, default biome is everywhere. - if biome_count == 0 then - local y = minetest.get_spawn_level(0, 0) - if not y then - y = 0 - end - return { x = 0, y = y, z = 0 } - end - local pos = {} - -- Just check a lot of random positions - -- It's a crappy algorithm but better than nothing. - for i=1, 100 do - pos.x = math.random(-playable_limit, playable_limit) - pos.y = math.random(-playable_limit, playable_limit) - pos.z = math.random(-playable_limit, playable_limit) - local biome_data = minetest.get_biome_data(pos) - if biome_data and minetest.get_biome_name(biome_data.biome) == "default" then - return pos - end - end - return nil -end - -local function find_biome(pos, biomes) - pos = vector.round(pos) - -- Pos: Starting point for biome checks. This also sets the y co-ordinate for all - -- points checked, so the suitable biomes must be active at this y. - - -- Initial variables - - local edge_len = 1 - local edge_dist = 0 - local dir_step = 0 - local dir_ind = 1 - local success = false - local spawn_pos - local biome_ids - - -- Get next position on square search spiral - local function next_pos() - if edge_dist == edge_len then - edge_dist = 0 - dir_ind = dir_ind + 1 - if dir_ind == 5 then - dir_ind = 1 - end - dir_step = dir_step + 1 - edge_len = math.floor(dir_step / 2) + 1 - end - - local dir = dirs[dir_ind] - local move = vector.multiply(dir, res) - - edge_dist = edge_dist + 1 - - return vector.add(pos, move) - end - - -- Position search - local function search() - local attempt = 1 - while attempt < 3 do - for iter = 1, checks do - local biome_data = minetest.get_biome_data(pos) - -- Sometimes biome_data is nil - local biome = biome_data and biome_data.biome - for id_ind = 1, #biome_ids do - local biome_id = biome_ids[id_ind] - pos = adjust_pos_to_biome_limits(pos, biome_id) - local spos = table.copy(pos) - if biome == biome_id then - local good_spawn_height = pos.y <= water_level + 16 and pos.y >= water_level - local spawn_y = minetest.get_spawn_level(spos.x, spos.z) - if spawn_y then - spawn_pos = {x = spos.x, y = spawn_y, z = spos.z} - elseif not good_spawn_height then - spawn_pos = {x = spos.x, y = spos.y, z = spos.z} - elseif attempt >= 2 then - spawn_pos = {x = spos.x, y = spos.y, z = spos.z} - end - if spawn_pos then - local adjusted_pos, outside = adjust_pos_to_biome_limits(spawn_pos, biome_id) - if is_in_world(spawn_pos) and not outside then - return true - end - end - end - end - - pos = next_pos() - end - attempt = attempt + 1 - end - return false - end - local function search_v6() - if not mod_biomeinfo then return - false - end - for iter = 1, checks do - local found_biome = biomeinfo.get_v6_biome(pos) - for i = 1, #biomes do - local searched_biome = biomes[i] - if found_biome == searched_biome then - local spawn_y = minetest.get_spawn_level(pos.x, pos.z) - if spawn_y then - spawn_pos = {x = pos.x, y = spawn_y, z = pos.z} - if is_in_world(spawn_pos) then - return true - end - end - end - end - - pos = next_pos() - end - - return false - end - - if mg_name == "v6" then - success = search_v6() - else - -- Table of suitable biomes - biome_ids = {} - for i=1, #biomes do - local id = minetest.get_biome_id(biomes[i]) - if not id then - return nil, false - end - table.insert(biome_ids, id) - end - success = search() - end - return spawn_pos, success - -end - -local mods_loaded = false -minetest.register_on_mods_loaded(function() - mods_loaded = true -end) - --- Regiver chat commands -do - minetest.register_chatcommand("findbiome", { - description = S("Find and teleport to biome"), - params = S(""), - privs = { debug = true, teleport = true }, - func = function(name, param) - if not mods_loaded then - return false - end - local player = minetest.get_player_by_name(name) - if not player then - return false, S("No player.") - end - local pos = player:get_pos() - local invalid_biome = true - if mg_name == "v6" then - if not mod_biomeinfo then - return false, S("Not supported. The “biomeinfo” mod is required for v6 mapgen support!") - end - local biomes = biomeinfo.get_active_v6_biomes() - for b=1, #biomes do - if param == biomes[b] then - invalid_biome = false - break - end - end - else - if param == "default" then - local biome_pos = find_default_biome() - if biome_pos then - player:set_pos(biome_pos) - return true, S("Biome found at @1.", minetest.pos_to_string(biome_pos)) - else - return false, S("No biome found!") - end - end - local id = minetest.get_biome_id(param) - if id then - invalid_biome = false - end - end - if invalid_biome then - return false, S("Biome does not exist!") - end - local biome_pos, success = find_biome(pos, {param}) - if success then - player:set_pos(biome_pos) - return true, S("Biome found at @1.", minetest.pos_to_string(biome_pos)) - else - return false, S("No biome found!") - end - end, - }) - - minetest.register_chatcommand("listbiomes", { - description = S("List all biomes"), - params = "", - privs = { debug = true }, - func = function(name, param) - if not mods_loaded then - return false - end - local biomes - local b = 0 - if mg_name == "v6" then - if not mod_biomeinfo then - return false, S("Not supported. The “biomeinfo” mod is required for v6 mapgen support!") - end - biomes = biomeinfo.get_active_v6_biomes() - b = #biomes - else - biomes = {} - for k,v in pairs(minetest.registered_biomes) do - table.insert(biomes, k) - b = b + 1 - end - end - if b == 0 then - return true, S("No biomes.") - else - table.sort(biomes) - for b=1, #biomes do - minetest.chat_send_player(name, biomes[b]) - end - return true - end - end, - }) -end diff --git a/mods/MISC/findbiome/license.txt b/mods/MISC/findbiome/license.txt deleted file mode 100644 index a466aabd..00000000 --- a/mods/MISC/findbiome/license.txt +++ /dev/null @@ -1,24 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2018 paramat - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT diff --git a/mods/MISC/findbiome/locale/findbiome.de.tr b/mods/MISC/findbiome/locale/findbiome.de.tr deleted file mode 100644 index d62332ea..00000000 --- a/mods/MISC/findbiome/locale/findbiome.de.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Ein Biom finden und hinteleportieren -= -No player.=Kein Spieler -Biome does not exist!=Biom existiert nicht! -Biome found at @1.=Biom gefunden bei @1. -No biome found!=Kein Biom gefunden! -List all biomes=Alle Biome auflisten -No biomes.=Keine Biome. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Nicht unterstützt. Die Mod „biomeinfo“ wird für Unterstützung des v6-Kartengenerators benötigt. diff --git a/mods/MISC/findbiome/locale/findbiome.fr.tr b/mods/MISC/findbiome/locale/findbiome.fr.tr deleted file mode 100644 index 0fc6aa57..00000000 --- a/mods/MISC/findbiome/locale/findbiome.fr.tr +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome=Rechercher et se téléporter sur le biome -= -No player.=Aucun joueur. -Biome does not exist!=Le biome n'existe pas! -Biome found at @1.=Biome trouvé à @1. -No biome found!=Aucun biome trouvé! -List all biomes=Lister tous les biomes -No biomes.=Aucun biomes. -Not supported. The “biomeinfo” mod is required for v6 mapgen support!=Non supporté. Le mod «biomeinfo» est requis pour le support de mapgen v6! diff --git a/mods/MISC/findbiome/locale/template.txt b/mods/MISC/findbiome/locale/template.txt deleted file mode 100644 index f3dcc195..00000000 --- a/mods/MISC/findbiome/locale/template.txt +++ /dev/null @@ -1,10 +0,0 @@ -# textdomain: findbiome -Find and teleport to biome= -= -No player.= -Biome does not exist!= -Biome found at @1.= -No biome found!= -List all biomes= -No biomes.= -Not supported. The “biomeinfo” mod is required for v6 mapgen support!= diff --git a/mods/MISC/findbiome/mod.conf b/mods/MISC/findbiome/mod.conf deleted file mode 100644 index a8ab4e3c..00000000 --- a/mods/MISC/findbiome/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name=findbiome -description=Add commands to list and find biomes -optional_depends=biomeinfo diff --git a/mods/MISC/mcl_commands/init.lua b/mods/MISC/mcl_commands/init.lua index 8b931d0b..c77b3081 100644 --- a/mods/MISC/mcl_commands/init.lua +++ b/mods/MISC/mcl_commands/init.lua @@ -126,21 +126,6 @@ local function register_chatcommand_alias(alias, cmd) minetest.register_chatcommand(alias, def) end --- Replace spawnentity cmd to disallow spawning of hostile mobs if disabled -local orig_func = minetest.registered_chatcommands["spawnentity"].func -local cmd = table.copy(minetest.registered_chatcommands["spawnentity"]) -cmd.func = function(name, param) - local ent = minetest.registered_entities[param] - if minetest.settings:get_bool("only_peaceful_mobs", false) and ent and ent._cmi_is_mob and ent.type == "monster" then - return false, S("Only peaceful mobs allowed!") - else - local bool, msg = orig_func(name, param) - return bool, msg - end -end -minetest.unregister_chatcommand("spawnentity") -minetest.register_chatcommand("spawnentity", cmd) - if minecraftaliases then register_chatcommand_alias("?", "help") register_chatcommand_alias("who", "list") @@ -156,8 +141,7 @@ if minecraftaliases then description = S("List bans"), privs = minetest.chatcommands["ban"].privs, func = function(name) - return true, S("Ban list: @1", minetest.get_ban_list()) + return true, S("Ban list: @1", core.get_ban_list()) end, }) end - diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.de.tr b/mods/MISC/mcl_commands/locale/mcl_commands.de.tr index 68d26751..98f1e6a0 100644 --- a/mods/MISC/mcl_commands/locale/mcl_commands.de.tr +++ b/mods/MISC/mcl_commands/locale/mcl_commands.de.tr @@ -20,4 +20,3 @@ List bans=Bannliste anzeigen Ban list: @1=Bannliste: @1 Show who is logged on=Anzeigen, wer eingeloggt ist Displays the world seed=Den Seed der Welt anzeigen -Only peaceful mobs allowed!=Nur friedliche Mobs erlaubt! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.es.tr b/mods/MISC/mcl_commands/locale/mcl_commands.es.tr deleted file mode 100644 index 91b21eb9..00000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.es.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Los jugadores no pueden ser asesinados en este momento, el daño ha sido desactivado. -Player @1 does not exist.=El jugador @1 no existe. -You are already dead=Ya estas muerto -@1 is already dead=@1 ya esta muerto -@1 committed suicide.=@1 se suicidó. -@1 was killed by @2.=@1 fue asesinado por @2. -[]=[] -Kill player or yourself=Mata al jugador o a ti mismo -Can use /say=Puedes usar /say -= -Send a message to every player=Envía un mensaje a todos los jugadores -Invalid usage, see /help=Uso no válido, (Revisa el comando "/help say") -,, =,, -Set node at given position=Establecer nodo en la posición dada -Invalid node=Nodo no válido -@1 spawned.=@1 generado. -Invalid parameters (see /help setblock)=Parámetros no válidos (Revisa el comando "/help setblock") -List bans=Lista de prohibiciones -Ban list: @1=Lista de baneados: @1 -Show who is logged on=Mostrar quién ha iniciado sesión -Displays the world seed=Muestra la semilla del mundo -Only peaceful mobs allowed!=¡Solo se permiten animales pacíficos! diff --git a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr b/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr deleted file mode 100644 index a655368b..00000000 --- a/mods/MISC/mcl_commands/locale/mcl_commands.fr.tr +++ /dev/null @@ -1,23 +0,0 @@ -# textdomain: mcl_commands -Players can't be killed right now, damage has been disabled.=Les joueurs ne peuvent pas être tués pour le moment, les dégâts ont été désactivés. -Player @1 does not exist.=Le joueur @1 n'existe pas. -You are already dead=Tu es déjà mort -@1 is already dead=@1 est déjà mort -@1 committed suicide.=@1 s'est suicidé. -@1 was killed by @2.=@1 a été tué par @2. -[]=[] -Kill player or yourself=Tuez un joueur ou vous-même -Can use /say=Peut utiliser /say -= -Send a message to every player=Envoyez un message à chaque joueur -Invalid usage, see /help say.=Utilisation non valide, voir /help say. -,, =,, -Set node at given position=Placer le noeud à une position donnée -Invalid node=Noeud non valide -@1 spawned.=@1 est apparu. -Invalid parameters (see /help setblock)=Paramètres invalides (voir /help setblock) -List bans=Liste des interdictions -Ban list: @1=Liste d'interdiction: @1 -Show who is logged on=Afficher qui est connecté -Displays the world seed=Affiche la graine du monde -Only peaceful mobs allowed!=Seuls les mobs pacifiques sont autorisées! diff --git a/mods/MISC/mcl_commands/locale/template.txt b/mods/MISC/mcl_commands/locale/template.txt index 5b4370b8..fc979be6 100644 --- a/mods/MISC/mcl_commands/locale/template.txt +++ b/mods/MISC/mcl_commands/locale/template.txt @@ -20,4 +20,3 @@ List bans= Ban list: @1= Show who is logged on= Displays the world seed= -Only peaceful mobs allowed!= diff --git a/mods/MISC/mcl_privs/locale/mcl_privs.es.tr b/mods/MISC/mcl_privs/locale/mcl_privs.es.tr deleted file mode 100644 index 66d2a60b..00000000 --- a/mods/MISC/mcl_privs/locale/mcl_privs.es.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain: mcl_privs -Can place and use advanced blocks like mob spawners, command blocks and barriers.=Puede colocar y usar bloques avanzados como generadores de animales, bloques de comando y barreras. diff --git a/mods/MISC/mcl_privs/locale/mcl_privs.fr.tr b/mods/MISC/mcl_privs/locale/mcl_privs.fr.tr deleted file mode 100644 index eee0ac22..00000000 --- a/mods/MISC/mcl_privs/locale/mcl_privs.fr.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain: mcl_privs -Can place and use advanced blocks like mob spawners, command blocks and barriers.=Peut placer et utiliser des blocs avancés comme des générateurs de mob, des blocs de commande et des barrières. diff --git a/mods/MISC/mcl_temp_helper_recipes/init.lua b/mods/MISC/mcl_temp_helper_recipes/init.lua index fdde8004..2bb7ff61 100644 --- a/mods/MISC/mcl_temp_helper_recipes/init.lua +++ b/mods/MISC/mcl_temp_helper_recipes/init.lua @@ -40,7 +40,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_armor:helmet_chain", + output = "3d_armor:helmet_chain", recipe = { { "xpanes:bar_flat", "mcl_core:iron_ingot", "xpanes:bar_flat" }, { "xpanes:bar_flat", "", "xpanes:bar_flat" }, @@ -48,7 +48,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_armor:leggings_chain", + output = "3d_armor:leggings_chain", recipe = { { "xpanes:bar_flat", "mcl_core:iron_ingot", "xpanes:bar_flat" }, { "xpanes:bar_flat", "", "xpanes:bar_flat" }, @@ -57,7 +57,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_armor:boots_chain", + output = "3d_armor:boots_chain", recipe = { { "xpanes:bar_flat", "", "xpanes:bar_flat" }, { "xpanes:bar_flat", "", "xpanes:bar_flat" }, @@ -65,7 +65,7 @@ minetest.register_craft({ }) minetest.register_craft({ - output = "mcl_armor:chestplate_chain", + output = "3d_armor:chestplate_chain", recipe = { { "xpanes:bar_flat", "", "xpanes:bar_flat" }, { "xpanes:bar_flat", "mcl_core:iron_ingot", "xpanes:bar_flat" }, diff --git a/mods/MISC/mcl_wip/init.lua b/mods/MISC/mcl_wip/init.lua index 062b5e48..4f8f0a56 100644 --- a/mods/MISC/mcl_wip/init.lua +++ b/mods/MISC/mcl_wip/init.lua @@ -9,11 +9,12 @@ local wip_items = { "mcl_minecarts:command_block_minecart", "mcl_minecarts:chest_minecart", "mcl_minecarts:furnace_minecart", + "mcl_minecarts:tnt_minecart", + "mcl_minecarts:activator_rail", "mobs_mc:enderdragon", "mobs_mc:wither", "mobs_mc:parrot", "mobs_mc:witch", - "screwdriver:screwdriver", } local experimental_items = { } diff --git a/mods/MISC/mcl_wip/locale/mcl_wip.es.tr b/mods/MISC/mcl_wip/locale/mcl_wip.es.tr deleted file mode 100644 index aa0d40eb..00000000 --- a/mods/MISC/mcl_wip/locale/mcl_wip.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_wip -(WIP)=(En progreso) -(Temporary)=(Temporal) diff --git a/mods/MISC/mcl_wip/locale/mcl_wip.fr.tr b/mods/MISC/mcl_wip/locale/mcl_wip.fr.tr deleted file mode 100644 index a17ad49a..00000000 --- a/mods/MISC/mcl_wip/locale/mcl_wip.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_wip -# WIP means “Work in Progress” -(WIP)=(Travail en cours) -(Temporary)=(Temporaire) diff --git a/mods/PLAYER/mcl_death_drop/depends.txt b/mods/PLAYER/mcl_death_drop/depends.txt index 2bbf820f..b6cac219 100644 --- a/mods/PLAYER/mcl_death_drop/depends.txt +++ b/mods/PLAYER/mcl_death_drop/depends.txt @@ -1 +1 @@ -mcl_armor +3d_armor diff --git a/mods/PLAYER/mcl_hunger/hunger.lua b/mods/PLAYER/mcl_hunger/hunger.lua index a664b6ad..53799a05 100644 --- a/mods/PLAYER/mcl_hunger/hunger.lua +++ b/mods/PLAYER/mcl_hunger/hunger.lua @@ -148,8 +148,10 @@ function mcl_hunger.item_eat(hunger_change, replace_with_item, poisontime, poiso max_hear_distance = 12, gain = 1.0, pitch = 1 + math.random(-10, 10)*0.005, - object = user, - }, true) + -- FIXME: Should be linked to object, but it's broken in Minetest 5.1.0 + -- See https://github.com/minetest/minetest/issues/9183 + pos = pos, + }) else -- Assume the item is a food -- Add eat particle effect and sound @@ -187,8 +189,10 @@ function mcl_hunger.item_eat(hunger_change, replace_with_item, poisontime, poiso max_hear_distance = 12, gain = 1.0, pitch = 1 + math.random(-10, 10)*0.005, - object = user, - }, true) + -- FIXME: Should be linked to object, but it's broken in Minetest 5.1.0 + -- See https://github.com/minetest/minetest/issues/9183 + pos = pos, + }) end if mcl_hunger.active and hunger_change then diff --git a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.de.tr b/mods/PLAYER/mcl_hunger/locale/mcl_hunger.de.tr index 8cf10946..7a04e091 100644 --- a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.de.tr +++ b/mods/PLAYER/mcl_hunger/locale/mcl_hunger.de.tr @@ -5,4 +5,4 @@ Saturation=Sättigung %s: %.1f/%d=%s: %.1f Exhaust.=Erschöpf. %s: %d/%d=%s: %d/%d -@1 starved to death.=@1 verhungerte. +@1 starved to death.=%1 verhungerte. diff --git a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.es.tr b/mods/PLAYER/mcl_hunger/locale/mcl_hunger.es.tr deleted file mode 100644 index 15396a6d..00000000 --- a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.es.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_hunger -@1 succumbed to the poison.=@1 sucumbió al veneno. -Food=Comida -Saturation=Saturación -%s: %.1f/%d=%s: %.1f -Exhaust.=Cansado. -%s: %d/%d=%s: %d/%d -@1 starved to death.=@1 ha muerto de hambre. diff --git a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.fr.tr b/mods/PLAYER/mcl_hunger/locale/mcl_hunger.fr.tr deleted file mode 100644 index 811868b3..00000000 --- a/mods/PLAYER/mcl_hunger/locale/mcl_hunger.fr.tr +++ /dev/null @@ -1,8 +0,0 @@ -# textdomain: mcl_hunger -@1 succumbed to the poison.=@1 a succombé au poison. -Food=Nourriture -Saturation=Saturation -%s: %.1f/%d=%s: %.1f/%d -Exhaust.=Échappement. -%s: %d/%d=%s: %d/%d -@1 starved to death.=@1 est mort de faim. diff --git a/mods/PLAYER/mcl_player/README.txt b/mods/PLAYER/mcl_player/README.txt index 637a2568..8db9c631 100644 --- a/mods/PLAYER/mcl_player/README.txt +++ b/mods/PLAYER/mcl_player/README.txt @@ -21,4 +21,4 @@ Authors of media files MirceaKitsune (CC BY-SA 3.0): character.b3d -Textures: See main MineClone 2 README.md file. +Textures from Faithful 1.11 resource pack (see main readme file) diff --git a/mods/PLAYER/mcl_player/init.lua b/mods/PLAYER/mcl_player/init.lua index d2dca49c..a766eed2 100644 --- a/mods/PLAYER/mcl_player/init.lua +++ b/mods/PLAYER/mcl_player/init.lua @@ -107,7 +107,6 @@ minetest.register_on_joinplayer(function(player) mcl_player.player_attached[player:get_player_name()] = false mcl_player.player_set_model(player, "character.b3d") player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) - player:set_fov(86.1) -- see >>> end) minetest.register_on_leaveplayer(function(player) diff --git a/mods/PLAYER/mcl_player/textures/player_back.png b/mods/PLAYER/mcl_player/textures/player_back.png index 39e143c3..4bd5366f 100644 Binary files a/mods/PLAYER/mcl_player/textures/player_back.png and b/mods/PLAYER/mcl_player/textures/player_back.png differ diff --git a/mods/PLAYER/mcl_playerinfo/depends.txt b/mods/PLAYER/mcl_playerinfo/depends.txt index d0334ff5..3fb37201 100644 --- a/mods/PLAYER/mcl_playerinfo/depends.txt +++ b/mods/PLAYER/mcl_playerinfo/depends.txt @@ -2,3 +2,4 @@ mcl_init mcl_core mcl_particles mcl_death_messages +3d_armor? diff --git a/mods/PLAYER/mcl_playerplus/depends.txt b/mods/PLAYER/mcl_playerplus/depends.txt index 6bbe4cbd..3e89821c 100644 --- a/mods/PLAYER/mcl_playerplus/depends.txt +++ b/mods/PLAYER/mcl_playerplus/depends.txt @@ -5,5 +5,6 @@ mcl_hunger mcl_death_messages playerphysics mcl_playerinfo +3d_armor? mcl_weather mcl_spawn diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index d084ee2e..c3315f42 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -3,6 +3,7 @@ local S = minetest.get_translator("mcl_playerplus") -- Internal player state local mcl_playerplus_internal = {} +local armor_mod = minetest.get_modpath("3d_armor") local def = {} local time = 0 @@ -28,9 +29,6 @@ minetest.register_globalstep(function(dtime) if not node_stand or not node_stand_below or not node_head or not node_feet then return end - if not minetest.registered_nodes[node_stand] or not minetest.registered_nodes[node_stand_below] or not minetest.registered_nodes[node_head] or not minetest.registered_nodes[node_feet] then - return - end -- Cause buggy exhaustion for jumping @@ -139,7 +137,7 @@ minetest.register_globalstep(function(dtime) if dist < 1.1 or dist_feet < 1.1 then if player:get_hp() > 0 then mcl_death_messages.player_damage(player, S("@1 was prickled to death by a cactus.", name)) - player:set_hp(player:get_hp() - 1, { type = "punch", from = "mod" }) + player:set_hp(player:get_hp() - 1) end end end diff --git a/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.es.tr b/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.es.tr deleted file mode 100644 index ef7705bc..00000000 --- a/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.es.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_playerplus -@1 suffocated to death.=@1 ahogado hasta la muerte. -@1 was prickled to death by a cactus.=@1 fue herido de muerte por un cactus. diff --git a/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.fr.tr b/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.fr.tr deleted file mode 100644 index 6482bd73..00000000 --- a/mods/PLAYER/mcl_playerplus/locale/mcl_playerplus.fr.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_playerplus -@1 suffocated to death.=@1 étouffé à mort. -@1 was prickled to death by a cactus.=@1 a été piqué à mort par un cactus. diff --git a/mods/PLAYER/mcl_skins/depends.txt b/mods/PLAYER/mcl_skins/depends.txt index 09bdf520..e0804a6f 100644 --- a/mods/PLAYER/mcl_skins/depends.txt +++ b/mods/PLAYER/mcl_skins/depends.txt @@ -1,4 +1,4 @@ mcl_player mcl_inventory? intllib? -mcl_armor? +3d_armor? diff --git a/mods/PLAYER/mcl_skins/init.lua b/mods/PLAYER/mcl_skins/init.lua index b1d1feef..401ba160 100644 --- a/mods/PLAYER/mcl_skins/init.lua +++ b/mods/PLAYER/mcl_skins/init.lua @@ -105,7 +105,7 @@ mcl_skins.set_player_skin = function(player, skin_id) mcl_skins.previews[playername] = preview player:get_meta():set_string("mcl_skins:skin_id", tostring(skin_id)) mcl_skins.update_player_skin(player) - if minetest.get_modpath("mcl_armor") then + if minetest.get_modpath("3d_armor") then armor.textures[playername].skin = skin_file armor:update_player_visuals(player) end @@ -227,7 +227,7 @@ end) mcl_skins.show_formspec = function(playername) local formspec = "size[7,8.5]" - formspec = formspec .. "label[2,2;" .. minetest.formspec_escape(minetest.colorize("#383838", S("Select player skin:"))) .. "]" + formspec = formspec .. "label[2,2;" .. minetest.formspec_escape(S("Select player skin:")) .. "]" .. "textlist[0,2.5;6.8,6;skins_set;" local meta @@ -255,7 +255,7 @@ mcl_skins.show_formspec = function(playername) if meta then if meta.name and meta.name ~= "" then - formspec = formspec .. "label[2,0.5;" .. minetest.formspec_escape(minetest.colorize("#383838", S("Name: @1", meta.name))) .. "]" + formspec = formspec .. "label[2,0.5;" .. minetest.formspec_escape(S("Name: @1", meta.name)) .. "]" end end diff --git a/mods/PLAYER/mcl_skins/locale/mcl_skins.es.tr b/mods/PLAYER/mcl_skins/locale/mcl_skins.es.tr deleted file mode 100644 index dcd5c843..00000000 --- a/mods/PLAYER/mcl_skins/locale/mcl_skins.es.tr +++ /dev/null @@ -1,13 +0,0 @@ -# textdomain: mcl_skins -[] []=[] [] -Select player skin of yourself or another player=Selecciona el skin tuyo o de otro jugador -Insufficient or wrong parameters=Parámetros insuficientes o incorrectos -Player @1 not online!=¡El jugador @1 no está en línea! -You need the “server” privilege to change the skin of other players!=¡Necesitas el privilegio de "servidor" para cambiar el aspecto de otros jugadores! -Invalid skin number! Valid numbers: 0 to @1=¡Número de piel no válido! Números válidos: 0 a @1 -Your skin has been set to: @1=Su skin se ha configurado a: @1 -Your skin has been set to: @1 (@2)=Su skin se ha configurado a: @1 (@2) -Skin of @1 set to: @2 (@3)=El skin de @1 se ha configurado a: @2 (@3) -Select player skin:=Selecciona el skin del jugador: -@1 (@2)=@1 (@2) -Name: @1=Nombre: @1 diff --git a/mods/PLAYER/mcl_skins/locale/mcl_skins.fr.tr b/mods/PLAYER/mcl_skins/locale/mcl_skins.fr.tr index 146c6be5..fe321cfb 100644 --- a/mods/PLAYER/mcl_skins/locale/mcl_skins.fr.tr +++ b/mods/PLAYER/mcl_skins/locale/mcl_skins.fr.tr @@ -1,14 +1,16 @@ # textdomain: mcl_skins -[] []=[] [] -Select player skin of yourself or another player=Sélectionner une apparence pour vous même ou un autre joueur -Insufficient or wrong parameters=Paramètres insuffisants ou incorrects -Player @1 not online!=Le joueur @1 n'est pas en ligne! -You need the “server” privilege to change the skin of other players!=Vous avez besoin du privilège “server” pour changer l'apparence des autres joueurs! -Invalid skin number! Valid numbers: 0 to @1=Numéro d'apparence incorrect! Numéros valides : 0 à @1 -Your skin has been set to: @1=Votre apparence a été définie à: @1 -Your skin has been set to: @1 (@2)=Votre apparence a été définie à: @1 (@2) -Skin of @1 set to: @2 (@3)=Apparence of @1 set to: @2 (@3)= -Select player skin:=Sélectionner l'apparence du joueur : -@1 (@2)=@1 (@2) -Name: @1=Nom : @ +# UNFINISHED translation! +# TODO: Remove the # sign from the translations below and add the missing translations. +#[] []= +#Select player skin of yourself or another player= +#Insufficient or wrong parameters= +#Player @1 not online!= +#You need the “server” privilege to change the skin of other players!= +#Invalid skin number! Valid numbers: 0 to @1= +#Your skin has been set to: @1= +#Your skin has been set to: @1 (@2)= +#Skin of @1 set to: @2 (@3)= +Select player skin:=Sélectionner l'apparence du joueur : +#@1 (@2)= +Name: @1=Nom : @1 diff --git a/mods/PLAYER/mcl_skins/textures/mcl_skins_button.png b/mods/PLAYER/mcl_skins/textures/mcl_skins_button.png index 5b618ec2..49acf855 100644 Binary files a/mods/PLAYER/mcl_skins/textures/mcl_skins_button.png and b/mods/PLAYER/mcl_skins/textures/mcl_skins_button.png differ diff --git a/mods/PLAYER/mcl_skins/textures/mcl_skins_character_1.png b/mods/PLAYER/mcl_skins/textures/mcl_skins_character_1.png index 598877bb..71f02471 100644 Binary files a/mods/PLAYER/mcl_skins/textures/mcl_skins_character_1.png and b/mods/PLAYER/mcl_skins/textures/mcl_skins_character_1.png differ diff --git a/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png b/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png index a01fb027..3d7af2a9 100644 Binary files a/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png and b/mods/PLAYER/mcl_skins/textures/mcl_skins_player_1.png differ diff --git a/mods/PLAYER/mcl_skins/textures/mcl_skins_player_dummy.png b/mods/PLAYER/mcl_skins/textures/mcl_skins_player_dummy.png index 42525fd1..d1f7dc20 100644 Binary files a/mods/PLAYER/mcl_skins/textures/mcl_skins_player_dummy.png and b/mods/PLAYER/mcl_skins/textures/mcl_skins_player_dummy.png differ diff --git a/mods/PLAYER/mcl_spawn/locale/mcl_spawn.es.tr b/mods/PLAYER/mcl_spawn/locale/mcl_spawn.es.tr deleted file mode 100644 index d6de52f9..00000000 --- a/mods/PLAYER/mcl_spawn/locale/mcl_spawn.es.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_spawn -New respawn position set!=¡Nueva posición de reaparición establecida! -Respawn position cleared!=¡Posición de reaparición eliminada! -Your spawn bed was missing or blocked.=Su cama ha sido destruida o estaba bloqueada. diff --git a/mods/PLAYER/mcl_spawn/locale/mcl_spawn.fr.tr b/mods/PLAYER/mcl_spawn/locale/mcl_spawn.fr.tr deleted file mode 100644 index f1fab2bf..00000000 --- a/mods/PLAYER/mcl_spawn/locale/mcl_spawn.fr.tr +++ /dev/null @@ -1,4 +0,0 @@ -# textdomain: mcl_spawn -New respawn position set!=Nouvelle position de réapparition définie! -Respawn position cleared!=Position de réapparition supprimée! -Your spawn bed was missing or blocked.=Votre lit d'apparition était manquant ou bloqué. diff --git a/mods/PLAYER/mcl_sprint/init.lua b/mods/PLAYER/mcl_sprint/init.lua index efd39ae6..c1915290 100644 --- a/mods/PLAYER/mcl_sprint/init.lua +++ b/mods/PLAYER/mcl_sprint/init.lua @@ -86,8 +86,7 @@ minetest.register_globalstep(function(dtime) -- Sprint dirt particles local numParticles = math.random(1, 2) local playerNode = minetest.get_node({x=playerPos["x"], y=playerPos["y"]-1, z=playerPos["z"]}) - local def = minetest.registered_nodes[playerNode.name] - if def and def.walkable then + if playerNode["name"] ~= "air" then for i=1, numParticles, 1 do minetest.add_particle({ pos = {x=playerPos["x"]+math.random(-1,1)*math.random()/2,y=playerPos["y"]+0.1,z=playerPos["z"]+math.random(-1,1)*math.random()/2}, diff --git a/mods/PLAYER/wieldview/LICENSE.txt b/mods/PLAYER/wieldview/LICENSE.txt deleted file mode 100644 index e1552c06..00000000 --- a/mods/PLAYER/wieldview/LICENSE.txt +++ /dev/null @@ -1,18 +0,0 @@ -[mod] visible wielded items [wieldview] -======================================= - -Copyright (C) 2012-2019 stujones11, Stuart Jones - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. diff --git a/mods/PLAYER/wieldview/depends.txt b/mods/PLAYER/wieldview/depends.txt deleted file mode 100644 index 2bbf820f..00000000 --- a/mods/PLAYER/wieldview/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mcl_armor diff --git a/screenshot.png b/screenshot.png index a92bd53e..5db7b64f 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/settingtypes.txt b/settingtypes.txt index ba2714f9..ac9ba89b 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -24,9 +24,6 @@ mcl_doWeatherCycle (Change weather) bool true # Note that blocks never have drops when in Creative Mode. mcl_doTileDrops (Blocks have drops) bool true -# If enabled, TNT explosions destroy blocks. -mcl_tnt_griefing (TNT destroys blocks) bool true - [Players] # If enabled, players respawn at the bed they last lay on instead of normal # spawn. @@ -86,14 +83,6 @@ mobs_disable_blood (Disable mob damage particles) bool false flame_sound (Flame sound) bool true [Experimental] -# Whether ice is translucent. If disabled, ice is fully opaque. -# -# Note: As of Minetest version 5.1.0, translucent ice above oceans -# will look weird, there's a lot of flashing/blinking going on -# due to bugs in Minetest's implementation of translucency. -# See also: https://github.com/minetest/minetest/issues/95 -mcl_translucent_ice (Translucent ice) bool false - # Whether to generate fallen logs in some biomes. # They might not always look pretty and have strange overhangs. mcl_generate_fallen_logs (Generate fallen logs) bool false diff --git a/tools/Conversion_Table.csv b/tools/Conversion_Table.csv index 987ab64e..a01d38f2 100644 --- a/tools/Conversion_Table.csv +++ b/tools/Conversion_Table.csv @@ -1,7 +1,7 @@ Source path,Source file,Target path,Target file,xs,ys,xl,yl,xt,yt,Blacklisted? /assets/minecraft/textures/particle,particles.png,/mods/CORE/mcl_particles/textures,mcl_particles_bubble.png,0,16,8,8,0,0,y -/assets/minecraft/textures/gui,icons.png,/mods/HUD/mcl_hbarmor/textures,hbarmor_icon.png,34,9,9,9,0,0,y -/assets/minecraft/textures/gui,icons.png,/mods/HUD/mcl_hbarmor/textures,hbarmor_bgicon.png,16,9,9,9,0,0,y +/assets/minecraft/textures/gui,icons.png,/mods/HUD/hbarmor/textures,hbarmor_icon.png,34,9,9,9,0,0,y +/assets/minecraft/textures/gui,icons.png,/mods/HUD/hbarmor/textures,hbarmor_bgicon.png,16,9,9,9,0,0,y /assets/minecraft/textures/gui,icons.png,/mods/HUD/hudbars/textures,hudbars_icon_health.png,52,0,9,9,0,0,y /assets/minecraft/textures/gui,icons.png,/mods/HUD/hudbars/textures,hudbars_bgicon_health.png,16,0,9,9,0,0,y /assets/minecraft/textures/gui,icons.png,/mods/HUD/hudbars/textures,hudbars_icon_breath.png,16,18,9,9,0,0,y @@ -589,27 +589,27 @@ Source path,Source file,Target path,Target file,xs,ys,xl,yl,xt,yt,Blacklisted? /assets/minecraft/textures/blocks,wool_colored_purple.png,/mods/ITEMS/mcl_wool/textures,wool_violet.png,,,,,,, /assets/minecraft/textures/blocks,wool_colored_white.png,/mods/ITEMS/mcl_wool/textures,wool_white.png,,,,,,, /assets/minecraft/textures/blocks,wool_colored_yellow.png,/mods/ITEMS/mcl_wool/textures,wool_yellow.png,,,,,,, -/assets/minecraft/textures/items,chainmail_boots.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_boots_chain.png,,,,,,, -/assets/minecraft/textures/items,diamond_boots.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_boots_diamond.png,,,,,,, -/assets/minecraft/textures/items,gold_boots.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_boots_gold.png,,,,,,, -/assets/minecraft/textures/items,iron_boots.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_boots_iron.png,,,,,,, -/assets/minecraft/textures/items,leather_boots.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_boots_leather.png,,,,,,, -/assets/minecraft/textures/items,chainmail_chestplate.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_chestplate_chain.png,,,,,,, -/assets/minecraft/textures/items,diamond_chestplate.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_chestplate_diamond.png,,,,,,, -/assets/minecraft/textures/items,gold_chestplate.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_chestplate_gold.png,,,,,,, -/assets/minecraft/textures/items,iron_chestplate.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_chestplate_iron.png,,,,,,, -/assets/minecraft/textures/items,leather_chestplate.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_chestplate_leather.png,,,,,,, -/assets/minecraft/textures/items,chainmail_helmet.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_helmet_chain.png,,,,,,, -/assets/minecraft/textures/items,diamond_helmet.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_helmet_diamond.png,,,,,,, -/assets/minecraft/textures/items,gold_helmet.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_helmet_gold.png,,,,,,, -/assets/minecraft/textures/items,iron_helmet.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_helmet_iron.png,,,,,,, -/assets/minecraft/textures/items,leather_helmet.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_helmet_leather.png,,,,,,, -/assets/minecraft/textures/items,chainmail_leggings.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_leggings_chain.png,,,,,,, -/assets/minecraft/textures/items,diamond_leggings.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_leggings_diamond.png,,,,,,, -/assets/minecraft/textures/items,gold_leggings.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_leggings_gold.png,,,,,,, -/assets/minecraft/textures/items,iron_leggings.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_leggings_iron.png,,,,,,, -/assets/minecraft/textures/items,leather_leggings.png,/mods/ITEMS/mcl_armor/textures,mcl_armor_inv_leggings_leather.png,,,,,,, -/assets/minecraft/textures/items,wooden_armorstand.png,/mods/ITEMS/mcl_armor_stand/textures,3d_armor_stand_item.png,,,,,,, +/assets/minecraft/textures/items,chainmail_boots.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_boots_chain.png,,,,,,, +/assets/minecraft/textures/items,diamond_boots.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_boots_diamond.png,,,,,,, +/assets/minecraft/textures/items,gold_boots.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_boots_gold.png,,,,,,, +/assets/minecraft/textures/items,iron_boots.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_boots_iron.png,,,,,,, +/assets/minecraft/textures/items,leather_boots.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_boots_leather.png,,,,,,, +/assets/minecraft/textures/items,chainmail_chestplate.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_chestplate_chain.png,,,,,,, +/assets/minecraft/textures/items,diamond_chestplate.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_chestplate_diamond.png,,,,,,, +/assets/minecraft/textures/items,gold_chestplate.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_chestplate_gold.png,,,,,,, +/assets/minecraft/textures/items,iron_chestplate.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_chestplate_iron.png,,,,,,, +/assets/minecraft/textures/items,leather_chestplate.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_chestplate_leather.png,,,,,,, +/assets/minecraft/textures/items,chainmail_helmet.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_helmet_chain.png,,,,,,, +/assets/minecraft/textures/items,diamond_helmet.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_helmet_diamond.png,,,,,,, +/assets/minecraft/textures/items,gold_helmet.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_helmet_gold.png,,,,,,, +/assets/minecraft/textures/items,iron_helmet.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_helmet_iron.png,,,,,,, +/assets/minecraft/textures/items,leather_helmet.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_helmet_leather.png,,,,,,, +/assets/minecraft/textures/items,chainmail_leggings.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_leggings_chain.png,,,,,,, +/assets/minecraft/textures/items,diamond_leggings.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_leggings_diamond.png,,,,,,, +/assets/minecraft/textures/items,gold_leggings.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_leggings_gold.png,,,,,,, +/assets/minecraft/textures/items,iron_leggings.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_leggings_iron.png,,,,,,, +/assets/minecraft/textures/items,leather_leggings.png,/mods/ITEMS/minetest-3d_armor/3d_armor/textures,3d_armor_inv_leggings_leather.png,,,,,,, +/assets/minecraft/textures/items,wooden_armorstand.png,/mods/ITEMS/minetest-3d_armor/3d_armor_stand/textures,3d_armor_stand_item.png,,,,,,, /assets/minecraft/textures/blocks,dispenser_front_horizontal.png,/mods/ITEMS/REDSTONE/mcl_dispensers/textures,mcl_dispensers_dispenser_front_horizontal.png,,,,,,, /assets/minecraft/textures/blocks,dispenser_front_vertical.png,/mods/ITEMS/REDSTONE/mcl_dispensers/textures,mcl_dispensers_dispenser_front_vertical.png,,,,,,, /assets/minecraft/textures/blocks,dropper_front_horizontal.png,/mods/ITEMS/REDSTONE/mcl_droppers/textures,mcl_droppers_dropper_front_horizontal.png,,,,,,, @@ -958,9 +958,3 @@ Source path,Source file,Target path,Target file,xs,ys,xl,yl,xt,yt,Blacklisted? /assets/minecraft/textures/blocks,red_nether_brick.png,,mcl_fences_fence_gate_red_nether_brick.png,,,,,,, /assets/minecraft/textures/blocks,nether_brick.png,,mcl_fences_fence_gate_nether_brick.png,,,,,,, /assets/minecraft/textures/blocks,stonebrick_carved.png,,mcl_supplemental_stonebrick_carved_slab.png,,,,,,, -/assets/minecraft/textures/blocks,cobblestone.png,/mods/ITEMS/mcl_walls/textures,mcl_walls_cobble_wall_top.png,,,,,,, -/assets/minecraft/textures/blocks,cobblestone.png,/mods/ITEMS/mcl_walls/textures,mcl_walls_cobble_wall_side.png,,,,,,, -/assets/minecraft/textures/blocks,cobblestone_mossy.png,/mods/ITEMS/mcl_walls/textures,mcl_walls_cobble_mossy_wall_top.png,,,,,,, -/assets/minecraft/textures/blocks,cobblestone_mossy.png,/mods/ITEMS/mcl_walls/textures,mcl_walls_cobble_mossy_wall_side.png,,,,,,, -/assets/minecraft/textures/blocks,grass_top.png,/mods/ITEMS/mcl_core/textures,mcl_core_grass_block_top.png,,,,,,, -/assets/minecraft/textures/blocks,grass_side_overlay.png,/mods/ITEMS/mcl_core/textures,mcl_core_grass_block_side_overlay.png,,,,,,, diff --git a/tools/Texture_Converter.py b/tools/Texture_Converter.py index 9fa90365..257e9389 100755 --- a/tools/Texture_Converter.py +++ b/tools/Texture_Converter.py @@ -378,6 +378,7 @@ def convert_textures(): offset = [ [ pcol, "", "grass" ], # Default grass: Plains + [ "40+255", "_dry", "dry_grass" ], # Dry grass: Savanna, Mesa Plateau F, Nether, … ] for o in offset: colorize(GRASS, tex_dir+"/blocks/grass_top.png", o[0], str(PXSIZE), target_dir("/mods/ITEMS/mcl_core/textures")+"/default_"+o[2]+".png")