diff --git a/.gitmodules b/.gitmodules index b0dec20e..6be76b95 100644 --- a/.gitmodules +++ b/.gitmodules @@ -36,7 +36,7 @@ url = https://github.com/fluxionary/minetest-futil [submodule "mods/stubes"] path = mods/stubes - url = https://github.com/TheEt1234/luanti-stubes + url = https://codeberg.org/skyblock_zero/stubes [submodule "mods/extended_placement"] path = mods/extended_placement url = https://github.com/gamefreq0/extended_placement diff --git a/CHANGELOG.md b/CHANGELOG.md index dc84d9db..6e736f55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +# Release 42 +- Added a setting that toggles the welcome message +- Seperated submodule contributions from sbz contributions in credits, so that people that have nothing to do with sbz don't get confused +- Added wormholes +- Fix crash with questbooks in node breakers +- Stubes (still hidden): + - Moved to codeberg + - Added the ability to put items and take away items by a player + - (Hopefully) fixed a crash + # Release 40 - Development resumed again! - We are still looking for contributors, if you enjoy SBZ and want to contribute, please do so! diff --git a/docs/areas.txt b/docs/areas.txt deleted file mode 100644 index 35a6f92c..00000000 --- a/docs/areas.txt +++ /dev/null @@ -1,5 +0,0 @@ -Areas have been slightly modified -as of this writing, core.is_protected is 10x faster than in vanilla areas, see https://github.com/minetest-mods/areas/issues/86, so don't be afraid to use it -Also i've added the PvP controlling system from blocky survival, see pvp.lua. -And regular players cannot make areas without the areasprotector to help them. -Besides that, that should be it... \ No newline at end of file diff --git a/docs/for server owners/anticheat.txt b/docs/for server owners/anticheat.txt deleted file mode 100644 index f7d05ad5..00000000 --- a/docs/for server owners/anticheat.txt +++ /dev/null @@ -1,9 +0,0 @@ -Disable it. - - -No seriously, it partially breaks jetpacks and fully breaks player attraction. - -EDIT: After a major incident - -Don't disable it all -Disable only the movement anticheat \ No newline at end of file diff --git a/docs/for server owners/clearobjects.txt b/docs/for server owners/clearobjects.txt deleted file mode 100644 index a1c363b4..00000000 --- a/docs/for server owners/clearobjects.txt +++ /dev/null @@ -1,6 +0,0 @@ -DO NOT RUN /clearobjects - -IT WILL MESS UP ALL GRAVITATIONAL ATTRACTORS/REPULSORS, making them need to be replaced or moved. -IT WILL **NOT** HELP WITH LAG - -oh hey there is also /clearitems \ No newline at end of file diff --git a/docs/for server owners/corrupted machine.txt b/docs/for server owners/corrupted machine.txt deleted file mode 100644 index 0b195cb4..00000000 --- a/docs/for server owners/corrupted machine.txt +++ /dev/null @@ -1,10 +0,0 @@ -So, i define a corrupted machine as a machine that has its metadata and inventory lists wiped for any reason -If you can create a corrupted machine, that's a serious bug and you should report it (duh) -These machines usually also crash the server - - -How to get rid of corrupted machines: -- Attempt to identify where they are, if they crash the server, they usually crash only when players get near it -- Use `/toggle_power false` to disable switching stations, so they can't crash the server -- Just remove them -- Enable machines by doing `/toggle_power true` \ No newline at end of file diff --git a/docs/for server owners/monitoring.txt b/docs/for server owners/monitoring.txt deleted file mode 100644 index 642fc708..00000000 --- a/docs/for server owners/monitoring.txt +++ /dev/null @@ -1,13 +0,0 @@ -Skyblock zero is compatible with -https://github.com/minetest-monitoring/monitoring -https://github.com/minetest-monitoring/auth_cache -https://github.com/minetest-monitoring/metadata_cache -https://github.com/minetest-monitoring/monitoring_drawers - - -Extra monitoring support: -I've adde these metrics: -sbz_switching_station_lag -sbz_switching_station_count - -Though, i don't know how to display them nicely, but you can do /metric sbz_switching_station_count \ No newline at end of file diff --git a/docs/for server owners/recomended mods.txt b/docs/for server owners/recomended mods.txt deleted file mode 100644 index 358dbe32..00000000 --- a/docs/for server owners/recomended mods.txt +++ /dev/null @@ -1 +0,0 @@ -The teleport request mod - zander told me to un-bundle it from sbz diff --git a/docs/for server owners/skinsdb.txt b/docs/for server owners/skinsdb.txt deleted file mode 100644 index e595a1c7..00000000 --- a/docs/for server owners/skinsdb.txt +++ /dev/null @@ -1 +0,0 @@ -Ok so, if you choose to use skinsDB, epidermis won't be avaliable. \ No newline at end of file diff --git a/docs/quests.md b/docs/quests.md deleted file mode 100644 index 5e7513ec..00000000 --- a/docs/quests.md +++ /dev/null @@ -1,33 +0,0 @@ -# these are messy docs, check the src if something is missing - -global object 'quests' stores all quests - -a quest is -# QuestDef or sumn -{ - type = "quest"/"text"/"secret", - title = "Quest Name", - text = "Instructions or text here.", - requires = {"Other Quests Name"} -} -text is needed even if type isnt text - -requires will hide the text but now the title, until the list of required quests is completed -secret quests will not appear at all until theyre completed - -if you omit requires / provide an empty list the quest will be available from the beginning - -# some methods - -unlock_achievement(player_name, quest_name) -Marks the quest as completed. - -revoke_achievement(player_name, quest_name) -Removes the completion from the quest, should generally not be used. - -is_achievement_unlocked(player_name, quest_name) -Checks if the quest has been completed. - -is_quest_available(player_name, quest_name) -Checks if the required quests for the specified quest have been completed. - diff --git a/mods/sbz_base/init.lua b/mods/sbz_base/init.lua index daf5318f..af4f4d39 100644 --- a/mods/sbz_base/init.lua +++ b/mods/sbz_base/init.lua @@ -19,6 +19,7 @@ sbz_api = { accelerated_habitats = false, debug = core.settings:get_bool('sbz_debug', false), logic_gate_linking_range = 15, + welcome_messages = core.settings:get_bool('sbz_welcome_message', true), } if sbz_api.server_optimizations == 'auto' then @@ -265,10 +266,16 @@ core.register_chatcommand('bgm_volume', { core.register_on_joinplayer(function(player) local player_name = player:get_player_name() -- send welcome messages - core.chat_send_player(player_name, sbz_api.get_simple_version_string()) - core.chat_send_player(player_name, '‼ reminder: If you fall off, use /core to teleport back to the core.') - core.chat_send_player(player_name, '‼ reminder: If lose your Quest Book, use /qb to get it back.') - core.chat_send_player(player_name, '!! If you have any suggestions/bug reports to Skyblock Zero, see /community') + + if sbz_api.welcome_messages then + core.chat_send_player(player_name, sbz_api.get_simple_version_string()) + core.chat_send_player(player_name, '‼ reminder: If you fall off, use /core to teleport back to the core.') + core.chat_send_player(player_name, '‼ reminder: If lose your Quest Book, use /qb to get it back.') + core.chat_send_player( + player_name, + '!! If you have any suggestions/bug reports to Skyblock Zero, see /community' + ) + end -- play bgm playRandomBGM(player) diff --git a/mods/sbz_pipeworks/filter_injector.lua b/mods/sbz_pipeworks/filter_injector.lua index c6c0b635..0fc270d4 100644 --- a/mods/sbz_pipeworks/filter_injector.lua +++ b/mods/sbz_pipeworks/filter_injector.lua @@ -60,29 +60,15 @@ minetest.register_node('pipeworks:automatic_filter_injector', { set_filter_formspec(meta) end, after_place_node = function(pos, placer, itemstack, pointed_thing) - minetest.get_meta(pos):set_string('owner', placer:get_player_name()) - - if placer and pointed_thing and pointed_thing.type == "node" then - -- Face away from the clicked block - local dir = vector.subtract(pointed_thing.above, pointed_thing.under) - dir = vector.multiply(dir, -1) - - -- Get base param2 from direction - local param2 = minetest.dir_to_facedir(dir, true) - - -- Manual correction offset for facing direction - local CORRECTION_OFFSET = 1 - param2 = (param2 + CORRECTION_OFFSET) % 24 - - local node = minetest.get_node(pos) - node.param2 = param2 - minetest.swap_node(pos, node) - else - local node = minetest.get_node(pos) - node.param2 = node.param2 + 1 - minetest.swap_node(pos, node) + core.get_meta(pos):set_string('owner', placer:get_player_name()) + + if pointed_thing and pointed_thing.above then + local face = vector.subtract(pointed_thing.above, pointed_thing.under) + face = -face + local node = core.get_node(pos) + node.param2 = core.dir_to_facedir(face, true) + 1 + core.swap_node(pos, node) end - pipeworks.after_place(pos) end, after_dig_node = pipeworks.after_dig, @@ -410,10 +396,10 @@ minetest.register_node('pipeworks:automatic_filter_injector', { }) do - local MB = "sbz_resources:matter_blob" - local RA = "sbz_resources:robotic_arm" - local RC = "sbz_resources:retaining_circuit" - local T1 = "pipeworks:tube_1" + local MB = 'sbz_resources:matter_blob' + local RA = 'sbz_resources:robotic_arm' + local RC = 'sbz_resources:retaining_circuit' + local T1 = 'pipeworks:tube_1' minetest.register_craft { output = 'pipeworks:automatic_filter_injector 4', recipe = { @@ -422,4 +408,5 @@ do { MB, MB, MB }, }, } -end \ No newline at end of file +end + diff --git a/mods/sbz_pipeworks/wielder.lua b/mods/sbz_pipeworks/wielder.lua index d5d7d194..3c175722 100644 --- a/mods/sbz_pipeworks/wielder.lua +++ b/mods/sbz_pipeworks/wielder.lua @@ -136,17 +136,14 @@ function pipeworks.register_wielder(def) if def.eject_drops then inv:set_size('main', 32) end set_wielder_formspec(def, meta) end, - on_place = function(itemstack, placer, pointed_thing) - -- Use default placement - return minetest.item_place(itemstack, placer, pointed_thing) - end, after_place_node = function(pos, placer, itemstack, pointed_thing) -- Update the pipe network connections pipeworks.scan_for_tube_objects(pos) - if not placer or not pointed_thing or pointed_thing.type ~= 'node' then return end + if not placer then return end minetest.get_meta(pos):set_string('owner', placer:get_player_name()) + if not pointed_thing or pointed_thing.type ~= 'node' then return end -- Rotate to face the clicked block local dir = vector.subtract(pointed_thing.above, pointed_thing.under) @@ -154,7 +151,7 @@ function pipeworks.register_wielder(def) local node = minetest.get_node(pos) node.param2 = param2 - minetest.set_node(pos, node) + minetest.swap_node(pos, node) end, after_dig_node = function(pos, oldnode, oldmetadata, digger) local digger_inv = digger:get_inventory() diff --git a/mods/sbz_progression/questbook.lua b/mods/sbz_progression/questbook.lua index dbc8a91c..3f6c8a82 100644 --- a/mods/sbz_progression/questbook.lua +++ b/mods/sbz_progression/questbook.lua @@ -87,8 +87,8 @@ end -- Function to create the formspec local function get_questbook_formspec(selected_quest_index, player_name, quests_to_show, search_text) local player_ref = core.get_player_by_name(player_name) - sbz_api.ui.set_player(player_ref) if not player_ref then return '' end + sbz_api.ui.set_player(player_ref) local selected_quest = quests_to_show[selected_quest_index] local quest_count = #quests -- we subtract uncompletable quests from this later, like infotexts @@ -143,9 +143,9 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins(pal.bright_purple) -- just for the credits quest - if (quest.istoplevel) then + if quest.istoplevel then ins '0' - else + else ins(default_indent) end @@ -156,9 +156,9 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ ins(pal.bright_purple) -- just for the credits quest - if (quest.istoplevel) then + if quest.istoplevel then ins '0' - else + else ins(default_indent) end @@ -192,7 +192,20 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ tooltip[font_add;Makes font larger] tooltip[font_sub;Makes font smaller] ]]):format( - sbz_api.ui.hypertext(0.3, 0.25, 5.6, 0.5, '', "Quest List (✓ " .. completed_count .. " / ► " ..available_count.." / ✕ " .. (quest_count - completed_count) .. ")"), + sbz_api.ui.hypertext( + 0.3, + 0.25, + 5.6, + 0.5, + '', + 'Quest List (✓ ' + .. completed_count + .. ' / ► ' + .. available_count + .. ' / ✕ ' + .. (quest_count - completed_count) + .. ')' + ), sbz_api.ui.box_shadow(0.2, 0.7, 5.6, 11.3, 2), table_style, quest_list, @@ -271,7 +284,7 @@ local function get_questbook_formspec(selected_quest_index, player_name, quests_ end if available_count == 1 and (quest_count - completed_count) == 1 then - unlock_achievement(player_name, "Credits") + unlock_achievement(player_name, 'Credits') -- okay let me explain -- this will be called only once diff --git a/mods/sbz_resources/nodes.lua b/mods/sbz_resources/nodes.lua index 35bbe828..53228b89 100644 --- a/mods/sbz_resources/nodes.lua +++ b/mods/sbz_resources/nodes.lua @@ -507,7 +507,7 @@ minetest.register_node( unifieddyes.def { description = 'Bricks', tiles = { 'bricks.png' }, - drawtype = 'color', + paramtype2 = 'color', groups = { matter = 1, charged = 1, diff --git a/mods/stubes b/mods/stubes index 46fb8664..4e846447 160000 --- a/mods/stubes +++ b/mods/stubes @@ -1 +1 @@ -Subproject commit 46fb86643f91b89e633082fbff876be90d2fd4ab +Subproject commit 4e846447bed6097e1feb349b927908fba8ca7361 diff --git a/settingtypes.txt b/settingtypes.txt index f78b332d..067559b3 100644 --- a/settingtypes.txt +++ b/settingtypes.txt @@ -14,3 +14,5 @@ sbz_debug (Debug Logging) bool false # If enabled, it may cause some features behave in an unexpected way. # If not neabled, this may cause performance issues on large worlds or on servers. sbz_switching_station_unload (Automatically unload switching stations) enum default default,always,never + +sbz_welcome_message (Enable the welcome message) bool true