From 94779af9b0efe0da9463fdf12898cdec14d24577 Mon Sep 17 00:00:00 2001 From: Milan2018 Date: Sun, 16 May 2021 16:56:10 +0200 Subject: [PATCH] new --- elevator/LICENSE.txt | 15 + elevator/README.md | 7 + elevator/depends.txt | 5 + elevator/init.lua | 966 +++++++++++++++++++++++++++ elevator/mod.conf | 3 + elevator/screenshot.png | Bin 0 -> 98660 bytes elevator/textures/elevator_box.png | Bin 0 -> 290 bytes elevator/textures/elevator_motor.png | Bin 0 -> 318 bytes elevator/textures/elevator_shaft.png | Bin 0 -> 267 bytes homedecor_modpack/nodes.txt | 4 + 10 files changed, 1000 insertions(+) create mode 100644 elevator/LICENSE.txt create mode 100644 elevator/README.md create mode 100644 elevator/depends.txt create mode 100644 elevator/init.lua create mode 100644 elevator/mod.conf create mode 100644 elevator/screenshot.png create mode 100644 elevator/textures/elevator_box.png create mode 100644 elevator/textures/elevator_motor.png create mode 100644 elevator/textures/elevator_shaft.png create mode 100644 homedecor_modpack/nodes.txt diff --git a/elevator/LICENSE.txt b/elevator/LICENSE.txt new file mode 100644 index 0000000..2a0794c --- /dev/null +++ b/elevator/LICENSE.txt @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2017 Beha + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/elevator/README.md b/elevator/README.md new file mode 100644 index 0000000..999e65c --- /dev/null +++ b/elevator/README.md @@ -0,0 +1,7 @@ +# Realtime Elevators for Minetest + +## Dependencies +This mod has no dependencies other than default, but has recipes designed for use with technic and either homedecor/chains (for chains) or farming redo (for rope) and will detect if those are installed. + +## Usage +Each shaft begins with a motor, and extends down through shaft and elevator nodes. Each elevator node can be used to travel to any other elevator node below the motor and through an unbroken shaft. Only one player can use each shaft at once. diff --git a/elevator/depends.txt b/elevator/depends.txt new file mode 100644 index 0000000..6796bf4 --- /dev/null +++ b/elevator/depends.txt @@ -0,0 +1,5 @@ +default +technic? +homedecor? +chains? +farming? diff --git a/elevator/init.lua b/elevator/init.lua new file mode 100644 index 0000000..84ea482 --- /dev/null +++ b/elevator/init.lua @@ -0,0 +1,966 @@ +-- Initial speed of a box. +local SPEED = 10 +-- Acceleration of a box. +local ACCEL = 0.1 +-- Elevator interface/database version. +local VERSION = 8 +-- Maximum time a box can go without players nearby. +local PTIMEOUT = 120 + +-- Detect optional mods. +local technic_path = minetest.get_modpath("technic") +local chains_path = minetest.get_modpath("chains") +local homedecor_path = minetest.get_modpath("homedecor") +local armor_path = minetest.get_modpath("3d_armor") + +-- Central "network" table. +local elevator = { + motors = {}, +} + +local str = minetest.get_mod_storage and minetest.get_mod_storage() + +local elevator_file = minetest.get_worldpath() .. "/elevator" + +local function load_elevator() + if str and ((str.contains and str:contains("data")) or (str:get_string("data") and str:get_string("data") ~= "")) then + elevator = minetest.deserialize(str:get_string("data")) + return + end + local file = io.open(elevator_file) + if file then + elevator = minetest.deserialize(file:read("*all")) or {} + file:close() + end +end + +local function save_elevator() + if str then + str:set_string("data", minetest.serialize(elevator)) + return + end + local f = io.open(elevator_file, "w") + f:write(minetest.serialize(elevator)) + f:close() +end + +load_elevator() + +-- Elevator boxes in action. +local boxes = {} +-- Player formspecs. +local formspecs = {} +-- Player near box timeout. +local lastboxes = {} +-- Players riding boxes. +local riding = {} +-- Globalstep timer. +local time = 0 + +-- Helper function to read unloaded nodes. +local function get_node(pos) + local node = minetest.get_node_or_nil(pos) + if node then return node end + local _,_ = VoxelManip():read_from_map(pos, pos) + return minetest.get_node_or_nil(pos) +end + +-- Use homedecor's placeholder if possible. +local placeholder = homedecor_path and "homedecor:expansion_placeholder" or "elevator:placeholder" +if homedecor_path then + minetest.register_alias("elevator:placeholder", "homedecor:expansion_placeholder") +else + -- Placeholder node, in the style of homedecor. + minetest.register_node(placeholder, { + description = "Expansion Placeholder", + selection_box = { + type = "fixed", + fixed = {0, 0, 0, 0, 0, 0}, + }, + groups = { + not_in_creative_inventory=1 + }, + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + + walkable = false, + buildable_to = false, + is_ground_content = false, + + on_dig = function(pos, node, player) + minetest.remove_node(pos) + minetest.set_node(pos, {name=placeholder}) + end + }) +end + +local VISUAL_INCREASE = 1.75 + +-- Cause to ride beginning at and targetting . +local function create_box(motorhash, pos, target, sender) + -- First create the box. + local obj = minetest.add_entity(pos, "elevator:box") + obj:setpos(pos) + -- Attach the player. + sender:setpos(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=VISUAL_INCREASE, y=VISUAL_INCREASE}}) + if armor_path then + armor:update_player_visuals(sender) + end + -- Set the box properties. + obj:get_luaentity().motor = motorhash + obj:get_luaentity().uid = math.floor(math.random() * 1000000) + obj:get_luaentity().attached = sender:get_player_name() + obj:get_luaentity().start = pos + obj:get_luaentity().target = target + obj:get_luaentity().halfway = {x=pos.x, y=(pos.y+target.y)/2, z=pos.z} + obj:get_luaentity().vmult = (target.y < pos.y) and -1 or 1 + -- Set the speed. + obj:setvelocity({x=0, y=SPEED*obj:get_luaentity().vmult, z=0}) + obj:setacceleration({x=0, y=ACCEL*obj:get_luaentity().vmult, z=0}) + -- Set the tables. + boxes[motorhash] = obj + riding[sender:get_player_name()] = { + motor = motorhash, + pos = pos, + target = target, + box = obj, + } + return obj +end + +-- Try to teleport player away from any closed (on) elevator node. +local function teleport_player_from_elevator(player) + local function solid(pos) + if not minetest.registered_nodes[minetest.get_node(pos).name] then + return true + end + return minetest.registered_nodes[minetest.get_node(pos).name].walkable + end + local pos = vector.round(player:getpos()) + 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 + local front = vector.subtract(pos, minetest.facedir_to_dir(node.param2)) + local front_above = vector.add(front, {x=0, y=1, z=0}) + 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) + end + end +end + +minetest.register_globalstep(function(dtime) + -- Don't want to run this too often. + time = time + dtime + if time < 0.5 then + return + end + time = 0 + -- Only count riders who are still logged in. + local newriding = {} + for _,p in ipairs(minetest.get_connected_players()) do + local pos = p:getpos() + local name = p:get_player_name() + newriding[name] = riding[name] + -- If the player is indeed riding, update their position. + if newriding[name] then + newriding[name].pos = pos + end + end + riding = newriding + for name,r in pairs(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 + if not ok then + minetest.log("action", "[elevator] "..minetest.pos_to_string(r.pos).." created due to lost rider.") + minetest.after(0, create_box, r.motor, r.pos, r.target, minetest.get_player_by_name(name)) + end + end + -- Ensure boxes are deleted after seconds if there are no players nearby. + for motor,obj in pairs(boxes) do + if type(obj) ~= "table" then + return + end + lastboxes[motor] = lastboxes[motor] and math.min(lastboxes[motor], PTIMEOUT) or PTIMEOUT + lastboxes[motor] = math.max(lastboxes[motor] - 1, 0) + local pos = obj:getpos() + if pos then + for _,object in ipairs(minetest.get_objects_inside_radius(pos, 5)) do + if object.is_player and object:is_player() then + lastboxes[motor] = PTIMEOUT + break + end + end + if lastboxes[motor] < 1 then + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to lack of players.") + boxes[motor] = false + end + else + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to lack of position during player check.") + boxes[motor] = false + end + end +end) + +minetest.register_on_leaveplayer(function(player) + -- We don't want players potentially logging into open elevators. + teleport_player_from_elevator(player) +end) + +local function phash(pos) + return minetest.pos_to_string(pos) +end + +local function punhash(pos) + return minetest.string_to_pos(pos) +end + +-- Starting from , locate a motor hash. +local function locate_motor(pos) + local p = vector.new(pos) + while true do + local node = get_node(p) + if node.name == "elevator:elevator_on" or node.name == "elevator:elevator_off" then + p.y = p.y + 2 + elseif node.name == "elevator:shaft" then + p.y = p.y + 1 + elseif node.name == "elevator:motor" then + return phash(p) + else + return nil + end + end +end + +local function build_motor(hash) + local need_saving = false + local motor = elevator.motors[hash] + -- Just ignore motors that don't exist. + if not motor then + return + end + local p = punhash(hash) + local node = get_node(p) + -- And ignore motors that aren't motors. + if node.name ~= "elevator:motor" then + return + end + p.y = p.y - 1 + motor.elevators = {} + motor.pnames = {} + motor.labels = {} + -- Run down through the shaft, storing information about elevators. + while true do + local node = get_node(p) + if node.name == "elevator:shaft" then + p.y = p.y - 1 + else + p.y = p.y - 1 + local node = get_node(p) + if node.name == "elevator:elevator_on" or node.name == "elevator:elevator_off" then + table.insert(motor.elevators, phash(p)) + table.insert(motor.pnames, tostring(p.y)) + table.insert(motor.labels, "") + p.y = p.y - 1 + need_saving = true + else + break + end + end + end + -- Set the elevators fully. + for i,m in ipairs(motor.elevators) do + local pos = punhash(m) + local meta = minetest.get_meta(pos) + meta:set_int("version", VERSION) + if meta:get_string("motor") ~= hash then + build_motor(meta:get_string("motor")) + end + motor.labels[i] = meta:get_string("label") + meta:set_string("motor", hash) + if motor.labels[i] ~= meta:get_string("infotext") then + meta:set_string("infotext", motor.labels[i]) + end + end + if need_saving then + save_elevator() + end +end + +local function unbuild(pos, add) + local need_saving = false + local p = table.copy(pos) + p.y = p.y - 1 + -- Loop down through the network, set any elevators below this to the off position. + while true do + local node = get_node(p) + if node.name == "elevator:shaft" then + p.y = p.y - 1 + else + p.y = p.y - 1 + local node = get_node(p) + if node.name == "elevator:elevator_on" or node.name == "elevator:elevator_off" then + local meta = minetest.get_meta(p) + meta:set_string("motor", "") + p.y = p.y - 1 + else + break + end + end + end + -- After a short delay, build the motor and handle box removal. + minetest.after(0.01, function(p2, add) + if not p2 or not add then + return + end + p2.y = p2.y + add + local motorhash = locate_motor(p2) + build_motor(motorhash) + -- If there's a box below this point, break it. + if boxes[motorhash] and boxes[motorhash]:getpos() and p2.y >= boxes[motorhash]:getpos().y then + boxes[motorhash] = nil + end + -- If the box does not exist, just clear it. + if boxes[motorhash] and not boxes[motorhash]:getpos() then + boxes[motorhash] = nil + end + end, table.copy(pos), add) +end + +minetest.register_node("elevator:motor", { + description = "Elevator Motor", + tiles = { + "default_steel_block.png", + "default_steel_block.png", + "elevator_motor.png", + "elevator_motor.png", + "elevator_motor.png", + "elevator_motor.png", + }, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function(pos, placer, itemstack) + -- Set up the motor table. + elevator.motors[phash(pos)] = { + elevators = {}, + pnames = {}, + labels = {}, + } + save_elevator() + build_motor(phash(pos)) + end, + on_destruct = function(pos) + -- Destroy everything related to this motor. + boxes[phash(pos)] = nil + elevator.motors[phash(pos)] = nil + save_elevator() + end, +}) + +for _,mode in ipairs({"on", "off"}) do + local nodename = "elevator:elevator_"..mode + local on = (mode == "on") + local box + local cbox + if on then + -- Active elevators have a ceiling and floor. + box = { + + { 0.48, -0.5,-0.5, 0.5, 1.5, 0.5}, + {-0.5 , -0.5, 0.48, 0.48, 1.5, 0.5}, + {-0.5, -0.5,-0.5 ,-0.48, 1.5, 0.5}, + + { -0.5,-0.5,-0.5,0.5,-0.48, 0.5}, + { -0.5, 1.45,-0.5,0.5, 1.5, 0.5}, + } + cbox = table.copy(box) + -- But you can enter them from the top. + cbox[5] = nil + else + -- Inactive elevators are almost like shafts. + box = { + + { 0.48, -0.5,-0.5, 0.5, 1.5, 0.5}, + {-0.5 , -0.5, 0.48, 0.48, 1.5, 0.5}, + {-0.5, -0.5,-0.5 ,-0.48, 1.5, 0.5}, + {-0.5 , -0.5, -0.48, 0.5, 1.5, -0.5}, + } + cbox = box + end + minetest.register_node(nodename, { + description = "Elevator", + drawtype = "nodebox", + sunlight_propagates = false, + paramtype = "light", + paramtype2 = "facedir", + on_rotate = screwdriver.disallow, + + selection_box = { + type = "fixed", + fixed = box, + }, + + collision_box = { + type = "fixed", + fixed = cbox, + }, + + node_box = { + type = "fixed", + fixed = box, + }, + + tiles = on and { + "default_steel_block.png", + "default_steel_block.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + } or { + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + }, + groups = {cracky=1, choppy=1, snappy=1}, + drop = "elevator:elevator_off", + + -- Emit a bit of light when active. + light_source = (on and 4 or nil), + + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos) + meta:set_int("version", VERSION) + + -- Add a placeholder to avoid nodes being placed in the top. + local p = vector.add(pos, {x=0, y=1, z=0}) + local p2 = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.set_node(p, {name=placeholder, paramtype2="facedir", param2=p2}) + + -- Try to build a motor above. + local motor = locate_motor(pos) + if motor then + build_motor(motor) + end + end, + + after_dig_node = function(pos, node, meta, digger) + unbuild(pos, 2) + end, + + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(vector.add(pos, {x=0, y=1, z=0})) + if (node ~= nil and node.name ~= "air" and node.name ~= placeholder) then + return + end + return minetest.item_place(itemstack, placer, pointed_thing) + end, + + on_rightclick = function(pos, node, sender) + if not sender or not sender:is_player() then + return + end + local formspec + local meta = minetest.get_meta(pos) + formspecs[sender:get_player_name()] = {pos} + if on then + if vector.distance(sender:getpos(), pos) > 1 or minetest.get_node(sender:getpos()).name ~= nodename then + minetest.chat_send_player(sender:get_player_name(), "You are not inside the booth.") + return + end + -- Build the formspec from the motor table. + local tpnames = {} + local tpnames_l = {} + local motorhash = meta:get_string("motor") + local motor = elevator.motors[motorhash] + for ji,jv in ipairs(motor.pnames) do + if tonumber(jv) ~= pos.y then + table.insert(tpnames, jv) + table.insert(tpnames_l, (motor.labels[ji] and motor.labels[ji] ~= "") and (jv.." - "..minetest.formspec_escape(motor.labels[ji])) or jv) + end + end + formspecs[sender:get_player_name()] = {pos, tpnames} + if #tpnames > 0 then + if not minetest.is_protected(pos, sender:get_player_name()) then + formspec = "size[4,6]" + .."label[0,0;Click once to travel.]" + .."textlist[-0.1,0.5;4,4;target;"..table.concat(tpnames_l, ",").."]" + .."field[0.25,5.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]" + .."button_exit[-0.05,5.5;4,1;setlabel;Set label]" + else + formspec = "size[4,4.4]" + .."label[0,0;Click once to travel.]" + .."textlist[-0.1,0.5;4,4;target;"..table.concat(tpnames_l, ",").."]" + end + else + if not minetest.is_protected(pos, sender:get_player_name()) then + formspec = "size[4,2]" + .."label[0,0;No targets available.]" + .."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]" + .."button_exit[-0.05,1.5;4,1;setlabel;Set label]" + else + formspec = "size[4,0.4]" + .."label[0,0;No targets available.]" + end + end + minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec) + elseif not elevator.motors[meta:get_string("motor")] then + if not minetest.is_protected(pos, sender:get_player_name()) then + formspec = "size[4,2]" + .."label[0,0;This elevator is inactive.]" + .."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]" + .."button_exit[-0.05,1.5;4,1;setlabel;Set label]" + else + formspec = "size[4,0.4]" + .."label[0,0;This elevator is inactive.]" + end + minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec) + elseif boxes[meta:get_string("motor")] then + if not minetest.is_protected(pos, sender:get_player_name()) then + formspec = "size[4,2]" + .."label[0,0;This elevator is in use.]" + .."field[0.25,1.25;4,0;label;;"..minetest.formspec_escape(meta:get_string("label")).."]" + .."button_exit[-0.05,1.5;4,1;setlabel;Set label]" + else + formspec = "size[4,0.4]" + .."label[0,0;This elevator is in use.]" + end + minetest.show_formspec(sender:get_player_name(), "elevator:elevator", formspec) + end + end, + + on_destruct = function(pos) + local p = vector.add(pos, {x=0, y=1, z=0}) + if get_node(p).name == placeholder then + minetest.remove_node(p) + end + end, + }) +end + +minetest.register_on_player_receive_fields(function(sender, formname, fields) + if formname ~= "elevator:elevator" then + return + end + local pos = formspecs[sender:get_player_name()] and formspecs[sender:get_player_name()][1] or nil + if not pos then + return true + end + local meta = minetest.get_meta(pos) + if fields.setlabel then + if minetest.is_protected(pos, sender:get_player_name()) then + return true + end + meta:set_string("label", fields.label) + meta:set_string("infotext", fields.label) + -- Rebuild the elevator shaft so the other elevators can read this label. + local motorhash = meta:get_string("motor") + build_motor(elevator.motors[motorhash] and motorhash or locate_motor(pos)) + return true + end + -- Double check if it's ok to go. + if vector.distance(sender:getpos(), pos) > 1 then + return true + end + if fields.target then + local closeformspec = "" + -- HACK: With player information extensions enabled, we can check if closing formspecs are now allowed. This is specifically used on Survival in Ethereal. + local pi = minetest.get_player_information(sender:get_player_name()) + if (not (pi.major == 0 and pi.minor == 4 and pi.patch == 15)) and (pi.protocol_version or 29) < 29 then + closeformspec = "size[4,2] label[0,0;You are now using the elevator.\nUpgrade Minetest to avoid this dialog.] button_exit[0,1;4,1;close;Close]" + end + -- End hacky HACK. + minetest.after(0.2, minetest.show_formspec, sender:get_player_name(), "elevator:elevator", closeformspec) + -- Ensure we're connected to a motor. + local motorhash = meta:get_string("motor") + local motor = elevator.motors[motorhash] + if not motor then + motorhash = locate_motor(pos) + motor = elevator.motors[motorhash] + if motor then + meta:set_string("motor", "") + build_motor(motorhash) + minetest.chat_send_player(sender:get_player_name(), "Recalibrated to a new motor, please try again.") + return true + end + end + if not motor then + minetest.chat_send_player(sender:get_player_name(), "This elevator is not attached to a motor.") + return true + end + if not formspecs[sender:get_player_name()][2] or not formspecs[sender:get_player_name()][2][minetest.explode_textlist_event(fields.target).index] then + return true + end + -- Locate our target elevator. + local target = nil + local selected_target = formspecs[sender:get_player_name()][2][minetest.explode_textlist_event(fields.target).index] + for i,v in ipairs(motor.pnames) do + if v == selected_target then + target = punhash(motor.elevators[i]) + end + end + -- Found the elevator? Then go! + if target then + -- Final check. + if boxes[motorhash] then + minetest.chat_send_player(sender:get_player_name(), "This elevator is in use.") + return true + end + local obj = create_box(motorhash, pos, target, sender) + -- Teleport anyone standing within an on elevator out, or they'd fall through the off elevators. + for _,p in ipairs(motor.elevators) do + local p = punhash(p) + for _,object in ipairs(minetest.get_objects_inside_radius(p, 0.6)) do + if object.is_player and object:is_player() then + if object:get_player_name() ~= obj:get_luaentity().attached then + teleport_player_from_elevator(object) + end + end + end + end + else + minetest.chat_send_player(sender:get_player_name(), "This target is invalid.") + return true + end + return true + end + return true +end) + +-- Compatability with an older version. +minetest.register_alias("elevator:elevator", "elevator:elevator_off") + +-- Ensure an elevator is up to the latest version. +local function upgrade_elevator(pos, meta) + if meta:get_int("version") ~= VERSION then + minetest.log("action", "[elevator] Updating elevator with old version at "..minetest.pos_to_string(pos)) + minetest.after(0, function(pos) build_motor(locate_motor(pos)) end, pos) + meta:set_int("version", VERSION) + meta:set_string("formspec", "") + meta:set_string("infotext", meta:get_string("label")) + end +end + +-- Convert off to on when applicable. +local offabm = function(pos, node) + local meta = minetest.get_meta(pos) + upgrade_elevator(pos, meta) + if not boxes[meta:get_string("motor")] and elevator.motors[meta:get_string("motor")] then + node.name = "elevator:elevator_on" + minetest.swap_node(pos, node) + end +end + +minetest.register_abm({ + nodenames = {"elevator:elevator_off"}, + interval = 1, + chance = 1, + action = offabm, + label = "Elevator (Off)", +}) + +-- Convert on to off when applicable. +minetest.register_abm({ + nodenames = {"elevator:elevator_on"}, + interval = 1, + chance = 1, + action = function(pos, node) + local meta = minetest.get_meta(pos) + upgrade_elevator(pos, meta) + if boxes[meta:get_string("motor")] or not elevator.motors[meta:get_string("motor")] then + node.name = "elevator:elevator_off" + minetest.swap_node(pos, node) + end + end, + label = "Elevator (On)", +}) + +minetest.register_node("elevator:shaft", { + description = "Elevator Shaft", + tiles = { "elevator_shaft.png" }, + drawtype = "nodebox", + paramtype = "light", + on_rotate = screwdriver.disallow, + sunlight_propagates = true, + groups = {cracky=2, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults(), + node_box = { + type = "fixed", + fixed = { + {-8/16,-8/16,-8/16,-7/16,8/16,8/16}, + {7/16,-8/16,-8/16,8/16,8/16,8/16}, + {-7/16,-8/16,-8/16,7/16,8/16,-7/16}, + {-7/16,-8/16,8/16,7/16,8/16,7/16}, + }, + }, + collisionbox = { + type = "fixed", + fixed = { + {-8/16,-8/16,-8/16,-7/16,8/16,8/16}, + {7/16,-8/16,-8/16,8/16,8/16,8/16}, + {-7/16,-8/16,-8/16,7/16,8/16,-7/16}, + {-7/16,-8/16,8/16,7/16,8/16,7/16}, + }, + }, + after_place_node = function(pos) + -- We might have connected a motor above to an elevator below. + build_motor(locate_motor(pos)) + end, + on_destruct = function(pos) + -- Remove boxes and deactivate elevators below us. + unbuild(pos, 1) + end, +}) + +local box = { + { 0.48, -0.5,-0.5, 0.5, 1.5, 0.5}, + {-0.5 , -0.5, 0.48, 0.48, 1.5, 0.5}, + {-0.5, -0.5,-0.5 ,-0.48, 1.5, 0.5}, + {-0.5 , -0.5, -0.48, 0.5, 1.5, -0.5}, + { -0.5,-0.5,-0.5,0.5,-0.48, 0.5}, + { -0.5, 1.45,-0.5,0.5, 1.5, 0.5}, +} + +-- Elevator box node. Not intended to be placeable. +minetest.register_node("elevator:elevator_box", { + description = "Elevator", + drawtype = "nodebox", + paramtype = 'light', + paramtype2 = "facedir", + wield_scale = {x=0.6, y=0.6, z=0.6}, + + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + + collision_box = { + type = "fixed", + fixed = box, + }, + + node_box = { + type = "fixed", + fixed = box, + }, + + tiles = { + "default_steel_block.png", + "default_steel_block.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + "elevator_box.png", + }, + groups = {not_in_creative_inventory = 1}, + + light_source = 4, +}) + +-- Remove the player from self, and teleport them to pos if specified. +local function detach(self, pos) + local player = minetest.get_player_by_name(self.attached) + local attached = player:get_attach() + if not attached or attached:get_luaentity().uid ~= self.uid then + return + end + player:set_detach() + player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + player:set_properties({visual_size = {x=1, y=1}}) + if armor_path then + armor:update_player_visuals(player) + end + if pos then + player:setpos(pos) + minetest.after(0.1, function(pl, p) + pl:setpos(p) + end, player, pos) + end + riding[self.attached] = nil +end + +local box_entity = { + physical = false, + collisionbox = {0,0,0,0,0,0}, + visual = "wielditem", + visual_size = {x=1, y=1}, + textures = {"elevator:elevator_box"}, + + attached = "", + motor = false, + target = false, + + start = false, + lastpos = false, + halfway = false, + vmult = 0, + + on_activate = function(self, staticdata) + -- Don't want the box being destroyed by anything except the elevator system. + self.object:set_armor_groups({immortal=1}) + end, + + on_step = function(self, dtime) + local pos = self.object:getpos() + -- First, check if this box needs removed. + -- If the motor has a box and it isn't this box. + if boxes[self.motor] and boxes[self.motor] ~= self.object then + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to duplication.") + self.object:remove() + return + end + -- If our attached player can't be found. + if not minetest.get_player_by_name(self.attached) then + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to lack of attachee logged in.") + self.object:remove() + boxes[self.motor] = nil + return + end + -- If our attached player is no longer with us. + if not minetest.get_player_by_name(self.attached):get_attach() or minetest.get_player_by_name(self.attached):get_attach():get_luaentity().uid ~= self.uid then + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to lack of attachee.") + self.object:remove() + boxes[self.motor] = nil + return + end + -- If our motor's box is nil, we should self-destruct. + if not boxes[self.motor] then + minetest.log("action", "[elevator] "..minetest.pos_to_string(pos).." broke due to nil entry in boxes.") + detach(self) + self.object:remove() + boxes[self.motor] = nil + return + end + + minetest.get_player_by_name(self.attached):setpos(pos) + -- Ensure lastpos is set to something. + self.lastpos = self.lastpos or pos + + -- Loop through all travelled nodes. + for y=self.lastpos.y,pos.y,((self.lastpos.y > pos.y) and -0.3 or 0.3) do + local p = vector.round({x=pos.x, y=y, z=pos.z}) + local node = get_node(p) + if node.name == "elevator:shaft" then + -- Nothing, just continue on our way. + elseif node.name == "elevator:elevator_on" or node.name == "elevator:elevator_off" then + -- If this is our target, detach the player here, destroy this box, and update the target elevator without waiting for the abm. + if vector.distance(p, self.target) < 1 then + minetest.log("action", "[elevator] "..minetest.pos_to_string(p).." broke due to arrival.") + detach(self, vector.add(self.target, {x=0, y=-0.4, z=0})) + self.object:remove() + boxes[self.motor] = nil + offabm(self.target, node) + return + end + else + -- Check if we're in the top part of an elevator, if so it's fine. + local below = vector.add(p, {x=0,y=-1,z=0}) + local belownode = get_node(below) + if belownode.name ~= "elevator:elevator_on" and belownode.name ~= "elevator:elevator_off" then + -- If we aren't, then break the box. + minetest.log("action", "[elevator] "..minetest.pos_to_string(p).." broke on "..node.name) + boxes[self.motor] = nil + detach(self, p) + self.object:remove() + return + end + end + end + self.lastpos = pos + end, +} + +minetest.register_entity("elevator:box", box_entity) + +if technic_path and chains_path then + minetest.register_craft({ + output = "elevator:elevator", + recipe = { + {"technic:cast_iron_ingot", "chains:chain", "technic:cast_iron_ingot"}, + {"technic:cast_iron_ingot", "default:mese_crystal", "technic:cast_iron_ingot"}, + {"technic:stainless_steel_ingot", "default:glass", "technic:stainless_steel_ingot"}, + }, + }) + + minetest.register_craft({ + output = "elevator:shaft", + recipe = { + {"technic:cast_iron_ingot", "default:glass"}, + {"default:glass", "glooptest:chainlink"}, + }, + }) + + minetest.register_craft({ + output = "elevator:motor", + recipe = { + {"default:diamond", "technic:control_logic_unit", "default:diamond"}, + {"default:steelblock", "technic:motor", "default:steelblock"}, + {"chains:chain", "default:diamond", "chains:chain"} + }, + }) +elseif technic_path and farming and farming.mod and farming.mod == "redo" then + -- add alternative recipe with hemp rope + minetest.register_craft({ + output = "elevator:elevator", + recipe = { + {"technic:cast_iron_ingot", "farming:hemp_rope", "technic:cast_iron_ingot"}, + {"technic:cast_iron_ingot", "default:mese_crystal", "technic:cast_iron_ingot"}, + {"technic:stainless_steel_ingot", "default:glass", "technic:stainless_steel_ingot"}, + }, + }) + + minetest.register_craft({ + output = "elevator:shaft", + recipe = { + {"technic:cast_iron_ingot", "default:glass"}, + {"default:glass", "farming:hemp_rope"}, + }, + }) + + minetest.register_craft({ + output = "elevator:motor", + recipe = { + {"default:diamond", "technic:control_logic_unit", "default:diamond"}, + {"default:steelblock", "technic:motor", "default:steelblock"}, + {"farming:hemp_rope", "default:diamond", "farming:hemp_rope"} + }, + }) + + -- Recipes without technic & chains required. +-- Recipes for default dependency fallback. +else + minetest.register_craft({ + output = "elevator:elevator", + recipe = { + {"default:steel_ingot", "farming:cotton", "default:steel_ingot"}, + {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, + {"xpanes:pane_flat", "default:glass", "xpanes:pane_flat"}, + }, + }) + + minetest.register_craft({ + output = "elevator:shaft", + recipe = { + {"default:steel_ingot", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:steel_ingot"}, + }, + }) + + minetest.register_craft({ + output = "elevator:motor", + recipe = { + {"default:diamond", "default:copper_ingot", "default:diamond"}, + {"default:steelblock", "default:furnace", "default:steelblock"}, + {"farming:cotton", "default:diamond", "farming:cotton"} + }, + }) +end diff --git a/elevator/mod.conf b/elevator/mod.conf new file mode 100644 index 0000000..b86b042 --- /dev/null +++ b/elevator/mod.conf @@ -0,0 +1,3 @@ +name = elevator +depends = default +optional_depends = technic, homedecor, chains, farming diff --git a/elevator/screenshot.png b/elevator/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..9a3c9bc1a07829a8fde65e21034c83d2c9405106 GIT binary patch literal 98660 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�PHS+?_o2v#@Q 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

x%Z;yW+#lsmO^Bz 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 jN2ai3lk?APZ!4!i_>R=5Aq&1;9yzJJ;5jG z>t)sm#l$H9%)cO5E@tV_=jWMF9M z&^X|k$8uqkyTVM5$$Kl#6id9>J2mR#fdjv4OU*6g hk0~uW(-XK*Uub^C*Vikeb^x8u;OXk;vd$@?2>_F#aY6t9 literal 0 HcmV?d00001 diff --git a/elevator/textures/elevator_motor.png b/elevator/textures/elevator_motor.png new file mode 100644 index 0000000000000000000000000000000000000000..73a226c6be30b127d895e09771abc2b96d1c5025 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPtvna0>d(*yjpghBAPZ!4!i_=RdZRBfK5NNBHcGvG! zwrN2d$i)vN9=A1vPRN#oeTtBq4{Zn*6ikr}Y@-|4~w-=Fj8X?8v8<@V})!PS3z z&DZz`YfRJDPTch*Zra5UCOr4KoM!tyws?1Fo+C$E534U9uZ)jNyV^^upMM3FnzmlE zo}Hv6;B-KO`ItnHp@7qo&Tf``^9q zX_m$`?tYSRy`JM<&ca}>ImP;J+c$)1tH${j*G;%qp#5~+L3X>UP`ec>p-ez;F?hQA KxvX{XE z)7O>#Au~IJxh2a^j!QtHRh}-6Ar`041|Q@-Y`|f&hw-FJpndGZ#VM@(2e>4cYCj3C zoYW$CCtT}EL-5y7J25kv@`lW$bp>w>&sXT3e$J!I#LzIOm{qSxxj}g+yOH7b6#aLP zCD^L-U8nl-thpano@~pxJ#ocEmeVOo>sGD^;{I@}ylcst+ivwXt@FJvW}{x^D?^ovPDeelS>BfA$S&Wrhxq?Oe5==enx&R5KUr=k9FFUz!SZHG`+C KpUXO@geCx|e_fgY literal 0 HcmV?d00001 diff --git a/homedecor_modpack/nodes.txt b/homedecor_modpack/nodes.txt new file mode 100644 index 0000000..2e8762d --- /dev/null +++ b/homedecor_modpack/nodes.txt @@ -0,0 +1,4 @@ +Node listing as of Sun May 16 15:15:25 2021 + +In *.lua: +