mirror of
https://codeberg.org/Hamlet/ores_stats.git
synced 2025-01-23 21:01:34 +01:00
v1.0.0
This commit is contained in:
parent
fea50b369e
commit
a3c4842300
13
README.md
13
README.md
@ -2,20 +2,15 @@
|
|||||||
![Ores Stats' screenshot](screenshot.png)
|
![Ores Stats' screenshot](screenshot.png)
|
||||||
**_Provides informations about ores' percentages collected on map generation._**
|
**_Provides informations about ores' percentages collected on map generation._**
|
||||||
|
|
||||||
**Version:** 0.2.0
|
**Version:** 1.0.0
|
||||||
**Source code's license:** [EUPL v1.2][1] or later.
|
**Source code's license:** [EUPL v1.2][1] or later.
|
||||||
|
|
||||||
**Dependencies:** default (found in [Minetest Game][2])
|
**Dependencies:** default, sfinv (found in [Minetest Game][2])
|
||||||
|
|
||||||
|
**NOTE:** To update the page's values switch to another tab.
|
||||||
|
|
||||||
__Advanced option:__
|
__Advanced option:__
|
||||||
Settings -> All Settings -> Mods -> orestats
|
Settings -> All Settings -> Mods -> ores_stats
|
||||||
|
|
||||||
|
|
||||||
__How to use:__
|
|
||||||
Open the chat window, type the command /orestats help
|
|
||||||
To show ores' statistics in the chat window: /orestats chat
|
|
||||||
To show ores' statistics in the console window: /orestats console
|
|
||||||
|
|
||||||
|
|
||||||
### Installation
|
### Installation
|
||||||
|
18
changelog.md
18
changelog.md
@ -10,6 +10,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|||||||
- No further features planned.
|
- No further features planned.
|
||||||
|
|
||||||
|
|
||||||
|
## [1.0.0] - 2020-07-23
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Inventory's page (switch tab to update).
|
||||||
|
- Ores' relative values.
|
||||||
|
- Option to change gold's value via Settings -> All settings -> Mods -> ores_stats
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Code rewritten from scratch.
|
||||||
|
- Version updated to 1.x, non backward compatible.
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Console and chat output.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [0.2.0] - 2019-10-29
|
## [0.2.0] - 2019-10-29
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
@ -34,42 +34,42 @@ sfinv.register_page('ores_stats:ores_stats', {
|
|||||||
title = 'Ores\' Stats',
|
title = 'Ores\' Stats',
|
||||||
get = function(self, player, context)
|
get = function(self, player, context)
|
||||||
local s_oresPerc =
|
local s_oresPerc =
|
||||||
',' ..
|
',' .. ' ' ..
|
||||||
S("Ores' percentages") .. ',' ..
|
S("Ores' percentages") .. ',' .. ' ' ..
|
||||||
'========================' .. ',' ..
|
'========================' .. ',' .. ' ' ..
|
||||||
S('Coal: ') .. string.format("%.3f", ores_stats.f_percCoal)
|
S('Coal: ') .. string.format("%.3f", ores_stats.f_percCoal)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Copper: ') .. string.format("%.3f", ores_stats.f_percCopper)
|
S('Copper: ') .. string.format("%.3f", ores_stats.f_percCopper)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Diamonds: ') .. string.format("%.3f", ores_stats.f_percDiamonds)
|
S('Diamonds: ') .. string.format("%.3f", ores_stats.f_percDiamonds)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Gold: ') .. string.format("%.3f", ores_stats.f_percGold)
|
S('Gold: ') .. string.format("%.3f", ores_stats.f_percGold)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Iron: ') .. string.format("%.3f", ores_stats.f_percIron)
|
S('Iron: ') .. string.format("%.3f", ores_stats.f_percIron)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Mese: ') .. string.format("%.3f", ores_stats.f_percMese)
|
S('Mese: ') .. string.format("%.3f", ores_stats.f_percMese)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Tin: ') .. string.format("%.3f", ores_stats.f_percTin)
|
S('Tin: ') .. string.format("%.3f", ores_stats.f_percTin)
|
||||||
.. '%' .. ','
|
.. '%' .. ','
|
||||||
|
|
||||||
local s_oresValue =
|
local s_oresValue =
|
||||||
',' ..
|
',' .. ' ' ..
|
||||||
S("Ores' values") .. ',' ..
|
S("Ores' values") .. ',' .. ' ' ..
|
||||||
'========================' .. ',' ..
|
'========================' .. ',' .. ' ' ..
|
||||||
S('Coal: ') .. string.format("%.3f", ores_stats.f_valueCoal)
|
S('Coal: ') .. string.format("%.3f", ores_stats.f_valueCoal)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Copper: ') .. string.format("%.3f", ores_stats.f_valueCopper)
|
S('Copper: ') .. string.format("%.3f", ores_stats.f_valueCopper)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Diamonds: ') .. string.format("%.3f", ores_stats.f_valueDiamonds)
|
S('Diamonds: ') .. string.format("%.3f", ores_stats.f_valueDiamonds)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Gold: ') .. string.format("%.3f", ores_stats.f_valueGold)
|
S('Gold: ') .. string.format("%.3f", ores_stats.f_valueGold)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Iron: ') .. string.format("%.3f", ores_stats.f_valueIron)
|
S('Iron: ') .. string.format("%.3f", ores_stats.f_valueIron)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Mese: ') .. string.format("%.3f", ores_stats.f_valueMese)
|
S('Mese: ') .. string.format("%.3f", ores_stats.f_valueMese)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Tin: ') .. string.format("%.3f", ores_stats.f_valueTin)
|
S('Tin: ') .. string.format("%.3f", ores_stats.f_valueTin)
|
||||||
.. '%' .. ','
|
.. ','
|
||||||
|
|
||||||
return sfinv.make_formspec(player, context,
|
return sfinv.make_formspec(player, context,
|
||||||
'textlist[0,0;7.8,9.2;;' ..
|
'textlist[0,0;7.8,9.2;;' ..
|
||||||
@ -87,44 +87,44 @@ ores_stats.pr_UpdateFormspec = function()
|
|||||||
title = 'Ores\' Stats',
|
title = 'Ores\' Stats',
|
||||||
get = function(self, player, context)
|
get = function(self, player, context)
|
||||||
local s_oresPerc =
|
local s_oresPerc =
|
||||||
',' ..
|
',' .. ' ' ..
|
||||||
S("Ores' percentages") .. ',' ..
|
S("Ores' percentages") .. ',' .. ' ' ..
|
||||||
'========================' .. ',' ..
|
'========================' .. ',' .. ' ' ..
|
||||||
S('Coal: ') .. string.format("%.3f", ores_stats.f_percCoal)
|
S('Coal: ') .. string.format("%.3f", ores_stats.f_percCoal)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Copper: ') .. string.format("%.3f", ores_stats.f_percCopper)
|
S('Copper: ') .. string.format("%.3f", ores_stats.f_percCopper)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Diamonds: ') .. string.format("%.3f",
|
S('Diamonds: ') .. string.format("%.3f",
|
||||||
ores_stats.f_percDiamonds)
|
ores_stats.f_percDiamonds)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Gold: ') .. string.format("%.3f", ores_stats.f_percGold)
|
S('Gold: ') .. string.format("%.3f", ores_stats.f_percGold)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Iron: ') .. string.format("%.3f", ores_stats.f_percIron)
|
S('Iron: ') .. string.format("%.3f", ores_stats.f_percIron)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Mese: ') .. string.format("%.3f", ores_stats.f_percMese)
|
S('Mese: ') .. string.format("%.3f", ores_stats.f_percMese)
|
||||||
.. '%' .. ',' ..
|
.. '%' .. ',' .. ' ' ..
|
||||||
S('Tin: ') .. string.format("%.3f", ores_stats.f_percTin)
|
S('Tin: ') .. string.format("%.3f", ores_stats.f_percTin)
|
||||||
.. '%' .. ','
|
.. '%' .. ','
|
||||||
|
|
||||||
local s_oresValue =
|
local s_oresValue =
|
||||||
',' ..
|
',' .. ' ' ..
|
||||||
S("Ores' values") .. ',' ..
|
S("Ores' values") .. ',' .. ' ' ..
|
||||||
'========================' .. ',' ..
|
'========================' .. ',' .. ' ' ..
|
||||||
S('Coal: ') .. string.format("%.3f", ores_stats.f_valueCoal)
|
S('Coal: ') .. string.format("%.3f", ores_stats.f_valueCoal)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Copper: ') .. string.format("%.3f", ores_stats.f_valueCopper)
|
S('Copper: ') .. string.format("%.3f", ores_stats.f_valueCopper)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Diamonds: ') .. string.format("%.3f",
|
S('Diamonds: ') .. string.format("%.3f",
|
||||||
ores_stats.f_valueDiamonds)
|
ores_stats.f_valueDiamonds)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Gold: ') .. string.format("%.3f", ores_stats.f_valueGold)
|
S('Gold: ') .. string.format("%.3f", ores_stats.f_valueGold)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Iron: ') .. string.format("%.3f", ores_stats.f_valueIron)
|
S('Iron: ') .. string.format("%.3f", ores_stats.f_valueIron)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Mese: ') .. string.format("%.3f", ores_stats.f_valueMese)
|
S('Mese: ') .. string.format("%.3f", ores_stats.f_valueMese)
|
||||||
.. '%' .. ',' ..
|
.. ',' .. ' ' ..
|
||||||
S('Tin: ') .. string.format("%.3f", ores_stats.f_valueTin)
|
S('Tin: ') .. string.format("%.3f", ores_stats.f_valueTin)
|
||||||
.. '%' .. ','
|
.. ','
|
||||||
|
|
||||||
return sfinv.make_formspec(player, context,
|
return sfinv.make_formspec(player, context,
|
||||||
'textlist[0,0;7.8,9.2;;' ..
|
'textlist[0,0;7.8,9.2;;' ..
|
||||||
|
@ -36,3 +36,36 @@ ores_stats.fn_CalcPercentage = function(a_i_ore, a_i_total_ores)
|
|||||||
|
|
||||||
return f_percentage
|
return f_percentage
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Used to calculate an ore's value
|
||||||
|
ores_stats.fn_CalcValue = function(a_f_ore_percentage)
|
||||||
|
|
||||||
|
-- Constants
|
||||||
|
local f_GOLD_PERC = 4.1 -- Average percentage
|
||||||
|
|
||||||
|
-- Variables
|
||||||
|
local f_goldPerc, f_goldValue, f_oreRatio, f_oreValue
|
||||||
|
|
||||||
|
f_goldPerc = ores_stats.f_percGold
|
||||||
|
|
||||||
|
if (f_goldPerc == 0) then
|
||||||
|
f_goldPerc = f_GOLD_PERC
|
||||||
|
end
|
||||||
|
|
||||||
|
f_goldValue = ores_stats.f_valueGold
|
||||||
|
|
||||||
|
if (f_goldValue == 0) then
|
||||||
|
f_goldValue = ores_stats.f_GOLD_VALUE
|
||||||
|
end
|
||||||
|
|
||||||
|
if (a_f_ore_percentage ~= 0) then
|
||||||
|
f_oreRatio = (a_f_ore_percentage / f_goldPerc)
|
||||||
|
f_oreValue = (f_goldValue / f_oreRatio)
|
||||||
|
|
||||||
|
else
|
||||||
|
f_oreValue = 0.0
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return f_oreValue
|
||||||
|
end
|
||||||
|
@ -243,3 +243,22 @@ ores_stats.pr_MTGupdateSaveDBvalue = function()
|
|||||||
ores_stats.t_MOD_DATABASE:set_float('f_valueTin',
|
ores_stats.t_MOD_DATABASE:set_float('f_valueTin',
|
||||||
ores_stats.f_valueTin)
|
ores_stats.f_valueTin)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Used to calculate the Minetest Game's ores values
|
||||||
|
ores_stats.pr_CalcValues = function()
|
||||||
|
|
||||||
|
ores_stats.f_valueCoal = ores_stats.fn_CalcValue(ores_stats.f_percCoal)
|
||||||
|
|
||||||
|
ores_stats.f_valueCopper = ores_stats.fn_CalcValue(ores_stats.f_percCopper)
|
||||||
|
|
||||||
|
ores_stats.f_valueDiamonds =
|
||||||
|
ores_stats.fn_CalcValue(ores_stats.f_percDiamonds)
|
||||||
|
|
||||||
|
ores_stats.f_valueGold = ores_stats.fn_CalcValue(ores_stats.f_percGold)
|
||||||
|
|
||||||
|
ores_stats.f_valueIron = ores_stats.fn_CalcValue(ores_stats.f_percIron)
|
||||||
|
|
||||||
|
ores_stats.f_valueMese = ores_stats.fn_CalcValue(ores_stats.f_percMese)
|
||||||
|
|
||||||
|
ores_stats.f_valueTin = ores_stats.fn_CalcValue(ores_stats.f_percTin)
|
||||||
|
end
|
||||||
|
10
init.lua
10
init.lua
@ -32,6 +32,11 @@ ores_stats = {}
|
|||||||
-- Database handler
|
-- Database handler
|
||||||
ores_stats.t_MOD_DATABASE = minetest.get_mod_storage()
|
ores_stats.t_MOD_DATABASE = minetest.get_mod_storage()
|
||||||
|
|
||||||
|
-- Default ore value
|
||||||
|
ores_stats.f_GOLD_VALUE = minetest.settings:get('ores_stats_gold_value')
|
||||||
|
or 50.0
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Variables
|
-- Variables
|
||||||
--
|
--
|
||||||
@ -56,7 +61,7 @@ local pr_LogMessage = function()
|
|||||||
or (s_LOG_LEVEL == 'info')
|
or (s_LOG_LEVEL == 'info')
|
||||||
or (s_LOG_LEVEL == 'verbose')
|
or (s_LOG_LEVEL == 'verbose')
|
||||||
then
|
then
|
||||||
minetest.log('action', '[Mod] Ores Stats [v0.3.0] loaded.')
|
minetest.log('action', '[Mod] Ores Stats [v1.0.0] loaded.')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -84,6 +89,7 @@ pr_LoadSubFiles()
|
|||||||
|
|
||||||
ores_stats.pr_MTGupdateFromDB()
|
ores_stats.pr_MTGupdateFromDB()
|
||||||
ores_stats.pr_MTGupdateFromDBperc()
|
ores_stats.pr_MTGupdateFromDBperc()
|
||||||
|
ores_stats.pr_MTGupdateFromDBvalue()
|
||||||
|
|
||||||
-- Voxel manipulator
|
-- Voxel manipulator
|
||||||
minetest.register_on_generated(function()
|
minetest.register_on_generated(function()
|
||||||
@ -98,9 +104,11 @@ minetest.register_on_generated(function()
|
|||||||
|
|
||||||
ores_stats.pr_CalcTotalOres()
|
ores_stats.pr_CalcTotalOres()
|
||||||
ores_stats.pr_OresPercentages()
|
ores_stats.pr_OresPercentages()
|
||||||
|
ores_stats.pr_CalcValues()
|
||||||
|
|
||||||
ores_stats.pr_MTGupdateSaveDB()
|
ores_stats.pr_MTGupdateSaveDB()
|
||||||
ores_stats.pr_MTGupdateSaveDBperc()
|
ores_stats.pr_MTGupdateSaveDBperc()
|
||||||
|
ores_stats.pr_MTGupdateSaveDBvalue()
|
||||||
|
|
||||||
ores_stats.pr_UpdateFormspec()
|
ores_stats.pr_UpdateFormspec()
|
||||||
|
|
||||||
|
@ -8,3 +8,4 @@ Gold: =Oro:
|
|||||||
Mese: =Mese:
|
Mese: =Mese:
|
||||||
Diamonds: =Diamanti:
|
Diamonds: =Diamanti:
|
||||||
Ores' percentages=Percentuali dei minerali
|
Ores' percentages=Percentuali dei minerali
|
||||||
|
Ores' values=Valori dei minerali
|
||||||
|
@ -8,3 +8,4 @@ Gold: =
|
|||||||
Mese: =
|
Mese: =
|
||||||
Diamonds: =
|
Diamonds: =
|
||||||
Ores' percentages=
|
Ores' percentages=
|
||||||
|
Ores' values=
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# ENG: Enable the profiler?
|
# ENG: Default gold value.
|
||||||
#
|
#
|
||||||
# ITA: Abilitare le informazioni statistiche?
|
# ITA: valore predefinito dell'oro.
|
||||||
ores_stats_profiler (Ores' Statistics profiler) bool false
|
ores_stats_gold_value (Gold value) float 50.0
|
||||||
|
Loading…
Reference in New Issue
Block a user