From 8208c8c27576ff0f05c748abaa8b2f70c7d8a956 Mon Sep 17 00:00:00 2001 From: kaadmy Date: Wed, 10 Feb 2016 13:18:54 -0800 Subject: [PATCH] some code cleanup and increase the lumien activation range --- mods/default/model.lua | 113 +++++++++++++++++++++-------------------- mods/lumien/init.lua | 9 ++-- mods/nav/map.lua | 12 ++--- 3 files changed, 71 insertions(+), 63 deletions(-) diff --git a/mods/default/model.lua b/mods/default/model.lua index ac2b9a2..fbffad9 100644 --- a/mods/default/model.lua +++ b/mods/default/model.lua @@ -8,67 +8,70 @@ local player_animation_speed = 33 -- Player animation blending -- Note: This is currently broken due to a bug in Irrlicht, leave at 0 -local animation_blend=0 +local animation_blend = 0 -default.registered_player_models={} +default.registered_player_models = {} -- Local for speed. -local models=default.registered_player_models +local models = default.registered_player_models function default.player_register_model(name, def) - models[name]=def + models[name] = def end -- Default player appearance default.player_register_model( "character.b3d", { - animation_speed=player_animation_speed, - textures={"character.png"}, - animations={ + animation_speed = player_animation_speed, + textures = {"character.png"}, + animations = { -- Standard animations. - stand ={x =0, y =79}, - lay ={x=162, y=166}, - walk ={x=168, y=187}, - mine ={x=189, y=198}, - walk_mine={x=200, y=219}, + stand = {x = 0, y = 79}, + lay = {x = 162, y = 166}, + walk = {x = 168, y = 187}, + mine = {x = 189, y = 198}, + walk_mine = {x = 200, y = 219}, -- Extra animations (not currently used by the game). - sit ={ x =81, y=160}, + sit = { x = 81, y = 160}, }, }) -- Player stats and animations -local player_model={} -local player_textures={} -local player_anim={} -local player_sneak={} -default.player_attached={} +local player_model = {} +local player_textures = {} +local player_anim = {} +local player_sneak = {} +default.player_attached = {} function default.player_get_animation(player) - local name=player:get_player_name() + local name = player:get_player_name() return { - model=player_model[name], - textures=player_textures[name], - animation=player_anim[name], + model = player_model[name], + textures = player_textures[name], + animation = player_anim[name], } end -- Called when a player's appearance needs to be updated function default.player_set_model(player, model_name) - local name=player:get_player_name() - local model=models[model_name] + local name = player:get_player_name() + local model = models[model_name] + if player_model[name] == model_name then return end + player:set_properties( { - mesh=model_name, - textures=player_textures[name] or model.textures, - visual="mesh", - visual_size=model.visual_size or {x=1, y=1}, + mesh = model_name, + textures = player_textures[name] or model.textures, + visual = "mesh", + visual_size = model.visual_size or {x = 1, y = 1}, }) default.player_set_animation(player, "stand") - player_model[name]=model_name + + player_model[name] = model_name end function default.player_get_textures(player) @@ -80,55 +83,57 @@ function default.player_get_textures(player) end function default.player_set_textures(player, textures) - local name=player:get_player_name() - player_textures[name]=textures - player:set_properties({textures=textures,}) + local name = player:get_player_name() + + player_textures[name] = textures + player:set_properties({textures = textures,}) end function default.player_set_animation(player, anim_name, speed) - local name=player:get_player_name() + local name = player:get_player_name() + if player_anim[name] == anim_name then return end - local model=player_model[name] and models[player_model[name]] + local model = player_model[name] and models[player_model[name]] if not (model and model.animations[anim_name]) then return end - local anim=model.animations[anim_name] - player_anim[name]=anim_name + local anim = model.animations[anim_name] + player_anim[name] = anim_name player:set_animation(anim, speed or model.animation_speed, animation_blend) end -- Update appearance when the player joins minetest.register_on_joinplayer( function(player) - default.player_attached[player:get_player_name()]=false + default.player_attached[player:get_player_name()] = false default.player_set_model(player, "character.b3d") - player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, player_animation_speed) + player:set_local_animation({x = 0, y = 79}, {x = 168, y = 187}, {x = 189, y = 198}, {x = 200, y = 219}, player_animation_speed) end) minetest.register_on_leaveplayer( function(player) - local name=player:get_player_name() - player_model[name]=nil - player_anim[name]=nil - player_textures[name]=nil + local name = player:get_player_name() + player_model[name] = nil + player_anim[name] = nil + player_textures[name] = nil end) -- Localize for better performance. -local player_set_animation=default.player_set_animation -local player_attached=default.player_attached +local player_set_animation = default.player_set_animation +local player_attached = default.player_attached -- Check each player and apply animations minetest.register_globalstep( function(dtime) for _, player in pairs(minetest.get_connected_players()) do - local name=player:get_player_name() - local model_name=player_model[name] - local model=model_name and models[model_name] - local controls=player:get_player_control() + local name = player:get_player_name() + local model_name = player_model[name] + local model = model_name and models[model_name] + local controls = player:get_player_control() if controls.sneak then player:set_nametag_attributes({color = {a = 30, r = 255, g = 255, b = 255}}) @@ -137,17 +142,17 @@ minetest.register_globalstep( end if model and not player_attached[name] then - local walking=false - local animation_speed_mod=model.animation_speed or player_animation_steed + local walking = false + local animation_speed_mod = model.animation_speed or player_animation_steed -- Determine if the player is walking if controls.up or controls.down or controls.left or controls.right then - walking=true + walking = true end -- Determine if the player is sneaking, and reduce animation speed if so if controls.sneak then - animation_speed_mod=animation_speed_mod * 0.7 + animation_speed_mod = animation_speed_mod * 0.7 end -- Apply animations based on what the player is doing @@ -155,8 +160,8 @@ minetest.register_globalstep( player_set_animation(player, "lay") elseif walking then -- walking if player_sneak[name] ~= controls.sneak then - player_anim[name]=nil - player_sneak[name]=controls.sneak + player_anim[name] = nil + player_sneak[name] = controls.sneak end if controls.LMB then -- walking and mining player_set_animation(player, "walk_mine", animation_speed_mod) diff --git a/mods/lumien/init.lua b/mods/lumien/init.lua index a2ab14d..cd12bd1 100644 --- a/mods/lumien/init.lua +++ b/mods/lumien/init.lua @@ -3,6 +3,9 @@ -- By Kaadmy, for Pixture -- +local lumien_on_radius = 2 +local lumien_off_radius = 4 + minetest.register_node( "lumien:crystal_on", { @@ -112,7 +115,7 @@ minetest.register_abm( ) local ok = true - for _,object in ipairs(minetest.get_objects_inside_radius(pos, 4)) do + for _,object in ipairs(minetest.get_objects_inside_radius(pos, lumien_off_radius)) do if object:is_player() then ok = false end @@ -135,8 +138,8 @@ local function step(dtime) local pos = player:getpos() util.nodefunc( - {x = pos.x-1, y = pos.y-1, z = pos.z-1}, - {x = pos.x+1, y = pos.y+1, z = pos.z+1}, + {x = pos.x-lumien_on_radius, y = pos.y-lumien_on_radius, z = pos.z-lumien_on_radius}, + {x = pos.x+lumien_on_radius, y = pos.y+lumien_on_radius, z = pos.z+lumien_on_radius}, "lumien:crystal_off", function(pos) local node = minetest.get_node(pos) diff --git a/mods/nav/map.lua b/mods/nav/map.lua index 2dff4f1..59dd7de 100644 --- a/mods/nav/map.lua +++ b/mods/nav/map.lua @@ -5,7 +5,7 @@ nav.map_radius = 256 nav.waypoints = {} local form_nav = default.ui.get_page("core") -default.ui.register_page("nav_nav", form_nav) +default.ui.register_page("nav:nav", form_nav) local open_formspecs = {} @@ -61,11 +61,11 @@ function nav.show_map(player) local pos = player:getpos() - local form = default.ui.get_page("nav_nav") + local form = default.ui.get_page("nav:nav") form = form .. "field[-1,-1;0,0;nav_map_tracker;;]" - form = form .. "label[0.25,0.25;"..minetest.formspec_escape(name).." ("..math.floor(pos.x+0.5)..", "..math.floor(pos.y)..", "..math.floor(pos.z+0.5)..")]" + form = form .. "label[0.25,0.25;"..minetest.formspec_escape(name).." (x: "..math.floor(pos.x+0.5)..", y: "..math.floor(pos.y)..", z: "..math.floor(pos.z+0.5)..")]" form = form .. "image[0.5,3;6,6;nav_background.png]" @@ -86,18 +86,18 @@ function nav.show_map(player) form = form .. "label[6.25,6.6;"..nav.map_radius.."m]" form = form .. "image[5.5,5.5;3,3;"..minetest.formspec_escape("nav_legend.png^[transformFX").."]" - minetest.show_formspec(name, "nav_map", form) + minetest.show_formspec(name, "nav:map", form) end local function recieve_fields(player, form_name, fields) - if form_name == "nav_map" then + if form_name == "nav:map" then if fields.quit or fields.nav_map_tracker then open_formspecs[player:get_player_name()] = false end end end -if not (minetest.is_singleplayer() or not minetest.setting_get_pos("static_spawnpoint")) then +if minetest.setting_get_pos("static_spawnpoint") and (not minetest.is_singleplayer()) then minetest.after( 1.0, function()