Cleaning up some Hyperloop leftovers.

master
Nathan Salapat 2022-05-19 21:15:23 -05:00
parent 6dce43f324
commit 5a66495b13
9 changed files with 15 additions and 350 deletions

View File

@ -62,7 +62,7 @@ vents.BLEND = minetest.features.use_texture_alpha_string_modes and 'blend' or tr
if tubelib2.version < 1.7 then
error('Hyperloop requires tubelib2 version 1.7 or newer!!!')
error('Vents requires tubelib2 version 1.7 or newer!!!')
else
-- Configuration settings
vents.free_tube_placement_enabled = minetest.settings:get_bool('hyperloop_free_tube_placement_enabled', true)

View File

@ -1,62 +0,0 @@
--[[
Hyperloop Mod
=============
Copyright (C) 2017 Joachim Stolberg
LGPLv2.1+
See LICENSE.txt for more information
History:
see init.lua
]]--
function vents.enter_display(seat_pos, facedir, text)
if seat_pos == nil then
return
end
-- determine position
local pos = vector.add(seat_pos, vents.placedir_to_dir(facedir))
pos.y = pos.y + 1
-- load map
minetest.forceload_block(pos)
-- update display
minetest.registered_nodes["vents:lcd"].update(pos, text)
end
-- to build the pod
minetest.register_node("vents:pod_wall", {
description = "Hyperloop Pod Shell",
tiles = {
-- up, down, right, left, back, front
"hyperloop_skin2.png",
"hyperloop_skin2.png",
"hyperloop_skin.png",
"hyperloop_skin.png",
"hyperloop_skin.png",
"hyperloop_skin.png",
},
paramtype2 = "facedir",
groups = {cracky=1, stone = 2},
is_ground_content = false,
sounds = default.node_sound_metal_defaults(),
})
-- for tube viaducts
minetest.register_node("vents:pillar", {
description = "Hyperloop Pillar",
tiles = {"hyperloop_tube_locked.png^[transformR90]"},
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{ -3/8, -4/8, -3/8, 3/8, 4/8, 3/8},
},
},
is_ground_content = false,
groups = {cracky = 2, stone = 2},
sounds = default.node_sound_metal_defaults(),
})

View File

@ -1,161 +0,0 @@
--[[
Hyperloop Mod
=============
Copyright (C) 2017 Joachim Stolberg
LGPLv2.1+
See LICENSE.txt for more information
History:
see init.lua
]]--
local function get_inventory_item(inv)
local stack = ItemStack("vents:tube0")
local taken = inv:remove_item("src", stack)
return taken:get_count() == 1
end
local function get_inventory(pos)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local stack = ItemStack("vents:tube0 99")
return inv:remove_item("src", stack)
end
local function set_inventory(pos, stack)
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:add_item("src", stack)
return inv
end
local function allow_metadata_inventory(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then
return 0
end
return stack:get_count()
end
local function place_tube(pos, name, facedir, placer)
if minetest.is_protected(pos, placer:get_player_name()) then
vents.chat(placer, "Area is protected!")
return false
end
node = minetest.get_node(pos)
if node.name ~= "air" and node.name ~= "default:water_source" and node.name ~= "default:water_flowing" then
return false
end
if vents.scan_neighbours(pos) ~= 1 then
return false
end
minetest.add_node(pos, {name=name, param2=facedir})
minetest.registered_nodes[name].after_place_node(pos, placer, nil, nil)
return true
end
local function move_robot(pos, inv, facedir, placer)
if minetest.get_meta(pos):get_int("stopped") ~= 1 then
if get_inventory_item(inv) then
-- remve robot and replace through tube
local stack = get_inventory(pos)
minetest.remove_node(pos)
place_tube(pos, "vents:tube1", facedir, placer)
-- place robot on the new position
pos = vents.new_pos(pos, facedir, "1F", 0)
if place_tube(pos, "vents:robot", facedir, placer) then
inv = set_inventory(pos, stack)
minetest.after(1, move_robot, pos, inv, facedir, placer)
else
pos = vents.new_pos(pos, facedir, "1B", 0)
minetest.remove_node(pos)
place_tube(pos, "vents:robot", facedir, placer)
stack:add_item("src", ItemStack("vents:tube0"))
set_inventory(pos, stack)
end
end
end
end
local station_formspec =
"size[8,8]"..
"label[3,0;Hyperloop Tube Robot]" ..
"label[1,1.3;Hyperloop Tubes]" ..
"list[context;src;3,1;1,1;]"..
"button_exit[4,1;1,1;button;Start]"..
"list[current_player;main;0,4;8,4;]"..
"listring[context;src]"..
"listring[current_player;main]"
minetest.register_node("vents:robot", {
description = "Hyperloop Tube Robot",
tiles = {
-- up, down, right, left, back, front
"hyperloop_robot.png",
"hyperloop_robot.png",
"hyperloop_robot2.png",
"hyperloop_robot2.png",
"hyperloop_robot2.png",
"hyperloop_robot2.png",
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
local res, nodes = vents.scan_neighbours(pos)
if res == 1 then -- one neighbor available?
local dir = vector.subtract(pos, nodes[1].pos)
local facedir = minetest.dir_to_facedir(dir)
local meta = minetest.get_meta(pos)
meta:set_int("facedir", facedir)
meta:set_string("formspec", station_formspec)
local inv = meta:get_inventory()
inv:set_size('src', 1)
else
vents.chat(player, "You can't start with a Robot block!")
local node = minetest.get_node(pos)
vents.remove_node(pos, node)
return itemstack
end
end,
on_receive_fields = function(pos, formname, fields, player)
if fields.button == nil then
return
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local facedir = meta:get_int("facedir")
meta:set_int("stopped", 0)
minetest.after(1, move_robot, pos, inv, facedir, player)
end,
on_punch = function(pos, node, puncher, pointed_thing)
if minetest.is_protected(pos, puncher:get_player_name()) then
return
end
local meta = minetest.get_meta(pos)
meta:set_int("stopped", 1)
end,
on_dig = function(pos, node, puncher, pointed_thing)
if minetest.is_protected(pos, puncher:get_player_name()) then
return
end
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
meta:set_int("stopped", 1)
if inv:is_empty("src") then
minetest.node_dig(pos, node, puncher, pointed_thing)
end
end,
allow_metadata_inventory_put = allow_metadata_inventory,
allow_metadata_inventory_take = allow_metadata_inventory,
on_rotate = screwdriver.disallow,
paramtype2 = "facedir",
groups = {cracky=1},
is_ground_content = false,
})

View File

@ -1,15 +1,9 @@
# Enable WiFi blocks (exclude recipe)
hyperloop_wifi_enabled (WiFi block enabled) bool false
# Enable WiFi block crafting
hyperloop_wifi_crafting_enabled (WiFi block crafting enabled) bool false
# Enable free tube placement with no level limitation.
# If disabled, connected stations have to be on one level,
# Enable free tube placement with no level limitation.
# If disabled, connected stations have to be on one level,
# typically underground.
hyperloop_free_tube_placement_enabled (free tube placement enabled) bool false
vent_free_tube_placement_enabled (free tube placement enabled) bool false
# The ticket block has an additional field for specifying a subnet name.
# Stations with the same subnet name (optional) represent an isolated
# subnet within the Hyperloop network.
hyperloop_subnet_enabled (enable building of subnets) bool true
# subnet within the vent network.
vent_subnet_enabled (enable building of subnets) bool true

View File

@ -1,105 +0,0 @@
--[[
Hyperloop Mod
=============
Copyright (C) 2017 Joachim Stolberg
LGPLv2.1+
See LICENSE.txt for more information
History:
see init.lua
]]--
-- simple shaft without logic or "memory"
minetest.register_node("vents:shaft", {
description = "Hyperloop Elevator Shaft",
tiles = {
-- up, down, right, left, back, front
'hyperloop_tube_open.png',
'hyperloop_tube_open.png',
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
},
after_place_node = function(pos, placer, itemstack, pointed_thing)
local npos = table.copy(pos)
-- check above
npos.y = npos.y + 1
if minetest.get_node_or_nil(npos).name == "vents:shaft" then
local node = minetest.get_node(npos)
node.name = "vents:shaft2"
minetest.swap_node(npos, node)
return
elseif minetest.get_node_or_nil(npos).name == "vents:elevator_top" then
npos.y = npos.y - 1
vents.update_elevator(npos)
npos.y = npos.y + 1
return
end
-- check below
npos.y = npos.y - 2
if minetest.get_node_or_nil(npos).name == "vents:shaft" then
local node = minetest.get_node(npos)
node.name = "vents:shaft2"
minetest.swap_node(npos, node)
elseif minetest.get_node_or_nil(npos).name == "vents:elevator_top" then
npos.y = npos.y - 1
vents.update_elevator(npos)
else
minetest.remove_node(pos)
return itemstack
end
end,
after_destruct = function(pos)
local npos = table.copy(pos)
npos.y = npos.y - 1
if minetest.get_node_or_nil(npos).name == "vents:shaft2" then
local node = minetest.get_node(npos)
node.name = "vents:shaft"
minetest.swap_node(npos, node)
elseif minetest.get_node_or_nil(npos).name == "vents:elevator_top" then
npos.y = npos.y - 1
vents.update_elevator(npos)
end
npos.y = npos.y + 2
if minetest.get_node_or_nil(npos).name == "vents:shaft2" then
local node = minetest.get_node(npos)
node.name = "vents:shaft"
minetest.swap_node(npos, node)
end
end,
on_rotate = screwdriver.disallow,
light_source = 6,
paramtype2 = "facedir",
groups = {breakable=1},
is_ground_content = false,
})
-- simple shaft without logic or "memory"
minetest.register_node("vents:shaft2", {
description = "Hyperloop Elevator Shaft",
tiles = {
-- up, down, right, left, back, front
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
"hyperloop_tube_locked.png^[transformR90]",
},
on_rotate = screwdriver.disallow,
diggable = false,
paramtype2 = "facedir",
groups = {breakable=1, not_in_creative_inventory=1},
is_ground_content = false,
})

View File

@ -181,7 +181,7 @@ local function on_destruct(pos)
end
minetest.register_node("vents:station", {
description = S("Hyperloop Station Block"),
description = S("Vent Access"),
drawtype = "nodebox",
tiles = {
"hyperloop_station.png",

View File

@ -70,7 +70,7 @@ local Tube = tubelib2.Tube:new({
vents.Tube = Tube
minetest.register_node("vents:tubeS", {
description = S("Hyperloop Tube"),
description = S("Vent"),
inventory_image = minetest.inventorycube("hyperloop_tube_locked.png",
'hyperloop_tube_open.png', "hyperloop_tube_locked.png"),
tiles = {
@ -129,7 +129,7 @@ minetest.register_node("vents:tubeS", {
})
minetest.register_node("vents:tubeS2", {
description = "Hyperloop Tube",
description = "Vent",
tiles = {
-- up, down, right, left, back, front
"hyperloop_tube_locked.png^hyperloop_logo.png^[transformR90]",
@ -179,7 +179,7 @@ minetest.register_node("vents:tubeS2", {
})
minetest.register_node("vents:tubeA", {
description = S("Hyperloop Tube"),
description = S("Vent"),
inventory_image = minetest.inventorycube("hyperloop_tube_locked.png",
'hyperloop_tube_open.png', "hyperloop_tube_locked.png"),
tiles = {
@ -271,7 +271,7 @@ minetest.register_node("vents:tubeA2", {
-- for tube viaducts
minetest.register_node("vents:pillar", {
description = "Hyperloop Pillar",
description = "Vent",
tiles = {"hyperloop_tube_locked.png^[transformR90]"},
drawtype = "nodebox",
node_box = {

View File

@ -27,9 +27,9 @@ local function chat_message(dir, cnt, peer_pos, peer_dir)
local sdir = tubelib2.dir_to_string(dir)
if Shaft:is_secondary_node(peer_pos, peer_dir) then
local npos, node = Shaft:get_node(peer_pos, peer_dir)
return "[Hyperloop] To the "..sdir..": "..cnt.." tube nodes to "..node.name.." at "..SP(npos)
return "[Vents] To the "..sdir..": "..cnt.." tube nodes to "..node.name.." at "..SP(npos)
else
return "[Hyperloop] To the "..sdir..": "..cnt.." tube nodes to "..SP(peer_pos)
return "[Vents] To the "..sdir..": "..cnt.." tube nodes to "..SP(peer_pos)
end
end

View File

@ -22,9 +22,9 @@ local Stations = vents.Stations
function vents.chat(player, text)
if type(player) == "string" then
minetest.chat_send_player(player, "[Hyperloop] "..text)
minetest.chat_send_player(player, "[Vents] "..text)
elseif player ~= nil then
minetest.chat_send_player(player:get_player_name(), "[Hyperloop] "..text)
minetest.chat_send_player(player:get_player_name(), "[Vents] "..text)
end
end
@ -93,7 +93,6 @@ end
function vents.get_station(station_pos)
local data = Stations:get(station_pos)
if data then
print 'data found'
local tStation = table.copy(data)
tStation.pos = station_pos
return tStation