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
|
||||
]]
|
||||
|
||||
-- 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
|
||||
|
|
|
@ -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
|
||||
-- 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
|
||||
|
|
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