From 66f132a645bee3be6913a7ccb0b407b06078462f Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 24 May 2021 12:41:16 +0200 Subject: [PATCH 01/38] fix crash on creeper explosion ( #1755 ) --- .../mcl_mobs/api/mob_functions/movement.lua | 53 ++++++++++--------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua index 9a5fd9ea1..04e3e370c 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua @@ -22,7 +22,7 @@ local DEFAULT_CLIMB_SPEED = 3 mobs.stick_in_cobweb = function(self) local current_velocity = self.object:get_velocity() - + local goal_velocity = vector_multiply(vector_normalize(current_velocity), 0.4) goal_velocity.y = -0.5 @@ -38,8 +38,11 @@ end --this is a generic float function mobs.float = function(self) - if self.object:get_acceleration().y ~= 0 then + local acceleration = self.object:get_acceleration() + if acceleration and acceleration.y ~= 0 then self.object:set_acceleration(vector_new(0,0,0)) + else + return end local current_velocity = self.object:get_velocity() @@ -86,10 +89,10 @@ end --[[ - _ _ + _ _ | | | | | | __ _ _ __ __| | -| | / _` | '_ \ / _` | +| | / _` | '_ \ / _` | | |___| (_| | | | | (_| | \_____/\__,_|_| |_|\__,_| ]] @@ -100,7 +103,7 @@ end --internal = lua (self.yaw) --engine = c++ (self.object:get_yaw()) mobs.set_velocity = function(self, v) - + local yaw = (self.yaw or 0) local current_velocity = self.object:get_velocity() @@ -152,7 +155,7 @@ mobs.jump = function(self, velocity) --fallback velocity to allow modularity velocity = velocity or DEFAULT_JUMP_HEIGHT - self.object:add_velocity(vector_new(0,velocity,0)) + self.object:add_velocity(vector_new(0,velocity,0)) end --make mobs fall slowly @@ -188,10 +191,10 @@ end --[[ - _____ _ -/ ___| (_) -\ `--.__ ___ _ __ ___ - `--. \ \ /\ / / | '_ ` _ \ + _____ _ +/ ___| (_) +\ `--.__ ___ _ __ ___ + `--. \ \ /\ / / | '_ ` _ \ /\__/ /\ V V /| | | | | | | \____/ \_/\_/ |_|_| |_| |_| ]]-- @@ -221,7 +224,7 @@ mobs.flop = function(self, velocity) local final_additional_force = vector_multiply(minetest_yaw_to_dir(dir), force) --place in the "flop" velocity to make the mob flop - final_additional_force.y = velocity + final_additional_force.y = velocity self.object:add_velocity(final_additional_force) @@ -235,7 +238,7 @@ end --internal = lua (self.yaw) --engine = c++ (self.object:get_yaw()) mobs.set_swim_velocity = function(self, v) - + local yaw = (self.yaw or 0) local pitch = (self.pitch or 0) @@ -265,14 +268,14 @@ mobs.set_swim_velocity = function(self, v) end --[[ -______ _ -| ___| | -| |_ | |_ _ +______ _ +| ___| | +| |_ | |_ _ | _| | | | | | | | | | |_| | \_| |_|\__, | __/ | - |___/ + |___/ ]]-- -- move mob in facing direction @@ -280,7 +283,7 @@ ______ _ --internal = lua (self.yaw) --engine = c++ (self.object:get_yaw()) mobs.set_fly_velocity = function(self, v) - + local yaw = (self.yaw or 0) local pitch = (self.pitch or 0) @@ -332,14 +335,14 @@ end --[[ - ___ - |_ | - | |_ _ _ __ ___ _ __ - | | | | | '_ ` _ \| '_ \ + ___ + |_ | + | |_ _ _ __ ___ _ __ + | | | | | '_ ` _ \| '_ \ /\__/ / |_| | | | | | | |_) | -\____/ \__,_|_| |_| |_| .__/ - | | - |_| +\____/ \__,_|_| |_| |_| .__/ + | | + |_| ]]-- --special mob jump movement @@ -388,4 +391,4 @@ mobs.swap_auto_step_height_adjust = function(self) elseif y_vel ~= 0 and self.stepheight ~= 0 then self.stepheight = 0 end -end \ No newline at end of file +end From f76b66eec6e596cab2ecaf310c8e2dd6d6820cf1 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:37:02 +0200 Subject: [PATCH 02/38] [mcl_mobs] fix some warnings (131 remaining!) --- .luacheckrc | 3 + mods/ENTITIES/mcl_mobs/api/api.lua | 16 +- .../mcl_mobs/api/mob_functions/ai.lua | 221 +++++++----------- .../mcl_mobs/api/mob_functions/animation.lua | 20 +- .../attack_type_instructions.lua | 55 +++-- ...ackup_code_api.lua => backup_code_api.txt} | 74 +++--- .../mcl_mobs/api/mob_functions/breeding.lua | 53 ++--- .../mcl_mobs/api/mob_functions/collision.lua | 15 +- .../api/mob_functions/death_logic.lua | 16 +- .../api/mob_functions/environment.lua | 20 +- .../mcl_mobs/api/mob_functions/head_logic.lua | 176 +++++++------- .../api/mob_functions/interaction.lua | 51 ++-- .../api/mob_functions/mob_effects.lua | 12 +- .../mcl_mobs/api/mob_functions/movement.lua | 87 ++++--- .../mcl_mobs/api/mob_functions/set_up.lua | 10 +- mods/ENTITIES/mcl_mobs/api/mount.lua | 34 +-- mods/ENTITIES/mcl_mobs/api/spawning.lua | 10 +- 17 files changed, 387 insertions(+), 486 deletions(-) rename mods/ENTITIES/mcl_mobs/api/mob_functions/{backup_code_api.lua => backup_code_api.txt} (97%) diff --git a/.luacheckrc b/.luacheckrc index 910d73a11..9d0b8cb2a 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -47,6 +47,9 @@ read_globals = { --GENERAL "default", + --ENTITIES + "cmi", + --HUD "sfinv", "sfinv_buttons", "unified_inventory", "cmsg", "inventory_plus", } \ No newline at end of file diff --git a/mods/ENTITIES/mcl_mobs/api/api.lua b/mods/ENTITIES/mcl_mobs/api/api.lua index d413bae72..878474cf1 100644 --- a/mods/ENTITIES/mcl_mobs/api/api.lua +++ b/mods/ENTITIES/mcl_mobs/api/api.lua @@ -92,13 +92,13 @@ 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_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 -local mod_experience = minetest_get_modpath("mcl_experience") ~= nil +local mod_weather = minetest_get_modpath("mcl_weather") +local mod_explosions = minetest_get_modpath("mcl_explosions") +local mod_mobspawners = minetest_get_modpath("mcl_mobspawners") +local mod_hunger = minetest_get_modpath("mcl_hunger") +local mod_worlds = minetest_get_modpath("mcl_worlds") +local mod_armor = minetest_get_modpath("mcl_armor") +local mod_experience = minetest_get_modpath("mcl_experience") -- random locals I found @@ -743,7 +743,7 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative) nametag = string.sub(nametag, 1, MAX_MOB_NAME_LENGTH) end ent.nametag = nametag - update_tag(ent) + --update_tag(ent) end -- if not in creative then take item diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua index d75bda6c6..df2ccade2 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua @@ -1,12 +1,8 @@ -local math_random = math.random -local math_pi = math.pi -local math_floor = math.floor -local math_round = math.round +local math = math +local vector = vector +local string = string -local vector_multiply = vector.multiply -local vector_add = vector.add -local vector_new = vector.new -local vector_distance = vector.distance +local tonumber = tonumber local minetest_yaw_to_dir = minetest.yaw_to_dir local minetest_get_item_group = minetest.get_item_group @@ -28,16 +24,16 @@ end --a simple helper function for rounding --http://lua-users.org/wiki/SimpleRound -function round2(num, numDecimalPlaces) +local function round2(num, numDecimalPlaces) return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num)) end --[[ - _ _ + _ _ | | | | | | __ _ _ __ __| | -| | / _` | '_ \ / _` | +| | / _` | '_ \ / _` | | |___| (_| | | | | (_| | \_____/\__,_|_| |_|\__,_| ]]-- @@ -50,24 +46,23 @@ local cliff_check = function(self,dtime) end local pos = self.object:get_pos() - local dir = minetest_yaw_to_dir(self.yaw) + local dir = minetest_yaw_to_dir(self.yaw) local collisionbox = self.object:get_properties().collisionbox local radius = collisionbox[4] + 0.5 - dir = vector_multiply(dir,radius) + dir = vector.multiply(dir,radius) - local free_fall, blocker = minetest_line_of_sight( + local free_fall = minetest_line_of_sight( {x = pos.x + dir.x, y = pos.y, z = pos.z + dir.z}, {x = pos.x + dir.x, y = pos.y - self.fear_height, z = pos.z + dir.z}) return free_fall end - -- state switching logic (stand, walk, run, attacks) local land_state_list_wandering = {"stand", "walk"} -local land_state_switch = function(self, dtime) +local function land_state_switch(self, dtime) --do math before sure not attacking, following, or running away so continue --doing random walking for mobs if all states are not met @@ -93,8 +88,8 @@ local land_state_switch = function(self, dtime) end --ignore everything else if following - if mobs.check_following(self) and - (not self.breed_lookout_timer or (self.breed_lookout_timer and self.breed_lookout_timer == 0)) and + if mobs.check_following(self) and + (not self.breed_lookout_timer or (self.breed_lookout_timer and self.breed_lookout_timer == 0)) and (not self.breed_timer or (self.breed_timer and self.breed_timer == 0)) then self.state = "follow" return @@ -136,7 +131,6 @@ local land_state_execution = function(self,dtime) if not self.object:get_properties() then return end - --timer to time out looking for mate if self.breed_lookout_timer and self.breed_lookout_timer > 0 then @@ -176,12 +170,12 @@ local land_state_execution = function(self,dtime) if velocity.y < 0 then --lua is acting really weird so we have to help it if round2(self.object:get_acceleration().y, 1) == -self.gravity then - self.object:set_acceleration(vector_new(0,0,0)) + self.object:set_acceleration(vector.new(0,0,0)) mobs.mob_fall_slow(self) end else if round2(self.object:get_acceleration().y, 1) == 0 then - self.object:set_acceleration(vector_new(0,-self.gravity,0)) + self.object:set_acceleration(vector.new(0,-self.gravity,0)) end end end @@ -206,15 +200,13 @@ local land_state_execution = function(self,dtime) end mobs.lock_yaw(self) - elseif self.state == "follow" then - + elseif self.state == "follow" then --always look at players mobs.set_yaw_while_following(self) --check distance - local distance_from_follow_person = vector_distance(self.object:get_pos(), self.following_person:get_pos()) + local distance_from_follow_person = vector.distance(self.object:get_pos(), self.following_person:get_pos()) local distance_2d = mobs.get_2d_distance(self.object:get_pos(), self.following_person:get_pos()) - --don't push the player if too close --don't spin around randomly if self.follow_distance < distance_from_follow_person and self.minimum_follow_distance < distance_2d then @@ -240,7 +232,7 @@ local land_state_execution = function(self,dtime) self.walk_timer = math.random(1,6) + math.random() --set the mob into a random direction - self.yaw = (math_random() * (math.pi * 2)) + self.yaw = (math.random() * (math.pi * 2)) end --do animation @@ -253,15 +245,13 @@ local land_state_execution = function(self,dtime) local node_in_front_of = mobs.jump_check(self) if node_in_front_of == 1 then - mobs.jump(self) - - --turn if on the edge of cliff - --(this is written like this because unlike - --jump_check which simply tells the mob to jump - --this requires a mob to turn, removing the - --ease of a full implementation for it in a single - --function) + --turn if on the edge of cliff + --(this is written like this because unlike + --jump_check which simply tells the mob to jump + --this requires a mob to turn, removing the + --ease of a full implementation for it in a single + --function) elseif node_in_front_of == 2 or (self.fear_height ~= 0 and cliff_check(self,dtime)) then --turn 45 degrees if so quick_rotate(self,dtime) @@ -292,9 +282,7 @@ local land_state_execution = function(self,dtime) local node_in_front_of = mobs.jump_check(self) if node_in_front_of == 1 then - mobs.jump(self) - --turn if on the edge of cliff --(this is written like this because unlike --jump_check which simply tells the mob to jump @@ -342,7 +330,7 @@ local land_state_execution = function(self,dtime) mobs.set_velocity(self, self.walk_velocity) --smoosh together basically - if vector_distance(self.object:get_pos(), mate:get_pos()) <= self.breed_distance then + if vector.distance(self.object:get_pos(), mate:get_pos()) <= self.breed_distance then mobs.set_mob_animation(self, "stand") if self.special_breed_timer == 0 then self.special_breed_timer = 2 --breeding takes 2 seconds @@ -353,7 +341,7 @@ local land_state_execution = function(self,dtime) --pop a baby out, it's a miracle! local baby_pos = vector.divide(vector.add(self.object:get_pos(), mate:get_pos()), 2) - local baby_mob = minetest.add_entity(pos, self.name, minetest.serialize({baby = true, grow_up_timer = self.grow_up_goal, bred = true})) + minetest.add_entity(baby_pos, self.name, minetest.serialize({baby = true, grow_up_timer = self.grow_up_goal, bred = true})) mobs.play_sound_specific(self,"item_drop_pickup") @@ -375,14 +363,13 @@ local land_state_execution = function(self,dtime) mobs.set_velocity(self,0) end - end - + end if float_now then mobs.float(self) else local acceleration = self.object:get_acceleration() if acceleration and acceleration.y == 0 then - self.object:set_acceleration(vector_new(0,-self.gravity,0)) + self.object:set_acceleration(vector.new(0,-self.gravity,0)) end end end @@ -391,10 +378,10 @@ end --[[ - _____ _ -/ ___| (_) -\ `--.__ ___ _ __ ___ - `--. \ \ /\ / / | '_ ` _ \ + _____ _ +/ ___| (_) +\ `--.__ ___ _ __ ___ + `--. \ \ /\ / / | '_ ` _ \ /\__/ /\ V V /| | | | | | | \____/ \_/\_/ |_|_| |_| |_| ]]-- @@ -416,16 +403,16 @@ end --check if a mob needs to turn while swimming local swim_turn_check = function(self,dtime) - local pos = self.object:get_pos() - pos.y = pos.y + 0.1 - local dir = minetest_yaw_to_dir(self.yaw) + local pos = self.object:get_pos() + pos.y = pos.y + 0.1 + local dir = minetest_yaw_to_dir(self.yaw) - local collisionbox = self.object:get_properties().collisionbox + local collisionbox = self.object:get_properties().collisionbox local radius = collisionbox[4] + 0.5 - vector_multiply(dir, radius) + vector.multiply(dir, radius) - local test_dir = vector.add(pos,dir) + local test_dir = vector.add(pos,dir) local green_flag_1 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") ~= 0 @@ -437,11 +424,11 @@ local swim_physics_swapper = function(self,inside_swim_node) --should be swimming, gravity is applied, switch to floating if inside_swim_node and self.object:get_acceleration().y ~= 0 then - self.object:set_acceleration(vector_new(0,0,0)) + self.object:set_acceleration(vector.new(0,0,0)) --not be swim, gravity isn't applied, switch to falling elseif not inside_swim_node and self.object:get_acceleration().y == 0 then self.pitch = 0 - self.object:set_acceleration(vector_new(0,-self.gravity,0)) + self.object:set_acceleration(vector.new(0,-self.gravity,0)) end end @@ -482,22 +469,17 @@ local swim_state_execution = function(self,dtime) end mobs.lock_yaw(self) - elseif self.state == "swim" then - self.walk_timer = self.walk_timer - dtime - --reset the walk timer if self.walk_timer <= 0 then - --re-randomize the walk timer self.walk_timer = math.random(1,6) + math.random() - --set the mob into a random direction - self.yaw = (math_random() * (math.pi * 2)) + self.yaw = (math.random() * (math.pi * 2)) --create a truly random pitch, since there is no easy access to pitch math that I can find - self.pitch = math_random() * math.random(1,3) * random_pitch_multiplier[math_random(1,2)] + self.pitch = math.random() * math.random(1,3) * random_pitch_multiplier[math.random(1,2)] end --do animation @@ -535,14 +517,14 @@ end --[[ -______ _ -| ___| | -| |_ | |_ _ +______ _ +| ___| | +| |_ | |_ _ | _| | | | | | | | | | |_| | \_| |_|\__, | - __/ | - |___/ + __/ | + |___/ ]]-- -- state switching logic (stand, walk, run, attacks) @@ -566,16 +548,16 @@ end --check if a mob needs to turn while flying local fly_turn_check = function(self,dtime) - local pos = self.object:get_pos() - pos.y = pos.y + 0.1 - local dir = minetest_yaw_to_dir(self.yaw) + local pos = self.object:get_pos() + pos.y = pos.y + 0.1 + local dir = minetest_yaw_to_dir(self.yaw) - local collisionbox = self.object:get_properties().collisionbox + local collisionbox = self.object:get_properties().collisionbox local radius = collisionbox[4] + 0.5 - vector_multiply(dir, radius) + vector.multiply(dir, radius) - local test_dir = vector.add(pos,dir) + local test_dir = vector.add(pos,dir) local green_flag_1 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") ~= 0 @@ -587,11 +569,11 @@ local fly_physics_swapper = function(self,inside_fly_node) --should be flyming, gravity is applied, switch to floating if inside_fly_node and self.object:get_acceleration().y ~= 0 then - self.object:set_acceleration(vector_new(0,0,0)) + self.object:set_acceleration(vector.new(0,0,0)) --not be fly, gravity isn't applied, switch to falling elseif not inside_fly_node and self.object:get_acceleration().y == 0 then self.pitch = 0 - self.object:set_acceleration(vector_new(0,-self.gravity,0)) + self.object:set_acceleration(vector.new(0,-self.gravity,0)) end end @@ -635,15 +617,13 @@ local fly_state_execution = function(self,dtime) --reset the walk timer if self.walk_timer <= 0 then - --re-randomize the walk timer self.walk_timer = math.random(1,6) + math.random() - --set the mob into a random direction - self.yaw = (math_random() * (math.pi * 2)) + self.yaw = (math.random() * (math.pi * 2)) --create a truly random pitch, since there is no easy access to pitch math that I can find - self.pitch = math_random() * math.random(1,3) * random_pitch_multiplier[math_random(1,2)] + self.pitch = math.random() * math.random(1,3) * random_pitch_multiplier[math.random(1,2)] end --do animation @@ -663,9 +643,7 @@ local fly_state_execution = function(self,dtime) --enable rotation locking mobs.movement_rotation_lock(self) - elseif self.state == "attack" then - --execute mob attack type --if self.attack_type == "explode" then @@ -697,40 +675,39 @@ end --[[ - ___ - |_ | - | |_ _ _ __ ___ _ __ - | | | | | '_ ` _ \| '_ \ + ___ + |_ | + | |_ _ _ __ ___ _ __ + | | | | | '_ ` _ \| '_ \ /\__/ / |_| | | | | | | |_) | -\____/ \__,_|_| |_| |_| .__/ - | | - |_| +\____/ \__,_|_| |_| |_| .__/ + | | + |_| ]]-- --check if a mob needs to turn while jumping -local jump_turn_check = function(self,dtime) +--[[local function jump_turn_check(self, dtime) + local pos = self.object:get_pos() + pos.y = pos.y + 0.1 + local dir = minetest_yaw_to_dir(self.yaw) - local pos = self.object:get_pos() - pos.y = pos.y + 0.1 - local dir = minetest_yaw_to_dir(self.yaw) - - local collisionbox = self.object:get_properties().collisionbox + local collisionbox = self.object:get_properties().collisionbox local radius = collisionbox[4] + 0.5 - vector_multiply(dir, radius) + vector.multiply(dir, radius) - local test_dir = vector.add(pos,dir) + local test_dir = vector.add(pos,dir) local green_flag_1 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") ~= 0 - return(green_flag_1) -end + return green_flag_1 +end]] -- state switching logic (stand, jump, run, attacks) local jump_state_list_wandering = {"stand", "jump"} -local jump_state_switch = function(self, dtime) +local function jump_state_switch(self, dtime) self.state_timer = self.state_timer - dtime if self.state_timer <= 0 then self.state_timer = math.random(4,10) + math.random() @@ -739,8 +716,8 @@ local jump_state_switch = function(self, dtime) end -- states are executed here -local jump_state_execution = function(self,dtime) - +local function jump_state_execution(self, dtime) + local node_in_front_of = mobs.jump_check(self) local pos = self.object:get_pos() local collisionbox = self.object:get_properties().collisionbox --get the center of the mob @@ -775,7 +752,7 @@ local jump_state_execution = function(self,dtime) self.walk_timer = math.random(1,6) + math.random() --set the mob into a random direction - self.yaw = (math_random() * (math.pi * 2)) + self.yaw = (math.random() * (math.pi * 2)) end --do animation @@ -793,15 +770,10 @@ local jump_state_execution = function(self,dtime) mobs.jump_move(self,self.walk_velocity) elseif self.state == "run" then - print("run") - elseif self.state == "attack" then - print("attack") - - end - + end if float_now then mobs.float(self) end @@ -811,14 +783,14 @@ end --[[ -___ ___ _ _ _ -| \/ | (_) | | (_) -| . . | __ _ _ _ __ | | ___ __ _ _ ___ +___ ___ _ _ _ +| \/ | (_) | | (_) +| . . | __ _ _ _ __ | | ___ __ _ _ ___ | |\/| |/ _` | | '_ \ | | / _ \ / _` | |/ __| -| | | | (_| | | | | | | |___| (_) | (_| | | (__ +| | | | (_| | | | | | | |___| (_) | (_| | | (__ \_| |_/\__,_|_|_| |_| \_____/\___/ \__, |_|\___| - __/ | - |___/ + __/ | + |___/ ]]-- --the main loop @@ -859,13 +831,13 @@ mobs.mob_step = function(self, dtime) end --color modifier which coincides with the pause_timer - if self.old_health and self.health < self.old_health then + if self.old_health and self.health < self.old_health then self.object:set_texture_mod("^[colorize:red:120") --fix double death sound if self.health > 0 then mobs.play_sound(self,"damage") end - end + end self.old_health = self.health --do death logic (animation, poof, explosion, etc) @@ -916,7 +888,6 @@ mobs.mob_step = function(self, dtime) elseif self.breath < self.breath_max then self.breath = self.breath + dtime - --clean timer reset if self.breath > self.breath_max then self.breath = self.breath_max @@ -948,10 +919,6 @@ mobs.mob_step = function(self, dtime) end end - - - - --baby grows up if self.baby then --print(self.grow_up_timer) @@ -968,8 +935,6 @@ mobs.mob_step = function(self, dtime) mobs.baby_grow_up(self) end end - - --do custom mob instructions if self.do_custom then @@ -1015,7 +980,7 @@ mobs.mob_step = function(self, dtime) self.memory = self.memory - dtime --get if memory player is within viewing range if self.attacking and self.attacking:is_player() then - local distance = vector_distance(self.object:get_pos(), self.attacking:get_pos()) + local distance = vector.distance(self.object:get_pos(), self.attacking:get_pos()) if distance > self.view_range then self.memory = 0 end @@ -1090,7 +1055,7 @@ mobs.mob_step = function(self, dtime) --jump only (like slimes) if self.jump_only then jump_state_switch(self, dtime) - jump_state_execution(self, dtime) + jump_state_execution(self, dtime) --swimming elseif self.swim then swim_state_switch(self, dtime) @@ -1124,28 +1089,22 @@ mobs.mob_step = function(self, dtime) --overrides absolutely everything --mobs get stuck in cobwebs like players if not self.ignores_cobwebs then - local pos = self.object:get_pos() local node = pos and minetest_get_node(pos).name - if node == "mcl_core:cobweb" then - --fight the rest of the api if self.object:get_acceleration().y ~= 0 then - self.object:set_acceleration(vector_new(0,0,0)) + self.object:set_acceleration(vector.new(0,0,0)) end - mobs.stick_in_cobweb(self) - self.was_stuck_in_cobweb = true - else --do not override other functions if self.was_stuck_in_cobweb == true then --return the mob back to normal self.was_stuck_in_cobweb = nil if self.object:get_acceleration().y == 0 and not self.swim and not self.fly then - self.object:set_acceleration(vector_new(0,-self.gravity,0)) + self.object:set_acceleration(vector.new(0,-self.gravity,0)) end end end diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua index c26d33089..8f2ea9e31 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua @@ -1,7 +1,7 @@ -local math_pi = math.pi -local math_floor = math.floor -local math_random = math.random -local HALF_PI = math_pi/2 +local math = math +local vector = vector + +local HALF_PI = math.pi/2 local vector_direction = vector.direction @@ -48,8 +48,7 @@ mobs.set_mob_animation = function(self, anim, fixed_frame) self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, 0, self.animation[anim .. "_loop"] ~= false) - - self.current_animation = anim + self.current_animation = anim end @@ -65,14 +64,14 @@ mobs.death_effect = function(pos, yaw, collisionbox, rotate) max = { x = 0.5, y = 0.5, z = 0.5 } end if rotate then - min = vector.rotate(min, {x=0, y=yaw, z=math_pi/2}) - max = vector.rotate(max, {x=0, y=yaw, z=math_pi/2}) + min = vector.rotate(min, {x=0, y=yaw, z=math.pi/2}) + max = vector.rotate(max, {x=0, y=yaw, z=math.pi/2}) min, max = vector.sort(min, max) min = vector.multiply(min, 0.5) max = vector.multiply(max, 0.5) end - minetest_add_particlespawner({ + minetest.add_particlespawner({ amount = 50, time = 0.001, minpos = vector.add(pos, min), @@ -88,7 +87,7 @@ mobs.death_effect = function(pos, yaw, collisionbox, rotate) texture = "mcl_particles_mob_death.png^[colorize:#000000:255", }) - minetest_sound_play("mcl_mobs_mob_poof", { + minetest.sound_play("mcl_mobs_mob_poof", { pos = pos, gain = 1.0, max_hear_distance = 8, @@ -99,7 +98,6 @@ end --this allows auto facedir rotation while making it so mobs --don't look like wet noodles flopping around mobs.movement_rotation_lock = function(self) - local current_engine_yaw = self.object:get_yaw() local current_lua_yaw = self.yaw diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/attack_type_instructions.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/attack_type_instructions.lua index c973f3d1b..f5d33def4 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/attack_type_instructions.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/attack_type_instructions.lua @@ -1,11 +1,11 @@ local vector_direction = vector.direction -local minetest_dir_to_yaw = minetest.dir_to_yaw +--local minetest_dir_to_yaw = minetest.dir_to_yaw local vector_distance = vector.distance local vector_multiply = vector.multiply local math_random = math.random --[[ - _ _ _ _ + _ _ _ _ | | | | | | | | | | | | __ _ _ __ __| | | | | | | | / _` | '_ \ / _` | | | @@ -16,14 +16,14 @@ local math_random = math.random --[[ - _____ _ _ -| ___| | | | | -| |____ ___ __ | | ___ __| | ___ + _____ _ _ +| ___| | | | | +| |____ ___ __ | | ___ __| | ___ | __\ \/ / '_ \| |/ _ \ / _` |/ _ \ | |___> <| |_) | | (_) | (_| | __/ \____/_/\_\ .__/|_|\___/ \__,_|\___| - | | - |_| + | | + |_| ]]-- mobs.explode_attack_walk = function(self,dtime) @@ -74,7 +74,6 @@ mobs.explode_attack_walk = function(self,dtime) if node_in_front_of == 1 then mobs.jump(self) end - --do biggening explosion thing if self.explosion_animation and self.explosion_animation > self.explosion_timer then @@ -102,10 +101,10 @@ end --[[ -______ _ -| ___ \ | | -| |_/ / _ _ __ ___| |__ -| __/ | | | '_ \ / __| '_ \ +______ _ +| ___ \ | | +| |_/ / _ _ __ ___| |__ +| __/ | | | '_ \ / __| '_ \ | | | |_| | | | | (__| | | | \_| \__,_|_| |_|\___|_| |_| ]]-- @@ -113,7 +112,6 @@ ______ _ mobs.punch_attack_walk = function(self,dtime) - --this needs an exception if self.attacking == nil or not self.attacking:is_player() then self.attacking = nil @@ -187,14 +185,14 @@ end --[[ -______ _ _ _ _ -| ___ \ (_) | | (_) | -| |_/ / __ ___ _ ___ ___| |_ _| | ___ +______ _ _ _ _ +| ___ \ (_) | | (_) | +| |_/ / __ ___ _ ___ ___| |_ _| | ___ | __/ '__/ _ \| |/ _ \/ __| __| | |/ _ \ | | | | | (_) | | __/ (__| |_| | | __/ \_| |_| \___/| |\___|\___|\__|_|_|\___| - _/ | - |__/ + _/ | + |__/ ]]-- @@ -255,40 +253,39 @@ end --[[ - _ ______ _ _ + _ ______ _ _ | | | ___| | | | | | | |_ | |_ _ | | | | | _| | | | | | | | |_| | | | | |_| | |_| (_) \_| |_|\__, | (_) - __/ | - |___/ + __/ | + |___/ ]]-- --[[ -______ _ _ _ _ -| ___ \ (_) | | (_) | -| |_/ / __ ___ _ ___ ___| |_ _| | ___ +______ _ _ _ _ +| ___ \ (_) | | (_) | +| |_/ / __ ___ _ ___ ___| |_ _| | ___ | __/ '__/ _ \| |/ _ \/ __| __| | |/ _ \ | | | | | (_) | | __/ (__| |_| | | __/ \_| |_| \___/| |\___|\___|\__|_|_|\___| - _/ | - |__/ + _/ | + |__/ ]]-- local random_pitch_multiplier = {-1,1} mobs.projectile_attack_fly = function(self, dtime) - --this needs an exception if self.attacking == nil or not self.attacking:is_player() then self.attacking = nil return end - + --this is specifically for random ghast movement if self.fly_random_while_attack then @@ -315,7 +312,7 @@ mobs.projectile_attack_fly = function(self, dtime) local distance_from_attacking = vector_distance(self.object:get_pos(), self.attacking:get_pos()) - if distance_from_attacking >= self.reach then + if distance_from_attacking >= self.reach then mobs.set_pitch_while_attacking(self) mobs.set_fly_velocity(self, self.run_velocity) mobs.set_mob_animation(self,"run") diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.txt similarity index 97% rename from mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.lua rename to mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.txt index 76c062a40..48233d0b4 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/backup_code_api.txt @@ -1,4 +1,7 @@ -local disable_physics = function(object, luaentity, ignore_check, reset_movement) +local math = math +local vector = vector + +local function disable_physics(object, luaentity, ignore_check, reset_movement) if luaentity.physical_state == true or ignore_check == true then luaentity.physical_state = false object:set_properties({ @@ -12,7 +15,7 @@ local disable_physics = function(object, luaentity, ignore_check, reset_movement end ----For Water Flowing: -local enable_physics = function(object, luaentity, ignore_check) +local function enable_physics(object, luaentity, ignore_check) if luaentity.physical_state == false or ignore_check == true then luaentity.physical_state = true object:set_properties({ @@ -272,7 +275,7 @@ local falling = function(self, pos) self.object:set_acceleration({ x = 0, - y = -self.fall_speed / (math_max(1, v.y) ^ 2), + y = -self.fall_speed / (math.max(1, v.y) ^ 2), z = 0 }) end @@ -503,9 +506,9 @@ local follow_flop = function(self) if sdef and sdef.walkable then mob_sound(self, "flop") self.object:set_velocity({ - x = math_random(-FLOP_HOR_SPEED, FLOP_HOR_SPEED), + x = math.random(-FLOP_HOR_SPEED, FLOP_HOR_SPEED), y = FLOP_HEIGHT, - z = math_random(-FLOP_HOR_SPEED, FLOP_HOR_SPEED), + z = math.random(-FLOP_HOR_SPEED, FLOP_HOR_SPEED), }) end @@ -987,7 +990,7 @@ local check_for_death = function(self, cause, cmi_cause) item_drop(self, cooked, looting) if mod_experience and ((not self.child) or self.type ~= "animal") and (minetest_get_us_time() - self.xp_timestamp <= 5000000) then - mcl_experience.throw_experience(self.object:get_pos(), math_random(self.xp_min, self.xp_max)) + mcl_experience.throw_experience(self.object:get_pos(), math.random(self.xp_min, self.xp_max)) end end end @@ -1361,7 +1364,7 @@ local do_attack = function(self, player) self.state = "attack" -- TODO: Implement war_cry sound without being annoying - --if math_random(0, 100) < 90 then + --if math.random(0, 100) < 90 then --mob_sound(self, "war_cry", true) --end end @@ -1396,7 +1399,7 @@ local mob_sound = function(self, soundname, is_opinion, fixed_pitch) pitch = base_pitch end -- randomize the pitch a bit - pitch = pitch + math_random(-10, 10) * 0.005 + pitch = pitch + math.random(-10, 10) * 0.005 end minetest_sound_play(sound, { object = self.object, @@ -1699,7 +1702,7 @@ local do_env_damage = function(self) end if drowning then - self.breath = math_max(0, self.breath - 1) + self.breath = math.max(0, self.breath - 1) effect(pos, 2, "bubble.png", nil, nil, 1, nil) if self.breath <= 0 then @@ -2044,7 +2047,7 @@ local breed = function(self) -- Give XP if mod_experience then - mcl_experience.throw_experience(pos, math_random(1, 7)) + mcl_experience.throw_experience(pos, math.random(1, 7)) end -- custom breed function @@ -2061,7 +2064,7 @@ local breed = function(self) -- Use texture of one of the parents - local p = math_random(1, 2) + local p = math.random(1, 2) if p == 1 then ent_c.base_texture = parent1.base_texture else @@ -2091,7 +2094,7 @@ local replace = function(self, pos) or not self.replace_what or self.child == true or self.object:get_velocity().y ~= 0 - or math_random(1, self.replace_rate) > 1 then + or math.random(1, self.replace_rate) > 1 then return end @@ -2099,7 +2102,7 @@ local replace = function(self, pos) if type(self.replace_what[1]) == "table" then - local num = math_random(#self.replace_what) + local num = math.random(#self.replace_what) what = self.replace_what[num][1] or "" with = self.replace_what[num][2] or "" @@ -2163,7 +2166,7 @@ function do_states(self) if self.state == "stand" then - if math_random(1, 4) == 1 then + if math.random(1, 4) == 1 then local lp = nil local s = self.object:get_pos() @@ -2189,7 +2192,7 @@ function do_states(self) if lp.x > s.x then yaw = yaw + math_pi end else - yaw = yaw + math_random(-0.5, 0.5) + yaw = yaw + math.random(-0.5, 0.5) end yaw = set_yaw(self, yaw, 8) @@ -2204,7 +2207,7 @@ function do_states(self) if self.walk_chance ~= 0 and self.facing_fence ~= true - and math_random(1, 100) <= self.walk_chance + and math.random(1, 100) <= self.walk_chance and is_at_cliff_or_danger(self) == false then set_velocity(self, self.walk_velocity) @@ -2254,7 +2257,7 @@ function do_states(self) {x = s.x + 5, y = s.y + 1, z = s.z + 5}, {"group:solid"}) - lp = #lp > 0 and lp[math_random(#lp)] + lp = #lp > 0 and lp[math.random(#lp)] -- did we find land? if lp then @@ -2280,8 +2283,8 @@ function do_states(self) else -- Randomly turn - if math_random(1, 100) <= 30 then - yaw = yaw + math_random(-0.5, 0.5) + if math.random(1, 100) <= 30 then + yaw = yaw + math.random(-0.5, 0.5) yaw = set_yaw(self, yaw, 8) end end @@ -2289,9 +2292,9 @@ function do_states(self) yaw = set_yaw(self, yaw, 8) -- otherwise randomly turn - elseif math_random(1, 100) <= 30 then + elseif math.random(1, 100) <= 30 then - yaw = yaw + math_random(-0.5, 0.5) + yaw = yaw + math.random(-0.5, 0.5) yaw = set_yaw(self, yaw, 8) end @@ -2302,7 +2305,7 @@ function do_states(self) end if self.facing_fence == true or cliff_or_danger - or math_random(1, 100) <= 30 then + or math.random(1, 100) <= 30 then set_velocity(self, 0) self.state = "stand" @@ -2602,7 +2605,7 @@ function do_states(self) self.timer = 0 if self.double_melee_attack - and math_random(1, 2) == 1 then + and math.random(1, 2) == 1 then set_animation(self, "punch2") else set_animation(self, "punch") @@ -2669,7 +2672,7 @@ function do_states(self) if self.shoot_interval and self.timer > self.shoot_interval and not minetest_raycast(p, self.attack:get_pos(), false, false):next() - and math_random(1, 100) <= 60 then + and math.random(1, 100) <= 60 then self.timer = 0 set_animation(self, "shoot") @@ -2759,7 +2762,7 @@ end -- Code to execute before custom on_rightclick handling -local on_rightclick_prefix = function(self, clicker) +local function on_rightclick_prefix(self, clicker) local item = clicker:get_wielded_item() -- Name mob with nametag @@ -2785,17 +2788,17 @@ local on_rightclick_prefix = function(self, clicker) return false end -local create_mob_on_rightclick = function(on_rightclick) +--[[local function create_mob_on_rightclick(on_rightclick) return function(self, clicker) local stop = on_rightclick_prefix(self, clicker) if (not stop) and (on_rightclick) then on_rightclick(self, clicker) end end -end +end]] -- set and return valid yaw -local set_yaw = function(self, yaw, delay, dtime) +local function set_yaw(self, yaw, delay, dtime) if not yaw or yaw ~= yaw then yaw = 0 @@ -2805,7 +2808,7 @@ local set_yaw = function(self, yaw, delay, dtime) if delay == 0 then if self.shaking and dtime then - yaw = yaw + (math_random() * 2 - 1) * 5 * dtime + yaw = yaw + (math.random() * 2 - 1) * 5 * dtime end self.yaw(yaw) update_roll(self) @@ -2825,8 +2828,7 @@ function mobs:yaw(self, yaw, delay, dtime) end -mob_step = function() - +--mob_step = function() --if self.state == "die" then -- print("need custom die stop moving thing") -- return @@ -2901,7 +2903,7 @@ mob_step = function() --end -- mob plays random sound at times - --if math_random(1, 70) == 1 then + --if math.random(1, 70) == 1 then -- mob_sound(self, "random", true) --end @@ -2934,11 +2936,11 @@ mob_step = function() --if is_at_water_danger(self) and self.state ~= "attack" then - -- if math_random(1, 10) <= 6 then + -- if math.random(1, 10) <= 6 then -- set_velocity(self, 0) -- self.state = "stand" -- set_animation(self, "stand") - -- yaw = yaw + math_random(-0.5, 0.5) + -- yaw = yaw + math.random(-0.5, 0.5) -- yaw = set_yaw(self, yaw, 8) -- end --end @@ -2982,7 +2984,7 @@ mob_step = function() mcl_burning.extinguish(self.object) self.object:remove() elseif self.lifetimer <= 10 then - if math_random(10) < 4 then + if math.random(10) < 4 then self.despawn_immediately = true else self.lifetimer = 20 @@ -2991,4 +2993,4 @@ mob_step = function() end ]]-- -end +--end diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua index 5dc0b8884..57650a9c9 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua @@ -1,14 +1,13 @@ local minetest_get_objects_inside_radius = minetest.get_objects_inside_radius -local vector_distance = vector.distance +local vector = vector --check to see if someone nearby has some tasty food mobs.check_following = function(self) -- returns true or false - --ignore if not self.follow then self.following_person = nil - return(false) + return false end --hey look, this thing works for passive mobs too! @@ -20,20 +19,20 @@ mobs.check_following = function(self) -- returns true or false --safety check if not stack then self.following_person = nil - return(false) + return false end local item_name = stack:get_name() --all checks have passed, that guy has some good looking food if item_name == self.follow then self.following_person = follower - return(true) + return true end end --everything failed self.following_person = nil - return(false) + return false end --a function which attempts to make mobs enter @@ -42,30 +41,30 @@ mobs.enter_breed_state = function(self,clicker) --do not breed if baby if self.baby then - return(false) + return false end --do not do anything if looking for mate or --if cooling off from breeding if self.breed_lookout_timer > 0 or self.breed_timer > 0 then - return(false) + return false end --if this is caught, that means something has gone --seriously wrong if not clicker or not clicker:is_player() then - return(false) + return false end local stack = clicker:get_wielded_item() --safety check if not stack then - return(false) + return false end local item_name = stack:get_name() --all checks have passed, that guy has some good looking food - if item_name == self.follow then + if item_name == self.follow then if not minetest.is_creative_enabled(clicker:get_player_name()) then stack:take_item() clicker:set_wielded_item(stack) @@ -73,11 +72,11 @@ mobs.enter_breed_state = function(self,clicker) self.breed_lookout_timer = self.breed_lookout_timer_goal self.bred = true mobs.play_sound_specific(self,"mobs_mc_animal_eat_generic") - return(true) + return true end --everything failed - return(false) + return false end @@ -96,23 +95,23 @@ mobs.look_for_mate = function(self) for _,mate in pairs(minetest_get_objects_inside_radius(pos1, radius)) do --look for a breeding mate - if mate and mate:get_luaentity() - and mate:get_luaentity()._cmi_is_mob - and mate:get_luaentity().name == self.name + if mate and mate:get_luaentity() + and mate:get_luaentity()._cmi_is_mob + and mate:get_luaentity().name == self.name and mate:get_luaentity().breed_lookout_timer > 0 and mate:get_luaentity() ~= self then local pos2 = mate:get_pos() - local distance = vector_distance(pos1,pos2) + local distance = vector.distance(pos1,pos2) if distance <= radius then - if line_of_sight then + if minetest.line_of_sight then --must add eye height or stuff breaks randomly because of --seethrough nodes being a blocker (like grass) - if minetest_line_of_sight( - vector_new(pos1.x, pos1.y, pos1.z), - vector_new(pos2.x, pos2.y + mate:get_properties().eye_height, pos2.z) + if minetest.line_of_sight( + vector.new(pos1.x, pos1.y, pos1.z), + vector.new(pos2.x, pos2.y + mate:get_properties().eye_height, pos2.z) ) then mates_detected = mates_detected + 1 mates_in_area[mate] = distance @@ -160,14 +159,14 @@ mobs.make_baby_grow_faster = function(self,clicker) if clicker and clicker:is_player() then local stack = clicker:get_wielded_item() --safety check - if not stack then - return(false) + if not stack then + return false end local item_name = stack:get_name() --all checks have passed, that guy has some good looking food if item_name == self.follow then - self.grow_up_timer = self.grow_up_timer - (self.grow_up_timer * 0.10) --take 10 percent off - diminishing returns + self.grow_up_timer = self.grow_up_timer - (self.grow_up_timer * 0.10) --take 10 percent off - diminishing returns if not minetest.is_creative_enabled(clicker:get_player_name()) then stack:take_item() @@ -175,10 +174,8 @@ mobs.make_baby_grow_faster = function(self,clicker) end mobs.play_sound_specific(self,"mobs_mc_animal_eat_generic") - - return(true) + return true end end - - return(false) + return false end \ No newline at end of file diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/collision.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/collision.lua index 44f43f20f..ed9aec6cd 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/collision.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/collision.lua @@ -8,10 +8,8 @@ local vector_direction = vector.direction local integer_test = {-1,1} mobs.collision = function(self) - local pos = self.object:get_pos() - if not self or not self.object or not self.object:get_luaentity() then return end @@ -20,7 +18,7 @@ mobs.collision = function(self) local collisionbox = self.object:get_properties().collisionbox pos.y = pos.y + collisionbox[2] - + local collision_boundary = collisionbox[4] local radius = collision_boundary @@ -41,7 +39,7 @@ mobs.collision = function(self) for _,object in ipairs(minetest_get_objects_inside_radius(pos, radius*1.25)) do if object and object ~= self.object and (object:is_player() or (object:get_luaentity() and object:get_luaentity()._cmi_is_mob == true and object:get_luaentity().health > 0)) and --don't collide with rider, rider don't collide with thing - (not object:get_attach() or (object:get_attach() and object:get_attach() ~= self.object)) and + (not object:get_attach() or (object:get_attach() and object:get_attach() ~= self.object)) and (not self.object:get_attach() or (self.object:get_attach() and self.object:get_attach() ~= object)) then --stop infinite loop collision_count = collision_count + 1 @@ -52,7 +50,7 @@ mobs.collision = function(self) end local pos2 = object:get_pos() - + local object_collisionbox = object:get_properties().collisionbox pos2.y = pos2.y + object_collisionbox[2] @@ -74,7 +72,7 @@ mobs.collision = function(self) local dir = vector.direction(pos,pos2) dir.y = 0 - + --eliminate mob being stuck in corners if dir.x == 0 and dir.z == 0 then --slightly adjust mob position to prevent equal length @@ -84,7 +82,7 @@ mobs.collision = function(self) end local velocity = dir - + --0.5 is the max force multiplier local force = 0.5 - (0.5 * distance / (collision_boundary + object_collision_boundary)) @@ -104,11 +102,9 @@ mobs.collision = function(self) end end end - self.object:add_velocity(vel1) object:add_velocity(vel2) end - end end end @@ -116,7 +112,6 @@ end --this is used for arrow collisions mobs.arrow_hit = function(self, player) - player:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = self._damage} diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/death_logic.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/death_logic.lua index 57cb6e4e5..45e46d3db 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/death_logic.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/death_logic.lua @@ -1,5 +1,5 @@ local minetest_add_item = minetest.add_item -local minetest_sound_play = minetest.sound_play +--local minetest_sound_play = minetest.sound_play local math_pi = math.pi local math_random = math.random @@ -19,7 +19,7 @@ local item_drop = function(self, cooked, looting_level) return end - local obj, item, num + local obj, item local pos = self.object:get_pos() self.drops = self.drops or {} -- nil check @@ -56,8 +56,11 @@ local item_drop = function(self, cooked, looting_level) -- cook items when true if cooked then - local output = minetest_get_craft_result({ - method = "cooking", width = 1, items = {item}}) + local output = minetest.get_craft_result({ + method = "cooking", + width = 1, + items = {item}, + }) if output and output.item and not output.item:is_empty() then item = output.item:get_name() @@ -117,15 +120,10 @@ mobs.death_logic = function(self, dtime) --the final POOF of a mob despawning if self.death_animation_timer >= 1.25 then - item_drop(self,false,1) - mobs.death_effect(self) - mcl_experience.throw_experience(self.object:get_pos(), math_random(self.xp_min, self.xp_max)) - self.object:remove() - return end diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua index 7c709c09e..3b204a4bf 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua @@ -1,5 +1,5 @@ local minetest_line_of_sight = minetest.line_of_sight -local minetest_dir_to_yaw = minetest.dir_to_yaw +--local minetest_dir_to_yaw = minetest.dir_to_yaw local minetest_yaw_to_dir = minetest.yaw_to_dir local minetest_get_node = minetest.get_node local minetest_get_item_group = minetest.get_item_group @@ -18,19 +18,16 @@ local table_copy = table.copy local math_abs = math.abs -- default function when mobs are blown up with TNT -local do_tnt = function(obj, damage) - +--[[local function do_tnt(obj, damage) obj.object:punch(obj.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = damage}, }, nil) - return false, true, {} -end +end]] --a fast function to be able to detect only players without using objects_in_radius mobs.detect_closest_player_within_radius = function(self, line_of_sight, radius, object_height_adder) - local pos1 = self.object:get_pos() local players_in_area = {} local winner_player = nil @@ -49,7 +46,7 @@ mobs.detect_closest_player_within_radius = function(self, line_of_sight, radius, --must add eye height or stuff breaks randomly because of --seethrough nodes being a blocker (like grass) if minetest_line_of_sight( - vector_new(pos1.x, pos1.y + object_height_adder, pos1.z), + vector_new(pos1.x, pos1.y + object_height_adder, pos1.z), vector_new(pos2.x, pos2.y + player:get_properties().eye_height, pos2.z) ) then players_detected = players_detected + 1 @@ -108,7 +105,7 @@ mobs.jump_check = function(self,dtime) if green_flag_1 and green_flag_2 then --can jump over node return(1) - elseif green_flag_1 and not green_flag_2 then + elseif green_flag_1 and not green_flag_2 then --wall in front of mob return(2) end @@ -180,15 +177,10 @@ end -- check if within physical map limits (-30911 to 30927) -- within_limits, wmin, wmax = nil, -30913, 30928 mobs.within_limits = function(pos, radius) + local wmin, wmax if mcl_vars then if mcl_vars.mapgen_edge_min and mcl_vars.mapgen_edge_max then wmin, wmax = mcl_vars.mapgen_edge_min, mcl_vars.mapgen_edge_max - within_limits = function(pos, radius) - return pos - and (pos.x - radius) > wmin and (pos.x + radius) < wmax - and (pos.y - radius) > wmin and (pos.y + radius) < wmax - and (pos.z - radius) > wmin and (pos.z + radius) < wmax - end end end return pos diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua index 0fc94ffe6..13bc6584d 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua @@ -1,112 +1,98 @@ -local vector_new = vector.new - +local math = math +local vector = vector --converts yaw to degrees local degrees = function(yaw) return(yaw*180.0/math.pi) end - mobs.do_head_logic = function(self,dtime) - local player = minetest.get_player_by_name("singleplayer") + local player = minetest.get_player_by_name("singleplayer") - local look_at = player:get_pos() - look_at.y = look_at.y + player:get_properties().eye_height + local look_at = player:get_pos() + look_at.y = look_at.y + player:get_properties().eye_height + + local pos = self.object:get_pos() + + local body_yaw = self.object:get_yaw() + + local body_dir = minetest.yaw_to_dir(body_yaw) + + pos.y = pos.y + self.head_height_offset + + local head_offset = vector.multiply(body_dir, self.head_direction_offset) + + pos = vector.add(pos, head_offset) + + minetest.add_particle({ + pos = pos, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 0.2, + size = 1, + texture = "default_dirt.png", + }) + + local bone_pos = vector.new(0,0,0) + + --(horizontal) + bone_pos.y = self.head_bone_pos_y + + --(vertical) + bone_pos.z = self.head_bone_pos_z + + --print(yaw) + + --local _, bone_rot = self.object:get_bone_position("head") + + --bone_rot.x = bone_rot.x + (dtime * 10) + --bone_rot.z = bone_rot.z + (dtime * 10) + + local head_yaw = minetest.dir_to_yaw(vector.direction(pos,look_at)) - body_yaw + + if self.reverse_head_yaw then + head_yaw = head_yaw * -1 + end + + --over rotation protection + --stops radians from going out of spec + if head_yaw > math.pi then + head_yaw = head_yaw - (math.pi * 2) + elseif head_yaw < -math.pi then + head_yaw = head_yaw + (math.pi * 2) + end + local check_failed = false + --upper check + 90 degrees or upper math.radians (3.14/2) + if head_yaw > math.pi - (math.pi/2) then + head_yaw = 0 + check_failed = true + --lower check - 90 degrees or lower negative math.radians (-3.14/2) + elseif head_yaw < -math.pi + (math.pi/2) then + head_yaw = 0 + check_failed = true + end + local head_pitch = 0 - local pos = self.object:get_pos() + --DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG + --head_yaw = 0 + --DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG - local body_yaw = self.object:get_yaw() + if not check_failed then + head_pitch = minetest.dir_to_yaw(vector.new(vector.distance(vector.new(pos.x,0,pos.z),vector.new(look_at.x,0,look_at.z)),0,pos.y-look_at.y))+(math.pi/2) + end - local body_dir = minetest.yaw_to_dir(body_yaw) + if self.head_pitch_modifier then + head_pitch = head_pitch + self.head_pitch_modifier + end - - pos.y = pos.y + self.head_height_offset - - local head_offset = vector.multiply(body_dir, self.head_direction_offset) - - pos = vector.add(pos, head_offset) - - - - - minetest.add_particle({ - pos = pos, - velocity = {x=0, y=0, z=0}, - acceleration = {x=0, y=0, z=0}, - expirationtime = 0.2, - size = 1, - texture = "default_dirt.png", - }) - - - local bone_pos = vector_new(0,0,0) - - - --(horizontal) - bone_pos.y = self.head_bone_pos_y - - --(vertical) - bone_pos.z = self.head_bone_pos_z - - --print(yaw) - - --local _, bone_rot = self.object:get_bone_position("head") - - --bone_rot.x = bone_rot.x + (dtime * 10) - --bone_rot.z = bone_rot.z + (dtime * 10) - - - local head_yaw - head_yaw = minetest.dir_to_yaw(vector.direction(pos,look_at)) - body_yaw - - if self.reverse_head_yaw then - head_yaw = head_yaw * -1 - end - - --over rotation protection - --stops radians from going out of spec - if head_yaw > math.pi then - head_yaw = head_yaw - (math.pi * 2) - elseif head_yaw < -math.pi then - head_yaw = head_yaw + (math.pi * 2) - end - - - local check_failed = false - --upper check + 90 degrees or upper math.radians (3.14/2) - if head_yaw > math.pi - (math.pi/2) then - head_yaw = 0 - check_failed = true - --lower check - 90 degrees or lower negative math.radians (-3.14/2) - elseif head_yaw < -math.pi + (math.pi/2) then - head_yaw = 0 - check_failed = true - end - - local head_pitch = 0 - - --DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG - --head_yaw = 0 - --DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG - - if not check_failed then - head_pitch = minetest.dir_to_yaw(vector.new(vector.distance(vector.new(pos.x,0,pos.z),vector.new(look_at.x,0,look_at.z)),0,pos.y-look_at.y))+(math.pi/2) - end - - if self.head_pitch_modifier then - head_pitch = head_pitch + self.head_pitch_modifier - end - - if self.swap_y_with_x then - self.object:set_bone_position(self.head_bone, bone_pos, vector_new(degrees(head_pitch),degrees(head_yaw),0)) - else - self.object:set_bone_position(self.head_bone, bone_pos, vector_new(degrees(head_pitch),0,degrees(head_yaw))) - end - - - --set_bone_position([bone, position, rotation]) + if self.swap_y_with_x then + self.object:set_bone_position(self.head_bone, bone_pos, vector.new(degrees(head_pitch),degrees(head_yaw),0)) + else + self.object:set_bone_position(self.head_bone, bone_pos, vector.new(degrees(head_pitch),0,degrees(head_yaw))) + end + --set_bone_position([bone, position, rotation]) end \ No newline at end of file diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/interaction.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/interaction.lua index 6b23d2fe7..fa5b31210 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/interaction.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/interaction.lua @@ -2,22 +2,19 @@ local minetest_after = minetest.after local minetest_sound_play = minetest.sound_play local minetest_dir_to_yaw = minetest.dir_to_yaw -local math_floor = math.floor -local math_min = math.min -local math_random = math.random - -local vector_direction = vector.direction -local vector_multiply = vector.multiply +local math = math +local vector = vector local MAX_MOB_NAME_LENGTH = 30 +local mod_hunger = minetest.get_modpath("mcl_hunger") + mobs.feed_tame = function(self) return nil end -- Code to execute before custom on_rightclick handling -local on_rightclick_prefix = function(self, clicker) - +local function on_rightclick_prefix(self, clicker) local item = clicker:get_wielded_item() -- Name mob with nametag @@ -60,7 +57,6 @@ end -- deal damage and effects when mob punched mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) - --don't do anything if the mob is already dead if self.health <= 0 then return @@ -94,14 +90,13 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) pos2.y = 0 - local dir = vector_direction(pos2,pos1) + local dir = vector.direction(pos2,pos1) local yaw = minetest_dir_to_yaw(dir) self.yaw = yaw end - -- custom punch function if self.do_punch then -- when false skip going any further @@ -113,23 +108,20 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) --don't do damage until pause timer resets if self.pause_timer > 0 then return - end + end - -- error checking when mod profiling is enabled if not tool_capabilities then minetest.log("warning", "[mobs_mc] Mod profiling enabled, damage not enabled") return end - local is_player = hitter:is_player() - -- punch interval local weapon = hitter:get_wielded_item() - local punch_interval = 1.4 + --local punch_interval = 1.4 -- exhaust attacker if mod_hunger and is_player then @@ -139,7 +131,6 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) -- calculate mob damage local damage = 0 local armor = self.object:get_armor_groups() or {} - local tmp --calculate damage groups for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do @@ -163,13 +154,13 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) -- healing if damage <= -1 then - self.health = self.health - math_floor(damage) + self.health = self.health - math.floor(damage) return end - if tool_capabilities then - punch_interval = tool_capabilities.full_punch_interval or 1.4 - end + --if tool_capabilities then + -- punch_interval = tool_capabilities.full_punch_interval or 1.4 + --end -- add weapon wear manually -- Required because we have custom health handling ("health" property) @@ -183,7 +174,7 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) 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 = math_floor(65535/tool_capabilities.punch_attack_uses) + local wear = math.floor(65535/tool_capabilities.punch_attack_uses) weapon:add_wear(wear) hitter:set_wielded_item(weapon) end @@ -224,7 +215,7 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) -- knock back effect local velocity = self.object:get_velocity() - + --2d direction local pos1 = self.object:get_pos() pos1.y = 0 @@ -240,9 +231,8 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) up = 0 end - --0.75 for perfect distance to not be too easy, and not be too hard - local multiplier = 0.75 + local multiplier = 0.75 -- check if tool already has specific knockback value local knockback_enchant = mcl_enchanting.get_enchantment(hitter:get_wielded_item(), "knockback") @@ -254,21 +244,16 @@ mobs.mob_punch = function(self, hitter, tflp, tool_capabilities, dir) --it's coming for you if self.hostile then multiplier = multiplier + 2 - end - - dir = vector_multiply(dir,multiplier) - + end + dir = vector.multiply(dir,multiplier) dir.y = up - --add the velocity self.object:add_velocity(dir) - end end --do internal per mob projectile calculations mobs.shoot_projectile = function(self) - local pos1 = self.object:get_pos() --add mob eye height pos1.y = pos1.y + self.eye_height @@ -278,7 +263,7 @@ mobs.shoot_projectile = function(self) pos2.y = pos2.y + self.attacking:get_properties().eye_height --get direction - local dir = vector_direction(pos1,pos2) + local dir = vector.direction(pos1,pos2) --call internal shoot_arrow function self.shoot_arrow(self,pos1,dir) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/mob_effects.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/mob_effects.lua index 847315ff1..83df80992 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/mob_effects.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/mob_effects.lua @@ -1,9 +1,8 @@ local minetest_add_particlespawner = minetest.add_particlespawner mobs.death_effect = function(self) - local pos = self.object:get_pos() - local yaw = self.object:get_yaw() + --local yaw = self.object:get_yaw() local collisionbox = self.object:get_properties().collisionbox local min, max @@ -33,7 +32,7 @@ end mobs.critical_effect = function(self) local pos = self.object:get_pos() - local yaw = self.object:get_yaw() + --local yaw = self.object:get_yaw() local collisionbox = self.object:get_properties().collisionbox local min, max @@ -62,9 +61,8 @@ end --when feeding a mob mobs.feed_effect = function(self) - local pos = self.object:get_pos() - local yaw = self.object:get_yaw() + --local yaw = self.object:get_yaw() local collisionbox = self.object:get_properties().collisionbox local min, max @@ -94,7 +92,7 @@ end --hearts when tamed mobs.tamed_effect = function(self) local pos = self.object:get_pos() - local yaw = self.object:get_yaw() + --local yaw = self.object:get_yaw() local collisionbox = self.object:get_properties().collisionbox local min, max @@ -124,7 +122,7 @@ end --hearts when breeding mobs.breeding_effect = function(self) local pos = self.object:get_pos() - local yaw = self.object:get_yaw() + --local yaw = self.object:get_yaw() local collisionbox = self.object:get_properties().collisionbox local min, max diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua index 04e3e370c..72612b1eb 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua @@ -1,16 +1,10 @@ -local math_pi = math.pi -local math_sin = math.sin -local math_cos = math.cos -local math_random = math.random -local HALF_PI = math_pi / 2 -local DOUBLE_PI = math_pi * 2 +-- localize math functions +local math = math +local HALF_PI = math.pi / 2 +local DOUBLE_PI = math.pi * 2 -- localize vector functions -local vector_new = vector.new -local vector_length = vector.length -local vector_multiply = vector.multiply -local vector_distance = vector.distance -local vector_normalize = vector.normalize +local vector = vector local minetest_yaw_to_dir = minetest.yaw_to_dir local minetest_dir_to_yaw = minetest.dir_to_yaw @@ -19,18 +13,17 @@ local DEFAULT_JUMP_HEIGHT = 5 local DEFAULT_FLOAT_SPEED = 4 local DEFAULT_CLIMB_SPEED = 3 - mobs.stick_in_cobweb = function(self) local current_velocity = self.object:get_velocity() - local goal_velocity = vector_multiply(vector_normalize(current_velocity), 0.4) + local goal_velocity = vector.multiply(vector.normalize(current_velocity), 0.4) goal_velocity.y = -0.5 local new_velocity_addition = vector.subtract(goal_velocity,current_velocity) --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -40,7 +33,7 @@ mobs.float = function(self) local acceleration = self.object:get_acceleration() if acceleration and acceleration.y ~= 0 then - self.object:set_acceleration(vector_new(0,0,0)) + self.object:set_acceleration(vector.new(0,0,0)) else return end @@ -59,7 +52,7 @@ mobs.float = function(self) new_velocity_addition.z = 0 --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -81,7 +74,7 @@ mobs.climb = function(self) new_velocity_addition.z = 0 --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -109,22 +102,22 @@ mobs.set_velocity = function(self, v) local current_velocity = self.object:get_velocity() local goal_velocity = { - x = (math_sin(yaw) * -v), + x = (math.sin(yaw) * -v), y = 0, - z = (math_cos(yaw) * v), + z = (math.cos(yaw) * v), } local new_velocity_addition = vector.subtract(goal_velocity,current_velocity) - if vector_length(new_velocity_addition) > vector_length(goal_velocity) then - vector.multiply(new_velocity_addition, (vector_length(goal_velocity) / vector_length(new_velocity_addition))) + if vector.length(new_velocity_addition) > vector.length(goal_velocity) then + vector.multiply(new_velocity_addition, (vector.length(goal_velocity) / vector.length(new_velocity_addition))) end new_velocity_addition.y = 0 --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -139,7 +132,7 @@ mobs.get_velocity = function(self) v.y = 0 if v then - return vector_length(v) + return vector.length(v) end return 0 @@ -155,7 +148,7 @@ mobs.jump = function(self, velocity) --fallback velocity to allow modularity velocity = velocity or DEFAULT_JUMP_HEIGHT - self.object:add_velocity(vector_new(0,velocity,0)) + self.object:add_velocity(vector.new(0,velocity,0)) end --make mobs fall slowly @@ -175,15 +168,15 @@ mobs.mob_fall_slow = function(self) new_velocity_addition.x = 0 new_velocity_addition.z = 0 - if vector_length(new_velocity_addition) > vector_length(goal_velocity) then - vector.multiply(new_velocity_addition, (vector_length(goal_velocity) / vector_length(new_velocity_addition))) + if vector.length(new_velocity_addition) > vector.length(goal_velocity) then + vector.multiply(new_velocity_addition, (vector.length(goal_velocity) / vector.length(new_velocity_addition))) end new_velocity_addition.x = 0 new_velocity_addition.z = 0 --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end @@ -215,13 +208,13 @@ mobs.flop = function(self, velocity) velocity = velocity or DEFAULT_JUMP_HEIGHT --create a random direction (2d yaw) - local dir = DOUBLE_PI * math_random() + local dir = DOUBLE_PI * math.random() --create a random force value - local force = math_random(0,3) + math_random() + local force = math.random(0,3) + math.random() --convert the yaw to a direction vector then multiply it times the force - local final_additional_force = vector_multiply(minetest_yaw_to_dir(dir), force) + local final_additional_force = vector.multiply(minetest_yaw_to_dir(dir), force) --place in the "flop" velocity to make the mob flop final_additional_force.y = velocity @@ -249,20 +242,20 @@ mobs.set_swim_velocity = function(self, v) local current_velocity = self.object:get_velocity() local goal_velocity = { - x = (math_sin(yaw) * -v), + x = (math.sin(yaw) * -v), y = pitch, - z = (math_cos(yaw) * v), + z = (math.cos(yaw) * v), } local new_velocity_addition = vector.subtract(goal_velocity,current_velocity) - if vector_length(new_velocity_addition) > vector_length(goal_velocity) then - vector.multiply(new_velocity_addition, (vector_length(goal_velocity) / vector_length(new_velocity_addition))) + if vector.length(new_velocity_addition) > vector.length(goal_velocity) then + vector.multiply(new_velocity_addition, (vector.length(goal_velocity) / vector.length(new_velocity_addition))) end --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -294,20 +287,20 @@ mobs.set_fly_velocity = function(self, v) local current_velocity = self.object:get_velocity() local goal_velocity = { - x = (math_sin(yaw) * -v), + x = (math.sin(yaw) * -v), y = pitch, - z = (math_cos(yaw) * v), + z = (math.cos(yaw) * v), } local new_velocity_addition = vector.subtract(goal_velocity,current_velocity) - if vector_length(new_velocity_addition) > vector_length(goal_velocity) then - vector.multiply(new_velocity_addition, (vector_length(goal_velocity) / vector_length(new_velocity_addition))) + if vector.length(new_velocity_addition) > vector.length(goal_velocity) then + vector.multiply(new_velocity_addition, (vector.length(goal_velocity) / vector.length(new_velocity_addition))) end --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end @@ -319,7 +312,7 @@ mobs.calculate_pitch = function(pos1, pos2) return false end - return(minetest_dir_to_yaw(vector_new(vector_distance(vector_new(pos1.x,0,pos1.z),vector_new(pos2.x,0,pos2.z)),0,pos1.y - pos2.y)) + HALF_PI) + return(minetest_dir_to_yaw(vector.new(vector.distance(vector.new(pos1.x,0,pos1.z),vector.new(pos2.x,0,pos2.z)),0,pos1.y - pos2.y)) + HALF_PI) end --make mobs fly up or down based on their y difference @@ -356,27 +349,27 @@ mobs.jump_move = function(self, velocity) mobs.set_velocity(self,0) --fallback velocity to allow modularity - jump_height = DEFAULT_JUMP_HEIGHT + local jump_height = DEFAULT_JUMP_HEIGHT local yaw = (self.yaw or 0) local current_velocity = self.object:get_velocity() local goal_velocity = { - x = (math_sin(yaw) * -velocity), + x = (math.sin(yaw) * -velocity), y = jump_height, - z = (math_cos(yaw) * velocity), + z = (math.cos(yaw) * velocity), } local new_velocity_addition = vector.subtract(goal_velocity,current_velocity) - if vector_length(new_velocity_addition) > vector_length(goal_velocity) then - vector.multiply(new_velocity_addition, (vector_length(goal_velocity) / vector_length(new_velocity_addition))) + if vector.length(new_velocity_addition) > vector.length(goal_velocity) then + vector.multiply(new_velocity_addition, (vector.length(goal_velocity) / vector.length(new_velocity_addition))) end --smooths out mobs a bit - if vector_length(new_velocity_addition) >= 0.0001 then + if vector.length(new_velocity_addition) >= 0.0001 then self.object:add_velocity(new_velocity_addition) end end diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua index dfef98ee8..65ba764f6 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/set_up.lua @@ -1,10 +1,12 @@ local math_random = math.random -local minetest_settings = minetest.settings +local minetest_settings = minetest.settings + +-- CMI support check +local use_cmi = minetest.global_exists("cmi") -- get entity staticdata mobs.mob_staticdata = function(self) - --despawn mechanism --don't despawned tamed or bred mobs if not self.tamed and not self.bred then @@ -142,8 +144,6 @@ mobs.mob_activate = function(self, staticdata, def, dtime) self.health = math_random (self.hp_min, self.hp_max) end - - if not self.random_sound_timer then self.random_sound_timer = math_random(self.random_sound_timer_min,self.random_sound_timer_max) end @@ -185,7 +185,6 @@ mobs.mob_activate = function(self, staticdata, def, dtime) self.opinion_sound_cooloff = 0 -- used to prevent sound spam of particular sound types self.texture_mods = {} - self.v_start = false self.timer = 0 @@ -199,7 +198,6 @@ mobs.mob_activate = function(self, staticdata, def, dtime) else self.object:set_texture_mod("") end - -- set anything changed above self.object:set_properties(self) diff --git a/mods/ENTITIES/mcl_mobs/api/mount.lua b/mods/ENTITIES/mcl_mobs/api/mount.lua index 8ee45f299..0ed54a46e 100644 --- a/mods/ENTITIES/mcl_mobs/api/mount.lua +++ b/mods/ENTITIES/mcl_mobs/api/mount.lua @@ -1,8 +1,11 @@ -- lib_mount by Blert2112 (edited by TenPlus1) -local enable_crash = false -local crash_threshold = 6.5 -- ignored if enable_crash=false +--local enable_crash = false +--local crash_threshold = 6.5 -- ignored if enable_crash=false + +local math = math +local vector = vector ------------------------------------------------------------------------------ @@ -10,7 +13,7 @@ local crash_threshold = 6.5 -- ignored if enable_crash=false -- Helper functions -- -local node_ok = function(pos, fallback) +--[[local function node_ok(pos, fallback) fallback = fallback or mobs.fallback_node @@ -21,10 +24,10 @@ local node_ok = function(pos, fallback) end return {name = fallback} -end +end]] -local function node_is(pos) +--[[local function node_is(pos) local node = node_ok(pos) @@ -45,7 +48,7 @@ local function node_is(pos) end return "other" -end +end]] local function get_sign(i) @@ -60,13 +63,11 @@ local function get_sign(i) end -local function get_velocity(v, yaw, y) - +--[[local function get_velocity(v, yaw, y) local x = -math.sin(yaw) * v local z = math.cos(yaw) * v - return {x = x, y = y, z = z} -end +end]] local function get_v(v) @@ -172,7 +173,7 @@ function mobs.detach(player, offset) --pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z} - player:add_velocity(vector.new(math.random(-6,6),math.random(5,8),math.random(-6,6))) --throw the rider off + player:add_velocity(vector.new(math.random(-6,6), math.random(5,8), math.random(-6,6))) --throw the rider off --[[ minetest.after(0.1, function(name, pos) @@ -187,13 +188,13 @@ end function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) - local rot_view = 0 + --local rot_view = 0 - if entity.player_rotation.y == 90 then - rot_view = math.pi/2 - end + --if entity.player_rotation.y == 90 then + -- rot_view = math.pi/2 + --end - local acce_y = 0 + --local acce_y = 0 local velo = entity.object:get_velocity() entity.v = get_v(velo) * get_sign(entity.v) @@ -388,7 +389,6 @@ end -- directional flying routine by D00Med (edited by TenPlus1) function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) - if true then print("succ") return diff --git a/mods/ENTITIES/mcl_mobs/api/spawning.lua b/mods/ENTITIES/mcl_mobs/api/spawning.lua index ca4dc1e4f..08b161527 100644 --- a/mods/ENTITIES/mcl_mobs/api/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/api/spawning.lua @@ -9,9 +9,9 @@ local get_objects_inside_radius = minetest.get_objects_inside_radius local math_random = math.random local math_floor = math.floor -local max = math.max +--local max = math.max -local vector_distance = vector.distance +--local vector_distance = vector.distance local vector_new = vector.new local vector_floor = vector.floor @@ -573,10 +573,10 @@ if mobs_spawn then local spawning_position = spawning_position_list[math_random(1,#spawning_position_list)] --Prevent strange behavior --- this is commented out: /too close to player --fixed with inner circle - if not spawning_position then -- or vector_distance(player_pos, spawning_position) < 15 + if not spawning_position then -- or vector_distance(player_pos, spawning_position) < 15 break end - + --hard code mob limit in area to 5 for now if count_mobs(spawning_position) >= 5 then break @@ -606,7 +606,7 @@ if mobs_spawn then local is_lava = get_item_group(gotten_node, "lava") ~= 0 local mob_def = nil - + --create a disconnected clone of the spawn dictionary --prevents memory leak local mob_library_worker_table = table_copy(spawn_dictionary) From 8286fd2a4dc5efb81e58fd38d0770344c9ec76ed Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:43:08 +0200 Subject: [PATCH 03/38] [mcl_minecarts] fix warnings --- mods/ENTITIES/mcl_minecarts/init.lua | 46 +++++++++++++--------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/mods/ENTITIES/mcl_minecarts/init.lua b/mods/ENTITIES/mcl_minecarts/init.lua index 70bf16477..e741fb0bc 100644 --- a/mods/ENTITIES/mcl_minecarts/init.lua +++ b/mods/ENTITIES/mcl_minecarts/init.lua @@ -486,7 +486,6 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o if update.pos then self.object:set_pos(pos) end - update = nil end function cart:get_staticdata() @@ -817,31 +816,30 @@ minetest.register_craft({ }) -- 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:furnace_minecart", + recipe = { + {"mcl_furnaces:furnace"}, + {"mcl_minecarts:minecart"}, + }, +}) - minetest.register_craft({ - output = "mcl_minecarts:hopper_minecart", - recipe = { - {"mcl_hoppers:hopper"}, - {"mcl_minecarts:minecart"}, - }, - }) +minetest.register_craft({ + output = "mcl_minecarts:hopper_minecart", + recipe = { + {"mcl_hoppers:hopper"}, + {"mcl_minecarts:minecart"}, + }, +}) + +minetest.register_craft({ + output = "mcl_minecarts:chest_minecart", + recipe = { + {"mcl_chests:chest"}, + {"mcl_minecarts:minecart"}, + }, +})]] - minetest.register_craft({ - output = "mcl_minecarts:chest_minecart", - recipe = { - {"mcl_chests:chest"}, - {"mcl_minecarts:minecart"}, - }, - }) -end if has_mcl_wip then mcl_wip.register_wip_item("mcl_minecarts:chest_minecart") From fddaacdeaea953d7cf73a73214dd4329325e5cc3 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:43:42 +0200 Subject: [PATCH 04/38] [mcl_item_entity] fix warnings --- mods/ENTITIES/mcl_item_entity/init.lua | 4 ---- mods/ENTITIES/mcl_minecarts/functions.lua | 23 ++++++++++------------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 895bfc892..0c26c38c8 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -426,13 +426,9 @@ minetest.register_entity(":__builtin:item", { if itemtable then itemname = stack:to_table().name 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 end diff --git a/mods/ENTITIES/mcl_minecarts/functions.lua b/mods/ENTITIES/mcl_minecarts/functions.lua index 42cdecd12..2f0dfe0ae 100644 --- a/mods/ENTITIES/mcl_minecarts/functions.lua +++ b/mods/ENTITIES/mcl_minecarts/functions.lua @@ -1,3 +1,5 @@ +local vector = vector + function mcl_minecarts:get_sign(z) if z == 0 then return 0 @@ -38,11 +40,9 @@ end function mcl_minecarts:check_front_up_down(pos, dir_, check_down, railtype) local dir = vector.new(dir_) - local cur = nil - -- Front dir.y = 0 - cur = vector.add(pos, dir) + local cur = vector.add(pos, dir) if mcl_minecarts:is_rail(cur, railtype) then return dir end @@ -65,9 +65,9 @@ end function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) local pos = vector.round(pos_) - local cur = nil + local cur local left_check, right_check = true, true - + -- Check left and right local left = {x=0, y=0, z=0} local right = {x=0, y=0, z=0} @@ -78,7 +78,7 @@ function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) left.z = dir.x right.z = -dir.x end - + if ctrl then if old_switch == 1 then left_check = false @@ -100,13 +100,13 @@ function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) right_check = true end end - + -- Normal cur = mcl_minecarts:check_front_up_down(pos, dir, true, railtype) if cur then return cur end - + -- Left, if not already checked if left_check then cur = mcl_minecarts:check_front_up_down(pos, left, false, railtype) @@ -114,7 +114,7 @@ function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) return cur end end - + -- Right, if not already checked if right_check then cur = mcl_minecarts:check_front_up_down(pos, right, false, railtype) @@ -122,7 +122,6 @@ function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) return cur end end - -- Backwards if not old_switch then cur = mcl_minecarts:check_front_up_down(pos, { @@ -134,7 +133,5 @@ function mcl_minecarts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) return cur end end - return {x=0, y=0, z=0} -end - +end \ No newline at end of file From dd3b5a98ae36bbdffec0d846e44a9ce72643abfe Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:46:39 +0200 Subject: [PATCH 05/38] [mcl_falling_nodes] fix warnings --- mods/ENTITIES/mcl_falling_nodes/init.lua | 22 +++++-------------- .../locale/mcl_falling_nodes.de.tr | 3 --- .../locale/mcl_falling_nodes.es.tr | 3 --- .../locale/mcl_falling_nodes.fr.tr | 3 --- .../locale/mcl_falling_nodes.ru.tr | 3 --- .../mcl_falling_nodes/locale/template.txt | 3 --- 6 files changed, 6 insertions(+), 31 deletions(-) delete mode 100644 mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.de.tr delete mode 100644 mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.es.tr delete mode 100644 mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.fr.tr delete mode 100644 mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.ru.tr delete mode 100644 mods/ENTITIES/mcl_falling_nodes/locale/template.txt diff --git a/mods/ENTITIES/mcl_falling_nodes/init.lua b/mods/ENTITIES/mcl_falling_nodes/init.lua index af2c06703..01681a159 100644 --- a/mods/ENTITIES/mcl_falling_nodes/init.lua +++ b/mods/ENTITIES/mcl_falling_nodes/init.lua @@ -1,7 +1,4 @@ -local S = minetest.get_translator("mcl_falling_nodes") -local has_mcl_armor = minetest.get_modpath("mcl_armor") - -local get_falling_depth = function(self) +local function get_falling_depth(self) if not self._startpos then -- Fallback self._startpos = self.object:get_pos() @@ -9,7 +6,7 @@ local get_falling_depth = function(self) return self._startpos.y - vector.round(self.object:get_pos()).y end -local deal_falling_damage = function(self, dtime) +local function deal_falling_damage(self, dtime) if minetest.get_item_group(self.node.name, "falling_node_damage") == 0 then return end @@ -38,7 +35,7 @@ local deal_falling_damage = function(self, dtime) inv:set_stack("armor", 2, helmet) end end - local deathmsg, dmg_type + local dmg_type if minetest.get_item_group(self.node.name, "anvil") ~= 0 then dmg_type = "anvil" else @@ -60,10 +57,8 @@ minetest.register_entity(":__builtin:falling_node", { collide_with_objects = false, collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, }, - node = {}, meta = {}, - set_node = function(self, node, meta) local def = minetest.registered_nodes[node.name] -- Change falling node if definition tells us to @@ -90,7 +85,6 @@ minetest.register_entity(":__builtin:falling_node", { glow = glow, }) end, - get_staticdata = function(self) local meta = self.meta -- Workaround: Save inventory seperately from metadata. @@ -111,7 +105,6 @@ minetest.register_entity(":__builtin:falling_node", { } return minetest.serialize(ds) end, - on_activate = function(self, staticdata) self.object:set_armor_groups({immortal = 1}) @@ -134,7 +127,6 @@ minetest.register_entity(":__builtin:falling_node", { end self._startpos = vector.round(self._startpos) end, - on_step = function(self, dtime) -- Set gravity local acceleration = self.object:get_acceleration() @@ -186,10 +178,9 @@ minetest.register_entity(":__builtin:falling_node", { return end local nd = minetest.registered_nodes[n2.name] - if n2.name == "mcl_portals:portal_end" then - -- TODO: Teleport falling node. - - elseif (nd and nd.buildable_to == true) or minetest.get_item_group(self.node.name, "crush_after_fall") ~= 0 then + --if n2.name == "mcl_portals:portal_end" then + -- TODO: Teleport falling node. + if (nd and nd.buildable_to == true) or minetest.get_item_group(self.node.name, "crush_after_fall") ~= 0 then -- Replace destination node if it's buildable to minetest.remove_node(np) -- Run script hook @@ -256,7 +247,6 @@ minetest.register_entity(":__builtin:falling_node", { self.object:set_pos(npos) end end - deal_falling_damage(self, dtime) end }) diff --git a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.de.tr b/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.de.tr deleted file mode 100644 index 71dfa4be9..000000000 --- a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.de.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_falling_nodes -@1 was smashed by a falling anvil.=@1 wurde von einem fallenden Amboss zerschmettert. -@1 was smashed by a falling block.=@1 wurde von einem fallenden Block zerschmettert. 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 41cbf61b4..000000000 --- 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 781cd7048..000000000 --- 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_falling_nodes/locale/mcl_falling_nodes.ru.tr b/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.ru.tr deleted file mode 100644 index 6c8b9375a..000000000 --- a/mods/ENTITIES/mcl_falling_nodes/locale/mcl_falling_nodes.ru.tr +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_falling_nodes -@1 was smashed by a falling anvil.=@1 придавило падающей наковальней. -@1 was smashed by a falling block.=@1 раздавило падающим блоком. diff --git a/mods/ENTITIES/mcl_falling_nodes/locale/template.txt b/mods/ENTITIES/mcl_falling_nodes/locale/template.txt deleted file mode 100644 index 4adabaf01..000000000 --- a/mods/ENTITIES/mcl_falling_nodes/locale/template.txt +++ /dev/null @@ -1,3 +0,0 @@ -# textdomain: mcl_falling_nodes -@1 was smashed by a falling anvil.= -@1 was smashed by a falling block.= From ad16fe70726807ff5c5cbcc9a8ba8bd28c8d137d Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:48:46 +0200 Subject: [PATCH 06/38] [mcl_burning] fix warnings --- mods/ENTITIES/mcl_burning/api.lua | 4 +--- mods/ENTITIES/mcl_burning/init.lua | 6 +----- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/mods/ENTITIES/mcl_burning/api.lua b/mods/ENTITIES/mcl_burning/api.lua index 78814a2c7..4cb19cca1 100644 --- a/mods/ENTITIES/mcl_burning/api.lua +++ b/mods/ENTITIES/mcl_burning/api.lua @@ -1,5 +1,3 @@ -local S = minetest.get_translator("mcl_burning") - function mcl_burning.get_storage(obj) return obj:is_player() and mcl_burning.storage[obj] or obj:get_luaentity() end @@ -145,4 +143,4 @@ function mcl_burning.tick(obj, dtime, storage) end end end -end +end \ No newline at end of file diff --git a/mods/ENTITIES/mcl_burning/init.lua b/mods/ENTITIES/mcl_burning/init.lua index e1943e1bc..5cf0d85fe 100644 --- a/mods/ENTITIES/mcl_burning/init.lua +++ b/mods/ENTITIES/mcl_burning/init.lua @@ -1,5 +1,4 @@ -local S = minetest.get_translator("mcl_burning") -local modpath = minetest.get_modpath("mcl_burning") +local modpath = minetest.get_modpath(minetest.get_current_modname()) mcl_burning = { storage = {}, @@ -56,7 +55,6 @@ minetest.register_on_leaveplayer(function(player) local storage = mcl_burning.storage[player] storage.fire_hud_id = nil player:get_meta():set_string("mcl_burning:data", minetest.serialize(storage)) - mcl_burning.storage[player] = nil end) @@ -70,10 +68,8 @@ minetest.register_entity("mcl_burning:fire", { glow = -1, backface_culling = false, }, - animation_frame = 0, animation_timer = 0, - on_step = function(self, dtime) local parent, storage = self:sanity_check() From be9fff4fe25d15c642f62027fc64f02b2db78f5a Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:50:04 +0200 Subject: [PATCH 07/38] [mcl_boats] fix warnings --- mods/ENTITIES/mcl_boats/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/ENTITIES/mcl_boats/init.lua b/mods/ENTITIES/mcl_boats/init.lua index 5facec28a..8c187617c 100644 --- a/mods/ENTITIES/mcl_boats/init.lua +++ b/mods/ENTITIES/mcl_boats/init.lua @@ -328,10 +328,10 @@ function boat.on_step(self, dtime, moveresult) p.y = p.y - boat_y_offset local new_velo - local new_acce = {x = 0, y = 0, z = 0} + local new_acce if not is_water(p) and not on_ice then -- Not on water or inside water: Free fall - local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + --local nodedef = minetest.registered_nodes[minetest.get_node(p).name] new_acce = {x = 0, y = -9.8, z = 0} new_velo = get_velocity(self._v, self.object:get_yaw(), self.object:get_velocity().y) From 0d13e1ffdd2169730427865fc4b3fc0df90eadf4 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:54:12 +0200 Subject: [PATCH 08/38] [drippingwater] fix warnings --- mods/ENTITIES/drippingwater/init.lua | 85 ++++++++++++---------------- 1 file changed, 37 insertions(+), 48 deletions(-) diff --git a/mods/ENTITIES/drippingwater/init.lua b/mods/ENTITIES/drippingwater/init.lua index 730cb7b77..e17bdda40 100644 --- a/mods/ENTITIES/drippingwater/init.lua +++ b/mods/ENTITIES/drippingwater/init.lua @@ -1,6 +1,8 @@ --Dripping Water Mod --by kddekadenz +local math = math + -- License of code, textures & sounds: CC0 --Drop entities @@ -20,26 +22,21 @@ minetest.register_entity("drippingwater:drop_water", { spritediv = {x=1, y=1}, initial_sprite_basepos = {x=0, y=0}, static_save = false, - on_activate = function(self, staticdata) self.object:set_sprite({x=0,y=0}, 1, 1, true) end, - on_step = function(self, dtime) - local k = math.random(1,222) - local ownpos = self.object:get_pos() - - if k==1 then - self.object:set_acceleration({x=0, y=-5, z=0}) - end - - if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then - self.object:set_acceleration({x=0, y=-5, z=0}) - end - + local k = math.random(1,222) + local ownpos = self.object:get_pos() + if k==1 then + self.object:set_acceleration({x=0, y=-5, z=0}) + end + if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then + self.object:set_acceleration({x=0, y=-5, z=0}) + end 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) + self.object:remove() + minetest.sound_play({name="drippingwater_drip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true) end end, }) @@ -61,27 +58,21 @@ minetest.register_entity("drippingwater:drop_lava", { spritediv = {x=1, y=1}, initial_sprite_basepos = {x=0, y=0}, static_save = false, - on_activate = function(self, staticdata) self.object:set_sprite({x=0,y=0}, 1, 0, true) end, - on_step = function(self, dtime) - local k = math.random(1,222) - local ownpos = self.object:get_pos() - - if k==1 then - self.object:set_acceleration({x=0, y=-5, z=0}) - end - - if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then - self.object:set_acceleration({x=0, y=-5, z=0}) - end - - + local k = math.random(1,222) + local ownpos = self.object:get_pos() + if k == 1 then + self.object:set_acceleration({x=0, y=-5, z=0}) + end + if minetest.get_node({x=ownpos.x, y=ownpos.y +0.5, z=ownpos.z}).name == "air" then + self.object:set_acceleration({x=0, y=-5, z=0}) + end 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) + self.object:remove() + minetest.sound_play({name="drippingwater_lavadrip"}, {pos = ownpos, gain = 0.5, max_hear_distance = 8}, true) end end, }) @@ -90,36 +81,34 @@ minetest.register_entity("drippingwater:drop_lava", { --Create drop -minetest.register_abm( - { +minetest.register_abm({ label = "Create water drops", nodenames = {"group:opaque", "group:leaves"}, neighbors = {"group:water"}, - interval = 2, - chance = 22, - action = function(pos) - if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name, "water") ~= 0 and - minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then + interval = 2, + chance = 22, + action = function(pos) + if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name, "water") ~= 0 + and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then local i = math.random(-45,45) / 100 minetest.add_entity({x=pos.x + i, y=pos.y - 0.501, z=pos.z + i}, "drippingwater:drop_water") end - end, + end, }) --Create lava drop -minetest.register_abm( - { +minetest.register_abm({ label = "Create lava drops", nodenames = {"group:opaque"}, neighbors = {"group:lava"}, - interval = 2, - chance = 22, - action = function(pos) - if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name, "lava") ~= 0 and - minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then + interval = 2, + chance = 22, + action = function(pos) + if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name, "lava") ~= 0 + and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "air" then local i = math.random(-45,45) / 100 minetest.add_entity({x=pos.x + i, y=pos.y - 0.501, z=pos.z + i}, "drippingwater:drop_lava") end - end, -}) + end, +}) \ No newline at end of file From 36f3c26139dabd3e0a902c6a1b5406dc95bf7f0d Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:55:14 +0200 Subject: [PATCH 09/38] [walkover] fix warnings --- mods/CORE/walkover/init.lua | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/mods/CORE/walkover/init.lua b/mods/CORE/walkover/init.lua index 220157c8b..6260b43e0 100644 --- a/mods/CORE/walkover/init.lua +++ b/mods/CORE/walkover/init.lua @@ -31,24 +31,21 @@ minetest.register_globalstep(function(dtime) timer = timer + dtime; if timer >= 0.3 then for _,player in pairs(get_connected_players()) do - local pp = player:get_pos() - pp.y = ceil(pp.y) - local loc = vector_add(pp, {x=0,y=-1,z=0}) - if loc ~= nil then - - local nodeiamon = get_node(loc) - - if nodeiamon ~= nil then - if on_walk[nodeiamon.name] then - on_walk[nodeiamon.name](loc, nodeiamon, player) - end - for i = 1, #registered_globals do + local pp = player:get_pos() + pp.y = ceil(pp.y) + local loc = vector_add(pp, {x=0,y=-1,z=0}) + if loc ~= nil then + local nodeiamon = get_node(loc) + if nodeiamon ~= nil then + if on_walk[nodeiamon.name] then + on_walk[nodeiamon.name](loc, nodeiamon, player) + end + for i = 1, #registered_globals do registered_globals[i](loc, nodeiamon, player) - end - end - end - end - + end + end + end + end timer = 0 end end) From 03c9c0b830c139aa89422032c9a587757d756bde Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 00:57:42 +0200 Subject: [PATCH 10/38] [mcl_explosion] fix warnings --- mods/CORE/mcl_explosions/init.lua | 11 +++-------- mods/CORE/mcl_explosions/locale/mcl_explosions.de.tr | 2 -- mods/CORE/mcl_explosions/locale/mcl_explosions.fr.tr | 2 -- mods/CORE/mcl_explosions/locale/mcl_explosions.ru.tr | 2 -- mods/CORE/mcl_explosions/locale/template.txt | 2 -- 5 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 mods/CORE/mcl_explosions/locale/mcl_explosions.de.tr delete mode 100644 mods/CORE/mcl_explosions/locale/mcl_explosions.fr.tr delete mode 100644 mods/CORE/mcl_explosions/locale/mcl_explosions.ru.tr delete mode 100644 mods/CORE/mcl_explosions/locale/template.txt diff --git a/mods/CORE/mcl_explosions/init.lua b/mods/CORE/mcl_explosions/init.lua index dfae884cd..3a60f2f37 100644 --- a/mods/CORE/mcl_explosions/init.lua +++ b/mods/CORE/mcl_explosions/init.lua @@ -13,9 +13,7 @@ under the LGPLv2.1 license. mcl_explosions = {} 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") +--local CONTENT_FIRE = minetest.get_content_id("mcl_fire:fire") local hash_node_position = minetest.hash_node_position local get_objects_inside_radius = minetest.get_objects_inside_radius @@ -174,14 +172,11 @@ local function trace_explode(pos, strength, raydirs, radius, info, direct, sourc 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 { + --[[local area = VoxelArea:new { MinEdge = emin, MaxEdge = emax - } + }]] local data = vm:get_data() local destroy = {} 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 4abbc64bf..000000000 --- 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/mcl_explosions.fr.tr b/mods/CORE/mcl_explosions/locale/mcl_explosions.fr.tr deleted file mode 100644 index cb9a0f38e..000000000 --- a/mods/CORE/mcl_explosions/locale/mcl_explosions.fr.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_explosions -@1 was caught in an explosion.=@1 a été pris dans une explosion. \ No newline at end of file diff --git a/mods/CORE/mcl_explosions/locale/mcl_explosions.ru.tr b/mods/CORE/mcl_explosions/locale/mcl_explosions.ru.tr deleted file mode 100644 index 2c885845f..000000000 --- a/mods/CORE/mcl_explosions/locale/mcl_explosions.ru.tr +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_explosions -@1 was caught in an explosion.=@1 не удалось пережить взрыва. diff --git a/mods/CORE/mcl_explosions/locale/template.txt b/mods/CORE/mcl_explosions/locale/template.txt deleted file mode 100644 index 6a9348ddf..000000000 --- a/mods/CORE/mcl_explosions/locale/template.txt +++ /dev/null @@ -1,2 +0,0 @@ -# textdomain:mcl_explosions -@1 was caught in an explosion.= From 540508638c400288ed15345b7fa16bdbaf716e6d Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:22:25 +0200 Subject: [PATCH 11/38] rewrite flowlib to be more efficient --- mods/CORE/flowlib/init.lua | 144 ++++++++++++++++++------------------- 1 file changed, 71 insertions(+), 73 deletions(-) diff --git a/mods/CORE/flowlib/init.lua b/mods/CORE/flowlib/init.lua index e4e22a20e..ab710e476 100644 --- a/mods/CORE/flowlib/init.lua +++ b/mods/CORE/flowlib/init.lua @@ -1,95 +1,100 @@ +local math = math + +local get_node = minetest.get_node +local get_item_group = minetest.get_item_group + +local registered_nodes = minetest.registered_nodes + flowlib = {} --sum of direction vectors must match an array index + +--(sum,root) +--(0,1), (1,1+0=1), (2,1+1=2), (3,1+2^2=5), (4,2^2+2^2=8) + +local inv_roots = { + [0] = 1, + [1] = 1, + [2] = 0.70710678118655, + [4] = 0.5, + [5] = 0.44721359549996, + [8] = 0.35355339059327, +} + local function to_unit_vector(dir_vector) - --(sum,root) - -- (0,1), (1,1+0=1), (2,1+1=2), (3,1+2^2=5), (4,2^2+2^2=8) - local inv_roots = {[0] = 1, [1] = 1, [2] = 0.70710678118655, [4] = 0.5 - , [5] = 0.44721359549996, [8] = 0.35355339059327} - local sum = dir_vector.x*dir_vector.x + dir_vector.z*dir_vector.z - return {x=dir_vector.x*inv_roots[sum],y=dir_vector.y - ,z=dir_vector.z*inv_roots[sum]} + local sum = dir_vector.x * dir_vector.x + dir_vector.z * dir_vector.z + return {x = dir_vector.x * inv_roots[sum], y = dir_vector.y, z = dir_vector.z * inv_roots[sum]} end -local is_touching = function(realpos,nodepos,radius) +local function is_touching(realpos,nodepos,radius) local boarder = 0.5 - radius - return (math.abs(realpos - nodepos) > (boarder)) + return math.abs(realpos - nodepos) > (boarder) end flowlib.is_touching = is_touching -local is_water = function(pos) - return (minetest.get_item_group(minetest.get_node( - {x=pos.x,y=pos.y,z=pos.z}).name - , "water") ~= 0) +local function is_water(pos) + return get_item_group(get_node(pos).name, "water") ~= 0 end flowlib.is_water = is_water -local node_is_water = function(node) - return (minetest.get_item_group(node.name, "water") ~= 0) +local function node_is_water(node) + return get_item_group(node.name, "water") ~= 0 end flowlib.node_is_water = node_is_water -local is_lava = function(pos) - return (minetest.get_item_group(minetest.get_node( - {x=pos.x,y=pos.y,z=pos.z}).name - , "lava") ~= 0) +local function is_lava(pos) + return get_item_group(get_node(pos).name, "lava") ~= 0 end flowlib.is_lava = is_lava -local node_is_lava = function(node) - return (minetest.get_item_group(node.name, "lava") ~= 0) +local function node_is_lava(node) + return get_item_group(node.name, "lava") ~= 0 end flowlib.node_is_lava = node_is_lava -local is_liquid = function(pos) - return (minetest.get_item_group(minetest.get_node( - {x=pos.x,y=pos.y,z=pos.z}).name - , "liquid") ~= 0) +local function is_liquid(pos) + return get_item_group(get_node(pos).name, "liquid") ~= 0 end flowlib.is_liquid = is_liquid -local node_is_liquid = function(node) - return (minetest.get_item_group(node.name, "liquid") ~= 0) +local function node_is_liquid(node) + return minetest.get_item_group(node.name, "liquid") ~= 0 end flowlib.node_is_liquid = node_is_liquid --This code is more efficient -local function quick_flow_logic(node,pos_testing,direction) +local function quick_flow_logic(node, pos_testing, direction) local name = node.name - if not minetest.registered_nodes[name] then + if not registered_nodes[name] then return 0 end - if minetest.registered_nodes[name].liquidtype == "source" then - local node_testing = minetest.get_node(pos_testing) - local param2_testing = node_testing.param2 - if not minetest.registered_nodes[node_testing.name] then + if registered_nodes[name].liquidtype == "source" then + local node_testing = get_node(pos_testing) + if not registered_nodes[node_testing.name] then return 0 end - if minetest.registered_nodes[node_testing.name].liquidtype - ~= "flowing" then + if registered_nodes[node_testing.name].liquidtype ~= "flowing" then return 0 else return direction end - elseif minetest.registered_nodes[name].liquidtype == "flowing" then - local node_testing = minetest.get_node(pos_testing) + elseif registered_nodes[name].liquidtype == "flowing" then + local node_testing = get_node(pos_testing) local param2_testing = node_testing.param2 - if not minetest.registered_nodes[node_testing.name] then + if not registered_nodes[node_testing.name] then return 0 end - if minetest.registered_nodes[node_testing.name].liquidtype - == "source" then + if registered_nodes[node_testing.name].liquidtype == "source" then return -direction - elseif minetest.registered_nodes[node_testing.name].liquidtype - == "flowing" then + elseif registered_nodes[node_testing.name].liquidtype == "flowing" then if param2_testing < node.param2 then if (node.param2 - param2_testing) > 6 then return -direction @@ -108,48 +113,41 @@ local function quick_flow_logic(node,pos_testing,direction) return 0 end -local quick_flow = function(pos,node) - local x = 0 - local z = 0 - +local function quick_flow(pos, node) if not node_is_liquid(node) then - return {x=0,y=0,z=0} + return {x = 0, y = 0, z = 0} end - - x = x + quick_flow_logic(node,{x=pos.x-1,y=pos.y,z=pos.z},-1) - x = x + quick_flow_logic(node,{x=pos.x+1,y=pos.y,z=pos.z}, 1) - z = z + quick_flow_logic(node,{x=pos.x,y=pos.y,z=pos.z-1},-1) - z = z + quick_flow_logic(node,{x=pos.x,y=pos.y,z=pos.z+1}, 1) - - return to_unit_vector({x=x,y=0,z=z}) + local x = quick_flow_logic(node,{x = pos.x-1, y = pos.y, z = pos.z},-1) + quick_flow_logic(node,{x = pos.x+1, y = pos.y, z = pos.z}, 1) + local z = quick_flow_logic(node,{x = pos.x, y = pos.y, z = pos.z-1},-1) + quick_flow_logic(node,{x = pos.x, y = pos.y, z = pos.z+1}, 1) + return to_unit_vector({x = x, y = 0, z = z}) end flowlib.quick_flow = quick_flow +--if not in water but touching, move centre to touching block +--x has higher precedence than z +--if pos changes with x, it affects z - --if not in water but touching, move centre to touching block - --x has higher precedence than z - --if pos changes with x, it affects z -local move_centre = function(pos,realpos,node,radius) - if is_touching(realpos.x,pos.x,radius) then - if is_liquid({x=pos.x-1,y=pos.y,z=pos.z}) then - node = minetest.get_node({x=pos.x-1,y=pos.y,z=pos.z}) - pos = {x=pos.x-1,y=pos.y,z=pos.z} - elseif is_liquid({x=pos.x+1,y=pos.y,z=pos.z}) then - node = minetest.get_node({x=pos.x+1,y=pos.y,z=pos.z}) - pos = {x=pos.x+1,y=pos.y,z=pos.z} +local function move_centre(pos, realpos, node, radius) + if is_touching(realpos.x, pos.x, radius) then + if is_liquid({x = pos.x-1, y = pos.y, z = pos.z}) then + node = get_node({x=pos.x-1, y = pos.y, z = pos.z}) + pos = {x = pos.x-1, y = pos.y, z = pos.z} + elseif is_liquid({x = pos.x+1, y = pos.y, z = pos.z}) then + node = get_node({x = pos.x+1, y = pos.y, z = pos.z}) + pos = {x = pos.x+1, y = pos.y, z = pos.z} end end - if is_touching(realpos.z,pos.z,radius) then - if is_liquid({x=pos.x,y=pos.y,z=pos.z-1}) then - node = minetest.get_node({x=pos.x,y=pos.y,z=pos.z-1}) - pos = {x=pos.x,y=pos.y,z=pos.z-1} - elseif is_liquid({x=pos.x,y=pos.y,z=pos.z+1}) then - node = minetest.get_node({x=pos.x,y=pos.y,z=pos.z+1}) - pos = {x=pos.x,y=pos.y,z=pos.z+1} + if is_touching(realpos.z, pos.z, radius) then + if is_liquid({x = pos.x, y = pos.y, z = pos.z - 1}) then + node = get_node({x = pos.x, y = pos.y, z = pos.z - 1}) + pos = {x = pos.x, y = pos.y, z = pos.z - 1} + elseif is_liquid({x = pos.x, y = pos.y, z = pos.z + 1}) then + node = get_node({x = pos.x, y = pos.y, z = pos.z + 1}) + pos = {x = pos.x, y = pos.y, z = pos.z + 1} end end - return pos,node + return pos, node end flowlib.move_centre = move_centre From f5a91f7c24520dfd385f8048d215bb271dd36b6e Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:23:41 +0200 Subject: [PATCH 12/38] [biomeinfo] fix warnings --- mods/CORE/biomeinfo/init.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mods/CORE/biomeinfo/init.lua b/mods/CORE/biomeinfo/init.lua index 5013647ed..950925f9d 100644 --- a/mods/CORE/biomeinfo/init.lua +++ b/mods/CORE/biomeinfo/init.lua @@ -81,11 +81,11 @@ if v6_use_snow_biomes then end local v6_freq_desert = tonumber(minetest.get_mapgen_setting("mgv6_freq_desert") or 0.45) -local NOISE_MAGIC_X = 1619 -local NOISE_MAGIC_Y = 31337 -local NOISE_MAGIC_Z = 52591 -local NOISE_MAGIC_SEED = 1013 -local noise2d = function(x, y, seed) +--local NOISE_MAGIC_X = 1619 +--local NOISE_MAGIC_Y = 31337 +--local NOISE_MAGIC_Z = 52591 +--local NOISE_MAGIC_SEED = 1013 +local function noise2d(x, y, seed) -- TODO: implement noise2d function for biome blend return 0 --[[ From f61102279f6aff046ed203a1370ef576c4a910a7 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:26:26 +0200 Subject: [PATCH 13/38] [_mcl_autogroup] fix warnings --- mods/CORE/_mcl_autogroup/init.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mods/CORE/_mcl_autogroup/init.lua b/mods/CORE/_mcl_autogroup/init.lua index c8475d0bd..e6b3aa2d0 100644 --- a/mods/CORE/_mcl_autogroup/init.lua +++ b/mods/CORE/_mcl_autogroup/init.lua @@ -121,7 +121,7 @@ local hardness_values = get_hardness_values_for_groups() -- hardness_value. Used for quick lookup. local hardness_lookup = get_hardness_lookup_for_groups(hardness_values) -local function compute_creativetimes(group) +--[[local function compute_creativetimes(group) local creativetimes = {} for index, hardness in pairs(hardness_values[group]) do @@ -129,7 +129,7 @@ local function compute_creativetimes(group) end return creativetimes -end +end]] -- Get the list of digging times for using a specific tool on a specific -- diggroup. @@ -239,13 +239,13 @@ function mcl_autogroup.can_harvest(nodename, toolname) end -- Get one groupcap field for using a specific tool on a specific group. -local function get_groupcap(group, can_harvest, multiplier, efficiency, uses) +--[[local function get_groupcap(group, can_harvest, multiplier, efficiency, uses) return { times = get_digtimes(group, can_harvest, multiplier, efficiency), uses = uses, maxlevel = 0, } -end +end]] -- Returns the tool_capabilities from a tool definition or a default set of -- tool_capabilities @@ -271,7 +271,7 @@ end -- toolname - Name of the tool being enchanted (like "mcl_tools:diamond_pickaxe") -- efficiency - The efficiency level the tool is enchanted with (default 0) -- --- NOTE: +-- NOTE: -- This function can only be called after mod initialization. Otherwise a mod -- would have to add _mcl_autogroup as a dependency which would break the mod -- loading order. @@ -288,7 +288,7 @@ end -- toolname - Name of the tool used -- diggroup - The name of the diggroup the tool is used on -- --- NOTE: +-- NOTE: -- This function can only be called after mod initialization. Otherwise a mod -- would have to add _mcl_autogroup as a dependency which would break the mod -- loading order. @@ -315,12 +315,12 @@ local overwrite = function() newgroups.opaque = 1 end - local creative_breakable = false + --local creative_breakable = false -- Assign groups used for digging this node depending on -- the registered digging groups for g, gdef in pairs(mcl_autogroup.registered_diggroups) do - creative_breakable = true + --creative_breakable = true local index = hardness_lookup[g][ndef._mcl_hardness or 0] if ndef.groups[g] then if gdef.levels then From 0cc11d0bbb1f8c6acf98476c2908026af462ddaf Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:28:10 +0200 Subject: [PATCH 14/38] [mcl_loot] fix warnings --- mods/CORE/mcl_loot/init.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/mods/CORE/mcl_loot/init.lua b/mods/CORE/mcl_loot/init.lua index 6db743740..1b2c50807 100644 --- a/mods/CORE/mcl_loot/init.lua +++ b/mods/CORE/mcl_loot/init.lua @@ -40,10 +40,9 @@ function mcl_loot.get_loot(loot_definitions, pr) total_weight = total_weight + (loot_definitions.items[i].weight or 1) end - local stacks_min = loot_definitions.stacks_min - local stacks_max = loot_definitions.stacks_max - if not stacks_min then stacks_min = 1 end - if not stacks_max then stacks_max = 1 end + --local stacks_min = loot_definitions.stacks_min or 1 + --local stacks_max = loot_definitions.stacks_max or 1 + local stacks = pr:next(loot_definitions.stacks_min, loot_definitions.stacks_max) for s=1, stacks do local r = pr:next(1, total_weight) From 00f4cfa5b5216bfcfe41f11598ccf2f968c4262f Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:33:26 +0200 Subject: [PATCH 15/38] simplify mcl_util code --- mods/CORE/mcl_util/init.lua | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mods/CORE/mcl_util/init.lua b/mods/CORE/mcl_util/init.lua index 1bf3add38..0168229f2 100644 --- a/mods/CORE/mcl_util/init.lua +++ b/mods/CORE/mcl_util/init.lua @@ -457,9 +457,7 @@ function mcl_util.calculate_durability(itemstack) end end if not uses then - local toolcaps = itemstack:get_tool_capabilities() - local groupcaps = toolcaps.groupcaps - for _, v in pairs(groupcaps) do + for _, v in pairs(itemstack:get_tool_capabilities().groupcaps) do uses = v.uses break end From 79cf98c8e30be6026eea09bfa8401243149fae8f Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 01:48:14 +0200 Subject: [PATCH 16/38] [mcl_mobs] fix some warnings --- mods/ENTITIES/mcl_mobs/api/api.lua | 154 ++++++++++++----------------- mods/ENTITIES/mcl_mobs/mod.conf | 2 +- 2 files changed, 65 insertions(+), 91 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api/api.lua b/mods/ENTITIES/mcl_mobs/api/api.lua index 878474cf1..41b522fef 100644 --- a/mods/ENTITIES/mcl_mobs/api/api.lua +++ b/mods/ENTITIES/mcl_mobs/api/api.lua @@ -11,133 +11,111 @@ local minetest_get_objects_inside_radius = minetest.get_objects_inside_radius local minetest_get_modpath = minetest.get_modpath local minetest_registered_nodes = minetest.registered_nodes local minetest_get_node = minetest.get_node -local minetest_get_item_group = minetest.get_item_group +--local minetest_get_item_group = minetest.get_item_group local minetest_registered_entities = minetest.registered_entities -local minetest_line_of_sight = minetest.line_of_sight -local minetest_after = minetest.after -local minetest_sound_play = minetest.sound_play -local minetest_add_particlespawner = minetest.add_particlespawner -local minetest_registered_items = minetest.registered_items -local minetest_set_node = minetest.set_node +--local minetest_line_of_sight = minetest.line_of_sight +--local minetest_after = minetest.after +--local minetest_sound_play = minetest.sound_play +--local minetest_add_particlespawner = minetest.add_particlespawner +--local minetest_registered_items = minetest.registered_items +--local minetest_set_node = minetest.set_node local minetest_add_item = minetest.add_item -local minetest_get_craft_result = minetest.get_craft_result -local minetest_find_path = minetest.find_path -local minetest_is_protected = minetest.is_protected +--local minetest_get_craft_result = minetest.get_craft_result +--local minetest_find_path = minetest.find_path local minetest_is_creative_enabled = minetest.is_creative_enabled -local minetest_find_node_near = minetest.find_node_near -local minetest_find_nodes_in_area_under_air = minetest.find_nodes_in_area_under_air -local minetest_raycast = minetest.raycast -local minetest_get_us_time = minetest.get_us_time +--local minetest_find_node_near = minetest.find_node_near +--local minetest_find_nodes_in_area_under_air = minetest.find_nodes_in_area_under_air +--local minetest_raycast = minetest.raycast +--local minetest_get_us_time = minetest.get_us_time local minetest_add_entity = minetest.add_entity -local minetest_get_natural_light = minetest.get_natural_light -local minetest_get_node_or_nil = minetest.get_node_or_nil +--local minetest_get_natural_light = minetest.get_natural_light +--local minetest_get_node_or_nil = minetest.get_node_or_nil -- localize math functions -local math_pi = math.pi -local math_sin = math.sin -local math_cos = math.cos -local math_abs = math.abs -local math_min = math.min -local math_max = math.max -local math_atan = math.atan -local math_random = math.random -local math_floor = math.floor +local math = math -- localize vector functions -local vector_new = vector.new -local vector_add = vector.add -local vector_length = vector.length -local vector_direction = vector.direction -local vector_normalize = vector.normalize -local vector_multiply = vector.multiply -local vector_divide = vector.divide +local vector = vector + +local string = string -- mob constants -local BREED_TIME = 30 -local BREED_TIME_AGAIN = 300 -local CHILD_GROW_TIME = 60*20 -local DEATH_DELAY = 0.5 +--local BREED_TIME = 30 +--local BREED_TIME_AGAIN = 300 +--local CHILD_GROW_TIME = 60*20 +--local DEATH_DELAY = 0.5 local DEFAULT_FALL_SPEED = -10 -local FLOP_HEIGHT = 5.0 -local FLOP_HOR_SPEED = 1.5 +--local FLOP_HEIGHT = 5.0 +--local FLOP_HOR_SPEED = 1.5 local GRAVITY = minetest_settings:get("movement_gravity")-- + 9.81 +local MAX_MOB_NAME_LENGTH = 30 -local MOB_CAP = {} + +--[[local MOB_CAP = {} MOB_CAP.hostile = 70 MOB_CAP.passive = 10 MOB_CAP.ambient = 15 MOB_CAP.water = 15 +]] -- Load main settings -local damage_enabled = minetest_settings:get_bool("enable_damage") -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 spawn_protected = minetest_settings:get_bool("mobs_spawn_protected") ~= false -local remove_far = true +--local damage_enabled = minetest_settings:get_bool("enable_damage") +--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 spawn_protected = minetest_settings:get_bool("mobs_spawn_protected") ~= false +--local remove_far = true 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 mobs_spawn_chance = tonumber(minetest_settings:get("mobs_spawn_chance") or 2.5) +--local show_health = false +--local max_per_block = tonumber(minetest_settings:get("max_objects_per_block") or 64) +---local mobs_spawn_chance = tonumber(minetest_settings:get("mobs_spawn_chance") or 2.5) -- pathfinding settings -local enable_pathfinding = true -local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching -local stuck_path_timeout = 10 -- how long will mob follow path before giving up +--local enable_pathfinding = true +--local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +--local stuck_path_timeout = 10 -- how long will mob follow path before giving up -- default nodes -local node_ice = "mcl_core:ice" -local node_snowblock = "mcl_core:snowblock" -local node_snow = "mcl_core:snow" +--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") -local mod_explosions = minetest_get_modpath("mcl_explosions") +--local mod_weather = minetest_get_modpath("mcl_weather") +--local mod_explosions = minetest_get_modpath("mcl_explosions") local mod_mobspawners = minetest_get_modpath("mcl_mobspawners") -local mod_hunger = minetest_get_modpath("mcl_hunger") -local mod_worlds = minetest_get_modpath("mcl_worlds") -local mod_armor = minetest_get_modpath("mcl_armor") -local mod_experience = minetest_get_modpath("mcl_experience") +--local mod_hunger = minetest_get_modpath("mcl_hunger") +--local mod_worlds = minetest_get_modpath("mcl_worlds") +--local mod_armor = minetest_get_modpath("mcl_armor") +--local mod_experience = minetest_get_modpath("mcl_experience") -- random locals I found -local los_switcher = false -local height_switcher = false +--local los_switcher = false +--local height_switcher = false -- Get translator local S = minetest.get_translator("mcl_mobs") -- CMI support check -local use_cmi = minetest.global_exists("cmi") - - --- Invisibility mod check -mobs.invis = {} -if minetest.global_exists("invisibility") then - mobs.invis = invisibility -end - +--local use_cmi = minetest.global_exists("cmi") -- creative check function mobs.is_creative(name) return minetest_is_creative_enabled(name) end - -local atan = function(x) +--[[local function atan(x) if not x or x ~= x then return 0 else - return math_atan(x) + return math.atan(x) end -end - - - +end]] -- Shows helpful debug info above each mob -local mobs_debug = minetest_settings:get_bool("mobs_debug", false) +--local mobs_debug = minetest_settings:get_bool("mobs_debug", false) -- Peaceful mode message so players will know there are no monsters if minetest_settings:get_bool("only_peaceful_mobs", false) then @@ -191,7 +169,7 @@ function mobs:register_mob(name, def) if (not value) or (value == default) or (value == special) then return default else - return math_max(min, value * difficulty) + return math.max(min, value * difficulty) end end @@ -366,15 +344,11 @@ function mobs:register_mob(name, def) random_sound_timer_min = 3, random_sound_timer_max = 10, - --head code variables --defaults are for the cow's default --because I don't know what else to set them --to :P - has_head = def.has_head or false, - head_bone = def.head_bone, - --you must use these to adjust the mob's head positions --has_head is used as a logic gate (quick easy check) @@ -444,7 +418,7 @@ function mobs:register_mob(name, def) --on_detach_child = mob_detach_child, on_activate = function(self, staticdata, dtime) - self.object:set_acceleration(vector_new(0,-GRAVITY, 0)) + self.object:set_acceleration(vector.new(0,-GRAVITY, 0)) return mobs.mob_activate(self, staticdata, def, dtime) end, @@ -556,10 +530,10 @@ function mobs:register_arrow(name, def) and def.tail_texture then --do this to prevent clipping through main entity sprite - local pos_adjustment = vector_multiply(vector_normalize(vel), -1) + local pos_adjustment = vector.multiply(vector.normalize(vel), -1) local divider = def.tail_distance_divider or 1 - pos_adjustment = vector_divide(pos_adjustment, divider) - local new_pos = vector_add(pos, pos_adjustment) + pos_adjustment = vector.divide(pos_adjustment, divider) + local new_pos = vector.add(pos, pos_adjustment) minetest.add_particle({ pos = new_pos, velocity = {x = 0, y = 0, z = 0}, @@ -693,12 +667,12 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative) if pos --and within_limits(pos, 0) - and not minetest_is_protected(pos, placer:get_player_name()) then + and not minetest.is_protected(pos, placer:get_player_name()) then local name = placer:get_player_name() local privs = minetest.get_player_privs(name) if mod_mobspawners and under.name == "mcl_mobspawners:spawner" then - if minetest_is_protected(pointed_thing.under, name) then + if minetest.is_protected(pointed_thing.under, name) then minetest.record_protection_violation(pointed_thing.under, name) return itemstack end diff --git a/mods/ENTITIES/mcl_mobs/mod.conf b/mods/ENTITIES/mcl_mobs/mod.conf index 9dfb43aef..2a91a7764 100644 --- a/mods/ENTITIES/mcl_mobs/mod.conf +++ b/mods/ENTITIES/mcl_mobs/mod.conf @@ -2,4 +2,4 @@ name = mcl_mobs author = PilzAdam description = Adds a mob API for mods to add animals or monsters, etc. depends = mcl_particles -optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, invisibility, cmi, doc_identifier, mcl_armor, mcl_portals, mcl_experience +optional_depends = mcl_weather, mcl_explosions, mcl_hunger, mcl_worlds, cmi, doc_identifier, mcl_armor, mcl_portals, mcl_experience From d3a237384dc5c614733799b2f93ad19343777529 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 08:40:21 +0200 Subject: [PATCH 17/38] [mcl_end] fix warnings --- mods/ITEMS/mcl_end/chorus_plant.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/ITEMS/mcl_end/chorus_plant.lua b/mods/ITEMS/mcl_end/chorus_plant.lua index b54259885..0e35ff286 100644 --- a/mods/ITEMS/mcl_end/chorus_plant.lua +++ b/mods/ITEMS/mcl_end/chorus_plant.lua @@ -450,6 +450,8 @@ function mcl_end.grow_chorus_plant_step(pos, node, pr) end --- ABM --- +local seed = minetest.get_mapgen_params().seed +local pr = PseudoRandom(seed) minetest.register_abm({ label = "Chorus plant growth", nodenames = { "mcl_end:chorus_flower" }, From 8592670f9b0592e1e1eaf26730cbf9dc99757904 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 08:44:24 +0200 Subject: [PATCH 18/38] [tsm_railcorridors] fix warnings --- mods/MAPGEN/tsm_railcorridors/init.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mods/MAPGEN/tsm_railcorridors/init.lua b/mods/MAPGEN/tsm_railcorridors/init.lua index 2414cc962..550167dc3 100644 --- a/mods/MAPGEN/tsm_railcorridors/init.lua +++ b/mods/MAPGEN/tsm_railcorridors/init.lua @@ -114,7 +114,8 @@ if not tsm_railcorridors.nodes.corridor_woods_function then end -- Random Perlin noise generators -local pr, pr_carts, pr_treasures, pr_deco, webperlin_major, webperlin_minor +local pr, pr_carts, pr_deco, webperlin_major, webperlin_minor +--local pr_treasures local function InitRandomizer(seed) -- Mostly used for corridor gen. @@ -124,7 +125,7 @@ local function InitRandomizer(seed) -- Separate randomizer for carts because spawning carts is very timing-dependent pr_carts = PseudoRandom(seed-654) -- Chest contents randomizer - pr_treasures = PseudoRandom(seed+777) + --pr_treasures = PseudoRandom(seed+777) -- Used for cobweb generation, both noises have to reach a high value for cobwebs to appear webperlin_major = PerlinNoise(934, 3, 0.6, 500) webperlin_minor = PerlinNoise(834, 3, 0.6, 50) From 42d3830c4820fe6f22ff42b271d05d5b42296dd3 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 08:49:46 +0200 Subject: [PATCH 19/38] [mcl_nether] fix warnings --- mods/ITEMS/mcl_nether/lava.lua | 10 +--------- mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr | 2 -- mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr | 4 +--- mods/ITEMS/mcl_nether/locale/mcl_nether.ru.tr | 2 -- mods/ITEMS/mcl_nether/locale/template.txt | 4 +--- 5 files changed, 3 insertions(+), 19 deletions(-) diff --git a/mods/ITEMS/mcl_nether/lava.lua b/mods/ITEMS/mcl_nether/lava.lua index da85b8e3c..035a50322 100644 --- a/mods/ITEMS/mcl_nether/lava.lua +++ b/mods/ITEMS/mcl_nether/lava.lua @@ -1,12 +1,6 @@ -- Lava in the Nether -local S = minetest.get_translator("mcl_nether") -local N = function(s) return s end - -local msg = { - N("@1 has become one with the lava."), - N("@1 has been consumed by the lava."), -} +local S = minetest.get_translator(minetest.get_current_modname()) -- TODO: Increase flow speed. This could be done by reducing viscosity, -- but this would also allow players to swim faster in lava. @@ -20,7 +14,6 @@ lava_src_def._doc_items_usagehelp = nil lava_src_def.liquid_range = 7 lava_src_def.liquid_alternative_source = "mcl_nether:nether_lava_source" lava_src_def.liquid_alternative_flowing = "mcl_nether:nether_lava_flowing" -lava_src_def._mcl_node_death_message = msg, minetest.register_node("mcl_nether:nether_lava_source", lava_src_def) local lava_flow_def = table.copy(minetest.registered_nodes["mcl_core:lava_flowing"]) @@ -29,7 +22,6 @@ lava_flow_def._doc_items_create_entry = false lava_flow_def.liquid_range = 7 lava_flow_def.liquid_alternative_flowing = "mcl_nether:nether_lava_flowing" lava_flow_def.liquid_alternative_source = "mcl_nether:nether_lava_source" -lava_flow_def._mcl_node_death_message = msg, minetest.register_node("mcl_nether:nether_lava_flowing", lava_flow_def) -- Add entry aliases for the Help diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr index bfa62488c..f81f381e2 100644 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr +++ b/mods/ITEMS/mcl_nether/locale/mcl_nether.de.tr @@ -38,5 +38,3 @@ Place this item on soul sand to plant it and watch it grow.=Platzieren Sie den G Burns your feet=Verbrennt Ihre Füße Grows on soul sand=Wächst auf Seelensand Reduces walking speed=Reduziert das Schritttempo -@1 has become one with the lava.=@1 wurde eins mit der Lava. -@1 has been consumed by the lava.=@1 wurde von der Lava verzehrt. diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr index 11a046374..3e3583355 100644 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr +++ b/mods/ITEMS/mcl_nether/locale/mcl_nether.fr.tr @@ -37,6 +37,4 @@ Nether warts are plants home to the Nether. They can be planted on soul sand and 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 -@1 has become one with the lava.=@1 est devenu un avec la lave. -@1 has been consumed by the lava.=@1 a été consumé par la lave. \ No newline at end of file +Reduces walking speed=Réduit la vitesse de marche \ No newline at end of file diff --git a/mods/ITEMS/mcl_nether/locale/mcl_nether.ru.tr b/mods/ITEMS/mcl_nether/locale/mcl_nether.ru.tr index 2cfdd370b..f546d16ca 100644 --- a/mods/ITEMS/mcl_nether/locale/mcl_nether.ru.tr +++ b/mods/ITEMS/mcl_nether/locale/mcl_nether.ru.tr @@ -38,5 +38,3 @@ Place this item on soul sand to plant it and watch it grow.=Поместите Burns your feet=Обжигает ваши ноги Grows on soul sand=Растёт на песке душ Reduces walking speed=Уменьшает скорость ходьбы -@1 has become one with the lava.=@1 породнился(лась) с лавой. -@1 has been consumed by the lava.=@1 был(а) поглощен(а) лавой. diff --git a/mods/ITEMS/mcl_nether/locale/template.txt b/mods/ITEMS/mcl_nether/locale/template.txt index 7b5052166..0e69ad520 100644 --- a/mods/ITEMS/mcl_nether/locale/template.txt +++ b/mods/ITEMS/mcl_nether/locale/template.txt @@ -37,6 +37,4 @@ Nether warts are plants home to the Nether. They can be planted on soul sand and Place this item on soul sand to plant it and watch it grow.= Burns your feet= Grows on soul sand= -Reduces walking speed= -@1 has become one with the lava.= -@1 has been consumed by the lava.= +Reduces walking speed= \ No newline at end of file From 3f3abbbee11f0f80997886f4c131c1f61aeac7d3 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 09:09:16 +0200 Subject: [PATCH 20/38] speedup mcl_particles code --- mods/CORE/mcl_particles/init.lua | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/mods/CORE/mcl_particles/init.lua b/mods/CORE/mcl_particles/init.lua index 48e9db8df..4854afd54 100644 --- a/mods/CORE/mcl_particles/init.lua +++ b/mods/CORE/mcl_particles/init.lua @@ -1,3 +1,12 @@ +local vector = vector +local table = table + +local hash_node_position = minetest.hash_node_position +local add_particlespawner = minetest.add_particlespawner +local delete_particlespawner = minetest.delete_particlespawner + +local ipairs = ipairs + mcl_particles = {} -- Table of particlespawner IDs on a per-node hash basis @@ -32,11 +41,11 @@ function mcl_particles.add_node_particlespawner(pos, particlespawner_definition, if allowed_level == 0 or levels[level] > allowed_level then return end - local poshash = minetest.hash_node_position(pos) + local poshash = hash_node_position(pos) if not poshash then return end - local id = minetest.add_particlespawner(particlespawner_definition) + local id = add_particlespawner(particlespawner_definition) if id == -1 then return end @@ -47,6 +56,8 @@ function mcl_particles.add_node_particlespawner(pos, particlespawner_definition, return id end +local add_node_particlespawner = mcl_particles.add_node_particlespawner + -- Deletes all particlespawners that are assigned to a node position. -- If no particlespawners exist for this position, nothing happens. -- pos: Node positon. MUST use integer values! @@ -55,11 +66,11 @@ function mcl_particles.delete_node_particlespawners(pos) if allowed_level == 0 then return false end - local poshash = minetest.hash_node_position(pos) + local poshash = hash_node_position(pos) local ids = particle_nodes[poshash] if ids then for i=1, #ids do - minetest.delete_particlespawner(ids[i]) + delete_particlespawner(ids[i]) end particle_nodes[poshash] = nil return true @@ -72,7 +83,6 @@ end local smoke_pdef_cached = {} function mcl_particles.spawn_smoke(pos, name, smoke_pdef_base) - local min = math.min local new_minpos = vector.add(pos, smoke_pdef_base.minrelpos) local new_maxpos = vector.add(pos, smoke_pdef_base.maxrelpos) @@ -81,7 +91,7 @@ function mcl_particles.spawn_smoke(pos, name, smoke_pdef_base) for i, smoke_pdef in ipairs(smoke_pdef_cached[name]) do smoke_pdef.minpos = new_minpos smoke_pdef.maxpos = new_maxpos - mcl_particles.add_node_particlespawner(pos, smoke_pdef, "high") + add_node_particlespawner(pos, smoke_pdef, "high") end -- cache already populated else @@ -111,13 +121,11 @@ function mcl_particles.spawn_smoke(pos, name, smoke_pdef_base) smoke_pdef.animation.length = exptime + 0.1 -- minexptime must be set such that the last frame is actully rendered, -- even if its very short. Larger exptime -> larger range - smoke_pdef.minexptime = min(exptime, (7.0/8.0 * (exptime + 0.1) + 0.1)) + smoke_pdef.minexptime = math.min(exptime, (7.0/8.0 * (exptime + 0.1) + 0.1)) smoke_pdef.texture = "mcl_particles_smoke_anim.png^[colorize:#000000:" ..colorize - - mcl_particles.add_node_particlespawner(pos, smoke_pdef, "high") - + add_node_particlespawner(pos, smoke_pdef, "high") table.insert(smoke_pdef_cached[name], table.copy(smoke_pdef)) end end end -end +end \ No newline at end of file From 981f3d5d74ed49a9748cee3d168c8626bab1fd61 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 10:51:46 +0200 Subject: [PATCH 21/38] fix some codestyle issues --- mods/CORE/mcl_worlds/init.lua | 62 +++++++++++++++++------------------ 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/mods/CORE/mcl_worlds/init.lua b/mods/CORE/mcl_worlds/init.lua index 435ce51c7..ec8144794 100644 --- a/mods/CORE/mcl_worlds/init.lua +++ b/mods/CORE/mcl_worlds/init.lua @@ -33,15 +33,15 @@ end -- If the Y coordinate is not located in any dimension, it will return: -- nil, "void" function mcl_worlds.y_to_layer(y) - if y >= mcl_vars.mg_overworld_min then - return y - mcl_vars.mg_overworld_min, "overworld" - elseif y >= mcl_vars.mg_nether_min and y <= mcl_vars.mg_nether_max+128 then - return y - mcl_vars.mg_nether_min, "nether" - elseif y >= mcl_vars.mg_end_min and y <= mcl_vars.mg_end_max then - return y - mcl_vars.mg_end_min, "end" - else - return nil, "void" - end + if y >= mcl_vars.mg_overworld_min then + return y - mcl_vars.mg_overworld_min, "overworld" + elseif y >= mcl_vars.mg_nether_min and y <= mcl_vars.mg_nether_max+128 then + return y - mcl_vars.mg_nether_min, "nether" + elseif y >= mcl_vars.mg_end_min and y <= mcl_vars.mg_end_max then + return y - mcl_vars.mg_end_min, "end" + else + return nil, "void" + end end -- Takes a pos and returns the dimension it belongs to (same as above) @@ -55,38 +55,38 @@ end -- MineClone 2. -- mc_dimension is one of "overworld", "nether", "end" (default: "overworld"). function mcl_worlds.layer_to_y(layer, mc_dimension) - if mc_dimension == "overworld" or mc_dimension == nil then - return layer + mcl_vars.mg_overworld_min - elseif mc_dimension == "nether" then - return layer + mcl_vars.mg_nether_min - elseif mc_dimension == "end" then - return layer + mcl_vars.mg_end_min - end + if mc_dimension == "overworld" or mc_dimension == nil then + return layer + mcl_vars.mg_overworld_min + elseif mc_dimension == "nether" then + return layer + mcl_vars.mg_nether_min + elseif mc_dimension == "end" then + return layer + mcl_vars.mg_end_min + end end -- Takes a position and returns true if this position can have weather function mcl_worlds.has_weather(pos) - -- Weather in the Overworld and the high part of the void below - return pos.y <= mcl_vars.mg_overworld_max and pos.y >= mcl_vars.mg_overworld_min - 64 + -- Weather in the Overworld and the high part of the void below + return pos.y <= mcl_vars.mg_overworld_max and pos.y >= mcl_vars.mg_overworld_min - 64 end -- Takes a position and returns true if this position can have Nether dust function mcl_worlds.has_dust(pos) - -- Weather in the Overworld and the high part of the void below - return pos.y <= mcl_vars.mg_nether_max + 138 and pos.y >= mcl_vars.mg_nether_min - 10 + -- Weather in the Overworld and the high part of the void below + return pos.y <= mcl_vars.mg_nether_max + 138 and pos.y >= mcl_vars.mg_nether_min - 10 end -- Takes a position (pos) and returns true if compasses are working here function mcl_worlds.compass_works(pos) - -- It doesn't work in Nether and the End, but it works in the Overworld and in the high part of the void below - local _, dim = mcl_worlds.y_to_layer(pos.y) - if dim == "nether" or dim == "end" then - return false - elseif dim == "void" then - return pos.y <= mcl_vars.mg_overworld_max and pos.y >= mcl_vars.mg_overworld_min - 64 - else - return true - end + -- It doesn't work in Nether and the End, but it works in the Overworld and in the high part of the void below + local _, dim = mcl_worlds.y_to_layer(pos.y) + if dim == "nether" or dim == "end" then + return false + elseif dim == "void" then + return pos.y <= mcl_vars.mg_overworld_max and pos.y >= mcl_vars.mg_overworld_min - 64 + else + return true + end end -- Takes a position (pos) and returns true if clocks are working here @@ -112,11 +112,11 @@ local last_dimension = {} -- * player: Player who changed the dimension -- * dimension: New dimension ("overworld", "nether", "end", "void") function mcl_worlds.dimension_change(player, dimension) - local playername = player:get_player_name() + local playername = player:get_player_name() for i=1, #mcl_worlds.registered_on_dimension_change do mcl_worlds.registered_on_dimension_change[i](player, dimension, last_dimension[playername]) end - last_dimension[playername] = dimension + last_dimension[playername] = dimension end ----------------------- INTERNAL STUFF ---------------------- From 388ab6d8dffea8c7daa5760e962ee0ebf3cbaeb1 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 10:56:06 +0200 Subject: [PATCH 22/38] fix some codestyle issues --- mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua | 4 ++-- .../mcl_mobs/api/mob_functions/animation.lua | 2 +- .../mcl_mobs/api/mob_functions/breeding.lua | 4 +--- .../mcl_mobs/api/mob_functions/environment.lua | 16 +++++++--------- .../mcl_mobs/api/mob_functions/head_logic.lua | 2 +- .../mcl_mobs/api/mob_functions/movement.lua | 2 +- mods/ENTITIES/mcl_mobs/api/spawning.lua | 2 +- mods/HUD/mcl_experience/init.lua | 6 +++--- mods/ITEMS/mcl_enchanting/engine.lua | 2 +- mods/MAPGEN/mcl_structures/init.lua | 2 +- mods/MAPGEN/mcl_villages/buildings.lua | 4 ++-- mods/PLAYER/mcl_playerplus/init.lua | 2 +- 12 files changed, 22 insertions(+), 26 deletions(-) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua index df2ccade2..ef2687455 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua @@ -416,7 +416,7 @@ local swim_turn_check = function(self,dtime) local green_flag_1 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") ~= 0 - return(green_flag_1) + return green_flag_1 end --this is to swap the built in engine acceleration modifier @@ -561,7 +561,7 @@ local fly_turn_check = function(self,dtime) local green_flag_1 = minetest_get_item_group(minetest_get_node(test_dir).name, "solid") ~= 0 - return(green_flag_1) + return green_flag_1 end --this is to swap the built in engine acceleration modifier diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua index 8f2ea9e31..cea6d838b 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/animation.lua @@ -157,7 +157,7 @@ local calculate_pitch = function(self) return false end - return(minetest_dir_to_yaw(vector_new(vector_distance(vector_new(pos.x,0,pos.z),vector_new(pos2.x,0,pos2.z)),0,pos.y - pos2.y)) + HALF_PI) + return minetest_dir_to_yaw(vector_new(vector_distance(vector_new(pos.x,0,pos.z),vector_new(pos2.x,0,pos2.z)),0,pos.y - pos2.y)) + HALF_PI end --this is a helper function used to make mobs pitch rotation dynamically flow when flying/swimming diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua index 57650a9c9..c50fb6300 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/breeding.lua @@ -140,9 +140,7 @@ mobs.look_for_mate = function(self) winner_mate = mate end end - - return(winner_mate) - + return winner_mate end --make the baby grow up diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua index 3b204a4bf..5c431135e 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/environment.lua @@ -76,8 +76,7 @@ mobs.detect_closest_player_within_radius = function(self, line_of_sight, radius, winner_player = player end end - - return(winner_player) + return winner_player end @@ -104,14 +103,13 @@ mobs.jump_check = function(self,dtime) if green_flag_1 and green_flag_2 then --can jump over node - return(1) + return 1 elseif green_flag_1 and not green_flag_2 then --wall in front of mob - return(2) + return 2 end - --nothing to jump over - return(0) + return 0 end -- a helper function to quickly turn neutral passive mobs hostile @@ -223,12 +221,12 @@ mobs.check_for_player_within_area = function(self, radius) local distance = vector_distance(pos1,pos2) if distance < radius then --found a player - return(true) + return true end end end --did not find a player - return(false) + return false end @@ -236,7 +234,7 @@ end mobs.get_2d_distance = function(pos1,pos2) pos1.y = 0 pos2.y = 0 - return(vector_distance(pos1, pos2)) + return vector_distance(pos1, pos2) end -- fall damage onto solid ground diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua index 13bc6584d..0f5615504 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/head_logic.lua @@ -3,7 +3,7 @@ local vector = vector --converts yaw to degrees local degrees = function(yaw) - return(yaw*180.0/math.pi) + return yaw*180.0/math.pi end mobs.do_head_logic = function(self,dtime) diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua index 72612b1eb..893f8eede 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/movement.lua @@ -312,7 +312,7 @@ mobs.calculate_pitch = function(pos1, pos2) return false end - return(minetest_dir_to_yaw(vector.new(vector.distance(vector.new(pos1.x,0,pos1.z),vector.new(pos2.x,0,pos2.z)),0,pos1.y - pos2.y)) + HALF_PI) + return minetest_dir_to_yaw(vector.new(vector.distance(vector.new(pos1.x,0,pos1.z),vector.new(pos2.x,0,pos2.z)),0,pos1.y - pos2.y)) + HALF_PI end --make mobs fly up or down based on their y difference diff --git a/mods/ENTITIES/mcl_mobs/api/spawning.lua b/mods/ENTITIES/mcl_mobs/api/spawning.lua index 08b161527..bf7176b99 100644 --- a/mods/ENTITIES/mcl_mobs/api/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/api/spawning.lua @@ -501,7 +501,7 @@ local position_calculation = function(pos) pos.z = pos.z + math_random(inner,outer)*int[math_random(1,2)] pos.x = pos.x + math_random(-outer,outer) end - return(pos) + return pos end --[[ diff --git a/mods/HUD/mcl_experience/init.lua b/mods/HUD/mcl_experience/init.lua index 53376c63f..a40599d17 100644 --- a/mods/HUD/mcl_experience/init.lua +++ b/mods/HUD/mcl_experience/init.lua @@ -120,9 +120,9 @@ end hud_manager.hud_exists = function(player,hud_name) local name = player:get_player_name() if player_huds[name] and player_huds[name][hud_name] then - return(true) + return true else - return(false) + return false end end ------------------- @@ -150,7 +150,7 @@ end) function mcl_experience.get_player_xp_level(player) local name = player:get_player_name() - return(pool[name].level) + return pool[name].level end function mcl_experience.set_player_xp_level(player,level) diff --git a/mods/ITEMS/mcl_enchanting/engine.lua b/mods/ITEMS/mcl_enchanting/engine.lua index 47db36870..d2db2281a 100644 --- a/mods/ITEMS/mcl_enchanting/engine.lua +++ b/mods/ITEMS/mcl_enchanting/engine.lua @@ -7,7 +7,7 @@ end function mcl_enchanting.get_enchantments(itemstack) if not itemstack then - return({}) + return {} end return minetest.deserialize(itemstack:get_meta():get_string("mcl_enchanting:enchantments")) or {} end diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index e3f6b4829..f939b9c1a 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -15,7 +15,7 @@ local function ecb_place(blockpos, action, calls_remaining, param) end end mcl_structures.place_schematic = function(pos, schematic, rotation, replacements, force_placement, flags, after_placement_callback, pr, callback_param) - local s = loadstring(minetest.serialize_schematic(schematic, "lua", {lua_use_comments = false, lua_num_indent_spaces = 0}) .. " return(schematic)")() + local s = loadstring(minetest.serialize_schematic(schematic, "lua", {lua_use_comments = false, lua_num_indent_spaces = 0}) .. " return schematic")() if s and s.size then local x, z = s.size.x, s.size.z if rotation then diff --git a/mods/MAPGEN/mcl_villages/buildings.lua b/mods/MAPGEN/mcl_villages/buildings.lua index 9d8e7580f..3f4490bf9 100644 --- a/mods/MAPGEN/mcl_villages/buildings.lua +++ b/mods/MAPGEN/mcl_villages/buildings.lua @@ -14,7 +14,7 @@ function settlements.build_schematic(vm, data, va, pos, building, replace_wall, -- schematic conversion to lua local schem_lua = minetest.serialize_schematic(building, "lua", - {lua_use_comments = false, lua_num_indent_spaces = 0}).." return(schematic)" + {lua_use_comments = false, lua_num_indent_spaces = 0}).." return schematic" -- replace material if replace_wall == "y" then schem_lua = schem_lua:gsub("mcl_core:cobble", material) @@ -228,7 +228,7 @@ function settlements.place_schematics(settlement_info, pr) -- schematic conversion to lua local schem_lua = minetest.serialize_schematic(building, "lua", - {lua_use_comments = false, lua_num_indent_spaces = 0}).." return(schematic)" + {lua_use_comments = false, lua_num_indent_spaces = 0}).." return schematic" schem_lua = schem_lua:gsub("mcl_core:stonebrickcarved", "mcl_villages:stonebrickcarved") -- replace material if replace_wall then diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 3ad6ba6e8..40752b835 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -49,7 +49,7 @@ local player_collision = function(player) end end - return({x,z}) + return {x,z} end -- converts yaw to degrees From 9e074af07f542adfadbc3e16456571b31579309e Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 12:52:25 +0200 Subject: [PATCH 23/38] unify code style [1] --- CONTRIBUTING.md | 2 +- mods/CORE/_mcl_autogroup/init.lua | 2 +- mods/CORE/mcl_attached/init.lua | 21 ++++--- mods/CORE/mcl_util/init.lua | 4 +- mods/ENTITIES/mcl_item_entity/init.lua | 12 ++-- mods/ENTITIES/mcl_minecarts/init.lua | 4 +- mods/ENTITIES/mcl_minecarts/rails.lua | 2 +- .../mcl_mobs/api/mob_functions/ai.lua | 28 ++++----- mods/ENTITIES/mcl_mobs/api/spawning.lua | 8 +-- mods/ITEMS/REDSTONE/mesecons/presets.lua | 4 +- mods/ITEMS/REDSTONE/mesecons/services.lua | 6 +- mods/ITEMS/REDSTONE/mesecons_button/init.lua | 2 +- mods/ITEMS/mcl_fences/init.lua | 4 +- mods/ITEMS/mcl_fire/init.lua | 2 +- mods/ITEMS/mcl_fishing/init.lua | 11 ++-- mods/ITEMS/xpanes/init.lua | 2 +- mods/MAPGEN/mcl_biomes/init.lua | 8 +-- mods/MAPGEN/mcl_mapgen_core/init.lua | 16 ++--- mods/MAPGEN/mcl_strongholds/init.lua | 4 +- mods/MAPGEN/mcl_structures/init.lua | 61 ++++++++++--------- mods/MAPGEN/mcl_villages/const.lua | 2 +- mods/MAPGEN/tsm_railcorridors/gameconfig.lua | 2 +- mods/MAPGEN/tsm_railcorridors/init.lua | 6 +- mods/PLAYER/mcl_playerinfo/init.lua | 4 +- mods/PLAYER/mcl_playerplus/init.lua | 5 +- mods/PLAYER/mcl_skins/init.lua | 11 ++-- mods/PLAYER/mcl_sprint/init.lua | 2 +- 27 files changed, 118 insertions(+), 117 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21facbd1b..5758d194f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,5 @@ # Contributing to MineClone 2 -So you want to MineClone 2? +So you want to contribute to MineClone 2? Wow, thank you! :-) But first, some things to note: diff --git a/mods/CORE/_mcl_autogroup/init.lua b/mods/CORE/_mcl_autogroup/init.lua index e6b3aa2d0..76c68122b 100644 --- a/mods/CORE/_mcl_autogroup/init.lua +++ b/mods/CORE/_mcl_autogroup/init.lua @@ -298,7 +298,7 @@ function mcl_autogroup.get_wear(toolname, diggroup) return math.ceil(65535 / uses) end -local overwrite = function() +local function overwrite() for nname, ndef in pairs(minetest.registered_nodes) do local newgroups = table.copy(ndef.groups) if (nname ~= "ignore" and ndef.diggable) then diff --git a/mods/CORE/mcl_attached/init.lua b/mods/CORE/mcl_attached/init.lua index 146cb2251..4f538e104 100644 --- a/mods/CORE/mcl_attached/init.lua +++ b/mods/CORE/mcl_attached/init.lua @@ -1,17 +1,21 @@ +local vector = vector + +local facedir_to_dir = minetest.facedir_to_dir +local get_item_group = minetest.get_item_group +local remove_node = minetest.remove_node +local get_node = minetest.get_node + local original_function = minetest.check_single_for_falling -minetest.check_single_for_falling = function(pos) +function minetest.check_single_for_falling(pos) local ret_o = original_function(pos) - local ret = false 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 get_item_group(node.name, "attached_node_facedir") ~= 0 then + local dir = 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) + if get_item_group(get_node(vector.add(pos, dir)).name, "solid") == 0 then + remove_node(pos) local drops = minetest.get_node_drops(node.name, "") for dr=1, #drops do minetest.add_item(pos, drops[dr]) @@ -20,7 +24,6 @@ minetest.check_single_for_falling = function(pos) end end end - return ret_o or ret end diff --git a/mods/CORE/mcl_util/init.lua b/mods/CORE/mcl_util/init.lua index 0168229f2..1ac2c1f9b 100644 --- a/mods/CORE/mcl_util/init.lua +++ b/mods/CORE/mcl_util/init.lua @@ -150,7 +150,7 @@ function mcl_util.get_eligible_transfer_item_slot(src_inventory, src_list, dst_i end -- Returns true if itemstack is a shulker box -local is_not_shulker_box = function(itemstack) +local function is_not_shulker_box(itemstack) local g = minetest.get_item_group(itemstack:get_name(), "shulker_box") return g == 0 or g == nil end @@ -212,7 +212,7 @@ function mcl_util.move_item_container(source_pos, destination_pos, source_list, end -- Normalize double container by forcing to always use the left segment first - local normalize_double_container = function(pos, node, ctype) + local function normalize_double_container(pos, node, ctype) if ctype == 6 then pos = mcl_util.get_double_container_neighbor_pos(pos, node.param2, "right") if not pos then diff --git a/mods/ENTITIES/mcl_item_entity/init.lua b/mods/ENTITIES/mcl_item_entity/init.lua index 0c26c38c8..a73f586e9 100644 --- a/mods/ENTITIES/mcl_item_entity/init.lua +++ b/mods/ENTITIES/mcl_item_entity/init.lua @@ -1,5 +1,5 @@ --these are lua locals, used for higher performance -local minetest,math,vector,ipairs = minetest,math,vector,ipairs +local minetest, math, vector, ipairs = minetest, math, vector, ipairs --this is used for the player pool in the sound buffer local pool = {} @@ -38,7 +38,7 @@ item_drop_settings.drop_single_item = false --if true, the drop control dro item_drop_settings.magnet_time = 0.75 -- how many seconds an item follows the player before giving up -local get_gravity = function() +local function get_gravity() return tonumber(minetest.settings:get("movement_gravity")) or 9.81 end @@ -60,7 +60,7 @@ mcl_item_entity.register_pickup_achievement("mcl_mobitems:blaze_rod", "mcl:blaze mcl_item_entity.register_pickup_achievement("mcl_mobitems:leather", "mcl:killCow") mcl_item_entity.register_pickup_achievement("mcl_core:diamond", "mcl:diamonds") -local check_pickup_achievements = function(object, player) +local function check_pickup_achievements(object, player) if has_awards then local itemname = ItemStack(object:get_luaentity().itemstring):get_name() local playername = player:get_player_name() @@ -72,7 +72,7 @@ local check_pickup_achievements = function(object, player) end end -local enable_physics = function(object, luaentity, ignore_check) +local function enable_physics(object, luaentity, ignore_check) if luaentity.physical_state == false or ignore_check == true then luaentity.physical_state = true object:set_properties({ @@ -83,7 +83,7 @@ local enable_physics = function(object, luaentity, ignore_check) end end -local disable_physics = function(object, luaentity, ignore_check, reset_movement) +local function disable_physics(object, luaentity, ignore_check, reset_movement) if luaentity.physical_state == true or ignore_check == true then luaentity.physical_state = false object:set_properties({ @@ -98,13 +98,11 @@ end minetest.register_globalstep(function(dtime) - tick = not tick for _,player in pairs(minetest.get_connected_players()) do if player:get_hp() > 0 or not minetest.settings:get_bool("enable_damage") then - local name = player:get_player_name() local pos = player:get_pos() diff --git a/mods/ENTITIES/mcl_minecarts/init.lua b/mods/ENTITIES/mcl_minecarts/init.lua index e741fb0bc..6fd98f550 100644 --- a/mods/ENTITIES/mcl_minecarts/init.lua +++ b/mods/ENTITIES/mcl_minecarts/init.lua @@ -496,7 +496,7 @@ local function register_entity(entity_id, mesh, textures, drop, on_rightclick, o end -- Place a minecart at pointed_thing -mcl_minecarts.place_minecart = function(itemstack, pointed_thing, placer) +function mcl_minecarts.place_minecart(itemstack, pointed_thing, placer) if not pointed_thing.type == "node" then return end @@ -540,7 +540,7 @@ mcl_minecarts.place_minecart = function(itemstack, pointed_thing, placer) end -local register_craftitem = function(itemstring, entity_id, description, tt_help, longdesc, usagehelp, icon, creative) +local function register_craftitem(itemstring, entity_id, description, tt_help, longdesc, usagehelp, icon, creative) entity_mapping[itemstring] = entity_id local groups = { minecart = 1, transport = 1 } diff --git a/mods/ENTITIES/mcl_minecarts/rails.lua b/mods/ENTITIES/mcl_minecarts/rails.lua index 4c26aea8c..53ec86d94 100644 --- a/mods/ENTITIES/mcl_minecarts/rails.lua +++ b/mods/ENTITIES/mcl_minecarts/rails.lua @@ -1,7 +1,7 @@ local S = minetest.get_translator("mcl_minecarts") -- Template rail function -local register_rail = function(itemstring, tiles, def_extras, creative) +local function register_rail(itemstring, tiles, def_extras, creative) local groups = {handy=1,pickaxey=1, attached_node=1,rail=1,connect_to_raillike=minetest.raillike_group("rail"),dig_by_water=1,destroy_by_lava_flow=1, transport=1} if creative == false then groups.not_in_creative_inventory = 1 diff --git a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua index ef2687455..894a1f5e4 100644 --- a/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua +++ b/mods/ENTITIES/mcl_mobs/api/mob_functions/ai.lua @@ -13,9 +13,8 @@ local minetest_get_node_light = minetest.get_node_light local DOUBLE_PI = math.pi * 2 local THIRTY_SECONDTH_PI = DOUBLE_PI * 0.03125 - --a simple helper function which is too small to move into movement.lua -local quick_rotate = function(self,dtime) +local function quick_rotate(self,dtime) self.yaw = self.yaw + THIRTY_SECONDTH_PI if self.yaw > DOUBLE_PI then self.yaw = self.yaw - DOUBLE_PI @@ -39,7 +38,7 @@ end ]]-- --this is basically reverse jump_check -local cliff_check = function(self,dtime) +local function cliff_check(self,dtime) --mobs will flip out if they are falling without this if self.object:get_velocity().y ~= 0 then return false @@ -115,7 +114,7 @@ local function land_state_switch(self, dtime) end -- states are executed here -local land_state_execution = function(self,dtime) +local function land_state_execution(self, dtime) --[[ -- this is a debug which shows the timer and makes mobs breed 100 times faster print(self.breed_timer) @@ -391,7 +390,7 @@ end -- state switching logic (stand, walk, run, attacks) local swim_state_list_wandering = {"stand", "swim"} -local swim_state_switch = function(self, dtime) +local function swim_state_switch(self, dtime) self.state_timer = self.state_timer - dtime if self.state_timer <= 0 then self.state_timer = math.random(4,10) + math.random() @@ -401,7 +400,7 @@ end --check if a mob needs to turn while swimming -local swim_turn_check = function(self,dtime) +local function swim_turn_check(self,dtime) local pos = self.object:get_pos() pos.y = pos.y + 0.1 @@ -420,8 +419,7 @@ local swim_turn_check = function(self,dtime) end --this is to swap the built in engine acceleration modifier -local swim_physics_swapper = function(self,inside_swim_node) - +local function swim_physics_swapper(self, inside_swim_node) --should be swimming, gravity is applied, switch to floating if inside_swim_node and self.object:get_acceleration().y ~= 0 then self.object:set_acceleration(vector.new(0,0,0)) @@ -435,7 +433,7 @@ end local random_pitch_multiplier = {-1,1} -- states are executed here -local swim_state_execution = function(self,dtime) +local function swim_state_execution(self, dtime) local pos = self.object:get_pos() @@ -452,7 +450,7 @@ local swim_state_execution = function(self,dtime) end --turn gravity on or off - swim_physics_swapper(self,inside_swim_node) + swim_physics_swapper(self, inside_swim_node) --swim properly if inside swim node if inside_swim_node then @@ -530,7 +528,7 @@ ______ _ -- state switching logic (stand, walk, run, attacks) local fly_state_list_wandering = {"stand", "fly"} -local fly_state_switch = function(self, dtime) +local function fly_state_switch(self, dtime) if self.hostile and self.attacking then self.state = "attack" @@ -546,7 +544,7 @@ end --check if a mob needs to turn while flying -local fly_turn_check = function(self,dtime) +local function fly_turn_check(self, dtime) local pos = self.object:get_pos() pos.y = pos.y + 0.1 @@ -565,7 +563,7 @@ local fly_turn_check = function(self,dtime) end --this is to swap the built in engine acceleration modifier -local fly_physics_swapper = function(self,inside_fly_node) +local function fly_physics_swapper(self, inside_fly_node) --should be flyming, gravity is applied, switch to floating if inside_fly_node and self.object:get_acceleration().y ~= 0 then @@ -580,7 +578,7 @@ end local random_pitch_multiplier = {-1,1} -- states are executed here -local fly_state_execution = function(self,dtime) +local function fly_state_execution(self, dtime) local pos = self.object:get_pos() pos.y = pos.y + 0.1 local current_node = minetest_get_node(pos).name @@ -794,7 +792,7 @@ ___ ___ _ _ _ ]]-- --the main loop -mobs.mob_step = function(self, dtime) +function mobs.mob_step(self, dtime) --do not continue if non-existent if not self or not self.object or not self.object:get_luaentity() then diff --git a/mods/ENTITIES/mcl_mobs/api/spawning.lua b/mods/ENTITIES/mcl_mobs/api/spawning.lua index bf7176b99..70167b421 100644 --- a/mods/ENTITIES/mcl_mobs/api/spawning.lua +++ b/mods/ENTITIES/mcl_mobs/api/spawning.lua @@ -167,7 +167,7 @@ Overworld regular: -- count how many mobs are in an area -local count_mobs = function(pos) +local function count_mobs(pos) local num = 0 for _,object in pairs(get_objects_inside_radius(pos, aoc_range)) do if object and object:get_luaentity() and object:get_luaentity()._cmi_is_mob then @@ -242,8 +242,7 @@ function mobs:spawn_specific(name, dimension, type_of_spawning, biomes, min_ligh end --[[ - local spawn_action - spawn_action = function(pos, node, active_object_count, active_object_count_wider, name) + local function spawn_action(pos, node, active_object_count, active_object_count_wider, name) local orig_pos = table.copy(pos) -- is mob actually registered? @@ -486,7 +485,8 @@ local axis local inner = 15 local outer = 64 local int = {-1,1} -local position_calculation = function(pos) + +local function position_calculation(pos) pos = vector_floor(pos) diff --git a/mods/ITEMS/REDSTONE/mesecons/presets.lua b/mods/ITEMS/REDSTONE/mesecons/presets.lua index f624c52fe..d9d8418d8 100644 --- a/mods/ITEMS/REDSTONE/mesecons/presets.lua +++ b/mods/ITEMS/REDSTONE/mesecons/presets.lua @@ -96,12 +96,12 @@ local function rules_from_dir(ruleset, dir) if dir.z == -1 then return ruleset.zn end end -mesecon.rules.buttonlike_get = function(node) +function mesecon.rules.buttonlike_get(node) local dir = minetest.facedir_to_dir(node.param2) return rules_from_dir(rules_buttonlike, dir) end -mesecon.rules.wallmounted_get = function(node) +function mesecon.rules.wallmounted_get(node) local dir = minetest.wallmounted_to_dir(node.param2) return rules_from_dir(rules_wallmounted, dir) end diff --git a/mods/ITEMS/REDSTONE/mesecons/services.lua b/mods/ITEMS/REDSTONE/mesecons/services.lua index 1e3e6237b..7d1fce2d8 100644 --- a/mods/ITEMS/REDSTONE/mesecons/services.lua +++ b/mods/ITEMS/REDSTONE/mesecons/services.lua @@ -1,6 +1,6 @@ -- Dig and place services -mesecon.on_placenode = function(pos, node) +function mesecon.on_placenode(pos, node) mesecon.execute_autoconnect_hooks_now(pos, node) -- Receptors: Send on signal when active @@ -70,7 +70,7 @@ mesecon.on_placenode = function(pos, node) end end -mesecon.on_dignode = function(pos, node) +function mesecon.on_dignode(pos, node) if mesecon.is_conductor_on(node) then mesecon.receptor_off(pos, mesecon.conductor_get_rules(node)) elseif mesecon.is_receptor_on(node.name) then @@ -95,7 +95,7 @@ mesecon.on_dignode = function(pos, node) mesecon.execute_autoconnect_hooks_queue(pos, node) end -mesecon.on_blastnode = function(pos, node) +function mesecon.on_blastnode(pos, node) local node = minetest.get_node(pos) minetest.remove_node(pos) mesecon.on_dignode(pos, node) diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 377a24c00..a8c671004 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -21,7 +21,7 @@ local boxes_on = { } -- Push the button -mesecon.push_button = function(pos, node) +function mesecon.push_button(pos, node) -- No-op if button is already pushed if mesecon.is_receptor_on(node) then return diff --git a/mods/ITEMS/mcl_fences/init.lua b/mods/ITEMS/mcl_fences/init.lua index e60782215..ddd85d470 100644 --- a/mods/ITEMS/mcl_fences/init.lua +++ b/mods/ITEMS/mcl_fences/init.lua @@ -20,7 +20,7 @@ local cz2 = {-2/16, -0.5, 2/16, 2/16, 1.01, 0.5} --unten(quer) z mcl_fences = {} -mcl_fences.register_fence = function(id, fence_name, texture, groups, hardness, blast_resistance, connects_to, sounds) +function mcl_fences.register_fence(id, fence_name, texture, groups, hardness, blast_resistance, connects_to, sounds) local cgroups = table.copy(groups) if cgroups == nil then cgroups = {} end cgroups.fence = 1 @@ -72,7 +72,7 @@ mcl_fences.register_fence = function(id, fence_name, texture, groups, hardness, return fence_id end -mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, groups, hardness, blast_resistance, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) +function mcl_fences.register_fence_gate(id, fence_gate_name, texture, groups, hardness, blast_resistance, sounds, sound_open, sound_close, sound_gain_open, sound_gain_close) local meta2 local state2 = 0 diff --git a/mods/ITEMS/mcl_fire/init.lua b/mods/ITEMS/mcl_fire/init.lua index 176fb250c..f1a95fec6 100644 --- a/mods/ITEMS/mcl_fire/init.lua +++ b/mods/ITEMS/mcl_fire/init.lua @@ -522,7 +522,7 @@ end -- * 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) +function mcl_fire.set_fire(pointed_thing, player, allow_on_fire) local pname if player == nil then pname = "" diff --git a/mods/ITEMS/mcl_fishing/init.lua b/mods/ITEMS/mcl_fishing/init.lua index cc7c5cca5..567e96e96 100644 --- a/mods/ITEMS/mcl_fishing/init.lua +++ b/mods/ITEMS/mcl_fishing/init.lua @@ -305,7 +305,7 @@ local flying_bobber_ENTITY={ } -- Movement function of flying bobber -local flying_bobber_on_step = function(self, dtime) +local function flying_bobber_on_step(self, dtime) self.timer=self.timer+dtime local pos = self.object:get_pos() local node = minetest.get_node(pos) @@ -315,12 +315,9 @@ local flying_bobber_on_step = function(self, dtime) -- Destroy when hitting a solid node if self._lastpos.x~=nil then if (def and (def.walkable or def.liquidtype == "flowing" or def.liquidtype == "source")) or not def then - local make_child= function(object) - local ent = object:get_luaentity() - ent.player = self._thrower - ent.child = true - end - make_child(minetest.add_entity(self._lastpos, "mcl_fishing:bobber_entity")) + local ent = minetest.add_entity(self._lastpos, "mcl_fishing:bobber_entity"):get_luaentity() + ent.player = self._thrower + ent.child = true self.object:remove() return end diff --git a/mods/ITEMS/xpanes/init.lua b/mods/ITEMS/xpanes/init.lua index b7faffb3b..472b3efdf 100644 --- a/mods/ITEMS/xpanes/init.lua +++ b/mods/ITEMS/xpanes/init.lua @@ -170,7 +170,7 @@ end local canonical_color = "yellow" -- Register glass pane (stained and unstained) -local pane = function(description, node, append) +local function pane(description, node, append) local texture1, longdesc, entry_name, create_entry local is_canonical = true -- Special case: Default (unstained) glass texture diff --git a/mods/MAPGEN/mcl_biomes/init.lua b/mods/MAPGEN/mcl_biomes/init.lua index 4e01df5f2..9108b75c1 100644 --- a/mods/MAPGEN/mcl_biomes/init.lua +++ b/mods/MAPGEN/mcl_biomes/init.lua @@ -1775,7 +1775,7 @@ local function register_biomelike_ores() -- Mesa strata (registered as sheet ores) -- Helper function to create strata. - local stratum = function(y_min, height, color, seed, is_perfect) + local function stratum(y_min, height, color, seed, is_perfect) if not height then height = 1 end @@ -3079,7 +3079,7 @@ local function register_decorations() }) -- Doubletall grass - local register_doubletall_grass = function(offset, scale, biomes) + local function register_doubletall_grass(offset, scale, biomes) for b=1, #biomes do local param2 = minetest.registered_biomes[biomes[b]]._mcl_palette_index @@ -3115,7 +3115,7 @@ local function register_decorations() register_doubletall_grass(-0.0005, -0.03, {"Savanna", "SavannaM"}) -- Large ferns - local register_double_fern = function(offset, scale, biomes) + local function register_double_fern(offset, scale, biomes) for b=1, #biomes do local param2 = minetest.registered_biomes[biomes[b]]._mcl_palette_index minetest.register_decoration({ @@ -3149,7 +3149,7 @@ local function register_decorations() register_double_fern(0.15, 0.1, { "JungleM" }) -- Large flowers - local register_large_flower = function(name, biomes, seed, offset, flower_forest_offset) + local function register_large_flower(name, biomes, seed, offset, flower_forest_offset) local maxi if flower_forest_offset then maxi = 2 diff --git a/mods/MAPGEN/mcl_mapgen_core/init.lua b/mods/MAPGEN/mcl_mapgen_core/init.lua index 285da25c2..b3db122e6 100644 --- a/mods/MAPGEN/mcl_mapgen_core/init.lua +++ b/mods/MAPGEN/mcl_mapgen_core/init.lua @@ -765,7 +765,7 @@ local function register_mgv6_decorations() }) -- Large flowers - local register_large_flower = function(name, seed, offset) + local function register_large_flower(name, seed, offset) minetest.register_decoration({ deco_type = "schematic", schematic = { @@ -1169,7 +1169,7 @@ end -- minp and maxp (from an on_generated callback) and returns the real world coordinates -- as X, Z. -- Inverse function of xz_to_biomemap ---[[local biomemap_to_xz = function(index, minp, maxp) +--[[local function biomemap_to_xz(index, minp, maxp) local xwidth = maxp.x - minp.x + 1 local zwidth = maxp.z - minp.z + 1 local x = ((index-1) % xwidth) + minp.x @@ -1180,7 +1180,7 @@ end]] -- Takes x and z coordinates and minp and maxp of a generated chunk -- (in on_generated callback) and returns a biomemap index) -- Inverse function of biomemap_to_xz -local xz_to_biomemap_index = function(x, z, minp, maxp) +local function xz_to_biomemap_index(x, z, minp, maxp) local xwidth = maxp.x - minp.x + 1 local zwidth = maxp.z - minp.z + 1 local minix = x % xwidth @@ -1404,7 +1404,7 @@ local function generate_structures(minp, maxp, blockseed, biomemap) -- TODO: Spawn witch in or around hut when the mob sucks less. - local place_tree_if_free = function(pos, prev_result) + local function place_tree_if_free(pos, prev_result) local nn = minetest.get_node(pos).name if nn == "mcl_flowers:waterlily" or nn == "mcl_core:water_source" or nn == "mcl_core:water_flowing" or nn == "air" then minetest.set_node(pos, {name="mcl_core:tree", param2=0}) @@ -1720,7 +1720,7 @@ end -- Generate mushrooms in caves manually. -- Minetest's API does not support decorations in caves yet. :-( -local generate_underground_mushrooms = function(minp, maxp, seed) +local function generate_underground_mushrooms(minp, maxp, seed) local pr_shroom = PseudoRandom(seed-24359) -- Generate rare underground mushrooms -- TODO: Make them appear in groups, use Perlin noise @@ -1754,7 +1754,7 @@ else end -- Generate Nether decorations manually: Eternal fire, mushrooms, nether wart -- Minetest's API does not support decorations in caves yet. :-( -local generate_nether_decorations = function(minp, maxp, seed) +local function generate_nether_decorations(minp, maxp, seed) local pr_nether = PseudoRandom(seed+667) if minp.y > mcl_vars.mg_nether_max or maxp.y < mcl_vars.mg_nether_min then @@ -1771,7 +1771,7 @@ local generate_nether_decorations = function(minp, maxp, seed) local ssand = minetest.find_nodes_in_area_under_air(minp, maxp, {"mcl_nether:soul_sand"}) -- Helper function to spawn “fake” decoration - local special_deco = function(nodes, spawn_func) + local function special_deco(nodes, spawn_func) for n = 1, #nodes do bpos = {x = nodes[n].x, y = nodes[n].y + 1, z = nodes[n].z } @@ -1912,7 +1912,7 @@ end local bedrock_check if mcl_vars.mg_bedrock_is_rough then - bedrock_check = function(pos, _, pr) + function bedrock_check(pos, _, pr) local y = pos.y -- Bedrock layers with increasing levels of roughness, until a perfecly flat bedrock later at the bottom layer -- This code assumes a bedrock height of 5 layers. diff --git a/mods/MAPGEN/mcl_strongholds/init.lua b/mods/MAPGEN/mcl_strongholds/init.lua index e465b2e40..083172a3c 100644 --- a/mods/MAPGEN/mcl_strongholds/init.lua +++ b/mods/MAPGEN/mcl_strongholds/init.lua @@ -25,7 +25,7 @@ local superflat = mg_name == "flat" and minetest.get_mapgen_setting("mcl_superfl -- The stronghold positions are based on the world seed. -- The actual position might be offset by a few blocks because it might be shifted -- to make sure the end portal room is completely within the boundaries of a mapchunk. -local init_strongholds = function() +local function init_strongholds() if strongholds_inited then return end @@ -67,7 +67,7 @@ local init_strongholds = function() end -- Stronghold generation for register_on_generated. -local generate_strongholds = function(minp, maxp, blockseed) +local function generate_strongholds(minp, maxp, blockseed) local pr = PseudoRandom(blockseed) for s=1, #strongholds do if not strongholds[s].generated then diff --git a/mods/MAPGEN/mcl_structures/init.lua b/mods/MAPGEN/mcl_structures/init.lua index f939b9c1a..dfb7da24b 100644 --- a/mods/MAPGEN/mcl_structures/init.lua +++ b/mods/MAPGEN/mcl_structures/init.lua @@ -1,5 +1,9 @@ -local S = minetest.get_translator("mcl_structures") -mcl_structures ={} +local modname = minetest.get_current_modname() +local S = minetest.get_translator(modname) +local modpath = minetest.get_modpath(modname) + +mcl_structures = {} + local rotations = { "0", "90", @@ -14,7 +18,8 @@ local function ecb_place(blockpos, action, calls_remaining, param) param.after_placement_callback(param.p1, param.p2, param.size, param.rotation, param.pr, param.callback_param) end end -mcl_structures.place_schematic = function(pos, schematic, rotation, replacements, force_placement, flags, after_placement_callback, pr, callback_param) + +function mcl_structures.place_schematic(pos, schematic, rotation, replacements, force_placement, flags, after_placement_callback, pr, callback_param) local s = loadstring(minetest.serialize_schematic(schematic, "lua", {lua_use_comments = false, lua_num_indent_spaces = 0}) .. " return schematic")() if s and s.size then local x, z = s.size.x, s.size.z @@ -37,7 +42,7 @@ mcl_structures.place_schematic = function(pos, schematic, rotation, replacements end end -mcl_structures.get_struct = function(file) +function mcl_structures.get_struct(file) local localfile = minetest.get_modpath("mcl_structures").."/schematics/"..file local file, errorload = io.open(localfile, "rb") if errorload ~= nil then @@ -53,7 +58,7 @@ end -- Call on_construct on pos. -- Useful to init chests from formspec. -local init_node_construct = function(pos) +local function init_node_construct(pos) local node = minetest.get_node(pos) local def = minetest.registered_nodes[node.name] if def and def.on_construct then @@ -64,7 +69,7 @@ local init_node_construct = function(pos) end -- The call of Struct -mcl_structures.call_struct = function(pos, struct_style, rotation, pr) +function mcl_structures.call_struct(pos, struct_style, rotation, pr) minetest.log("action","[mcl_structures] call_struct " .. struct_style.." at "..minetest.pos_to_string(pos)) if not rotation then rotation = "random" @@ -96,13 +101,13 @@ mcl_structures.call_struct = function(pos, struct_style, rotation, pr) end end -mcl_structures.generate_desert_well = function(pos, rot) +function mcl_structures.generate_desert_well(pos, rot) local newpos = {x=pos.x,y=pos.y-2,z=pos.z} - local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_desert_well.mts" + local path = modpath.."/schematics/mcl_structures_desert_well.mts" return mcl_structures.place_schematic(newpos, path, rot or "0", nil, true) end -mcl_structures.generate_igloo = function(pos, rotation, pr) +function mcl_structures.generate_igloo(pos, rotation, pr) -- Place igloo local success, rotation = mcl_structures.generate_igloo_top(pos, pr) -- Place igloo basement with 50% chance @@ -148,7 +153,7 @@ mcl_structures.generate_igloo = function(pos, rotation, pr) else return success end - local set_brick = function(pos) + local function set_brick(pos) local c = pr:next(1, 3) -- cracked chance local m = pr:next(1, 10) -- chance for monster egg local brick @@ -198,11 +203,11 @@ mcl_structures.generate_igloo = function(pos, rotation, pr) return success end -mcl_structures.generate_igloo_top = function(pos, pr) +function mcl_structures.generate_igloo_top(pos, pr) -- FIXME: This spawns bookshelf instead of furnace. Fix this! -- Furnace does ot work atm because apparently meta is not set. :-( local newpos = {x=pos.x,y=pos.y-1,z=pos.z} - local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_igloo_top.mts" + local path = modpath.."/schematics/mcl_structures_igloo_top.mts" local rotation = tostring(pr:next(0,3)*90) return mcl_structures.place_schematic(newpos, path, rotation, nil, true), rotation end @@ -250,22 +255,22 @@ local function igloo_placement_callback(p1, p2, size, orientation, pr) mcl_loot.fill_inventory(inv, "main", lootitems, pr) end -mcl_structures.generate_igloo_basement = function(pos, orientation, pr) +function mcl_structures.generate_igloo_basement(pos, orientation, pr) -- TODO: Add brewing stand -- TODO: Add monster eggs -- TODO: Spawn villager and zombie villager - local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_igloo_basement.mts" + local path = modpath.."/schematics/mcl_structures_igloo_basement.mts" mcl_structures.place_schematic(pos, path, orientation, nil, true, nil, igloo_placement_callback, pr) end -mcl_structures.generate_boulder = function(pos, rotation, pr) +function mcl_structures.generate_boulder(pos, rotation, pr) -- Choose between 2 boulder sizes (2×2×2 or 3×3×3) local r = pr:next(1, 10) local path if r <= 3 then - path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_boulder_small.mts" + path = modpath.."/schematics/mcl_structures_boulder_small.mts" else - path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_boulder.mts" + path = modpath.."/schematics/mcl_structures_boulder.mts" end local newpos = {x=pos.x,y=pos.y-1,z=pos.z} @@ -284,22 +289,22 @@ local function hut_placement_callback(p1, p2, size, orientation, pr) end end -mcl_structures.generate_witch_hut = function(pos, rotation, pr) +function mcl_structures.generate_witch_hut(pos, rotation, pr) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_witch_hut.mts" mcl_structures.place_schematic(pos, path, rotation, nil, true, nil, hut_placement_callback, pr) end -mcl_structures.generate_ice_spike_small = function(pos, rotation) +function mcl_structures.generate_ice_spike_small(pos, rotation) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_ice_spike_small.mts" return minetest.place_schematic(pos, path, rotation or "random", nil, false) -- don't serialize schematics for registered biome decorations, for MT 5.4.0 end -mcl_structures.generate_ice_spike_large = function(pos, rotation) +function mcl_structures.generate_ice_spike_large(pos, rotation) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_ice_spike_large.mts" return minetest.place_schematic(pos, path, rotation or "random", nil, false) -- don't serialize schematics for registered biome decorations, for MT 5.4.0 end -mcl_structures.generate_fossil = function(pos, rotation, pr) +function mcl_structures.generate_fossil(pos, rotation, pr) -- Generates one out of 8 possible fossil pieces local newpos = {x=pos.x,y=pos.y-1,z=pos.z} local fossils = { @@ -317,17 +322,17 @@ mcl_structures.generate_fossil = function(pos, rotation, pr) return mcl_structures.place_schematic(newpos, path, rotation or "random", nil, true) end -mcl_structures.generate_end_exit_portal = function(pos, rot) +function mcl_structures.generate_end_exit_portal(pos, rot) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_end_exit_portal.mts" return mcl_structures.place_schematic(pos, path, rot or "0", {["mcl_portals:portal_end"] = "air"}, true) end -mcl_structures.generate_end_exit_portal_open = function(pos, rot) +function mcl_structures.generate_end_exit_portal_open(pos, rot) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_end_exit_portal.mts" return mcl_structures.place_schematic(pos, path, rot or "0", nil, true) end -mcl_structures.generate_end_gateway_portal = function(pos, rot) +function mcl_structures.generate_end_gateway_portal(pos, rot) local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_end_gateway_portal.mts" return mcl_structures.place_schematic(pos, path, rot or "0", nil, true) end @@ -410,7 +415,7 @@ local function shrine_placement_callback(p1, p2, size, rotation, pr) end end -mcl_structures.generate_end_portal_shrine = function(pos, rotation, pr) +function mcl_structures.generate_end_portal_shrine(pos, rotation, pr) local offset = {x=6, y=4, z=6} --local size = {x=13, y=8, z=13} local newpos = { x = pos.x - offset.x, y = pos.y, z = pos.z - offset.z } @@ -493,7 +498,7 @@ local function temple_placement_callback(p1, p2, size, rotation, pr) end end -mcl_structures.generate_desert_temple = function(pos, rotation, pr) +function mcl_structures.generate_desert_temple(pos, rotation, pr) -- No Generating for the temple ... Why using it ? No Change local path = minetest.get_modpath("mcl_structures").."/schematics/mcl_structures_desert_temple.mts" local newpos = {x=pos.x,y=pos.y-12,z=pos.z} @@ -517,7 +522,7 @@ Format of return value: TODO: Implement this function for all other structure types as well. ]] -mcl_structures.get_registered_structures = function(structure_type) +function mcl_structures.get_registered_structures(structure_type) if registered_structures[structure_type] then return table.copy(registered_structures[structure_type]) else @@ -527,7 +532,7 @@ end -- Register a structures table for the given type. The table format is the same as for -- mcl_structures.get_registered_structures. -mcl_structures.register_structures = function(structure_type, structures) +function mcl_structures.register_structures(structure_type, structures) registered_structures[structure_type] = structures end diff --git a/mods/MAPGEN/mcl_villages/const.lua b/mods/MAPGEN/mcl_villages/const.lua index e5cbc9b39..eb7806209 100644 --- a/mods/MAPGEN/mcl_villages/const.lua +++ b/mods/MAPGEN/mcl_villages/const.lua @@ -1,5 +1,5 @@ -- switch for debugging -settlements.debug = function(message) +function settlements.debug(message) -- minetest.chat_send_all(message) -- minetest.log("warning", "[mcl_villages] "..message) minetest.log("verbose", "[mcl_villages] "..message) diff --git a/mods/MAPGEN/tsm_railcorridors/gameconfig.lua b/mods/MAPGEN/tsm_railcorridors/gameconfig.lua index 904c3af08..168ecf535 100644 --- a/mods/MAPGEN/tsm_railcorridors/gameconfig.lua +++ b/mods/MAPGEN/tsm_railcorridors/gameconfig.lua @@ -27,7 +27,7 @@ if mg_name == "v6" then } else -- This generates dark oak wood in mesa biomes and oak wood everywhere else. - tsm_railcorridors.nodes.corridor_woods_function = function(pos, node) + function tsm_railcorridors.nodes.corridor_woods_function(pos, node) if minetest.get_item_group(node.name, "hardened_clay") ~= 0 then return "mcl_core:darkwood", "mcl_fences:dark_oak_fence" else diff --git a/mods/MAPGEN/tsm_railcorridors/init.lua b/mods/MAPGEN/tsm_railcorridors/init.lua index 550167dc3..d7a074a00 100644 --- a/mods/MAPGEN/tsm_railcorridors/init.lua +++ b/mods/MAPGEN/tsm_railcorridors/init.lua @@ -681,11 +681,11 @@ local function create_corridor_section(waypoint, axis, sign, up_or_down, up_or_d railsegcount = segcount end for i=1,railsegcount do - local p = {x=waypoint.x+vek.x*i, y=waypoint.y+vek.y*i-1, z=waypoint.z+vek.z*i} + local p = {x = waypoint.x + vek.x * i, y = waypoint.y + vek.y * i-1, z = waypoint.z + vek.z * i} -- Randomly returns either the left or right side of the main rail. -- Also returns offset as second return value. - local left_or_right = function(pos, vek) + local function left_or_right(pos, vek) local off if pr:next(1, 2) == 1 then -- left @@ -765,7 +765,7 @@ local function create_corridor_section(waypoint, axis, sign, up_or_down, up_or_d -- Place cobwebs left and right in the corridor if place_cobwebs and tsm_railcorridors.nodes.cobweb then -- Helper function to place a cobweb at the side (based on chance an Perlin noise) - local cobweb_at_side = function(basepos, vek) + local function cobweb_at_side(basepos, vek) if pr:next(1,5) == 1 then local h = pr:next(0, 2) -- 3 possible cobweb heights local cpos = {x=basepos.x+vek.x, y=basepos.y+h, z=basepos.z+vek.z} diff --git a/mods/PLAYER/mcl_playerinfo/init.lua b/mods/PLAYER/mcl_playerinfo/init.lua index 5086f3195..9c5d1433f 100644 --- a/mods/PLAYER/mcl_playerinfo/init.lua +++ b/mods/PLAYER/mcl_playerinfo/init.lua @@ -1,3 +1,5 @@ +local table = table + -- Player state for public API mcl_playerinfo = {} @@ -21,7 +23,7 @@ end local time = 0 -local get_player_nodes = function(player_pos) +local function get_player_nodes(player_pos) local work_pos = table.copy(player_pos) -- what is around me? diff --git a/mods/PLAYER/mcl_playerplus/init.lua b/mods/PLAYER/mcl_playerplus/init.lua index 40752b835..ceaef6346 100644 --- a/mods/PLAYER/mcl_playerplus/init.lua +++ b/mods/PLAYER/mcl_playerplus/init.lua @@ -25,7 +25,7 @@ local mcl_playerplus_internal = {} local time = 0 local look_pitch = 0 -local player_collision = function(player) +local function player_collision(player) local pos = player:get_pos() --local vel = player:get_velocity() @@ -48,7 +48,6 @@ local player_collision = function(player) z = z + (vec.z * force) end end - return {x,z} end @@ -57,7 +56,7 @@ local function degrees(rad) return rad * 180.0 / math.pi end -local dir_to_pitch = function(dir) +local function dir_to_pitch(dir) --local dir2 = vector.normalize(dir) local xz = math.abs(dir.x) + math.abs(dir.z) return -math.atan2(-dir.y, xz) diff --git a/mods/PLAYER/mcl_skins/init.lua b/mods/PLAYER/mcl_skins/init.lua index 0f23519ab..fb91d74d3 100644 --- a/mods/PLAYER/mcl_skins/init.lua +++ b/mods/PLAYER/mcl_skins/init.lua @@ -70,7 +70,7 @@ while true do id = id + 1 end -mcl_skins.cycle_skin = function(player) +function mcl_skins.cycle_skin(player) local skin_id = tonumber(player:get_meta():get_string("mcl_skins:skin_id")) if not skin_id then skin_id = 0 @@ -82,7 +82,7 @@ mcl_skins.cycle_skin = function(player) mcl_skins.set_player_skin(player, skin_id) end -mcl_skins.set_player_skin = function(player, skin_id) +function mcl_skins.set_player_skin(player, skin_id) if not player then return false end @@ -124,7 +124,7 @@ mcl_skins.set_player_skin = function(player, skin_id) return true end -mcl_skins.update_player_skin = function(player) +function mcl_skins.update_player_skin(player) if not player then return end @@ -134,7 +134,6 @@ end -- load player skin on join minetest.register_on_joinplayer(function(player) - local name = player:get_player_name() local skin_id = player:get_meta():get_string("mcl_skins:skin_id") local set_skin @@ -156,7 +155,7 @@ end) mcl_skins.registered_on_set_skins = {} -mcl_skins.register_on_set_skin = function(func) +function mcl_skins.register_on_set_skin(func) table.insert(mcl_skins.registered_on_set_skins, func) end @@ -231,7 +230,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end end) -mcl_skins.show_formspec = function(playername) +function mcl_skins.show_formspec(playername) local formspec = "size[7,8.5]" formspec = formspec .. "label[2,2;" .. minetest.formspec_escape(minetest.colorize("#383838", S("Select player skin:"))) .. "]" diff --git a/mods/PLAYER/mcl_sprint/init.lua b/mods/PLAYER/mcl_sprint/init.lua index 12d0394e5..546a5f4f0 100644 --- a/mods/PLAYER/mcl_sprint/init.lua +++ b/mods/PLAYER/mcl_sprint/init.lua @@ -16,7 +16,7 @@ local players = {} -- Returns true if the player with the given name is sprinting, false if not. -- Returns nil if player does not exist. -mcl_sprint.is_sprinting = function(playername) +function mcl_sprint.is_sprinting(playername) if players[playername] then return players[playername].sprinting else From 49044ac15e8bcc01044a4caf9ffa2c405723d02f Mon Sep 17 00:00:00 2001 From: AFCMS Date: Tue, 25 May 2021 13:18:12 +0200 Subject: [PATCH 24/38] unify codestyle [2] --- CONTRIBUTING.md | 22 ++++++++++++++++++++++ mods/ENVIRONMENT/mcl_moon/init.lua | 4 ++-- mods/ENVIRONMENT/mcl_weather/rain.lua | 24 +++++++++++------------- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5758d194f..023d89de8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,6 +46,28 @@ Your commit names should be relatively descriptive, e.g. when saying "Fix #issue Contributors will be credited in `CREDITS.md`. +## Code Style + +Each mod must provide `mod.conf`. +Each mod which add API functions should store functions inside a global table named like the mod. +Object oriented API shoud be avoided e.g.:`function mobs.register_mod(self)` +Functions should be defined in this way: +``` +function mcl_xyz.stuff(param) end +``` +Insteed of this way: +``` +mcl_xyz.stuff = function(param) end +``` +Indentation must be unified, more likely with tabs. + +Time sensitive mods should make a local copy of most used API functions to improve performances. +``` +local vector = vector +local get_node = minetest.get_node +``` + + ## Features > 1.12 If you want to make a feature that was added in a Minecraft version later than 1.12, you should fork MineClone5 (mineclone5 branch in the repository) and add your changes to this. diff --git a/mods/ENVIRONMENT/mcl_moon/init.lua b/mods/ENVIRONMENT/mcl_moon/init.lua index 1a5030b4e..200c6ca41 100644 --- a/mods/ENVIRONMENT/mcl_moon/init.lua +++ b/mods/ENVIRONMENT/mcl_moon/init.lua @@ -13,7 +13,7 @@ minetest.log("info", "[mcl_moon] Moon phase offset of this world: "..phase_offse mcl_moon = {} mcl_moon.MOON_PHASES = MOON_PHASES -mcl_moon.get_moon_phase = function() +function mcl_moon.get_moon_phase() local after_midday = 0 -- Moon phase changes after midday local tod = minetest.get_timeofday() @@ -23,7 +23,7 @@ mcl_moon.get_moon_phase = function() return (minetest.get_day_count() + phase_offset + after_midday) % MOON_PHASES end -local get_moon_texture = function() +local function get_moon_texture() local phase = mcl_moon.get_moon_phase() local x = phase % MOON_PHASES_HALF local y diff --git a/mods/ENVIRONMENT/mcl_weather/rain.lua b/mods/ENVIRONMENT/mcl_weather/rain.lua index 786e08fa9..c128da942 100644 --- a/mods/ENVIRONMENT/mcl_weather/rain.lua +++ b/mods/ENVIRONMENT/mcl_weather/rain.lua @@ -20,7 +20,7 @@ mcl_weather.rain = { init_done = false, } -mcl_weather.rain.sound_handler = function(player) +function mcl_weather.rain.sound_handler(player) return minetest.sound_play("weather_rain", { to_player = player:get_player_name(), loop = true, @@ -28,7 +28,7 @@ mcl_weather.rain.sound_handler = function(player) end -- set skybox based on time (uses skycolor api) -mcl_weather.rain.set_sky_box = function() +function mcl_weather.rain.set_sky_box() if mcl_weather.state == "rain" then mcl_weather.skycolor.add_layer( "weather-pack-rain-sky", @@ -46,8 +46,7 @@ end -- creating manually parctiles instead of particles spawner because of easier to control -- spawn position. -mcl_weather.rain.add_rain_particles = function(player) - +function mcl_weather.rain.add_rain_particles(player) mcl_weather.rain.last_rp_count = 0 for i=mcl_weather.rain.particles_count, 1,-1 do local random_pos_x, random_pos_y, random_pos_z = mcl_weather.get_random_pos_by_player_look_dir(player) @@ -70,7 +69,7 @@ mcl_weather.rain.add_rain_particles = function(player) end -- Simple random texture getter -mcl_weather.rain.get_texture = function() +function mcl_weather.rain.get_texture() local texture_name local random_number = math.random() if random_number > 0.33 then @@ -85,7 +84,7 @@ end -- register player for rain weather. -- basically needs for origin sky reference and rain sound controls. -mcl_weather.rain.add_player = function(player) +function mcl_weather.rain.add_player(player) if mcl_weather.players[player:get_player_name()] == nil then local player_meta = {} player_meta.origin_sky = {player:get_sky()} @@ -95,7 +94,7 @@ end -- remove player from player list effected by rain. -- be sure to remove sound before removing player otherwise soundhandler reference will be lost. -mcl_weather.rain.remove_player = function(player) +function mcl_weather.rain.remove_player(player) local player_meta = mcl_weather.players[player:get_player_name()] if player_meta ~= nil and player_meta.origin_sky ~= nil then player:set_clouds({color="#FFF0F0E5"}) @@ -119,7 +118,7 @@ end) -- adds and removes rain sound depending how much rain particles around player currently exist. -- have few seconds delay before each check to avoid on/off sound too often -- when player stay on 'edge' where sound should play and stop depending from random raindrop appearance. -mcl_weather.rain.update_sound = function(player) +function mcl_weather.rain.update_sound(player) local player_meta = mcl_weather.players[player:get_player_name()] if player_meta ~= nil then if player_meta.sound_updated ~= nil and player_meta.sound_updated + 5 > minetest.get_gametime() then @@ -140,7 +139,7 @@ mcl_weather.rain.update_sound = function(player) end -- rain sound removed from player. -mcl_weather.rain.remove_sound = function(player) +function mcl_weather.rain.remove_sound(player) local player_meta = mcl_weather.players[player:get_player_name()] if player_meta ~= nil and player_meta.sound_handler ~= nil then minetest.sound_fade(player_meta.sound_handler, -0.5, 0.0) @@ -150,7 +149,7 @@ mcl_weather.rain.remove_sound = function(player) end -- callback function for removing rain -mcl_weather.rain.clear = function() +function mcl_weather.rain.clear() mcl_weather.rain.raining = false mcl_weather.rain.sky_last_update = -1 mcl_weather.rain.init_done = false @@ -166,11 +165,10 @@ minetest.register_globalstep(function(dtime) if mcl_weather.state ~= "rain" then return false end - mcl_weather.rain.make_weather() end) -mcl_weather.rain.make_weather = function() +function mcl_weather.rain.make_weather() if mcl_weather.rain.init_done == false then mcl_weather.rain.raining = true mcl_weather.rain.set_sky_box() @@ -190,7 +188,7 @@ mcl_weather.rain.make_weather = function() end -- Switch the number of raindrops: "thunder" for many raindrops, otherwise for normal raindrops -mcl_weather.rain.set_particles_mode = function(mode) +function mcl_weather.rain.set_particles_mode(mode) if mode == "thunder" then mcl_weather.rain.particles_count = PARTICLES_COUNT_THUNDER else From 6105a9ef2292efe1a8a6da1a695d2e5d9baab322 Mon Sep 17 00:00:00 2001 From: NO11 Date: Tue, 25 May 2021 20:00:06 +0000 Subject: [PATCH 25/38] Fix function code style in mcl:core/crafting.lua --- mods/ITEMS/mcl_core/crafting.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_core/crafting.lua b/mods/ITEMS/mcl_core/crafting.lua index f031c7ca2..cec26e747 100644 --- a/mods/ITEMS/mcl_core/crafting.lua +++ b/mods/ITEMS/mcl_core/crafting.lua @@ -4,7 +4,7 @@ -- Crafting definition -- -local craft_planks = function(output, input) +local function craft_planks(output, input) minetest.register_craft({ output = "mcl_core:"..output.."wood 4", recipe = { From 4c9eeed499d225552bd7e35a4433dc1c892383bc Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 26 May 2021 16:25:16 +0200 Subject: [PATCH 26/38] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 023d89de8..1b5098a4f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ Contributors will be credited in `CREDITS.md`. Each mod must provide `mod.conf`. Each mod which add API functions should store functions inside a global table named like the mod. -Object oriented API shoud be avoided e.g.:`function mobs.register_mod(self)` +Public functions should not use self references but rather just access the table directly. Functions should be defined in this way: ``` function mcl_xyz.stuff(param) end From fd387a65af861e7e8fbd099f067cb9152c69b349 Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 26 May 2021 16:42:12 +0200 Subject: [PATCH 27/38] fix some codestyle issues in hudbars --- mods/HUD/hudbars/init.lua | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/mods/HUD/hudbars/init.lua b/mods/HUD/hudbars/init.lua index 6f90aa03d..a88d14dcf 100644 --- a/mods/HUD/hudbars/init.lua +++ b/mods/HUD/hudbars/init.lua @@ -1,17 +1,22 @@ -local S = minetest.get_translator("hudbars") +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) + +local S = minetest.get_translator(modname) local N = function(s) return s end -hb = {} +local math = math +local table = table -hb.hudtables = {} - --- number of registered HUD bars -hb.hudbars_count = 0 - --- table which records which HUD bar slots have been “registered” so far; used for automatic positioning -hb.registered_slots = {} - -hb.settings = {} +hb = { + hudtables = {}, + -- number of registered HUD bars + hudbars_count = 0, + -- table which records which HUD bar slots have been “registered” so far; used for automatic positioning + registered_slots = {}, + settings = {}, + -- Table which contains all players with active default HUD bars (only for internal use) + players = {}, +} function hb.load_setting(sname, stype, defaultval, valid_values) local sval @@ -45,7 +50,8 @@ function hb.load_setting(sname, stype, defaultval, valid_values) end -- Load default settings -dofile(minetest.get_modpath("hudbars").."/default_settings.lua") +dofile(modpath.."/default_settings.lua") + if minetest.get_modpath("mcl_experience") and not minetest.is_creative_enabled("") then -- reserve some space for experience bar: hb.settings.start_offset_left.y = hb.settings.start_offset_left.y - 20 @@ -85,9 +91,6 @@ local function make_label(format_string, format_string_config, label, start_valu return ret end --- Table which contains all players with active default HUD bars (only for internal use) -hb.players = {} - function hb.value_to_barlength(value, max) if max == 0 then return 0 From ee9577b62597bab6368b66bf32985f03f7c6da5d Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 26 May 2021 16:43:36 +0200 Subject: [PATCH 28/38] fix functions in mcl_hbarmor --- mods/HUD/mcl_hbarmor/init.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/HUD/mcl_hbarmor/init.lua b/mods/HUD/mcl_hbarmor/init.lua index 9e5aa634b..f8fa6e619 100644 --- a/mods/HUD/mcl_hbarmor/init.lua +++ b/mods/HUD/mcl_hbarmor/init.lua @@ -21,11 +21,11 @@ if tonumber(set) ~= nil then end -local must_hide = function(playername, arm) +local function must_hide(playername, arm) return arm == 0 end -local arm_printable = function(arm) +local function arm_printable(arm) return math.ceil(math.floor(arm+0.5)) end From 5fc3256930545d28eca105eec0ec785558e39b1b Mon Sep 17 00:00:00 2001 From: AFCMS Date: Wed, 26 May 2021 16:55:32 +0200 Subject: [PATCH 29/38] fix codestyle in mcl_hbarmor --- mods/HUD/mcl_hbarmor/init.lua | 36 +++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/mods/HUD/mcl_hbarmor/init.lua b/mods/HUD/mcl_hbarmor/init.lua index f8fa6e619..422a409fb 100644 --- a/mods/HUD/mcl_hbarmor/init.lua +++ b/mods/HUD/mcl_hbarmor/init.lua @@ -1,23 +1,26 @@ -local S = minetest.get_translator("mcl_hbarmor") +local S = minetest.get_translator(minetest.get_current_modname()) -local mcl_hbarmor = {} +local math = math +local tonumber = tonumber --- HUD statbar values -mcl_hbarmor.armor = {} +local get_connected_players = minetest.get_connected_players --- Stores if player's HUD bar has been initialized so far. -mcl_hbarmor.player_active = {} +local mcl_hbarmor = { + -- HUD statbar values + armor = {}, + -- Stores if player's HUD bar has been initialized so far. + player_active = {}, + -- Time difference in seconds between updates to the HUD armor bar. + -- Increase this number for slow servers. + tick = 0.1, + -- If true, the armor bar is hidden when the player does not wear any armor + autohide = true, +} --- Time difference in seconds between updates to the HUD armor bar. --- Increase this number for slow servers. -mcl_hbarmor.tick = 0.1 +local tick_config = minetest.settings:get("mcl_hbarmor_tick") --- If true, the armor bar is hidden when the player does not wear any armor -mcl_hbarmor.autohide = true - -set = minetest.settings:get("mcl_hbarmor_tick") -if tonumber(set) ~= nil then - mcl_hbarmor.tick = tonumber(set) +if tonumber(tick_config) ~= nil then + mcl_hbarmor.tick = tonumber(tick_config) end @@ -106,12 +109,13 @@ end) local main_timer = 0 local timer = 0 minetest.register_globalstep(function(dtime) + --TODO: replace this by playerglobalstep API then implemented main_timer = main_timer + dtime timer = timer + dtime if main_timer > mcl_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 - for _,player in pairs(minetest.get_connected_players()) do + for _,player in pairs(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) From bb77443892805a39471bc7d2776639cd2b72c87f Mon Sep 17 00:00:00 2001 From: NO11 Date: Wed, 26 May 2021 17:43:42 +0000 Subject: [PATCH 30/38] [mcl_core] fix function codestyle in functions.lua --- mods/ITEMS/mcl_core/functions.lua | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/mods/ITEMS/mcl_core/functions.lua b/mods/ITEMS/mcl_core/functions.lua index 7f9a83bc9..f66240b94 100644 --- a/mods/ITEMS/mcl_core/functions.lua +++ b/mods/ITEMS/mcl_core/functions.lua @@ -53,7 +53,7 @@ minetest.register_abm({ -- -- Functions -mcl_core.grow_cactus = function(pos, node) +function mcl_core.grow_cactus(pos, node) pos.y = pos.y-1 local name = minetest.get_node(pos).name if minetest.get_item_group(name, "sand") ~= 0 then @@ -71,7 +71,7 @@ mcl_core.grow_cactus = function(pos, node) end end -mcl_core.grow_reeds = function(pos, node) +function mcl_core.grow_reeds(pos, node) pos.y = pos.y-1 local name = minetest.get_node(pos).name if minetest.get_item_group(name, "soil_sugarcane") ~= 0 then @@ -114,8 +114,8 @@ local function drop_attached_node(p) end -- Helper function for node actions for liquid flow -local liquid_flow_action = function(pos, group, action) - local check_detach = function(pos, xp, yp, zp) +local function liquid_flow_action(pos, group, action) + local function check_detach(pos, xp, yp, zp) local p = {x=pos.x+xp, y=pos.y+yp, z=pos.z+zp} local n = minetest.get_node_or_nil(p) if not n then @@ -594,13 +594,13 @@ function mcl_core.generate_v6_spruce_tree(pos) vm:write_to_map() end -mcl_core.generate_spruce_tree = function(pos) +function mcl_core.generate_spruce_tree(pos) local r = math.random(1, 3) local path = minetest.get_modpath("mcl_core") .. "/schematics/mcl_core_spruce_"..r..".mts" minetest.place_schematic({ x = pos.x - 3, y = pos.y - 1, z = pos.z - 3 }, path, "0", nil, false) end -mcl_core.generate_huge_spruce_tree = function(pos) +function mcl_core.generate_huge_spruce_tree(pos) local r1 = math.random(1, 2) local r2 = math.random(1, 4) local path @@ -911,7 +911,7 @@ minetest.register_lbm({ -------------------------- local treelight = 9 -local sapling_grow_action = function(tree_id, soil_needed, one_by_one, two_by_two, sapling) +local function sapling_grow_action(tree_id, soil_needed, one_by_one, two_by_two, sapling) return function(pos) local meta = minetest.get_meta(pos) if meta:get("grown") then return end @@ -953,7 +953,7 @@ local sapling_grow_action = function(tree_id, soil_needed, one_by_one, two_by_tw -- This sapling grows in a special way when there are 4 saplings in a 2×2 pattern if two_by_two then -- Check 8 surrounding saplings and try to find a 2×2 pattern - local is_sapling = function(pos, sapling) + local function is_sapling(pos, sapling) return minetest.get_node(pos).name == sapling end local p2 = {x=pos.x+1, y=pos.y, z=pos.z} @@ -1040,7 +1040,7 @@ local grow_birch = sapling_grow_action(BIRCH_TREE_ID, 1, true, false) -- pos: Position -- node: Node table of the node at this position, from minetest.get_node -- Returns true on success and false on failure -mcl_core.grow_sapling = function(pos, node) +function mcl_core.grow_sapling(pos, node) local grow if node.name == "mcl_core:sapling" then grow = grow_oak @@ -1245,7 +1245,7 @@ minetest.register_abm({ end -- Add vines below pos (if empty) - local spread_down = function(origin, target, dir, node) + local function spread_down(origin, target, dir, node) if math.random(1, 2) == 1 then if minetest.get_node(target).name == "air" then minetest.add_node(target, {name = "mcl_core:vine", param2 = node.param2}) @@ -1254,7 +1254,7 @@ minetest.register_abm({ end -- Add vines above pos if it is backed up - local spread_up = function(origin, target, dir, node) + local function spread_up(origin, target, dir, node) local vines_in_area = minetest.find_nodes_in_area({x=origin.x-4, y=origin.y-1, z=origin.z-4}, {x=origin.x+4, y=origin.y+1, z=origin.z+4}, "mcl_core:vine") -- Less then 4 vines blocks around the ticked vines block (remember the ticked block is counted by above function as well) if #vines_in_area < 5 then @@ -1273,7 +1273,7 @@ minetest.register_abm({ end end - local spread_horizontal = function(origin, target, dir, node) + local function spread_horizontal(origin, target, dir, node) local vines_in_area = minetest.find_nodes_in_area({x=origin.x-4, y=origin.y-1, z=origin.z-4}, {x=origin.x+4, y=origin.y+1, z=origin.z+4}, "mcl_core:vine") -- Less then 4 vines blocks around the ticked vines block (remember the ticked block is counted by above function as well) if #vines_in_area < 5 then @@ -1310,7 +1310,7 @@ minetest.register_abm({ }) -- Returns true of the node supports vines -mcl_core.supports_vines = function(nodename) +function mcl_core.supports_vines(nodename) local def = minetest.registered_nodes[nodename] -- Rules: 1) walkable 2) full cube return def.walkable and @@ -1530,7 +1530,7 @@ end -- -- 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, desc) +function mcl_core.register_snowed_node(itemstring_snowed, itemstring_clear, tiles, sounds, clear_colorization, desc) local def = table.copy(minetest.registered_nodes[itemstring_clear]) local create_doc_alias if def.description then @@ -1593,7 +1593,7 @@ end -- Reverts a snowed dirtlike node at pos to its original snow-less form. -- This function assumes there is no snow cover node above. This function -- MUST NOT be called if there is a snow cover node above pos. -mcl_core.clear_snow_dirt = function(pos, node) +function mcl_core.clear_snow_dirt(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}) @@ -1605,7 +1605,7 @@ end -- on_construct -- Makes constructed snowable node snowed if placed below a snow cover node. -mcl_core.on_snowable_construct = function(pos) +function mcl_core.on_snowable_construct(pos) -- Myself local node = minetest.get_node(pos) @@ -1633,7 +1633,7 @@ end -- on_construct -- Makes snowable node below snowed. -mcl_core.on_snow_construct = function(pos) +function mcl_core.on_snow_construct(pos) local npos = {x=pos.x, y=pos.y-1, z=pos.z} local node = minetest.get_node(npos) local def = minetest.registered_nodes[node.name] @@ -1643,7 +1643,7 @@ mcl_core.on_snow_construct = function(pos) end -- after_destruct -- Clears snowed dirtlike node below. -mcl_core.after_snow_destruct = function(pos) +function mcl_core.after_snow_destruct(pos) local nn = minetest.get_node(pos).name -- No-op if snow was replaced with snow if minetest.get_item_group(nn, "snow_cover") == 1 then From 211b078d3a112c47be808afe313247c8aafc5868 Mon Sep 17 00:00:00 2001 From: NO11 Date: Wed, 26 May 2021 17:51:24 +0000 Subject: [PATCH 31/38] [mcl_core] fix function codestyle in nodes_base.lua --- mods/ITEMS/mcl_core/nodes_base.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_core/nodes_base.lua b/mods/ITEMS/mcl_core/nodes_base.lua index 39015e53b..9baa6c33e 100644 --- a/mods/ITEMS/mcl_core/nodes_base.lua +++ b/mods/ITEMS/mcl_core/nodes_base.lua @@ -86,7 +86,7 @@ minetest.register_node("mcl_core:stone_with_gold", { }) local redstone_timer = 68.28 -local redstone_ore_activate = function(pos) +local function redstone_ore_activate(pos) minetest.swap_node(pos, {name="mcl_core:stone_with_redstone_lit"}) local t = minetest.get_node_timer(pos) t:start(redstone_timer) @@ -124,7 +124,7 @@ minetest.register_node("mcl_core:stone_with_redstone", { } }) -local redstone_ore_reactivate = function(pos) +local function redstone_ore_reactivate(pos) local t = minetest.get_node_timer(pos) t:start(redstone_timer) end @@ -864,7 +864,7 @@ minetest.register_node("mcl_core:packed_ice", { -- Frosted Ice (4 nodes) for i=0,3 do local ice = {} - ice.increase_age = function(pos, ice_near, first_melt) + function ice.increase_age(pos, ice_near, first_melt) -- Increase age of frosted age or turn to water source if too old local nn = minetest.get_node(pos).name local age = tonumber(string.sub(nn, -1)) From 5b433038732317304c91fa3b78505b6ebd2910ce Mon Sep 17 00:00:00 2001 From: NO11 Date: Wed, 26 May 2021 17:54:58 +0000 Subject: [PATCH 32/38] [mcl_core] fix function codestyle in nodes_climb.lua --- mods/ITEMS/mcl_core/nodes_climb.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_core/nodes_climb.lua b/mods/ITEMS/mcl_core/nodes_climb.lua index 3b2d3ab60..ad861b4f2 100644 --- a/mods/ITEMS/mcl_core/nodes_climb.lua +++ b/mods/ITEMS/mcl_core/nodes_climb.lua @@ -1,7 +1,7 @@ -- Climbable nodes local S = minetest.get_translator("mcl_core") -local rotate_climbable = function(pos, node, user, mode) +local function rotate_climbable(pos, node, user, mode) if mode == screwdriver.ROTATE_FACE then local r = screwdriver.rotate.wallmounted(pos, node, mode) node.param2 = r From 90bab9026b5f7c2b89a930368d0784f1d67f0857 Mon Sep 17 00:00:00 2001 From: NO11 Date: Wed, 26 May 2021 17:57:43 +0000 Subject: [PATCH 33/38] [mcl_core] fix function codestyle in nodes_liquid.lua --- mods/ITEMS/mcl_core/nodes_liquid.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_core/nodes_liquid.lua b/mods/ITEMS/mcl_core/nodes_liquid.lua index 99d33cf59..42276685e 100644 --- a/mods/ITEMS/mcl_core/nodes_liquid.lua +++ b/mods/ITEMS/mcl_core/nodes_liquid.lua @@ -212,7 +212,7 @@ S("• When lava is directly above water, the water turns into stone."), _mcl_hardness = -1, }) -local emit_lava_particle = function(pos) +local function emit_lava_particle(pos) local node = minetest.get_node(pos) if minetest.get_item_group(node.name, "lava_source") == 0 then return From 656891ec61412f64e3339d24e19b95954c56078a Mon Sep 17 00:00:00 2001 From: NO11 Date: Wed, 26 May 2021 18:02:28 +0000 Subject: [PATCH 34/38] [mcl_core] fix function codestyle in nodes_trees.lua --- mods/ITEMS/mcl_core/nodes_trees.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/ITEMS/mcl_core/nodes_trees.lua b/mods/ITEMS/mcl_core/nodes_trees.lua index cc64cd9cf..a72935f05 100644 --- a/mods/ITEMS/mcl_core/nodes_trees.lua +++ b/mods/ITEMS/mcl_core/nodes_trees.lua @@ -8,7 +8,7 @@ if mod_screwdriver then end -- Register tree trunk (wood) and bark -local register_tree_trunk = function(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_varient) +local function register_tree_trunk(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark, stripped_varient) minetest.register_node("mcl_core:"..subname, { description = description_trunk, _doc_items_longdesc = longdesc, @@ -91,7 +91,7 @@ local register_stripped_trunk = function(subname, description_stripped_trunk, de }) end -local register_wooden_planks = function(subname, description, tiles) +local function register_wooden_planks(subname, description, tiles) minetest.register_node("mcl_core:"..subname, { description = description, _doc_items_longdesc = doc.sub.items.temp.build, @@ -106,7 +106,7 @@ local register_wooden_planks = function(subname, description, tiles) }) end -local register_leaves = function(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance) +local function register_leaves(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance) if leafdecay_distance == nil then leafdecay_distance = 4 end @@ -173,7 +173,7 @@ local register_leaves = function(subname, description, longdesc, tiles, sapling, }) end -local register_sapling = function(subname, description, longdesc, tt_help, texture, selbox) +local function register_sapling(subname, description, longdesc, tt_help, texture, selbox) minetest.register_node("mcl_core:"..subname, { description = description, _tt_help = tt_help, From 1b0d6a2c2dffe94022c42892e84fbeb9c34b4c71 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 26 May 2021 20:48:00 +0200 Subject: [PATCH 35/38] Fix timing out of assist death message sources --- mods/HUD/mcl_death_messages/init.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mods/HUD/mcl_death_messages/init.lua b/mods/HUD/mcl_death_messages/init.lua index 0432c3488..107daa2a3 100644 --- a/mods/HUD/mcl_death_messages/init.lua +++ b/mods/HUD/mcl_death_messages/init.lua @@ -237,12 +237,10 @@ mcl_damage.register_on_damage(function(obj, damage, reason) end) minetest.register_globalstep(function(dtime) - local new_assist = {} - for obj, tbl in pairs(mcl_death_messages.assist) do tbl.timeout = tbl.timeout - dtime - if (obj:is_player() or obj:get_luaentity()) and tbl.timeout > 0 then - new_assist[obj] = tbl + if not obj:is_player() and not obj:get_luaentity() or tbl.timeout > 0 then + mcl_death_messages.assist[obj] = nil end end end) From 772f48ed58d81c44b6a9dbbb7cbfb2ad274deacc Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 26 May 2021 20:51:39 +0200 Subject: [PATCH 36/38] Fix crash / luacheck warning caused by armor with thorns level > 10 --- mods/ITEMS/mcl_armor/damage.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_armor/damage.lua b/mods/ITEMS/mcl_armor/damage.lua index f17033495..ed616397d 100644 --- a/mods/ITEMS/mcl_armor/damage.lua +++ b/mods/ITEMS/mcl_armor/damage.lua @@ -68,7 +68,7 @@ mcl_damage.register_modifier(function(obj, damage, reason) if do_irregular_damage or thorns_damage_regular < 4 and math.random() < enchantments.thorns * 0.15 then if do_irregular_damage then - thorns_damage_irregular = thorns_damage_irregular + throrns_level - 10 + thorns_damage_irregular = thorns_damage_irregular + enchantments.thorns - 10 else thorns_damage_regular = math.min(4, thorns_damage_regular + math.random(4)) end From c57ead698591ea205d184e6a84b760816daaadce Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Wed, 26 May 2021 20:56:00 +0200 Subject: [PATCH 37/38] Use next() instead of one-time loop to fix luacheck warning in mcl_util.calculate_durability --- mods/CORE/mcl_util/init.lua | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mods/CORE/mcl_util/init.lua b/mods/CORE/mcl_util/init.lua index 1ac2c1f9b..a7504af08 100644 --- a/mods/CORE/mcl_util/init.lua +++ b/mods/CORE/mcl_util/init.lua @@ -456,12 +456,7 @@ function mcl_util.calculate_durability(itemstack) end end end - if not uses then - for _, v in pairs(itemstack:get_tool_capabilities().groupcaps) do - uses = v.uses - break - end - end + uses = uses or (next(itemstack:get_tool_capabilities().groupcaps) or {}).uses end return uses or 0 From 138a3cd154ac6498cb4f829bd39390579bb383f0 Mon Sep 17 00:00:00 2001 From: epCode Date: Wed, 26 May 2021 19:13:30 -0700 Subject: [PATCH 38/38] Add in header blend file --- menu/Header.blend | Bin 0 -> 1670380 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 menu/Header.blend diff --git a/menu/Header.blend b/menu/Header.blend new file mode 100644 index 0000000000000000000000000000000000000000..78a9f6158d1bde99a24376353485d5becf84dd73 GIT binary patch literal 1670380 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 z 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

R+D(RA(!nOz$92aI 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

PHw0gB&16YXKQq@u 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