diff --git a/API-pt_br.md b/API-pt_br.md deleted file mode 100644 index 2a3f176..0000000 --- a/API-pt_br.md +++ /dev/null @@ -1,95 +0,0 @@ -API de Desenvolvimento Lua para mod HardTorch 0.5.0 -=================================================== - -Introdução ---------------------------------------------------- -Esse Mod possui alguns metodos para registrar -tochas e combustiveis compativeis, bem como outros -recursos para apoiar o desenvolvimento de outras -modificações afim de manter compatibilidade. - -### Registros -Ao registrar uma tocha, nenhum item (node, tool e etc) -é criado, o registro serve apenas para que a API faça -com que um determinado item, ou conjunto de itens, funcionem -de maneira sistematica para funcionarem como uma tocha. - -Geralmente uma tocha é composta por varios itens os quais -a funcionam de forma sistematica para parecerem uma simples -tocha no jogo. Essa sistematização foi elaborada para permitir -ao desenvolvedor personalizar o maior número de caracteristicas -dos itens. - -Ao ver os parametros fornecidos ao registrar uma tocha, -combustivel ou qualquer outra coisa, verifique as mudanças -que serão realizadas nos itens que serão usados para a formação -da tocha, combustivel ou outro. - -* `hardtorch.register_torch(name, definições da tocha)`: Registra uma ferramenta de iluminação - * `name`: Itemstring da tocha. Chamadas (Callbacks) `on_use` e `on_place` são alterados pela API. - * Um item com itemstring igual a `name` com prefixo "_on" precisa estar registrado em Minetest - e representara a ferramenta acesa. Chamadas (Callbacks) `on_use`, `on_drop` e `on_place` - são alterados pela API. - * Adiciona tocha registrada em `hardtorch.registered_torchs` - -* `hardtorch.register_fuel(name, definições do combustivel)`: Registra uma combustivel - * `name`: Nome do item do tipo ferramenta que vai representar o combustivel - * Adiciona combustivel registrado em `hardtorch.registered_fuels` - -* `hardtorch.register_lighter(name, definições do acendedor)`: Registra um acendedor - * `name`: Nome do item do tipo ferramenta que vai representar o acendedor - * Adiciona combustivel registrado em `hardtorch.registered_lighters` - -### Definições do node (`register_torch`) -{ - light_source = 13, --[[ - ^ Intensidade de iluminação da tocha ao ser segurada acesa - ^ Mínimo é 1 e máximo é 14 ]] - - nodes = { --[[ - ^ Todos os nodes informados terão as chamadas (callbacks) `on_dig`, `on_use`, `on_timer` - e `after_place_node`. Parametro `drop` do node tambem será mudado.]] - fire_source = true, --[[ - ^ Registra automaticamente esses nodes como fontes de fogo - ^ Se omitido, serão registrados ]] - node = "default:torch", -- Node que ilumina quando colocado no mapa - node_ceiling = "default:torch_ceiling", -- Opcional para nodes wallmounted - node_wall = "default:torch_wall", -- Opcional para nodes wallmounted - }, - - nodes_off = { -- Nodes que representam a tocha esgotada. - node = "default:torch_off", -- Node apagado quando colocado no mapa - node_ceiling = "default:torch_off_ceiling", -- Opcional para nodes wallmounted - node_wall = "default:torch_off_wall", -- Opcional para nodes wallmounted - }, - - sounds = { - turn_on = {name="sound_file", gain=1.0}, -- Som emitido ao acender a tocha - turn_off = {name="sound_file", gain=1.0}, -- Som emitido apagar a tocha - water_turn_off = {name="sound_file", gain=1.0}, -- Som emitido ao apagar a tocha quando em contato com agua - }, - - fuel = {"mymod:fuel_1", "mymod:fuel_2"}, --[[ - ^ Lista de itens consumiveis - ^ Precisam ser ferramentas desgastaveis ]] - - drop_on_water = "", --[[ - ^ Itemstring do item dropado quando a tocha é apagada pela agua - ^ Se omitido, dropa a propria tocha apagada ]] -} - -### Definições do combustivel (`register_fuel`) -{ - turns = 1.0, - ^ Noites de duração -} - -### Definições do acendedor (`register_lighter`) -{ - wear_by_use = 1000, - ^ Desgaste causado na ferramenta -} - - - - diff --git a/api.lua b/api.lua index 3dfb4b4..50d12b9 100644 --- a/api.lua +++ b/api.lua @@ -8,8 +8,8 @@ API ]] --- Global Table --- Tabela Global +-- Torchs table +-- Tabela de tochas hardtorch.registered_torchs = {} -- Register torch @@ -40,3 +40,12 @@ hardtorch.register_torch = function(name, def) end +-- Lighters table +-- Tabela de acendedores +hardtorch.registered_lighters = {} + +-- Register lighter +-- Registrar Acendedor +hardtorch.register_lighter = function(name, def) + hardtorch.registered_lighters[name] = def +end diff --git a/torchs/lamp.lua b/content/lamp.lua similarity index 100% rename from torchs/lamp.lua rename to content/lamp.lua diff --git a/oil.lua b/content/oil.lua similarity index 100% rename from oil.lua rename to content/oil.lua diff --git a/torchs/torch.lua b/content/torch.lua similarity index 100% rename from torchs/torch.lua rename to content/torch.lua diff --git a/torchs/xdecor_candle.lua b/content/xdecor_candle.lua similarity index 100% rename from torchs/xdecor_candle.lua rename to content/xdecor_candle.lua diff --git a/doc/API-pt_br.md b/doc/API-pt_br.md new file mode 100644 index 0000000..0d32f1d --- /dev/null +++ b/doc/API-pt_br.md @@ -0,0 +1,94 @@ +API de Desenvolvimento Lua para o mod HardTorch +=============================================== + +Introdução +---------- +Esse Mod possui alguns metodos para registrar tochas e combustiveis compativeis, bem como outros +recursos para apoiar o desenvolvimento de outras modificações afim de manter compatibilidade. + +Tabelas globais +--------------- +* `hardtorch.registered_torchs`: Definições de tochas registradas, indexado por itemstring. +* `hardtorch.registered_fuels`: Definições de combustiveis registrados, indexado por itemstring. +* `hardtorch.registered_lighters`: Definições de acendedores registrados, indexado por itemstring. +* `hardtorch.registered_nodes`: Definições de nós/blocos de tocha registrados, indexado por itemstring. +* `hardtorch.fire_sources`: Lista de fontes de calor, indexado por itemstring. +* `hardtorch.not_place_torch_on`: Lista de nós/blocos evitaveis para colocação de tochas, não indexado. + +### Tochas +Ao registrar uma tocha, nenhum item (nó ou ferramenta) é criado. A API irá modificar os itens já +registrados em Minetest afim de funcionarem como um único item que é a tocha. Portanto, toda a +arte e aspectos físicos da tocha não é realizado pela API e deve ser previamente criado, +isso permite mais personalização de cada tocha. +Os itens previamente criados, e que serão usados para registrar a tocha são: + +* Tocha: Item do tipo ferramenta que será usado como tocha apagada no inventario. +* Tocha acesa: Item do tipo ferramenta que será usado como tocha acesa no invenario. +* Bloco de tocha: Item do tipo nó/bloco que será colocado no chão como uma tocha apagada. +* Bloco de tocha acesa: Item do tipo nó/bloco que será colocado no chão como uma tocha acesa. +* Combustivel: Item do tipo ferramenta que será desgastado enquanto a tocha estiver acesa. + +#### Combustivel +O combustivel é um item do tipo ferramenta que será consumido enquanto o jogador estiver com uma +tocha acesa ou repassado para a tocha acesa que for colocada como bloco. Todos os combustiveis +precisam ser previamente registrados como tal atravez do método correspondente. + +#### Acendedor +O acendedor é um item do tipo ferramenta usado para acender uma tocha no inventario. Todos os +acendedores precisam ser previamente registrados como tal atravez do método correspondente. +A necessidade do acendedor é desabilitada por padrão nas configurações de jogo. + +#### Fontes de calor +As fontes de calor são blocos que podem ser usados para acender uma tocha. Os nodes que podem ser +usados como fonte de calor precisar ser inseridos na tabela correspondente. +A necessidade da fonte de calor para acender tochas é desabilitada por padrão nas configurações de jogo. + +### Methods +* `hardtorch.register_torch(itemstring, {definições da tocha})`: Registra uma tocha. +* `hardtorch.register_fuel(itemstring, {definições do combustivel})`: Registra uma combustivel. +* `hardtorch.register_lighter(itemstring, {definições do acendedor})`: Registra um acendedor. + +### Definições do node (`register_torch`) + + { + light_source = 13, -- Intensidade de iluminação da tocha (máximo é 14) + + nodes = { -- Blocos de tocha acesa + node = "bloco_padrao", -- Bloco padrão padrão + node_ceiling = "bloco_no_teto", -- Blocos colocados no teto + node_wall = "bloco_na_parede", -- Blocos colocados na parede + fire_source = true, -- Registra como fonte de fogo (padrão é `true`) + }, + + nodes_off = { -- Bloco de tocha apagada + node = "bloco_padrao_apagado", -- Bloco apagado quando colocado no mapa + node_ceiling = "bloco_no_teto", -- Opcional para nodes wallmounted + node_wall = "bloco_na_parede", -- Opcional para nodes wallmounted + }, + + sounds = { -- Sons + turn_on = {name="som", gain=1.0}, -- Som de acender tocha + turn_off = {name="som", gain=1.0}, -- Som de apagar tocha de forma generica + water_turn_off = {name="som", gain=1.0}, -- Som de apagar tocha com agua + }, + + fuel = {"combustivel1", "combustivel2"}, -- Lista de combustiveis + + drop_on_water = "item_dropado", -- Item caido se molhar a tocha (por padrão é a tocha) + } + +### Definições do combustivel (`register_fuel`) + + { + turns = 1.0, -- Noites de duração + } + +### Definições do acendedor (`register_lighter`) + + { + wear_by_use = 1000, -- Desgaste causado na ferramenta + } + + + + diff --git a/LICENSE.txt b/doc/LICENSE.txt similarity index 100% rename from LICENSE.txt rename to doc/LICENSE.txt diff --git a/features/api.lua b/features/api.lua new file mode 100644 index 0000000..005038d --- /dev/null +++ b/features/api.lua @@ -0,0 +1,51 @@ +--[[ + Mod HardTorch for Minetest + Copyright (C) 2019 BrunoMine (https://github.com/BrunoMine) + + You should have received a copy of the GNU General Public License + along with this program. If not, see 5. + + API + ]] + +-- Global Table +-- Tabela Global +hardtorch.registered_torchs = {} + +-- Register torch +-- Registrar tocha +hardtorch.register_torch = function(name, def) + + hardtorch.registered_torchs[name] = def + + -- Consolidate data + -- Consolidar dados + hardtorch.registered_torchs[name].sounds = def.sounds or {} + + -- Register tools (off and on) + -- Registrar ferramentas (apagada e acesa) + hardtorch.register_tool(name, def) + + -- Register node + -- Registrar node + hardtorch.register_node(name, def) + + -- Turn off the torch on joining the server + -- Desligue a tocha ao ingressar no servidor + minetest.register_on_joinplayer(function(player) + if hardtorch.find_item(player, name.."_on") == true then + hardtorch.turnoff_torch(player, name) + end + end) +end + + +-- Global Table +-- Tabela global +hardtorch.registered_lighters = {} + +-- Register lighter +-- Registrar Acendedor +hardtorch.register_lighter = function(name, def) + hardtorch.registered_lighters[name] = def +end diff --git a/common.lua b/features/common.lua similarity index 100% rename from common.lua rename to features/common.lua diff --git a/fuel.lua b/features/fuel.lua similarity index 100% rename from fuel.lua rename to features/fuel.lua diff --git a/light.lua b/features/light.lua similarity index 100% rename from light.lua rename to features/light.lua diff --git a/node.lua b/features/node.lua similarity index 100% rename from node.lua rename to features/node.lua diff --git a/tool.lua b/features/tool.lua similarity index 100% rename from tool.lua rename to features/tool.lua diff --git a/init.lua b/init.lua index 95dbb7f..208cd75 100644 --- a/init.lua +++ b/init.lua @@ -8,36 +8,32 @@ ]] --- Global Table --- Tabela Global +-- Global Tables + +-- API Table +-- Tabela da API hardtorch = {} - --- Players in loop to torchs on +-- Players in loop to lit torch -- Jogadores em loop de tocha acesa hardtorch.in_loop = {} - --- Require fire source to light torch --- Requerer fonte de fogo para acender tocha -hardtorch.torch_lighter = (minetest.settings:get("hardtorch_torch_lighter") == "true") or false - - -- Fire sources (nodes that act as fire sources to light torches) -- Fontes de fogo (nodes que funcionam como fontes de fogo para acender tochas) hardtorch.fire_sources = {} - -- Nodes to avoid when placing torches -- Nodes para evitar ao colocar tochas hardtorch.not_place_torch_on = {} --- Anvil Mod -if minetest.get_modpath("anvil") then - table.insert(hardtorch.not_place_torch_on, "anvil:anvil") -end +-- Load settings + +-- Require fire source to light torch +-- Requerer fonte de fogo para acender tocha +hardtorch.torch_lighter = (minetest.settings:get("hardtorch_torch_lighter") == "true") or false + -- Fixed time for a night -- Tempo fixo de duração de uma noite hardtorch.night_time = tonumber(minetest.settings:get("hardtorch_fixed_night_time") or 0) @@ -50,6 +46,9 @@ if hardtorch.night_time == 0 then end + +-- Load scripts + -- Notify load -- Notificador de Inicializador local notify = function(msg) @@ -58,32 +57,27 @@ local notify = function(msg) end end - -- Modpath local modpath = minetest.get_modpath("hardtorch") --- Carregar scripts notify("Loading...") - --- API -dofile(modpath.."/common.lua") -dofile(modpath.."/light.lua") -dofile(modpath.."/tool.lua") -dofile(modpath.."/node.lua") -dofile(modpath.."/lighter.lua") -dofile(modpath.."/fuel.lua") -dofile(modpath.."/api.lua") - +-- API features +dofile(modpath.."/features/common.lua") +dofile(modpath.."/features/light.lua") +dofile(modpath.."/features/tool.lua") +dofile(modpath.."/features/node.lua") +dofile(modpath.."/features/fuel.lua") +dofile(modpath.."/features/api.lua") -- Content -dofile(modpath.."/oil.lua") -dofile(modpath.."/torchs/torch.lua") -dofile(modpath.."/torchs/lamp.lua") -dofile(modpath.."/torchs/xdecor_candle.lua") - +dofile(modpath.."/content/oil.lua") +dofile(modpath.."/content/torch.lua") +dofile(modpath.."/content/lamp.lua") +dofile(modpath.."/content/xdecor_candle.lua") notify("OK!") --- Preset + +-- Presets -- Pré ajustes -- Lighter Flint and Steel @@ -100,7 +94,12 @@ hardtorch.fire_sources["default:lava_source"] = true hardtorch.fire_sources["fire:basic_flame"] = true hardtorch.fire_sources["fire:permanent_flame"] = true --- Campfire Mod +-- Campfire mod if minetest.get_modpath("campfire") then hardtorch.fire_sources["campfire:campfire_active"] = true end + +-- Anvil mod +if minetest.get_modpath("anvil") then + table.insert(hardtorch.not_place_torch_on, "anvil:anvil") +end diff --git a/lighter.lua b/lighter.lua deleted file mode 100644 index f8c8be3..0000000 --- a/lighter.lua +++ /dev/null @@ -1,20 +0,0 @@ ---[[ - Mod HardTorch for Minetest - Copyright (C) 2019 BrunoMine (https://github.com/BrunoMine) - - You should have received a copy of the GNU General Public License - along with this program. If not, see 5. - - Lighter - ]] - --- Global Table --- Tabela global -hardtorch.registered_lighters = {} - --- Register lighter --- Registrar Acendedor -hardtorch.register_lighter = function(name, def) - hardtorch.registered_lighters[name] = def -end - diff --git a/mod.conf b/mod.conf index 37b12df..c2e6f24 100644 --- a/mod.conf +++ b/mod.conf @@ -1,4 +1,4 @@ name = hardtorch -description = Tochas realistas (Realistic torchs) +description = Realistic torchs depends = default, fire optional_depends = xdecor, campfire