From 8542823312a2dd4ba760126f3ef6c59fdeeaf911 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 15:39:20 -0500 Subject: [PATCH 1/6] Added Textures for 2 and 3 tanks Each "tank" will of course double or triple in value. --- textures/airtanks_airtank_three.png | Bin 0 -> 385 bytes textures/airtanks_airtank_two.png | Bin 0 -> 379 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 textures/airtanks_airtank_three.png create mode 100644 textures/airtanks_airtank_two.png diff --git a/textures/airtanks_airtank_three.png b/textures/airtanks_airtank_three.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f9e8d35b72d0f3d1f2090859cc5f8b94a64076 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP#GmD6tL?_eT6F?!^%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6^dDE`#b#WBR<^wdjty^a_Nv^^}pbZ=&rY}37E>`f=Cr1Sb) zFO_BAI@iy>azpz`2cZf(i5ZFo*Jc&>T$Z>Kx|WeeV0YG*D69C$;@%iyzWzEp^N-^5_$ZyJ+6!0BU{!LO%_!#Q!qB*6)3hjWhNgs7 zGo;>A#*Ep9hJ}PwJ^5MmIrk%0T-($1itNSlw X!ohBV%F|mvgF?d7)z4*}Q$iB}VFH$X literal 0 HcmV?d00001 diff --git a/textures/airtanks_airtank_two.png b/textures/airtanks_airtank_two.png new file mode 100644 index 0000000000000000000000000000000000000000..f221b6c8a5b5d5fe3294d8d685a054c166afebbf GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP#GmD5S$Nm}f@_|CKnIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^Q2f59i(`nz>DCLrUd)aHZ4b9s6&Zh(X^Okts<7y~K_qvg zkz}>e*T+gJ%0GP^^W|nuU)QE>{5|e>Vf=OQ(>FVdQ&MBb@0B9hPs{jB1 literal 0 HcmV?d00001 From 5d1922a749de62dba9ce46b2766496d48cc41e50 Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 15:53:41 -0500 Subject: [PATCH 2/6] Added 2 and 3 tank support. Example: A copper tank has 10 uses, But 2 copper tanks have 20 uses, And 3 copper tanks have 30 uses. --- init.lua | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/init.lua b/init.lua index 7ed73af..c5dea09 100644 --- a/init.lua +++ b/init.lua @@ -23,9 +23,21 @@ local function setting(stype, name, default, description) end end +-- Single tanks setting("int", "steel_uses", 20, "Number of uses for a steel air tank") setting("int", "copper_uses", 10, "Number of uses for a copper air tank") setting("int", "bronze_uses", config.steel_uses + config.copper_uses, "Number of uses for a bronze air tank") + +-- Double tanks +setting("int", "steel_2_uses", config.steel_uses * 2, "Number of uses for a pair of steel air tanks") +setting("int", "copper_2_uses", config.copper_uses * 2, "Number of uses for a pair of copper air tanks") +setting("int", "bronze_2_uses", config.bronze_uses * 2, "Number of uses for a pair of bronze air tanks") + +-- Triple tanks +setting("int", "steel_3_uses", config.steel_uses * 3, "Number of uses for three steel air tanks") +setting("int", "copper_3_uses", config.copper_uses * 3, "Number of uses for threee copper air tanks") +setting("int", "bronze_3_uses", config.bronze_uses * 3, "Number of uses for three bronze air tanks") + setting("bool", "wear_in_creative", true, "Air tanks wear out in creative mode") local compressor_desc = S("A machine for filling air tanks with compressed air.") @@ -98,6 +110,7 @@ local function use_airtank(itemstack, user, pointed_thing, full_item) return itemstack end +-- This will only work for single use tanks... we need to add seperate functions for the others local function register_air_tank(name, desc, color, uses, material) minetest.register_craftitem("airtanks:empty_"..name.."_tank", { description = S("Empty @1", desc), @@ -148,10 +161,121 @@ local function register_air_tank(name, desc, color, uses, material) end +local function register_air_tank_2(name, desc, color, uses) + minetest.register_craftitem("airtanks:empty_"..name.."_tank_2", { + description = S("Empty @1", desc), + _doc_items_longdesc = S("2 compressed air tanks, currently empty."), + _doc_items_usagehelp = S("This tank can be recharged with compressed air by using it on a compressor block. When fully charged this tank has @1 uses before it becomes empty.", uses), + inventory_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png^airtanks_empty.png", + wield_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png^airtanks_empty.png", + stack_max = 99, + + on_place = function(itemstack, user, pointed_thing) + return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_2") + end, + + on_use = function(itemstack, user, pointed_thing) + return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_2") + end, + }) + + minetest.register_tool("airtanks:"..name.."_tank_2", { + description = desc, + _doc_items_longdesc = S("A tank containing compressed air."), + _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged this tank has @1 uses before it becomes empty.", uses), + _airtank_uses = uses, + _airtank_empty = "airtanks:empty_"..name.."_tank", + groups = {not_repaired_by_anvil = 1, airtank = 1}, + inventory_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png", + wield_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png", + stack_max = 1, + + on_place = function(itemstack, user, pointed_thing) + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_2") + end, + + on_use = function(itemstack, user, pointed_thing) + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_2") + end, + }) + + minetest.register_craft({ + recipe = { + -- Use 2 singles to make a double + {"airtanks:empty_"..name.."_tank", "airtanks:empty_"..name.."_tank"}, + }, + output = "airtanks:empty_"..name.."_tank_2", + }) + +end + +local function register_air_tank_3(name, desc, color, uses) + minetest.register_craftitem("airtanks:empty_"..name.."_tank_3", { + description = S("Empty @1", desc), + _doc_items_longdesc = S("3 compressed air tanks, currently empty."), + _doc_items_usagehelp = S("This tank can be recharged with compressed air by using it on a compressor block. When fully charged this tank has @1 uses before it becomes empty.", uses), + inventory_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png^airtanks_empty.png", + wield_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png^airtanks_empty.png", + stack_max = 99, + + on_place = function(itemstack, user, pointed_thing) + return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_3") + end, + + on_use = function(itemstack, user, pointed_thing) + return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_3") + end, + }) + + minetest.register_tool("airtanks:"..name.."_tank_3", { + description = desc, + _doc_items_longdesc = S("A tank containing compressed air."), + _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged this tank has @1 uses before it becomes empty.", uses), + _airtank_uses = uses, + _airtank_empty = "airtanks:empty_"..name.."_tank", + groups = {not_repaired_by_anvil = 1, airtank = 1}, + inventory_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png", + wield_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png", + stack_max = 1, + + on_place = function(itemstack, user, pointed_thing) + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_3") + end, + + on_use = function(itemstack, user, pointed_thing) + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_3") + end, + }) + + minetest.register_craft({ + recipe = { + -- Use 3 singles to make a triple + {"airtanks:empty_"..name.."_tank", "airtanks:empty_"..name.."_tank", "airtanks:empty_"..name.."_tank"}, + }, + output = "airtanks:empty_"..name.."_tank_3", + }) + minetest.register_craft({ + recipe = { + -- Use 1 single and 1 dobule to make a triple + {"airtanks:empty_"..name.."_tank", "airtanks:empty_"..name.."_tank_2", ""}, + }, + output = "airtanks:empty_"..name.."_tank_3", + }) + +end + register_air_tank("steel", S("Steel Air Tank"), "#d6d6d6", config.steel_uses, "default:steel_ingot") register_air_tank("copper", S("Copper Air Tank"), "#cd8e54", config.copper_uses, "default:copper_ingot") register_air_tank("bronze", S("Bronze Air Tank"), "#c87010", config.bronze_uses, "default:bronze_ingot") +register_air_tank_2("steel", S("2 Steel Air Tank"), "#d6d6d6", config.steel_uses_2) +register_air_tank_2("copper", S("2 Copper Air Tank"), "#cd8e54", config.copper_uses_2) +register_air_tank_2("bronze", S("2 Bronze Air Tank"), "#c87010", config.bronze_uses_2) + +register_air_tank_3("steel", S("3 Steel Air Tank"), "#d6d6d6", config.steel_uses_3) +register_air_tank_3("copper", S("3 Copper Air Tank"), "#cd8e54", config.copper_uses_3) +register_air_tank_3("bronze", S("3 Bronze Air Tank"), "#c87010", config.bronze_uses_3) + --------------------------------------------------------------------------------------------------------- -- Compressor From cc7e52d8a7707dc88a5ef5bb96d2465a05dcb9df Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 16:01:22 -0500 Subject: [PATCH 3/6] Fixed an issue with loading the mod. Now go and swim/dive for a very long time. --- init.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/init.lua b/init.lua index c5dea09..c9c8a23 100644 --- a/init.lua +++ b/init.lua @@ -268,13 +268,13 @@ register_air_tank("steel", S("Steel Air Tank"), "#d6d6d6", config.steel_uses, "d register_air_tank("copper", S("Copper Air Tank"), "#cd8e54", config.copper_uses, "default:copper_ingot") register_air_tank("bronze", S("Bronze Air Tank"), "#c87010", config.bronze_uses, "default:bronze_ingot") -register_air_tank_2("steel", S("2 Steel Air Tank"), "#d6d6d6", config.steel_uses_2) -register_air_tank_2("copper", S("2 Copper Air Tank"), "#cd8e54", config.copper_uses_2) -register_air_tank_2("bronze", S("2 Bronze Air Tank"), "#c87010", config.bronze_uses_2) +register_air_tank_2("steel", S("2 Steel Air Tank"), "#d6d6d6", config.steel_2_uses) +register_air_tank_2("copper", S("2 Copper Air Tank"), "#cd8e54", config.copper_2_uses) +register_air_tank_2("bronze", S("2 Bronze Air Tank"), "#c87010", config.bronze_2_uses) -register_air_tank_3("steel", S("3 Steel Air Tank"), "#d6d6d6", config.steel_uses_3) -register_air_tank_3("copper", S("3 Copper Air Tank"), "#cd8e54", config.copper_uses_3) -register_air_tank_3("bronze", S("3 Bronze Air Tank"), "#c87010", config.bronze_uses_3) +register_air_tank_3("steel", S("3 Steel Air Tank"), "#d6d6d6", config.steel_3_uses) +register_air_tank_3("copper", S("3 Copper Air Tank"), "#cd8e54", config.copper_3_uses) +register_air_tank_3("bronze", S("3 Bronze Air Tank"), "#c87010", config.bronze_3_uses) --------------------------------------------------------------------------------------------------------- -- Compressor From 4b802eea934f40e74607bf8986ba99acc941bb5d Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 17:36:02 -0500 Subject: [PATCH 4/6] Added extra recipe options Now you can craft a full tank from other full tanks instead of needing them empty. (But you can't use tanks partially full) --- init.lua | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/init.lua b/init.lua index c9c8a23..7c838c5 100644 --- a/init.lua +++ b/init.lua @@ -199,6 +199,7 @@ local function register_air_tank_2(name, desc, color, uses) end, }) + -- Allow empty tanks minetest.register_craft({ recipe = { -- Use 2 singles to make a double @@ -206,6 +207,14 @@ local function register_air_tank_2(name, desc, color, uses) }, output = "airtanks:empty_"..name.."_tank_2", }) + -- Allow full tanks too + minetest.register_craft({ + recipe = { + -- Use 2 singles to make a double + {"airtanks:"..name.."_tank", "airtanks:"..name.."_tank"}, + }, + output = "airtanks:"..name.."_tank_2", + }) end @@ -247,6 +256,7 @@ local function register_air_tank_3(name, desc, color, uses) end, }) + -- Allow empty tanks minetest.register_craft({ recipe = { -- Use 3 singles to make a triple @@ -261,6 +271,21 @@ local function register_air_tank_3(name, desc, color, uses) }, output = "airtanks:empty_"..name.."_tank_3", }) + -- Allow full tanks too + minetest.register_craft({ + recipe = { + -- Use 3 singles to make a triple + {"airtanks:"..name.."_tank", "airtanks:"..name.."_tank", "airtanks:"..name.."_tank"}, + }, + output = "airtanks:"..name.."_tank_3", + }) + minetest.register_craft({ + recipe = { + -- Use 1 single and 1 dobule to make a triple + {"airtanks:"..name.."_tank", "airtanks:"..name.."_tank_2", ""}, + }, + output = "airtanks:"..name.."_tank_3", + }) end From 057e7dfbf23b231219eb59dc35bbfa38fb0f351e Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 18:00:30 -0500 Subject: [PATCH 5/6] Updated names so they are more defined --- init.lua | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/init.lua b/init.lua index 7c838c5..6a68489 100644 --- a/init.lua +++ b/init.lua @@ -164,8 +164,8 @@ end local function register_air_tank_2(name, desc, color, uses) minetest.register_craftitem("airtanks:empty_"..name.."_tank_2", { description = S("Empty @1", desc), - _doc_items_longdesc = S("2 compressed air tanks, currently empty."), - _doc_items_usagehelp = S("This tank can be recharged with compressed air by using it on a compressor block. When fully charged this tank has @1 uses before it becomes empty.", uses), + _doc_items_longdesc = S("A pair of compressed air tanks, currently empty."), + _doc_items_usagehelp = S("This tank can be recharged with compressed air by using it on a compressor block. When fully charged these tanks have @1 uses before it becomes empty.", uses), inventory_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png^airtanks_empty.png", wield_image = "airtanks_airtank_two.png^[colorize:"..color.."^[mask:airtanks_airtank_two.png^airtanks_empty.png", stack_max = 99, @@ -181,8 +181,8 @@ local function register_air_tank_2(name, desc, color, uses) minetest.register_tool("airtanks:"..name.."_tank_2", { description = desc, - _doc_items_longdesc = S("A tank containing compressed air."), - _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged this tank has @1 uses before it becomes empty.", uses), + _doc_items_longdesc = S("A pair of tanks containing compressed air."), + _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged these tanks have @1 uses before it becomes empty.", uses), _airtank_uses = uses, _airtank_empty = "airtanks:empty_"..name.."_tank", groups = {not_repaired_by_anvil = 1, airtank = 1}, @@ -221,8 +221,8 @@ end local function register_air_tank_3(name, desc, color, uses) minetest.register_craftitem("airtanks:empty_"..name.."_tank_3", { description = S("Empty @1", desc), - _doc_items_longdesc = S("3 compressed air tanks, currently empty."), - _doc_items_usagehelp = S("This tank can be recharged with compressed air by using it on a compressor block. When fully charged this tank has @1 uses before it becomes empty.", uses), + _doc_items_longdesc = S("A set of three compressed air tanks, currently empty."), + _doc_items_usagehelp = S("These tanks can be recharged with compressed air by using it on a compressor block. When fully charged these tanks have @1 uses before it becomes empty.", uses), inventory_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png^airtanks_empty.png", wield_image = "airtanks_airtank_three.png^[colorize:"..color.."^[mask:airtanks_airtank_three.png^airtanks_empty.png", stack_max = 99, @@ -238,8 +238,8 @@ local function register_air_tank_3(name, desc, color, uses) minetest.register_tool("airtanks:"..name.."_tank_3", { description = desc, - _doc_items_longdesc = S("A tank containing compressed air."), - _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged this tank has @1 uses before it becomes empty.", uses), + _doc_items_longdesc = S("A set of three tanks containing compressed air."), + _doc_items_usagehelp = S("If you're underwater and you're running out of breath, wield this item and use it to replenish 5 bubbles on your breath bar. When fully charged these tanks have @1 uses before it becomes empty.", uses), _airtank_uses = uses, _airtank_empty = "airtanks:empty_"..name.."_tank", groups = {not_repaired_by_anvil = 1, airtank = 1}, @@ -293,13 +293,13 @@ register_air_tank("steel", S("Steel Air Tank"), "#d6d6d6", config.steel_uses, "d register_air_tank("copper", S("Copper Air Tank"), "#cd8e54", config.copper_uses, "default:copper_ingot") register_air_tank("bronze", S("Bronze Air Tank"), "#c87010", config.bronze_uses, "default:bronze_ingot") -register_air_tank_2("steel", S("2 Steel Air Tank"), "#d6d6d6", config.steel_2_uses) -register_air_tank_2("copper", S("2 Copper Air Tank"), "#cd8e54", config.copper_2_uses) -register_air_tank_2("bronze", S("2 Bronze Air Tank"), "#c87010", config.bronze_2_uses) +register_air_tank_2("steel", S("Double Steel Air Tanks"), "#d6d6d6", config.steel_2_uses) +register_air_tank_2("copper", S("Double Copper Air Tanks"), "#cd8e54", config.copper_2_uses) +register_air_tank_2("bronze", S("Double Bronze Air Tanks"), "#c87010", config.bronze_2_uses) -register_air_tank_3("steel", S("3 Steel Air Tank"), "#d6d6d6", config.steel_3_uses) -register_air_tank_3("copper", S("3 Copper Air Tank"), "#cd8e54", config.copper_3_uses) -register_air_tank_3("bronze", S("3 Bronze Air Tank"), "#c87010", config.bronze_3_uses) +register_air_tank_3("steel", S("Triple Steel Air Tanks"), "#d6d6d6", config.steel_3_uses) +register_air_tank_3("copper", S("Triple Copper Air Tanks"), "#cd8e54", config.copper_3_uses) +register_air_tank_3("bronze", S("Triple Bronze Air Tanks"), "#c87010", config.bronze_3_uses) --------------------------------------------------------------------------------------------------------- -- Compressor From be317cb63e128fc47ce596a91f7f60ff5b52ff0a Mon Sep 17 00:00:00 2001 From: david Date: Thu, 4 Mar 2021 23:30:28 -0500 Subject: [PATCH 6/6] Fixed refill issue --- init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init.lua b/init.lua index 6a68489..afa2499 100644 --- a/init.lua +++ b/init.lua @@ -191,11 +191,11 @@ local function register_air_tank_2(name, desc, color, uses) stack_max = 1, on_place = function(itemstack, user, pointed_thing) - return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_2") + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_2", "airtanks:empty_"..name.."_tank_2") end, on_use = function(itemstack, user, pointed_thing) - return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_2") + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_2", "airtanks:empty_"..name.."_tank_2") end, }) @@ -248,11 +248,11 @@ local function register_air_tank_3(name, desc, color, uses) stack_max = 1, on_place = function(itemstack, user, pointed_thing) - return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_3") + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_3", "airtanks:empty_"..name.."_tank_3") end, on_use = function(itemstack, user, pointed_thing) - return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank_3") + return use_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank_3", "airtanks:empty_"..name.."_tank_3") end, })