Reorganize code
parent
f47479a6cb
commit
2e7ebb18e7
95
API-pt_br.md
95
API-pt_br.md
|
@ -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
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
13
api.lua
13
api.lua
|
@ -8,8 +8,8 @@
|
||||||
API
|
API
|
||||||
]]
|
]]
|
||||||
|
|
||||||
-- Global Table
|
-- Torchs table
|
||||||
-- Tabela Global
|
-- Tabela de tochas
|
||||||
hardtorch.registered_torchs = {}
|
hardtorch.registered_torchs = {}
|
||||||
|
|
||||||
-- Register torch
|
-- Register torch
|
||||||
|
@ -40,3 +40,12 @@ hardtorch.register_torch = function(name, def)
|
||||||
end
|
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
|
||||||
|
|
|
@ -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 <opicional>
|
||||||
|
node_wall = "bloco_na_parede", -- Blocos colocados na parede <opicional>
|
||||||
|
fire_source = true, -- Registra como fonte de fogo (padrão é `true`) <opicional>
|
||||||
|
},
|
||||||
|
|
||||||
|
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) <opicional>
|
||||||
|
}
|
||||||
|
|
||||||
|
### 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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 <https://www.gnu.org/licenses/>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
|
67
init.lua
67
init.lua
|
@ -8,36 +8,32 @@
|
||||||
]]
|
]]
|
||||||
|
|
||||||
|
|
||||||
-- Global Table
|
-- Global Tables
|
||||||
-- Tabela Global
|
|
||||||
|
-- API Table
|
||||||
|
-- Tabela da API
|
||||||
hardtorch = {}
|
hardtorch = {}
|
||||||
|
|
||||||
|
-- Players in loop to lit torch
|
||||||
-- Players in loop to torchs on
|
|
||||||
-- Jogadores em loop de tocha acesa
|
-- Jogadores em loop de tocha acesa
|
||||||
hardtorch.in_loop = {}
|
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)
|
-- Fire sources (nodes that act as fire sources to light torches)
|
||||||
-- Fontes de fogo (nodes que funcionam como fontes de fogo para acender tochas)
|
-- Fontes de fogo (nodes que funcionam como fontes de fogo para acender tochas)
|
||||||
hardtorch.fire_sources = {}
|
hardtorch.fire_sources = {}
|
||||||
|
|
||||||
|
|
||||||
-- Nodes to avoid when placing torches
|
-- Nodes to avoid when placing torches
|
||||||
-- Nodes para evitar ao colocar tochas
|
-- Nodes para evitar ao colocar tochas
|
||||||
hardtorch.not_place_torch_on = {}
|
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
|
-- Fixed time for a night
|
||||||
-- Tempo fixo de duração de uma noite
|
-- Tempo fixo de duração de uma noite
|
||||||
hardtorch.night_time = tonumber(minetest.settings:get("hardtorch_fixed_night_time") or 0)
|
hardtorch.night_time = tonumber(minetest.settings:get("hardtorch_fixed_night_time") or 0)
|
||||||
|
@ -50,6 +46,9 @@ if hardtorch.night_time == 0 then
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- Load scripts
|
||||||
|
|
||||||
-- Notify load
|
-- Notify load
|
||||||
-- Notificador de Inicializador
|
-- Notificador de Inicializador
|
||||||
local notify = function(msg)
|
local notify = function(msg)
|
||||||
|
@ -58,32 +57,27 @@ local notify = function(msg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Modpath
|
-- Modpath
|
||||||
local modpath = minetest.get_modpath("hardtorch")
|
local modpath = minetest.get_modpath("hardtorch")
|
||||||
|
|
||||||
-- Carregar scripts
|
|
||||||
notify("Loading...")
|
notify("Loading...")
|
||||||
|
-- API features
|
||||||
-- API
|
dofile(modpath.."/features/common.lua")
|
||||||
dofile(modpath.."/common.lua")
|
dofile(modpath.."/features/light.lua")
|
||||||
dofile(modpath.."/light.lua")
|
dofile(modpath.."/features/tool.lua")
|
||||||
dofile(modpath.."/tool.lua")
|
dofile(modpath.."/features/node.lua")
|
||||||
dofile(modpath.."/node.lua")
|
dofile(modpath.."/features/fuel.lua")
|
||||||
dofile(modpath.."/lighter.lua")
|
dofile(modpath.."/features/api.lua")
|
||||||
dofile(modpath.."/fuel.lua")
|
|
||||||
dofile(modpath.."/api.lua")
|
|
||||||
|
|
||||||
-- Content
|
-- Content
|
||||||
dofile(modpath.."/oil.lua")
|
dofile(modpath.."/content/oil.lua")
|
||||||
dofile(modpath.."/torchs/torch.lua")
|
dofile(modpath.."/content/torch.lua")
|
||||||
dofile(modpath.."/torchs/lamp.lua")
|
dofile(modpath.."/content/lamp.lua")
|
||||||
dofile(modpath.."/torchs/xdecor_candle.lua")
|
dofile(modpath.."/content/xdecor_candle.lua")
|
||||||
|
|
||||||
notify("OK!")
|
notify("OK!")
|
||||||
|
|
||||||
|
|
||||||
-- Preset
|
|
||||||
|
-- Presets
|
||||||
-- Pré ajustes
|
-- Pré ajustes
|
||||||
|
|
||||||
-- Lighter Flint and Steel
|
-- 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:basic_flame"] = true
|
||||||
hardtorch.fire_sources["fire:permanent_flame"] = true
|
hardtorch.fire_sources["fire:permanent_flame"] = true
|
||||||
|
|
||||||
-- Campfire Mod
|
-- Campfire mod
|
||||||
if minetest.get_modpath("campfire") then
|
if minetest.get_modpath("campfire") then
|
||||||
hardtorch.fire_sources["campfire:campfire_active"] = true
|
hardtorch.fire_sources["campfire:campfire_active"] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Anvil mod
|
||||||
|
if minetest.get_modpath("anvil") then
|
||||||
|
table.insert(hardtorch.not_place_torch_on, "anvil:anvil")
|
||||||
|
end
|
||||||
|
|
20
lighter.lua
20
lighter.lua
|
@ -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 <https://www.gnu.org/licenses/>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
|
|
||||||
|
|
Loading…
Reference in New Issue