From 9eea1d7f429612e42dee89c4466d01ae8d3f8c02 Mon Sep 17 00:00:00 2001 From: Ombridride Date: Wed, 27 May 2015 18:25:55 +0200 Subject: [PATCH] Update mobs mod and news.txt mobs mod tweaks : - tweaked environmental damage check - mobs retain health, code tidy - Updated weapon wear & sounds - code tidy --- mods/mobs/api.lua | 245 +++++++++++++++------------------ worlds/minetestforfun/news.txt | 22 +-- 2 files changed, 121 insertions(+), 146 deletions(-) diff --git a/mods/mobs/api.lua b/mods/mobs/api.lua index e7a2b9ce..95d0b2ae 100755 --- a/mods/mobs/api.lua +++ b/mods/mobs/api.lua @@ -1,4 +1,4 @@ --- Mobs Api (24th May 2015) +-- Mobs Api (27th May 2015) mobs = {} mobs.mod = "redo" @@ -12,10 +12,6 @@ local enable_blood = minetest.setting_getbool("mobs_enable_blood") or true function mobs:register_mob(name, def) minetest.register_entity(name, { ---weight = 5, ---is_visible = true, ---automatic_rotate = false, ---automatic_face_movement_dir = 0.0, -- set yaw direction in degrees, false to disable stepheight = def.stepheight or 0.6, name = name, fly = def.fly, @@ -34,7 +30,7 @@ function mobs:register_mob(name, def) visual = def.visual, visual_size = def.visual_size or {x=1, y=1}, mesh = def.mesh, - makes_footstep_sound = def.makes_footstep_sound or true, + makes_footstep_sound = def.makes_footstep_sound or false, view_range = def.view_range or 5, walk_velocity = def.walk_velocity or 1, run_velocity = def.run_velocity or 2, @@ -61,12 +57,15 @@ function mobs:register_mob(name, def) --fov = def.fov or 120, passive = def.passive or false, recovery_time = def.recovery_time or 0.5, - knock_back = def.knock_back or 1, --Modif MFF, default value is "or 3", + knock_back = def.knock_back or 3, blood_amount = def.blood_amount or 5, blood_texture = def.blood_texture or "mobs_blood.png", shoot_offset = def.shoot_offset or 0, floats = def.floats or 1, -- floats in water by default - replacements = def.replacements or {}, + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset or 0, timer = 0, env_damage_timer = 0, -- only if state = "attack" attack = {player=nil, dist=nil}, @@ -78,6 +77,7 @@ function mobs:register_mob(name, def) child = false, gotten = false, owner = "", + health = 0, do_attack = function(self, player, dist) if self.state ~= "attack" then @@ -161,57 +161,42 @@ function mobs:register_mob(name, def) on_step = function(self, dtime) - local yaw = 0 - if self.type == "monster" and peaceful_only then self.object:remove() return end - -- if lifetimer run out and not npc, tamed or attacking then remove mob + -- if lifetimer run out and not npc; tamed or attacking then remove mob if self.type ~= "npc" and not self.tamed then self.lifetimer = self.lifetimer - dtime if self.lifetimer <= 0 and self.state ~= "attack" then - for _,obj in ipairs(minetest.get_objects_inside_radius(self.object:getpos(), 10)) do - if obj:is_player() then - minetest.log("action","lifetimer expired, removed mob "..self.name) - self.object:remove() - return - end - end + minetest.log("action","lifetimer expired, removed "..self.name) + effect(self.object:getpos(), 15, "tnt_smoke.png") + self.object:remove() + return end end -- check for mob drop/replace (used for chicken egg and sheep eating grass/wheat) - --[[ - old fields : - replace_rate = def.replace_rate, - replace_what = def.replace_what, - replace_with = def.replace_with, - replace_offset = def.replace_offset or 0, - ]]-- - for _, fields in pairs(self.replacements) do - - if fields.replace_rate - and math.random(1,fields.replace_rate) == 1 - and self.child == false then - - fields.replace_offset = fields.replace_offset or 0 - - local pos = self.object:getpos() - pos.y = pos.y + fields.replace_offset - if #minetest.find_nodes_in_area(pos,pos,fields.replace_what) > 0 - and self.object:getvelocity().y == 0 - and fields.replace_what then - minetest.set_node(pos, {name = fields.replace_with}) - end + if self.replace_rate + and self.child == false + and math.random(1,self.replace_rate) == 1 then + local pos = self.object:getpos() + pos.y = pos.y + self.replace_offset + if self.replace_what + and self.object:getvelocity().y == 0 + and #minetest.find_nodes_in_area(pos, pos, self.replace_what) > 0 then + --and self.state == "stand" then + minetest.set_node(pos, {name = self.replace_with}) end end + local yaw = 0 + -- jump direction (adapted from Carbone mobs), gravity, falling or floating in water if not self.fly then if self.object:getvelocity().y > 0.1 then - local yaw = self.object:getyaw() + self.rotate + yaw = self.object:getyaw() + self.rotate local x = math.sin(yaw) * -2 local z = math.cos(yaw) * 2 @@ -233,6 +218,7 @@ function mobs:register_mob(name, def) local d = self.old_y - self.object:getpos().y if d > 5 then self.object:set_hp(self.object:get_hp() - math.floor(d - 5)) + effect(self.object:getpos(), 5, "tnt_smoke.png") check_for_death(self) end self.old_y = self.object:getpos().y @@ -268,28 +254,29 @@ function mobs:register_mob(name, def) local tod = minetest.get_timeofday() pos.y = (pos.y + self.collisionbox[2]) -- foot level --print ("standing on:", minetest.get_node(pos).name) - if self.light_damage and self.light_damage ~= 0 and pos.y > 0 and tod > 0.2 and tod < 0.8 and (minetest.get_node_light(pos) or 0) > 10 then self.object:set_hp(self.object:get_hp()-self.light_damage) effect(pos, 5, "tnt_smoke.png") + check_for_death(self) end if self.water_damage and self.water_damage ~= 0 and minetest.get_item_group(n.name, "water") ~= 0 then self.object:set_hp(self.object:get_hp()-self.water_damage) effect(pos, 5, "bubble.png") + check_for_death(self) end if self.lava_damage and self.lava_damage ~= 0 and minetest.get_item_group(n.name, "lava") ~= 0 then self.object:set_hp(self.object:get_hp()-self.lava_damage) effect(pos, 5, "fire_basic_flame.png") + check_for_death(self) end - check_for_death(self) end local do_jump = function(self) @@ -432,8 +419,8 @@ function mobs:register_mob(name, def) -- if animal is horny, find another same animal who is horny and mate if self.horny == true and self.hornytimer <= 40 then - local pos = self.object:getpos() ; pos.y = pos.y + 1 - effect(pos, 4, "heart.png") ; pos.y = pos.y - 1 + local pos = self.object:getpos() + effect({x=pos.x, y=pos.y+1, z=pos.z}, 4, "heart.png") local ents = minetest.get_objects_inside_radius(pos, self.view_range) local num = 0 local ent = nil @@ -509,7 +496,7 @@ function mobs:register_mob(name, def) self.following = nil else local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} - local yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate + yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate -- local if p.x > s.x then yaw = yaw+math.pi end @@ -518,7 +505,7 @@ function mobs:register_mob(name, def) -- anyone but standing npc's can move along if dist > 2 and self.order ~= "stand" then if (self.jump and self.get_velocity(self) <= 0.5 and self.object:getvelocity().y == 0) - or (self.object:getvelocity().y == 0 and self.jump_chance > 0) then -- CHANGED from self.jump + or (self.object:getvelocity().y == 0 and self.jump_chance > 0) then self.direction = {x = math.sin(yaw)*-1, y = -20, z = math.cos(yaw)} do_jump(self) end @@ -591,10 +578,9 @@ function mobs:register_mob(name, def) elseif self.state == "walk" then local s = self.object:getpos() - -- if there is water nearby, try to avoid it - local lp = minetest.find_node_near(s, 2, {"group:water"}) - - if lp ~= nil then + local lp = minetest.find_node_near(s, 1, {"group:water"}) + -- if water nearby then turn away + if lp then local vec = {x=lp.x-s.x, y=lp.y-s.y, z=lp.z-s.z} yaw = math.atan(vec.z/vec.x) + 3*math.pi / 2 + self.rotate if lp.x > s.x then @@ -602,7 +588,7 @@ function mobs:register_mob(name, def) end self.object:setyaw(yaw) - -- no water near, so randomly turn + -- otherwise randomly turn elseif math.random(1, 100) <= 30 then self.object:setyaw(self.object:getyaw()+((math.random(0,360)-180)/180*math.pi)) end @@ -646,7 +632,7 @@ function mobs:register_mob(name, def) end local vec = {x = p.x -s.x, y = p.y -s.y, z = p.z -s.z} - local yaw = math.atan(vec.z/vec.x)+math.pi/2 + self.rotate + yaw = math.atan(vec.z/vec.x)+math.pi/2 + self.rotate -- local if p.x > s.x then yaw = yaw+math.pi end @@ -711,30 +697,31 @@ function mobs:register_mob(name, def) local p = self.attack.player:getpos() local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 --- fly bit modified from BlockMens creatures mod -if self.fly and dist > 2 then + -- fly bit modified from BlockMens creatures mod + if self.fly and dist > 2 then - local nod = minetest.get_node_or_nil(s) - local p1 = s - local me_y = math.floor(p1.y) - local p2 = p - local p_y = math.floor(p2.y+1) - if nod and nod.name == self.fly_in then - if me_y < p_y then - self.object:setvelocity({x=self.object:getvelocity().x,y=1*self.walk_velocity,z=self.object:getvelocity().z}) - elseif me_y > p_y then - self.object:setvelocity({x=self.object:getvelocity().x,y=-1*self.walk_velocity,z=self.object:getvelocity().z}) - end - else - if me_y < p_y then - self.object:setvelocity({x=self.object:getvelocity().x,y=0.01,z=self.object:getvelocity().z}) - elseif me_y > p_y then - self.object:setvelocity({x=self.object:getvelocity().x,y=-0.01,z=self.object:getvelocity().z}) - end - end + local nod = minetest.get_node_or_nil(s) + local p1 = s + local me_y = math.floor(p1.y) + local p2 = p + local p_y = math.floor(p2.y+1) + local v = self.object:getvelocity() + if nod and nod.name == self.fly_in then + if me_y < p_y then + self.object:setvelocity({x=v.x,y=1*self.walk_velocity,z=v.z}) + elseif me_y > p_y then + self.object:setvelocity({x=v.x,y=-1*self.walk_velocity,z=v.z}) + end + else + if me_y < p_y then + self.object:setvelocity({x=v.x,y=0.01,z=v.z}) + elseif me_y > p_y then + self.object:setvelocity({x=v.x,y=-0.01,z=v.z}) + end + end -end --- end fly bit + end + -- end fly bit if dist > self.view_range or self.attack.player:get_hp() <= 0 then self.state = "stand" @@ -747,7 +734,7 @@ end end local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} - local yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate + yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate -- local if p.x > s.x then yaw = yaw+math.pi end @@ -812,7 +799,7 @@ end end local vec = {x=p.x-s.x, y=p.y-s.y, z=p.z-s.z} - local yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate + yaw = (math.atan(vec.z/vec.x)+math.pi/2) + self.rotate -- local if p.x > s.x then yaw = yaw+math.pi end @@ -843,18 +830,19 @@ end end, on_activate = function(self, staticdata, dtime_s) - local pos = self.object:getpos() - self.object:set_hp( math.random(self.hp_min, self.hp_max) ) -- set HP - self.oldhp = self.object:get_hp(self) -- used for hurt sound + if self.type == "monster" and peaceful_only then + self.object:remove() + end + + self.health = math.random (self.hp_min, self.hp_max) -- set initial HP + self.object:set_hp( self.health ) + self.health = self.object:get_hp() self.object:set_armor_groups({fleshy=self.armor}) self.object:setacceleration({x=0, y= self.fall_speed, z=0}) self.state = "stand" self.object:setvelocity({x=0, y=self.object:getvelocity().y, z=0}) self.old_y = self.object:getpos().y self.object:setyaw(math.random(1, 360)/180*math.pi) - if self.type == "monster" and peaceful_only then - self.object:remove() - end if staticdata then local tmp = minetest.deserialize(staticdata) @@ -892,12 +880,12 @@ end if tmp.owner then self.owner = tmp.owner end + if tmp.health then + self.health = tmp.health + self.object:set_hp( self.health ) + end end end - -- quick fix for dog so it doesn't revert back to wolf - if self.type == "monster" and self.tamed == true then - self.type = "npc" - end end, get_staticdata = function(self) @@ -942,17 +930,36 @@ end base_texture = self.base_texture, collisionbox = colbox, owner = self.owner, + health = self.health, } self.object:set_properties(tmp) return minetest.serialize(tmp) end, on_punch = function(self, hitter, tflp, tool_capabilities, dir) + -- weapon wear + local weapon = hitter:get_wielded_item() + if weapon:get_definition().tool_capabilities ~= nil then + local wear = ( weapon:get_definition().tool_capabilities.full_punch_interval / 75 ) * 9000 + weapon:add_wear(wear) + hitter:set_wielded_item(weapon) + end + + -- weapon sounds + if weapon:get_definition().sounds ~= nil then + local s = math.random(0,#weapon:get_definition().sounds) + minetest.sound_play(weapon:get_definition().sounds[s], { + object=hitter, + }) + else + minetest.sound_play("default_punch", { + object = hitter, + }) + end - process_weapon(hitter,tflp,tool_capabilities) check_for_death(self) - --blood_particles + -- blood_particles local pos = self.object:getpos() pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) / 2 if self.blood_amount > 0 and pos and enable_blood == true then @@ -960,17 +967,14 @@ end end -- knock back effect, adapted from blockmen's pyramids mod - -- https://github.com/BlockMen/pyramids local kb = self.knock_back local r = self.recovery_time - local ykb = 0 -- was 2 local v = self.object:getvelocity() if tflp < tool_capabilities.full_punch_interval then kb = kb * ( tflp / tool_capabilities.full_punch_interval ) r = r * ( tflp / tool_capabilities.full_punch_interval ) end - if v.y ~= 0 then ykb = 0 end - self.object:setvelocity({x=dir.x*kb,y=ykb,z=dir.z*kb}) + self.object:setvelocity({x=dir.x*kb,y=0,z=dir.z*kb}) self.pause_timer = r -- attack puncher and call other mobs for help @@ -1083,24 +1087,6 @@ function mobs:explosion(pos, radius, fire, smoke, sound) local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) local data = vm:get_data() local p = {} - local undestroyed = { --Modif MFF DEBUT - minetest.get_content_id("air"), - minetest.get_content_id("ignore"), - minetest.get_content_id("default:obsidian"), - minetest.get_content_id("default:obsidianbrick"), - minetest.get_content_id("default:chest_locked"), - minetest.get_content_id("doors:door_steel_b_1"), - minetest.get_content_id("doors:door_steel_t_1"), - minetest.get_content_id("doors:door_steel_b_2"), - minetest.get_content_id("doors:door_steel_t_2"), - minetest.get_content_id("default:bedrock"), - minetest.get_content_id("default:obsidian_cooled"), - minetest.get_content_id("more_chests:cobble"), - minetest.get_content_id("more_chests:shared"), - minetest.get_content_id("more_chests:secret"), - minetest.get_content_id("more_chests:dropbox"), - minetest.get_content_id("more_chests:shared_chest") - } --Modif MFF DEBUT local c_air = minetest.get_content_id("air") local c_ignore = minetest.get_content_id("ignore") local c_obsidian = minetest.get_content_id("default:obsidian") @@ -1134,19 +1120,14 @@ function mobs:explosion(pos, radius, fire, smoke, sound) end end end - end - if n.name == "doors:door_wood_b_1" then - minetest.remove_node({x=np.x,y=np.y+1,z=np.z}) - elseif n.name == "doors:door_wood_t_1" then - minetest.remove_node({x=np.x,y=np.y-1,z=np.z}) - end - if fire > 0 and (minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30) then - minetest.set_node(p, {name="fire:basic_flame"}) - else - minetest.remove_node(p) - end - if smoke > 0 then - effect(p, 2, "tnt_smoke.png", 5) + if fire > 0 and (minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30) then + minetest.set_node(p, {name="fire:basic_flame"}) + else + minetest.remove_node(p) + end + if smoke > 0 then + effect(p, 2, "tnt_smoke.png", 5) + end end end vi = vi + 1 @@ -1159,9 +1140,9 @@ end function check_for_death(self) local hp = self.object:get_hp() if hp > 0 then - if self.sounds.damage ~= nil and hp < self.oldhp then + if self.sounds.damage ~= nil then minetest.sound_play(self.sounds.damage,{object = self.object}) - self.oldhp = hp + self.health = hp end return end @@ -1269,15 +1250,6 @@ function mobs:register_arrow(name, def) }) end -function process_weapon(player, time_from_last_punch, tool_capabilities) -local weapon = player:get_wielded_item() - if tool_capabilities ~= nil then - local wear = ( tool_capabilities.full_punch_interval / 75 ) * 65535 - weapon:add_wear(wear) - player:set_wielded_item(weapon) - end -end - -- Spawn Egg function mobs:register_egg(mob, desc, background, addegg) local invimg = background @@ -1294,8 +1266,7 @@ function mobs:register_egg(mob, desc, background, addegg) local mob = minetest.add_entity(pos, mob) local ent = mob:get_luaentity() if ent.type ~= "monster" then - ent.owner = placer:get_player_name() - ent.tamed = true + -- set owner ent.owner = placer:get_player_name() ent.tamed = true end diff --git a/worlds/minetestforfun/news.txt b/worlds/minetestforfun/news.txt index a296af69..a62d225b 100755 --- a/worlds/minetestforfun/news.txt +++ b/worlds/minetestforfun/news.txt @@ -4,6 +4,10 @@ News de FR - MinetestForFun (Survival - PVP - Hardcore) /!\ Le serveur étant devenu extrêmement stable, les MAJ vont se rarifier pour un temps /!\ /!\ En effet, nous profitons de cette stabilité pour préparer une grosse MAJ qui boulversera à jamais le gameplay de Minetest /!\ +---xx/05/2015--- (Remerciements : x) +MAJ de "mobs" (possibilité d'ajouter des armes aux monstres, les monstres endommagés ne voient plus leur vie restauré s'ils sont déchargés puis rechergés, et amélioration du code) +MAJ de "hud/hunger.lua" (ajout des valeurs de nutritions des haricots/beans) + ---27/05/2015--- (Remerciements : Mg, Obani, Ataron) MAJ de "/_misc/whoison" ("/timeonline" à maintenant un alias "/played", libre à vous de l'utiliser) MAJ de "bobblocks" (grosse amélioration du code par HybridDog) @@ -25,7 +29,7 @@ Ajout du mod "dumpnodes mod" (permet à l'admin de générer les couleurs des cu MAJ de "worldedit" (amélioration du code) MAJ de "nether" (bugfix du problème de mapgen que nous avons rencontré) MAJ de "whoison" (plus précis dans les données sorties) -Ajout du mod "compassgps" (une boussole, avec possibilité d'enregistrer des positions, différentes textures de boussoles disponibles) +Ajout du mod "compassgps" (une boussole, avec possibilité d'enregistrer des positions, différentes textures de boussoles disponibles) Ajout du mod "worldedge" (quand vous atteingnez le bout de la carte, vous êtes téléporté à l'autre bout "logique" de la carte, à la façon du jeu "snake") MAJ de "mobs" (ajout des bouses/dungs - rare - pour les vaches/cows, elles peuvent être utilisées comme combustible) MAJ de "mobs" (modification des drops de "coins", uniquement "des fois" des silver_coins maintenant, les creeper ne droppent plus de coins, le Minotaur et le Yeti sont maintenant 100% fonctionnels) @@ -83,8 +87,8 @@ MAJ de "connected_chests" (amélioration du code) ---13/04/2015--- (Remerciements : Crabman, Mg) MAJ de "mobs" (Les NPCs vous suivent et protègent uniquement si vous leur donnez 4 diamants - avec un clique droit -) -MAJ de "mesecons" (retour à la version antéireure fonctionnelle tant que la dernière version à son problème avec les portes/doors) -MAJ de "hud" et "hunger" (retour à la version 1.4 fonctionnelle tant que la version 2.1.x n'est pas stable) +MAJ de "mesecons" (retour à la version antéireure fonctionnelle tant que la dernière version à son problème avec les portes/doors) +MAJ de "hud" et "hunger" (retour à la version 1.4 fonctionnelle tant que la version 2.1.x n'est pas stable) ---12/04/2015--- (Remerciements : Mg, Crabman) MAJ de "mobs" (Nouveaux objets nécessaires pour appater les npcs, npcs qui disparaissent après 10 minutes si non apprivoisés) @@ -146,7 +150,7 @@ MAJ de "builtin_item" (amélioration du code) ---28/03/2015--- (Remerciements : Mg, Crabman) MAJ de "tsm_pyramids" (crashfix) MAJ de "fail" (petite améliortion du code) -MAJ de "soundset" (ajout d'un menu dans l'inventaire pour modifier graphiquement le volume de la musique et des sons d'ambiances du serveur) +MAJ de "soundset" (ajout d'un menu dans l'inventaire pour modifier graphiquement le volume de la musique et des sons d'ambiances du serveur) MAJ de "mobs" (Le taux de spawn de la plupart des monstres à été ajusté, les valeurs suivantes sont approximatives : "Lava Flan -13%, Sand Monster -50%, Spider -13%, Creeper -33%, Mese Monster -15%, Stone Monster -29%, Oerkki -7%, Dungeon Master +18%, Rat +11%, Bee -33%, Kiten +15%, Bunny +15%, Chicken +10%, Sheep -5%, Warthog -10%, NPC -5%". Des suites de ces valeurs, il y a autant de chance de trouver tous les animaux passif à la surface exception pour les NPCs qui sont deux fois plus rare. Aussi, Vous avez une chance égal en Cavernes de tomber contre Oerkki, Stone Monster, Mese Monster et Dungeon Master. Enfin, Vous vous ferez agresser un peu moins souvent dans la jungle.) ---26/03/2015--- (Remerciements : Ataron, Crabman, Mg) @@ -248,7 +252,7 @@ MAJ de "mobs" (ajout d'un son pour les loups) MAJ de "mobs" (bugfix des loups) MAJ de "MFF_game" (nouvelle texture de feu pour le four/furnace, ajout de Obsidian/Obsidian brick stairs & slabs, bugfix/amélioration mgv5/mgv7, crashfix) MAJ de "maptools" (bugfix des fences/rails unbreakable) -MAJ de "MFF_game" (beaucoup de textures modifiés - lingots, minerais, rails -, vous coulez dans l'eau plus doucement, recette mossycobble=>stone après un passage au four/furnace) +MAJ de "MFF_game" (beaucoup de textures modifiés - lingots, minerais, rails -, vous coulez dans l'eau plus doucement, recette mossycobble=>stone après un passage au four/furnace) MAJ de "MFF_game/mods/default/commands.lua" (crashfix de l'infotool) MAJ de "MFF_game/mods/door" (optimisation et amélioration du code) MAJ de "MFF_game/mods/bucket" (quand un bucket vide est remplit il est jeté au sol si votre inventaire est plain et non détruit comme auparavant) @@ -378,7 +382,7 @@ MAJ de "riesenpilz" (modification de la texture) MAJ de "homedecor" (bugfix sur les itenframes s'ils sont cassés ou world-édités) MAJ de "chatlog" (les commandes échoués n'apparaîtront plus dans le chat, visible de tous) MAJ de "carts" (bugfix pouvant entrainer un crash du servuer) -MAJ de "la plupart des mods" (résolution des variables globales) +MAJ de "la plupart des mods" (résolution des variables globales) MAJ de "misc/noshout_messages" (debug, s'affiche correctement désormais) MAJ de "future_ban" (bugfix) MAJ de "pipeworks" (toutes les textures sont maintenant en meshe) @@ -608,7 +612,7 @@ Ajout du mod "sprint" (appuyez deux fois sur votre touche avancer avec 0.5sec d' ---10/11/2014--- -MAJ de "_misc/irc.init" (finalisation du mod, les nouveaux joueurs doivent taper "/irc" pour pouvoir communiquer avec les autres joueurs, les anciens joueurs n’ont pas besoin de faire cela cependant, nous vous conseillons fortement de faire cette commande pour vous informer des règles de l’irc) +MAJ de "_misc/irc.init" (finalisation du mod, les nouveaux joueurs doivent taper "/irc" pour pouvoir communiquer avec les autres joueurs, les anciens joueurs n’ont pas besoin de faire cela cependant, nous vous conseillons fortement de faire cette commande pour vous informer des règles de l’irc) ---09/11/2014--- Ajout du mod "coloredwood" (bois/barrière de toute les couleurs, grâce au colorants, compatible avec la colormachine) @@ -678,7 +682,7 @@ Ajout du mod "sponge" (ajout d'une ponge craftable, comme dans minecr**t celle c MAJ de "dropondie" (ré-ajout d'une portion de code pour le bugfix des items qui ce restaure quand vous mourrez et les re-ramassez) MAJ de "minetestforfun_game"(nettoyage du code des tree/jungletree, des doors et des trapdoors par Calinou) MAJ de "snowdrift" (la quantité et fréquence de la neige entrainait du lag coté client, la quantité de neige à été divisé par deux, et la fréquence par trois pour y remédier) -Ajout du mod "highlandpools" (des lacs et rivières ce formeront désormais parfois au dessus du niveau de l'eau dans les nouvelles régions générées) +Ajout du mod "highlandpools" (des lacs et rivières ce formeront désormais parfois au dessus du niveau de l'eau dans les nouvelles régions générées) MAJ de "maptools" (ajustement esthétique du code) MAJ de "minetestforfun_game" (certains minerais rare, à savoir, les gold coin, le mese et le diamant, luisent/brillent désormais dans le noir) MAJ de "nether" (les comandes "/to_hell" et "/from_hell" ont été supprimés) @@ -866,7 +870,7 @@ Nouvelle "default" animation lors du cassage d'un bloque (avec plus de FPS) Ajout du mod "craft obsidian" (à partir d'un "lava_bucket") MAJ farming (bugs fix) MAJ de MinetestForFun_game (nouveaux craft : les "dry shrub"/buisson sec du désert, ce transforme en stick 1 pour 1, le "clay" ce stack maintenant par 200, les "empty_bucket" ce groupe par 100, les "stick" ce groupe par 1000, les "torch" ce craft par 5) -MAJ de screwdriver (avec un clique gauche la texture ce tourne, tandis qu'avec un clique droit le cube ce tourne) +MAJ de screwdriver (avec un clique gauche la texture ce tourne, tandis qu'avec un clique droit le cube ce tourne) ---01/09/2014--- Ajout du mod "Framed_glass" (extraction de technic, ajout notamment de "framed_steel_glass" colorés)