diff --git a/README.md b/README.md index e69de29..65fe261 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,5 @@ +# Testing Server 1 by 1F616EMO - Custom mods + +This repository stores mods used specifically by Testing Server 1 (`mt-twi.1f616emo.xyz:32000`). It also serves as the bug tracker of the server. + +此儲存庫儲存專門由測試伺服器 1 (`mt-twi.1f616emo.xyz:32000``) 使用的 mod。它也是伺服器的錯誤追蹤器。 \ No newline at end of file diff --git a/basic_materials_mod/init.lua b/basic_materials_mod/init.lua index f2492a0..32e2c9a 100644 --- a/basic_materials_mod/init.lua +++ b/basic_materials_mod/init.lua @@ -1,20 +1,93 @@ -- twi_mods/basic_materials_mod/init.lua -- Basic Materials Modifications --[[ Copyright (C) 2024 1F616EMO This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ]] -minetest.register_alias_force("basic_materials:padlock", "default:steel_ingot") \ No newline at end of file +local S = minetest.get_translator("basic_materials_mod") + +-- Eliminate the need of padlocks, use steel ingot instead +minetest.register_alias_force("basic_materials:padlock", "default:steel_ingot") +minetest.clear_craft({ + output = "basic_materials:padlock 2", + recipe = { + { "basic_materials:steel_bar" }, + { "default:steel_ingot" }, + { "default:steel_ingot" }, + }, +}) + +-- Remove the intermediate process of oil -> paraffin -> plastic +minetest.register_alias_force("basic_materials:paraffin", "basic_materials:plastic_sheet") +minetest.clear_craft({ + type = "cooking", + output = "basic_materials:plastic_sheet", + recipe = "basic_materials:paraffin", +}) +minetest.clear_craft({ + type = "cooking", + output = "basic_materials:paraffin", + recipe = "basic_materials:oil_extract", +}) +minetest.register_craft({ + type = "cooking", + output = "basic_materials:plastic_sheet", + recipe = "basic_materials:oil_extract", + cooktime = 6, -- Double the original +}) +minetest.override_item("basic_materials:oil_extract", { + _doc_items_longdesc = S("Oil extracted from leaves."), + _doc_items_usagehelp = S("Crafted from 6 leaves. This can be processed into plastic by smelting.") +}) +minetest.override_item("basic_materials:plastic_sheet", { + _doc_items_longdesc = S("Plastic for machine crafting."), + _doc_items_usagehelp = S("Produced by smelting oil extracts. This is useful in crafting high-tech items.") +}) + +-- Remove the need of wire spool +local wire_ingot_pair = { + -- default + ["basic_materials:steel_wire"] = "default:steel_ingot", + ["basic_materials:copper_wire"] = "default:copper_ingot", + ["basic_materials:gold_wire"] = "default:gold_ingot", + + -- technic + ["basic_materials:stainless_steel_wire"] = "technic:stainless_steel_ingot", + + -- moreores + ["basic_materials:silver_wire"] = "moreores:silver_ingot", +} +minetest.register_alias_force("basic_materials:empty_spool", "") +minetest.clear_craft({ + output = "basic_materials:empty_spool 3", + recipe = { + { "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, + { "", "basic_materials:plastic_sheet", "" }, + { "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" } + }, +}) +for wire, ingot in pairs(wire_ingot_pair) do + minetest.register_alias_force(wire, ingot) + minetest.clear_craft({ + output = wire .. " 2", + type = "shapeless", + recipe = { + ingot, + "basic_materials:empty_spool", + "basic_materials:empty_spool", + }, + }) +end diff --git a/basic_materials_mod/locale/basic_materials_mod.zh_TW.tr b/basic_materials_mod/locale/basic_materials_mod.zh_TW.tr new file mode 100644 index 0000000..2e8f445 --- /dev/null +++ b/basic_materials_mod/locale/basic_materials_mod.zh_TW.tr @@ -0,0 +1,5 @@ +# textdomain: basic_materials_mod +Oil extracted from leaves.=從樹葉提煉的油。 +Crafted from 6 leaves. This can be processed into plastic by smelting.=由六塊樹葉合成。經過燒煉後,可以轉化爲塑膠。 +Plastic for machine crafting.=用於合成機器的塑膠。 +Produced by smelting oil extracts. This is useful in crafting high-tech items.=由提煉油製作而成。可用於合成高科技機器。 diff --git a/basic_materials_mod/locale/template.txt b/basic_materials_mod/locale/template.txt new file mode 100644 index 0000000..32ca1cc --- /dev/null +++ b/basic_materials_mod/locale/template.txt @@ -0,0 +1,5 @@ +# textdomain: basic_materials_mod +Oil extracted from leaves.= +Crafted from 6 leaves. This can be processed into plastic by smelting.= +Plastic for machine crafting.= +Produced by smelting oil extracts. This is useful in crafting high-tech items.= diff --git a/basic_materials_mod/mod.conf b/basic_materials_mod/mod.conf index 9c8cfff..6f2dde2 100644 --- a/basic_materials_mod/mod.conf +++ b/basic_materials_mod/mod.conf @@ -1,2 +1,2 @@ name = basic_materials_mod -depends = basic_materials \ No newline at end of file +depends = basic_materials, default, technic, moreores \ No newline at end of file diff --git a/bonemeal_mod/init.lua b/bonemeal_mod/init.lua new file mode 100644 index 0000000..4321c58 --- /dev/null +++ b/bonemeal_mod/init.lua @@ -0,0 +1,65 @@ +-- twi_mods/bonemeal_mod/init.lua +-- Modify bonemeal mod +--[[ + The MIT License (MIT) + + Copyright (c) 2016 TenPlus1 + Copyright (c) 2024 1F616EMO + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +]] + +-- 1. Remove shaped recipies and replace them with shapeless one + +--- 1a. Mulch from one tree and 8 leaves +minetest.clear_craft({ + output = "bonemeal:mulch 4", + recipe = { + { "group:tree", "group:leaves", "group:leaves" }, + { "group:leaves", "group:leaves", "group:leaves" }, + { "group:leaves", "group:leaves", "group:leaves" } + } +}) +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:mulch 4", + recipe = { + "group:tree", "group:leaves", "group:leaves", + "group:leaves", "group:leaves", "group:leaves", + "group:leaves", "group:leaves", "group:leaves" + } +}) + +--- 1b. Fertiliser from both type of bonemeal +minetest.clear_craft({ + output = "bonemeal:fertiliser 2", + recipe = { { "bonemeal:bonemeal", "bonemeal:mulch" } } +}) +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:fertiliser 2", + recipe = { "bonemeal:bonemeal", "bonemeal:mulch" }, +}) + +-- 2. Add craft recipe for bonemeal +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:bonemeal 2", + recipe = { "group:bone" } +}) diff --git a/bonemeal_mod/mod.conf b/bonemeal_mod/mod.conf new file mode 100644 index 0000000..179804b --- /dev/null +++ b/bonemeal_mod/mod.conf @@ -0,0 +1,2 @@ +name = bonemeal_mod +depends = bonemeal \ No newline at end of file diff --git a/crash_workaround/init.lua b/crash_workaround/init.lua index 378b3da..07c8f71 100644 --- a/crash_workaround/init.lua +++ b/crash_workaround/init.lua @@ -1,51 +1,52 @@ -- twi_mods/crash_workaround/init.lua -- Avoid the cause of segfault --[[ Copyright © 2024 1F616EMO - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the “Software”), - to deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Software. + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. - THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, - INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION - OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. ]] -- Autocrafter psudo-item -- For unknwon reason this is identical to flux's, but trust me, I wrote this without his -- https://discord.com/channels/369122544273588224/369123275877384192/1193075939903553669 local ndef = minetest.registered_nodes["pipeworks:autocrafter"] local old_allow_metadata_inventory_put = ndef.allow_metadata_inventory_put local old_allow_metadata_inventory_take = ndef.allow_metadata_inventory_take local old_allow_metadata_inventory_move = ndef.allow_metadata_inventory_move minetest.override_item("pipeworks:autocrafter", { allow_metadata_inventory_put = function(pos, listname, index, stack, player) if listname == "output" then return 0 end return old_allow_metadata_inventory_put(pos, listname, index, stack, player) end, allow_metadata_inventory_take = function(pos, listname, index, stack, player) if listname == "output" then return 0 end return old_allow_metadata_inventory_take(pos, listname, index, stack, player) end, allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) if from_list == "output" or to_list == "output" then return 0 end return old_allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) end, }) minetest.log("action", "[crash_workaround] Autocrafter workaround loaded") \ No newline at end of file