Initial commit

This commit is contained in:
FaceDeer 2017-03-26 02:02:56 -06:00
parent dd8d516480
commit 365ad1cead
15 changed files with 266 additions and 0 deletions

20
LICENSE.txt Normal file

@ -0,0 +1,20 @@
Sounds are under various licenses, see the license.txt file in the /sounds directory for details.
License for Code and Textures
-----------------------------
Copyright (C) 2017 FaceDeer
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

1
depends.txt Normal file

@ -0,0 +1 @@
default

150
init.lua Normal file

@ -0,0 +1,150 @@
-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")
local print_settingtypes = false
local CONFIG_FILE_PREFIX = "airtanks_"
local config = {}
local function setting(stype, name, default, description)
local value
if stype == "bool" then
value = minetest.setting_getbool(CONFIG_FILE_PREFIX..name)
elseif stype == "string" then
value = minetest.setting_get(CONFIG_FILE_PREFIX..name)
elseif stype == "int" or stype == "float" then
value = tonumber(minetest.setting_get(CONFIG_FILE_PREFIX..name))
end
if value == nil then
value = default
end
config[name] = value
if print_settingtypes then
minetest.debug(CONFIG_FILE_PREFIX..name.." ("..description..") "..stype.." "..tostring(default))
end
end
setting("int", "steel_uses", 30, "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)/2, "Number of uses for a bronze air tank")
local recharge_airtank = function(itemstack, user, pointed_thing, full_item)
if pointed_thing.type ~= "node" then return itemstack end
local node = minetest.get_node(pointed_thing.under)
if minetest.get_item_group(node.name, "airtanks_compressor") > 0 then
if itemstack:get_name() == full_item then
itemstack:set_wear(0)
else
local inv = user:get_inventory()
local leftover = inv:add_item("main", full_item)
if leftover:get_count() == 0 then
itemstack:set_count(itemstack:get_count()-1)
end
end
minetest.sound_play("airtanks_compressor", {pos = pointed_thing.under, gain = 0.5})
end
return itemstack
end
local use_airtank = function(itemstack, user, pointed_thing, uses, full_item, empty_item)
itemstack = recharge_airtank(itemstack, user, pointed_thing, full_item) -- first check if we're clicking on a compressor
local breath = user:get_breath()
if breath > 9 then return itemstack end
breath = math.min(10, breath+5)
user:set_breath(breath)
minetest.sound_play("airtanks_hiss", {pos = user:getpos(), gain = 0.5})
if not minetest.setting_getbool("creative_mode") then
local wdef = itemstack:get_definition()
itemstack:add_wear(65535/(uses-1))
if itemstack:get_count() == 0 then
if wdef.sound and wdef.sound.breaks then
minetest.sound_play(wdef.sound.breaks,
{pos = user:getpos(), gain = 0.5})
end
local inv = user:get_inventory()
itemstack = inv:add_item("main", empty_item)
end
end
return itemstack
end
local function register_air_tank(name, desc, color, uses, material)
minetest.register_craftitem("airtanks:empty_"..name.."_tank", {
description = S("Empty @1", desc),
inventory_image = "airtanks_airtank.png^[multiply:"..color.."^airtanks_empty.png",
wield_image = "airtanks_airtank.png^[multiply:"..color.."^airtanks_empty.png",
stack_max = 99,
on_place = function(itemstack, user, pointed_thing)
return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank")
end,
on_use = function(itemstack, user, pointed_thing)
return recharge_airtank(itemstack, user, pointed_thing, "airtanks:"..name.."_tank")
end,
})
minetest.register_tool("airtanks:"..name.."_tank", {
description = desc,
groups = {not_repaired_by_anvil = 1},
inventory_image = "airtanks_airtank.png^[multiply:"..color,
wield_image = "airtanks_airtank.png^[multiply:"..color,
stack_max = 1,
on_place = function(itemstack, user, pointed_thing)
return use_airtank(itemstack, user, pointed_thing, uses, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank")
end,
on_use = function(itemstack, user, pointed_thing)
return use_airtank(itemstack, user, pointed_thing, uses, "airtanks:"..name.."_tank", "airtanks:empty_"..name.."_tank")
end,
})
minetest.register_craft({
recipe = {
{"", material, ""},
{material, "", material},
{"", material, ""},
},
output = "airtanks:empty_"..name.."_tank"
})
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")
minetest.register_node("airtanks:compressor", {
description = S("Air Compressor"),
groups = {oddly_breakable_by_hand = 1, airtanks_compressor = 1},
sounds = default.node_sound_metal_defaults(),
tiles = {
"airtanks_compressor_bottom.png^[transformR90",
"airtanks_compressor_bottom.png^[transformR90",
"airtanks_compressor.png"
},
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
node_box = {
type = "fixed",
fixed = {
{-0.25, -0.4375, -0.5, 0.25, 0.0625, 0.5},
{-0.3125, -0.5, -0.375, 0.3125, 0.125, 0.375},
{-0.125, 0.125, -0.25, 0.125, 0.4375, 0.25},
}
}
})
minetest.register_craft({
recipe = {
{"", "default:steel_ingot", ""},
{"default:steel_ingot", "default:mese_crystal_fragment", "default:steel_ingot"},
{"group:wood", "default:steel_ingot", "group:wood"},
},
output = "airtanks:compressor"
})

45
intllib.lua Normal file

@ -0,0 +1,45 @@
-- Fallback functions for when `intllib` is not installed.
-- Code released under Unlicense <http://unlicense.org>.
-- Get the latest version of this file at:
-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua
local function format(str, ...)
local args = { ... }
local function repl(escape, open, num, close)
if escape == "" then
local replacement = tostring(args[tonumber(num)])
if open == "" then
replacement = replacement..close
end
return replacement
else
return "@"..open..num..close
end
end
return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl))
end
local gettext, ngettext
if minetest.get_modpath("intllib") then
if intllib.make_gettext_pair then
-- New method using gettext.
gettext, ngettext = intllib.make_gettext_pair()
else
-- Old method using text files.
gettext = intllib.Getter()
end
end
-- Fill in missing functions.
gettext = gettext or function(msgid, ...)
return format(msgid, ...)
end
ngettext = ngettext or function(msgid, msgid_plural, n, ...)
return format(n==1 and msgid or msgid_plural, ...)
end
return gettext, ngettext

38
locale/template.pot Normal file

@ -0,0 +1,38 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-26 01:50-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: C:\Users\Bryan\Downloads\minetest-0.4.15-win64\mods\airtanks\init.lua:54
msgid "Empty @1"
msgstr ""
#: C:\Users\Bryan\Downloads\minetest-0.4.15-win64\mods\airtanks\init.lua:95
msgid "Steel Air Tank"
msgstr ""
#: C:\Users\Bryan\Downloads\minetest-0.4.15-win64\mods\airtanks\init.lua:96
msgid "Copper Air Tank"
msgstr ""
#: C:\Users\Bryan\Downloads\minetest-0.4.15-win64\mods\airtanks\init.lua:97
msgid "Bronze Air Tank"
msgstr ""
#: C:\Users\Bryan\Downloads\minetest-0.4.15-win64\mods\airtanks\init.lua:100
msgid "Air Compressor"
msgstr ""

6
locale/update.bat Normal file

@ -0,0 +1,6 @@
@echo off
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
cd ..
set LIST=
for /r %%X in (*.lua) do set LIST=!LIST! %%X
..\intllib\tools\xgettext.bat %LIST%

1
mod.conf Normal file

@ -0,0 +1 @@
name = airtanks

3
settingtypes.txt Normal file

@ -0,0 +1,3 @@
airtanks_steel_uses (Number of uses for a steel air tank) int 30 2 1000
airtanks_copper_uses (Number of uses for a copper air tank) int 10 2 1000
airtanks_bronze_uses (Number of uses for a bronze air tank) int 20 2 1000

Binary file not shown.

BIN
sounds/airtanks_hiss.ogg Normal file

Binary file not shown.

2
sounds/license.txt Normal file

@ -0,0 +1,2 @@
airtanks_hiss - from https://www.freesound.org/people/josepharaoh99/sounds/367125/ by josepharaoh99 under the public domain via CC 0
airtanks_comressor - from https://www.freesound.org/people/Cell31_Sound_Productions/sounds/376927/ by Cell31_Sound_Productions under CC BY 3.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 850 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 B

BIN
textures/airtanks_empty.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B