diff options
-rw-r--r-- | .editorconfig | 5 | ||||
-rw-r--r-- | components.lua | 36 | ||||
-rw-r--r-- | crafts.lua | 34 | ||||
-rw-r--r-- | formspecs.lua | 2 | ||||
-rw-r--r-- | helpers.lua | 4 | ||||
-rw-r--r-- | hooks.lua | 6 | ||||
-rw-r--r-- | init.lua | 21 | ||||
-rw-r--r-- | mod.conf | 4 |
8 files changed, 80 insertions, 32 deletions
diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e3c965 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*] +indent_style = space +indent_size = 4 diff --git a/components.lua b/components.lua index b0d997b..8f72848 100644 --- a/components.lua +++ b/components.lua @@ -5,6 +5,7 @@ local get_node = elevator.get_node local homedecor_path = minetest.get_modpath("homedecor") local mineclone_path = core.get_modpath("mcl_core") and mcl_core local default_path = core.get_modpath("default") and default +local aurum_path = core.get_modpath("aurum") and aurum local moditems = {} -- local table to hold substitutes @@ -46,7 +47,7 @@ if mineclone_path then moditems.el_motor_gfx = "elevator_motor_mcl.png" moditems.el_shaft_gfx = "elevator_shaft_mcl.png" moditems.el_box_gfx = "elevator_box_mcl.png" - + moditems.steel_block_image = "default_steel_block.png" elseif default_path then moditems.el_shaft_groups = {cracky=2,oddly_breakable_by_hand=0} -- removing ability to destroy by hand to prevent accidental breakage of whole elevators moditems.el_motor_groups = {cracky=1} @@ -56,6 +57,21 @@ elseif default_path then moditems.el_motor_gfx = "elevator_motor.png" moditems.el_shaft_gfx = "elevator_shaft.png" moditems.el_box_gfx = "elevator_box.png" + moditems.steel_block_image = "default_steel_block.png" +elseif aurum_path then + moditems.el_shaft_groups = {dig_pick = 2} + moditems.el_motor_groups = {dig_pick = 1} + moditems.elevator_groups = {dig_pick = 1} + moditems.elevator_special_groups = {not_in_creative_inventory=1} + moditems.sounds_stone = aurum.sounds.stone + moditems.el_motor_gfx = "elevator_motor.png" + moditems.el_shaft_gfx = "elevator_shaft.png" + moditems.el_box_gfx = "elevator_box.png" + moditems.steel_block_image = "aurum_ore_white.png^[colorize:#cbcdcd:255^aurum_ore_bumps.png^aurum_ore_block.png" +end + +if minetest.global_exists("screwdriver") then + moditems.on_rotate_disallow = screwdriver.disallow end minetest.register_node("elevator:shaft", { @@ -63,7 +79,7 @@ minetest.register_node("elevator:shaft", { tiles = { moditems.el_shaft_gfx }, drawtype = "nodebox", paramtype = "light", - on_rotate = screwdriver.disallow, + on_rotate = moditems.on_rotate_disallow, sunlight_propagates = true, groups = moditems.el_shaft_groups, sounds = moditems.sounds_stone(), @@ -100,8 +116,8 @@ minetest.register_node("elevator:shaft", { minetest.register_node("elevator:motor", { description = "Elevator Motor", tiles = { - "default_steel_block.png", - "default_steel_block.png", + moditems.steel_block_image, + moditems.steel_block_image, moditems.el_motor_gfx, moditems.el_motor_gfx, moditems.el_motor_gfx, @@ -162,8 +178,8 @@ minetest.register_node("elevator:elevator_box", { }, tiles = { - "default_steel_block.png", - "default_steel_block.png", + moditems.steel_block_image, + moditems.steel_block_image, moditems.el_box_gfx, moditems.el_box_gfx, moditems.el_box_gfx, @@ -212,7 +228,7 @@ for _,mode in ipairs({"on", "off"}) do sunlight_propagates = false, paramtype = "light", paramtype2 = "facedir", - on_rotate = screwdriver.disallow, + on_rotate = moditems.on_rotate_disallow, selection_box = { type = "fixed", @@ -230,8 +246,8 @@ for _,mode in ipairs({"on", "off"}) do }, tiles = on and { - "default_steel_block.png", - "default_steel_block.png", + moditems.steel_block_image, + moditems.steel_block_image, moditems.el_box_gfx, moditems.el_box_gfx, moditems.el_box_gfx, @@ -288,7 +304,7 @@ for _,mode in ipairs({"on", "off"}) do elevator.formspecs[sender:get_player_name()] = {pos} local motorhash = meta:get_string("motor") if on and elevator.motors[motorhash] then - if vector.distance(sender:getpos(), pos) > 1 or minetest.get_node(sender:getpos()).name ~= nodename then + if vector.distance(sender:get_pos(), pos) > 1 or minetest.get_node(sender:get_pos()).name ~= nodename then minetest.chat_send_player(sender:get_player_name(), "You are not inside the booth.") return end @@ -2,10 +2,11 @@ local technic_path = minetest.get_modpath("technic") local chains_path = minetest.get_modpath("chains") local mineclone_path = core.get_modpath("mcl_core") and mcl_core +local aurum_path = core.get_modpath("aurum") and aurum if mineclone_path then minetest.register_craft({ - output = "elevator:elevator", + output = "elevator:elevator_off", recipe = { {"mcl_core:iron_ingot", "mcl_core:paper", "mcl_core:iron_ingot"}, {"mcl_core:iron_ingot", "mcl_core:gold_ingot", "mcl_core:iron_ingot"}, @@ -29,10 +30,35 @@ if mineclone_path then {"mcl_core:paper", "mcl_core:gold_ingot", "mcl_core:paper"} }, }) +elseif aurum_path then + minetest.register_craft({ + output = "elevator:elevator_off", + recipe = { + {"aurum_ore:iron_ingot", "group:glass", "aurum_ore:iron_ingot"}, + {"aurum_ore:iron_ingot", "aurum_ore:mana_bean", "aurum_ore:iron_ingot"}, + {"aurum_ore:iron_ingot", "group:glass", "aurum_ore:iron_ingot"}, + }, + }) + minetest.register_craft({ + output = "elevator:shaft", + recipe = { + {"group:glass", "aurum_ore:iron_ingot"}, + {"group:wood", "group:glass"}, + }, + }) + + minetest.register_craft({ + output = "elevator:motor", + recipe = { + {"aurum_ore:gold_ingot", "aurum_ore:iron_ingot", "aurum_ore:gold_ingot"}, + {"aurum_ore:iron_block", "aurum_cook:oven", "aurum_ore:iron_block"}, + {"aurum_ore:gold_ingot", "aurum_ore:mana_bean", "aurum_ore:gold_ingot"} + }, + }) elseif technic_path and chains_path then minetest.register_craft({ - output = "elevator:elevator", + output = "elevator:elevator_off", recipe = { {"technic:cast_iron_ingot", "chains:chain", "technic:cast_iron_ingot"}, {"technic:cast_iron_ingot", "default:mese_crystal", "technic:cast_iron_ingot"}, @@ -59,7 +85,7 @@ elseif technic_path and chains_path then elseif technic_path and farming and farming.mod and ( farming.mod == "redo" or farming.mod == "undo" ) then -- add alternative recipe with hemp rope minetest.register_craft({ - output = "elevator:elevator", + output = "elevator:elevator_off", recipe = { {"technic:cast_iron_ingot", "farming:hemp_rope", "technic:cast_iron_ingot"}, {"technic:cast_iron_ingot", "default:mese_crystal", "technic:cast_iron_ingot"}, @@ -88,7 +114,7 @@ elseif technic_path and farming and farming.mod and ( farming.mod == "redo" or f -- Recipes for default dependency fallback. else minetest.register_craft({ - output = "elevator:elevator", + output = "elevator:elevator_off", recipe = { {"default:steel_ingot", "farming:cotton", "default:steel_ingot"}, {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, diff --git a/formspecs.lua b/formspecs.lua index 64bd020..ecb6ebe 100644 --- a/formspecs.lua +++ b/formspecs.lua @@ -22,7 +22,7 @@ minetest.register_on_player_receive_fields(function(sender, formname, fields) return true end -- Double check if it's ok to go. - if vector.distance(sender:getpos(), pos) > 1 then + if vector.distance(sender:get_pos(), pos) > 1 then return true end if fields.target then diff --git a/helpers.lua b/helpers.lua index 2df4253..5215c1a 100644 --- a/helpers.lua +++ b/helpers.lua @@ -7,7 +7,7 @@ elevator.teleport_player_from_elevator = function(player) end return minetest.registered_nodes[minetest.get_node(pos).name].walkable end - local pos = vector.round(player:getpos()) + local pos = vector.round(player:get_pos()) local node = minetest.get_node(pos) -- elevator_off is like a shaft, so the player would already be falling. if node.name == "elevator:elevator_on" then @@ -16,7 +16,7 @@ elevator.teleport_player_from_elevator = function(player) -- local front_below = vector.subtract(front, {x=0, y=1, z=0}) -- If the front isn't solid, it's ok to teleport the player. if not solid(front) and not solid(front_above) then - player:setpos(front) + player:set_pos(front) end end end @@ -12,7 +12,7 @@ minetest.register_globalstep(function(dtime) -- Only count riders who are still logged in. local newriding = {} for _,p in ipairs(minetest.get_connected_players()) do - local pos = p:getpos() + local pos = p:get_pos() local name = p:get_player_name() newriding[name] = elevator.riding[name] -- If the player is indeed riding, update their position. @@ -23,7 +23,7 @@ minetest.register_globalstep(function(dtime) elevator.riding = newriding for name,r in pairs(elevator.riding) do -- If the box is no longer loaded or existent, create another. - local ok = r.box and r.box.getpos and r.box:getpos() and r.box:get_luaentity() and r.box:get_luaentity().attached == name + local ok = r.box and r.box.get_pos and r.box:get_pos() and r.box:get_luaentity() and r.box:get_luaentity().attached == name if not ok then minetest.log("action", "[elevator] "..minetest.pos_to_string(r.pos).." created due to lost rider.") minetest.after(0, elevator.create_box, r.motor, r.pos, r.target, minetest.get_player_by_name(name)) @@ -36,7 +36,7 @@ minetest.register_globalstep(function(dtime) end elevator.lastboxes[motor] = elevator.lastboxes[motor] and math.min(elevator.lastboxes[motor], elevator.PTIMEOUT) or elevator.PTIMEOUT elevator.lastboxes[motor] = math.max(elevator.lastboxes[motor] - 1, 0) - local pos = obj:getpos() + local pos = obj:get_pos() if pos then for _,object in ipairs(minetest.get_objects_inside_radius(pos, 5)) do if object.is_player and object:is_player() then @@ -34,9 +34,9 @@ local get_node = elevator.get_node elevator.create_box = function(motorhash, pos, target, sender) -- First create the box. local obj = minetest.add_entity(pos, "elevator:box") - obj:setpos(pos) + obj:set_pos(pos) -- Attach the player. - sender:setpos(pos) + sender:set_pos(pos) sender:set_attach(obj, "", {x=0, y=9, z=0}, {x=0, y=0, z=0}) sender:set_eye_offset({x=0, y=-9, z=0},{x=0, y=-9, z=0}) sender:set_properties({visual_size = {x=elevator.VISUAL_INCREASE, y=elevator.VISUAL_INCREASE}}) @@ -61,8 +61,9 @@ elevator.create_box = function(motorhash, pos, target, sender) end -- Set the speed. - obj:setvelocity({x=0, y=speed*obj:get_luaentity().vmult, z=0}) - obj:setacceleration({x=0, y=elevator.ACCEL*obj:get_luaentity().vmult, z=0}) + obj:set_velocity({x=0, y=speed*obj:get_luaentity().vmult, z=0}) + obj:set_acceleration({x=0, y=elevator.ACCEL*obj:get_luaentity().vmult, z=0}) + -- Set the tables. elevator.boxes[motorhash] = obj elevator.riding[sender:get_player_name()] = { @@ -175,11 +176,11 @@ elevator.unbuild = function(pos, add) local motorhash = elevator.locate_motor(p2) elevator.build_motor(motorhash) -- If there's a box below this point, break it. - if elevator.boxes[motorhash] and elevator.boxes[motorhash]:getpos() and p2.y >= elevator.boxes[motorhash]:getpos().y then + if elevator.boxes[motorhash] and elevator.boxes[motorhash]:get_pos() and p2.y >= elevator.boxes[motorhash]:get_pos().y then elevator.boxes[motorhash] = nil end -- If the box does not exist, just clear it. - if elevator.boxes[motorhash] and not elevator.boxes[motorhash]:getpos() then + if elevator.boxes[motorhash] and not elevator.boxes[motorhash]:get_pos() then elevator.boxes[motorhash] = nil end end, table.copy(pos), add) @@ -244,9 +245,9 @@ local function detach(self, pos) armor:update_player_visuals(player) end if pos then - player:setpos(pos) + player:set_pos(pos) minetest.after(0.1, function(pl, p) - pl:setpos(p) + pl:set_pos(p) end, player, pos) end elevator.riding[self.attached] = nil @@ -274,7 +275,7 @@ local box_entity = { end, on_step = function(self, dtime) - local pos = self.object:getpos() + local pos = self.object:get_pos() -- First, check if this box needs removed. -- If the motor has a box and it isn't this box. if elevator.boxes[self.motor] and elevator.boxes[self.motor] ~= self.object then @@ -305,7 +306,7 @@ local box_entity = { return end - minetest.get_player_by_name(self.attached):setpos(pos) + minetest.get_player_by_name(self.attached):set_pos(pos) -- Ensure lastpos is set to something. self.lastpos = self.lastpos or pos @@ -1,3 +1,3 @@ name = elevator -description = An entity-based elevator allowing fast realtime travel in Minetest. Supports Minetest Game and MineClone2. -optional_depends = default, technic, homedecor, chains, farming, mcl_core, mcl_sounds +description = An entity-based elevator allowing fast realtime travel in Minetest. Supports Minetest Game, MineClone2, and Aurum +optional_depends = default, technic, homedecor, chains, farming, mcl_core, mcl_sounds, aurum, screwdriver |